Thanks Martin, I will look into that. But won't it be a problem that I will add 
the <input/> / TextField to the Border without having any markup inside the 
Border? Won't I need my <input/> markup inside the border <div/>s?

Tom


> Gesendet: Dienstag, 03. September 2019 um 09:22 Uhr
> Von: "Martin Grigorov" <[email protected]>
> An: "[email protected]" <[email protected]>
> Betreff: Re: Re: Wrapping a FormComponent with a Border
>
> Hi Tom,
> 
> Since your "user" is going to add a TextField in the Java code then I
> assume (s)he is going to add <input wicket:id="..."/> in the markup.
> Your IComponentInitializationListener will replace all components of type
> TextField which do not have FormGroup as a parent with a MyFormGroup.
> 
> public class MyFormGroup extends FormGroup {
>    // constructor(s)
> 
>   @Override
>   public void onComponentTag(ComponentTag tag) {
>     super(tag);
>     tag.setName("div");  // this modifies <input> to <div>
>   }
> }
> 
> I am not sure, but you may also need to expand the tag from OpenClose (i.e.
> <input/>) to open+close (i.e. <div></div>). See ComponentTag#isOpenClose()
> and Component#afterRender();
> 
> On Tue, Sep 3, 2019 at 10:09 AM "Tom Götz" <[email protected]> wrote:
> 
> > Martin,
> >
> > maybe you could point me into the right direction concerning the markup
> > manipulation part?
> >
> > This is what I got in my HTML:
> >
> > <form wicket:id="form">
> >   <input wicket:id="input" type="text" />
> > </form>
> >
> > I guess this is what I need for effectively replacing the input with a
> > FormGroup border:
> >
> > <form wicket:id="form">
> >   <div wicket:id="border">
> >     <input wicket:id="input" type="text" />
> >   </div>
> > </form>
> >
> > Where would be the best place in the code to start looking?
> >
> > Thanks in advance
> > Tom
> >
> >
> >
> >
> > > Gesendet: Montag, 02. September 2019 um 13:57 Uhr
> > > Von: "Tom Götz" <[email protected]>
> > > An: [email protected]
> > > Betreff: Re: Wrapping a FormComponent with a Border
> > >
> > > Thanks Martin, this is exactly what I had in mind. I already implemented
> > 1), replacing the TextField with said Border but now am stuck with the
> > "HTML manipulation" part ...
> > >
> > > Tom
> > >
> > >
> > > > Gesendet: Montag, 02. September 2019 um 13:47 Uhr
> > > > Von: "Martin Grigorov" <[email protected]>
> > > > An: "[email protected]" <[email protected]>
> > > > Betreff: Re: Wrapping a FormComponent with a Border
> > > >
> > > > Hi Tom,
> > > >
> > > > I imagine two ways:
> > > > 1) use org.apache.wicket.application.IComponentInitializationListener
> > that
> > > > manipulates the component tree whenever the passed component is an
> > instance
> > > > of TextField and has no (direct?!) parent of type FormGroup
> > > > 2) use AOP
> > > >
> > > > In both cases you will need to also the markup because FormGroup
> > expects to
> > > > be attached on a <div>, while you will have an <input/>. For this you
> > will
> > > > probably need to extend Wicket Bootstrap's FormGroup and in your
> > custom one
> > > > override onComponentTag() (and onComponentTagBody() - most probably
> > not).
> > > >
> > > > On Mon, Sep 2, 2019 at 2:05 PM "Tom Götz" <[email protected]> wrote:
> > > >
> > > > > Let me try to explain what I want to achieve more precisely:
> > > > >
> > > > > - user adds a TextField to a page
> > > > > - I want to replace that TextField with a Border (Wicket Border
> > component,
> > > > > e.g. FormGroup from wicket-bootstrap) and put the TextField inside
> > that
> > > > > border
> > > > >
> > > > > The problem ist not: "how do I wrap a component with some HTML
> > markup?"
> > > > > (either generated by Java code or clientside), but: how can I
> > manipulate
> > > > > the component tree (server side) in such a way, that I can remove the
> > > > > TextField from it's parent and replace it with a Border that
> > contains that
> > > > > TextField....!?
> > > > >
> > > > > Tom
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > > Gesendet: Montag, 02. September 2019 um 12:49 Uhr
> > > > > > Von: "Tobias Soloschenko" <[email protected]
> > >
> > > > > > An: [email protected]
> > > > > > Betreff: Re: Wrapping a FormComponent with a Border
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > why not add a css class and style it?
> > > > > >
> > > > > > kind regards
> > > > > >
> > > > > > Tobias
> > > > > >
> > > > > > > Am 02.09.2019 um 12:20 schrieb Ernesto Reinaldo Barreiro <
> > > > > [email protected]>:
> > > > > > >
> > > > > > > Another possibility is to do this client side...
> > > > > > >
> > > > > > >> On Mon, Sep 2, 2019, 11:43 AM "Tom Götz" <[email protected]>
> > wrote:
> > > > > > >>
> > > > > > >> That would be great, thanks in advance!
> > > > > > >>
> > > > > > >> Tom
> > > > > > >>
> > > > > > >>
> > > > > > >>> Gesendet: Montag, 02. September 2019 um 10:39 Uhr
> > > > > > >>> Von: "Ernesto Reinaldo Barreiro" <[email protected]>
> > > > > > >>> An: [email protected]
> > > > > > >>> Betreff: Re: Wrapping a FormComponent with a Border
> > > > > > >>>
> > > > > > >>> Hi,
> > > > > > >>>
> > > > > > >>>> On Mon, Sep 2, 2019 at 11:13 AM Tom Götz <[email protected]
> > >
> > > > > wrote:
> > > > > > >>>>
> > > > > > >>>> Thanks Ernesto! This example is from 2007 though and uses
> > > > > > >>>> compent.setComponentBorder ....
> > > > > > >>>> Is there something more close to current Wicket versions
> > available
> > > > > > >> maybe?
> > > > > > >>>> :)
> > > > > > >>>>
> > > > > > >>>
> > > > > > >>> I think I have somewhere on a private project something similar
> > > > > > >> implemented
> > > > > > >>> for Wicket 7.x... I can try to dig it up and send classes to
> > you.
> > > > > > >>>
> > > > > > >>> --
> > > > > > >>> Regards - Ernesto Reinaldo Barreiro
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to