You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Patrick Davids <pa...@nuboit.de> on 2013/03/28 14:36:39 UTC
Solved / Re: Need help setting visibility via
AjaxFormChoiceComponentUpdatingBehavior
I am not sure what exactly was wrong.
Perhaps I had too much code with several active setVisibility...() XYZs
code parts.
I started from the beginning and found the beautiest way for me, looking
like this.
final RadioChoice<String> r = new RadioChoice<String>("id",
Model.of(""), Arrays.asList(new String[{"visible","invisible"}));
r.setModelObject("visible");
final WebMarkupContainer wmc = new WebMarkupContainer("wmc"){
@Override
protected void onConfigure() {
if(r.getValue().equals("0")){
setVisibilityAllowed(true);
}
if(r.getValue().equals("1")){
setVisibilityAllowed(false);
}
}
wmc.setOutputMarkupPlaceholderTag(true);
r.add(new AjaxFormChoiceComponentUpdatingBehavior(){
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(wmc);
}
}
);
================
onConfigure() is always be executed, and can toggle the visibility.
AjaxFormChoiceComponentUpdatingBehavior.onUpdate() just pushes back the
wmc, and due to onConfigure() of the wmc it determines its visibility
depending on the new state of RadioCoice r.
kind regards
Patrick
Am 28.03.2013 13:44, schrieb Martin Grigorov:
> Hi,
>
> All you have explained should just work.
> It seems the component is still invisible after setVisible(true). Maybe you
> override it later ?! As you said in #onConfigure() or #isVisible() returns
> false ?
> Please show some code.
>
>
> On Thu, Mar 28, 2013 at 12:30 PM, Patrick Davids
> <pa...@nuboit.de>wrote:
>
>> Additional info:
>>
>> Its now working partially...
>>
>> I removed the onConfigure() of the markup container to determine the
>> initial visibility of itself depending on the radio default choice.
>>
>> So, my question changes to:
>> Whats the best way todo such an initial visibility without affecting the
>> ajax visibility changing?
>>
>> Patrick
>>
>>
>> Am 28.03.2013 11:18, schrieb Sven Meier:
>>>> My behavior on the gui is:
>>>> - the first render process of the page itself shows the container once
>>>> - on clicking my radiochoice the webmarkupcontainer disappears but is
>>>> still available, due to outPutMarkUpPlaceHolder true, but the content is
>>>> completly removed and the visibility of the container is always
>>>> display:none.
>>>>
>>>> Using setVisible or using setVisibilityAllowed does not make any
>> changes.
>>>
>>> So your container disappears but does not show up again after setting it
>>> visible?
>>>
>>> Sven
>>>
>>> On 03/28/2013 11:12 AM, Patrick Davids wrote:
>>>> Hi together,
>>>> I searched the web for several hours and always get the same results for
>>>> setting the visibilty for components via ajax, but I cannot get it work.
>>>>
>>>> The "should work" solution is:
>>>> - Creat an extra a WebMarkupContainer in your page
>>>> - add your subcomponents to this container
>>>> - setOutPutMarkUpIdPlacerHolderTag(true) for the container
>>>> - implement ajax anywhere (in my case its an
>>>> AjaxFormChoiceComponentUpdatingBehavior)
>>>> - override its onUpdate and setVisibilty of the container true or false
>>>> depending on something
>>>> - do target.add( the webmarkupcontainer )
>>>>
>>>> Tada... but nothing happens.
>>>>
>>>> My problems are:
>>>> All solutions I found are about 2-5 years old, so:
>>>> - the usage of setVisibilty has changed (setVisible vs.
>>>> setVisibilityAllowed() discussion)
>>>> - target does not have an addComponent() method anymore (but this is
>>>> easy, should be add(...))
>>>> - perhaps the hole "SetVisibilityViaAjax"-way has changed since newer
>>>> wicket versions?
>>>>
>>>> My behavior on the gui is:
>>>> - the first render process of the page itself shows the container once
>>>> - on clicking my radiochoice the webmarkupcontainer disappears but is
>>>> still available, due to outPutMarkUpPlaceHolder true, but the content is
>>>> completly removed and the visibility of the container is always
>>>> display:none.
>>>>
>>>> Using setVisible or using setVisibilityAllowed does not make any
>> changes.
>>>>
>>>> Whats wrong?!? :-(
>>>>
>>>> (using wicket 6.6)
>>>>
>>>> kind regards
>>>> Patrick
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>
>> --
>> Mit freundlichen Grüßen,
>>
>> Patrick Davids
>>
>> NuboIT GmbH & Co. KG
>> Kieler Str. 103-107 • 25474 Bönningstedt
>>
>> Email: patrick.davids@nuboit.de
>>
>> Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
>>
>> Geschäftsführung der Verwaltungsgesellschaft
>> Daniel Fraga Zander
>>
>> HRB10145Pi | Amtsgericht Pinneberg
>
>
>
>
--
Mit freundlichen Grüßen,
Patrick Davids
NuboIT GmbH & Co. KG
Kieler Str. 103-107 • 25474 Bönningstedt
Email: patrick.davids@nuboit.de
Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
Geschäftsführung der Verwaltungsgesellschaft
Daniel Fraga Zander
HRB10145Pi | Amtsgericht Pinneberg
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Solved / Re: Need help setting visibility via
AjaxFormChoiceComponentUpdatingBehavior
Posted by Patrick Davids <pa...@nuboit.de>.
I read this article and my first approach was like
"If an outside component controls another’s visibility the best way is
to override the controlling component’s onConfigure() and call
controlled.setVisible()"
But this doesnt worked, because onConfigure() of my RadioChoice runs
only once.
What I can do to force onConfigure() of RadioChoice again is, also
adding it to the AjaxRequestTarget.
r.add(new AjaxFormChoiceComponentUpdatingBehavior(){
@Override
protected void onUpdate(AjaxRequestTarget target) {
-> target.add(r);
target.add(wmc);
}
}
This works, too...
I am not sure now, whats the better way... *lol*
Determine "my" visibility in my onConfigure() by watching the state of
the controller by myself, and adding only one object to the
AjaxRequestTarget.
or
Let set the visibility of "me" by a controller and adding two objects to
the AjaxRequestTarget, so the onConfigure() of the controller can do its
visibility setting job.
Pull or Push?
regards
Patrick
Am 28.03.2013 14:40, schrieb Martin Grigorov:
> See
> http://wicketinaction.com/2011/11/implement-wicket-component-visibility-changes-properly/
>
>
> On Thu, Mar 28, 2013 at 3:36 PM, Patrick Davids <pa...@nuboit.de>wrote:
>
>> I am not sure what exactly was wrong.
>> Perhaps I had too much code with several active setVisibility...() XYZs
>> code parts.
>>
>> I started from the beginning and found the beautiest way for me, looking
>> like this.
>>
>> final RadioChoice<String> r = new RadioChoice<String>("id",
>> Model.of(""), Arrays.asList(new String[{"visible","invisible"}));
>>
>> r.setModelObject("visible");
>>
>> final WebMarkupContainer wmc = new WebMarkupContainer("wmc"){
>> @Override
>> protected void onConfigure() {
>> if(r.getValue().equals("0")){
>> setVisibilityAllowed(true);
>> }
>> if(r.getValue().equals("1")){
>> setVisibilityAllowed(false);
>> }
>> }
>> wmc.setOutputMarkupPlaceholderTag(true);
>>
>> r.add(new AjaxFormChoiceComponentUpdatingBehavior(){
>> @Override
>> protected void onUpdate(AjaxRequestTarget target) {
>> target.add(wmc);
>> }
>> }
>> );
>>
>>
>> ================
>> onConfigure() is always be executed, and can toggle the visibility.
>>
>> AjaxFormChoiceComponentUpdatingBehavior.onUpdate() just pushes back the
>> wmc, and due to onConfigure() of the wmc it determines its visibility
>> depending on the new state of RadioCoice r.
>>
>> kind regards
>> Patrick
>>
>>
>> Am 28.03.2013 13:44, schrieb Martin Grigorov:
>>> Hi,
>>>
>>> All you have explained should just work.
>>> It seems the component is still invisible after setVisible(true). Maybe
>> you
>>> override it later ?! As you said in #onConfigure() or #isVisible()
>> returns
>>> false ?
>>> Please show some code.
>>>
>>>
>>> On Thu, Mar 28, 2013 at 12:30 PM, Patrick Davids
>>> <pa...@nuboit.de>wrote:
>>>
>>>> Additional info:
>>>>
>>>> Its now working partially...
>>>>
>>>> I removed the onConfigure() of the markup container to determine the
>>>> initial visibility of itself depending on the radio default choice.
>>>>
>>>> So, my question changes to:
>>>> Whats the best way todo such an initial visibility without affecting the
>>>> ajax visibility changing?
>>>>
>>>> Patrick
>>>>
>>>>
>>>> Am 28.03.2013 11:18, schrieb Sven Meier:
>>>>>> My behavior on the gui is:
>>>>>> - the first render process of the page itself shows the container once
>>>>>> - on clicking my radiochoice the webmarkupcontainer disappears but is
>>>>>> still available, due to outPutMarkUpPlaceHolder true, but the content
>> is
>>>>>> completly removed and the visibility of the container is always
>>>>>> display:none.
>>>>>>
>>>>>> Using setVisible or using setVisibilityAllowed does not make any
>>>> changes.
>>>>>
>>>>> So your container disappears but does not show up again after setting
>> it
>>>>> visible?
>>>>>
>>>>> Sven
>>>>>
>>>>> On 03/28/2013 11:12 AM, Patrick Davids wrote:
>>>>>> Hi together,
>>>>>> I searched the web for several hours and always get the same results
>> for
>>>>>> setting the visibilty for components via ajax, but I cannot get it
>> work.
>>>>>>
>>>>>> The "should work" solution is:
>>>>>> - Creat an extra a WebMarkupContainer in your page
>>>>>> - add your subcomponents to this container
>>>>>> - setOutPutMarkUpIdPlacerHolderTag(true) for the container
>>>>>> - implement ajax anywhere (in my case its an
>>>>>> AjaxFormChoiceComponentUpdatingBehavior)
>>>>>> - override its onUpdate and setVisibilty of the container true or
>> false
>>>>>> depending on something
>>>>>> - do target.add( the webmarkupcontainer )
>>>>>>
>>>>>> Tada... but nothing happens.
>>>>>>
>>>>>> My problems are:
>>>>>> All solutions I found are about 2-5 years old, so:
>>>>>> - the usage of setVisibilty has changed (setVisible vs.
>>>>>> setVisibilityAllowed() discussion)
>>>>>> - target does not have an addComponent() method anymore (but this is
>>>>>> easy, should be add(...))
>>>>>> - perhaps the hole "SetVisibilityViaAjax"-way has changed since newer
>>>>>> wicket versions?
>>>>>>
>>>>>> My behavior on the gui is:
>>>>>> - the first render process of the page itself shows the container once
>>>>>> - on clicking my radiochoice the webmarkupcontainer disappears but is
>>>>>> still available, due to outPutMarkUpPlaceHolder true, but the content
>> is
>>>>>> completly removed and the visibility of the container is always
>>>>>> display:none.
>>>>>>
>>>>>> Using setVisible or using setVisibilityAllowed does not make any
>>>> changes.
>>>>>>
>>>>>> Whats wrong?!? :-(
>>>>>>
>>>>>> (using wicket 6.6)
>>>>>>
>>>>>> kind regards
>>>>>> Patrick
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>
>>>>
>>>> --
>>>> Mit freundlichen Grüßen,
>>>>
>>>> Patrick Davids
>>>>
>>>> NuboIT GmbH & Co. KG
>>>> Kieler Str. 103-107 • 25474 Bönningstedt
>>>>
>>>> Email: patrick.davids@nuboit.de
>>>>
>>>> Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
>>>>
>>>> Geschäftsführung der Verwaltungsgesellschaft
>>>> Daniel Fraga Zander
>>>>
>>>> HRB10145Pi | Amtsgericht Pinneberg
>>>
>>>
>>>
>>>
>>
>> --
>> Mit freundlichen Grüßen,
>>
>> Patrick Davids
>>
>> NuboIT GmbH & Co. KG
>> Kieler Str. 103-107 • 25474 Bönningstedt
>>
>> Email: patrick.davids@nuboit.de
>>
>> Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
>>
>> Geschäftsführung der Verwaltungsgesellschaft
>> Daniel Fraga Zander
>>
>> HRB10145Pi | Amtsgericht Pinneberg
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
>
--
Mit freundlichen Grüßen,
Patrick Davids
NuboIT GmbH & Co. KG
Kieler Str. 103-107 • 25474 Bönningstedt
Email: patrick.davids@nuboit.de
Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
Geschäftsführung der Verwaltungsgesellschaft
Daniel Fraga Zander
HRB10145Pi | Amtsgericht Pinneberg
Re: Solved / Re: Need help setting visibility via AjaxFormChoiceComponentUpdatingBehavior
Posted by Martin Grigorov <mg...@apache.org>.
See
http://wicketinaction.com/2011/11/implement-wicket-component-visibility-changes-properly/
On Thu, Mar 28, 2013 at 3:36 PM, Patrick Davids <pa...@nuboit.de>wrote:
> I am not sure what exactly was wrong.
> Perhaps I had too much code with several active setVisibility...() XYZs
> code parts.
>
> I started from the beginning and found the beautiest way for me, looking
> like this.
>
> final RadioChoice<String> r = new RadioChoice<String>("id",
> Model.of(""), Arrays.asList(new String[{"visible","invisible"}));
>
> r.setModelObject("visible");
>
> final WebMarkupContainer wmc = new WebMarkupContainer("wmc"){
> @Override
> protected void onConfigure() {
> if(r.getValue().equals("0")){
> setVisibilityAllowed(true);
> }
> if(r.getValue().equals("1")){
> setVisibilityAllowed(false);
> }
> }
> wmc.setOutputMarkupPlaceholderTag(true);
>
> r.add(new AjaxFormChoiceComponentUpdatingBehavior(){
> @Override
> protected void onUpdate(AjaxRequestTarget target) {
> target.add(wmc);
> }
> }
> );
>
>
> ================
> onConfigure() is always be executed, and can toggle the visibility.
>
> AjaxFormChoiceComponentUpdatingBehavior.onUpdate() just pushes back the
> wmc, and due to onConfigure() of the wmc it determines its visibility
> depending on the new state of RadioCoice r.
>
> kind regards
> Patrick
>
>
> Am 28.03.2013 13:44, schrieb Martin Grigorov:
> > Hi,
> >
> > All you have explained should just work.
> > It seems the component is still invisible after setVisible(true). Maybe
> you
> > override it later ?! As you said in #onConfigure() or #isVisible()
> returns
> > false ?
> > Please show some code.
> >
> >
> > On Thu, Mar 28, 2013 at 12:30 PM, Patrick Davids
> > <pa...@nuboit.de>wrote:
> >
> >> Additional info:
> >>
> >> Its now working partially...
> >>
> >> I removed the onConfigure() of the markup container to determine the
> >> initial visibility of itself depending on the radio default choice.
> >>
> >> So, my question changes to:
> >> Whats the best way todo such an initial visibility without affecting the
> >> ajax visibility changing?
> >>
> >> Patrick
> >>
> >>
> >> Am 28.03.2013 11:18, schrieb Sven Meier:
> >>>> My behavior on the gui is:
> >>>> - the first render process of the page itself shows the container once
> >>>> - on clicking my radiochoice the webmarkupcontainer disappears but is
> >>>> still available, due to outPutMarkUpPlaceHolder true, but the content
> is
> >>>> completly removed and the visibility of the container is always
> >>>> display:none.
> >>>>
> >>>> Using setVisible or using setVisibilityAllowed does not make any
> >> changes.
> >>>
> >>> So your container disappears but does not show up again after setting
> it
> >>> visible?
> >>>
> >>> Sven
> >>>
> >>> On 03/28/2013 11:12 AM, Patrick Davids wrote:
> >>>> Hi together,
> >>>> I searched the web for several hours and always get the same results
> for
> >>>> setting the visibilty for components via ajax, but I cannot get it
> work.
> >>>>
> >>>> The "should work" solution is:
> >>>> - Creat an extra a WebMarkupContainer in your page
> >>>> - add your subcomponents to this container
> >>>> - setOutPutMarkUpIdPlacerHolderTag(true) for the container
> >>>> - implement ajax anywhere (in my case its an
> >>>> AjaxFormChoiceComponentUpdatingBehavior)
> >>>> - override its onUpdate and setVisibilty of the container true or
> false
> >>>> depending on something
> >>>> - do target.add( the webmarkupcontainer )
> >>>>
> >>>> Tada... but nothing happens.
> >>>>
> >>>> My problems are:
> >>>> All solutions I found are about 2-5 years old, so:
> >>>> - the usage of setVisibilty has changed (setVisible vs.
> >>>> setVisibilityAllowed() discussion)
> >>>> - target does not have an addComponent() method anymore (but this is
> >>>> easy, should be add(...))
> >>>> - perhaps the hole "SetVisibilityViaAjax"-way has changed since newer
> >>>> wicket versions?
> >>>>
> >>>> My behavior on the gui is:
> >>>> - the first render process of the page itself shows the container once
> >>>> - on clicking my radiochoice the webmarkupcontainer disappears but is
> >>>> still available, due to outPutMarkUpPlaceHolder true, but the content
> is
> >>>> completly removed and the visibility of the container is always
> >>>> display:none.
> >>>>
> >>>> Using setVisible or using setVisibilityAllowed does not make any
> >> changes.
> >>>>
> >>>> Whats wrong?!? :-(
> >>>>
> >>>> (using wicket 6.6)
> >>>>
> >>>> kind regards
> >>>> Patrick
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>>
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>
> >>
> >> --
> >> Mit freundlichen Grüßen,
> >>
> >> Patrick Davids
> >>
> >> NuboIT GmbH & Co. KG
> >> Kieler Str. 103-107 • 25474 Bönningstedt
> >>
> >> Email: patrick.davids@nuboit.de
> >>
> >> Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
> >>
> >> Geschäftsführung der Verwaltungsgesellschaft
> >> Daniel Fraga Zander
> >>
> >> HRB10145Pi | Amtsgericht Pinneberg
> >
> >
> >
> >
>
> --
> Mit freundlichen Grüßen,
>
> Patrick Davids
>
> NuboIT GmbH & Co. KG
> Kieler Str. 103-107 • 25474 Bönningstedt
>
> Email: patrick.davids@nuboit.de
>
> Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
>
> Geschäftsführung der Verwaltungsgesellschaft
> Daniel Fraga Zander
>
> HRB10145Pi | Amtsgericht Pinneberg
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
--
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>