You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by "Boydens Joeri (OZ)" <jo...@oz.be> on 2009/04/01 08:32:12 UTC

clean way to add visibility constraints

Hi,

 

I have this page where I have different components that need to be show
or hidden, depending on the value of some model fields.  I implemented
this by overriding the isVisible method of the components.  Now I was
wondering if there is a less verbose way of handling this? (I can't
group the components because it's not possible in the html markup).  

 

item.add(new TextField("value") {

                                         public boolean isVisible() {

 
OnlineBookingParametersArticle     article =
(OnlineBookingParametersArticle) getParent().getModel().getObject();

                                               return
article.getArticle().getNumberInStock() > 0;

                                         }

                                   });

                                   

                                   item.add(new
Label("article.numberOfArticlesLabel", "Geen beschikbaar") {

                                         public boolean isVisible() {

 
OnlineBookingParametersArticle     article =
(OnlineBookingParametersArticle) getParent().getModel().getObject();

                                               return
article.getArticle().getNumberInStock() <= 0;

                                         }

                                   });

                                   

                                   item.add(new
Label("article.description"));

                                         

                                   item.add(new
WebMarkupContainer("participantInfo") {

                                                     public boolean
isVisible() {

 
OnlineBookingParametersArticle       article =
(OnlineBookingParametersArticle) getParent().getModel().getObject();

                                                           return
article.getArticle().getNumberInStock() > 0;

                                                     }

                                               }

                                               .add(new
Label("article.numberOfRequiredParticipants"))

                                               .add(new
Label("article.maximumNumberOfParticipants")));  

                                         

                                   

                                   item.add(new Link("contactLink"){

                                         @Override

                                         public void onClick(){

                                               //TODO : go to correct
page

                                         }

                                         @Override

                                         public boolean isVisible() {

 
OnlineBookingParametersArticle     article =
(OnlineBookingParametersArticle) getParent().getModel().getObject();

                                               return
article.getArticle().getNumberInStock() <= 0;

                                         }

                                   });

 

 


Re: clean way to add visibility constraints

Posted by Martijn Dashorst <ma...@gmail.com>.
one is static, the other dynamic.

You can make setVisible more dynamic by doing it in page.onBeforeRender

Martijn

On Wed, Apr 1, 2009 at 11:42 AM, Boydens Joeri (OZ) <jo...@oz.be> wrote:
>
> Is there prefered way between the methods below?
>
> if (condition) {
>        component.setVisible(false);
> }
>
> OR
>
> component {
> @Override
> public boolean isVisible() {
>        return !condition;
> }
>
> If I use the above I can group my components and set them with the
> setVisible method depending on the condition, with the last method I
> have to add the the condition to every component.
>
>
> -----Oorspronkelijk bericht-----
> Van: Daan van Etten [mailto:daan@stuq.nl]
> Verzonden: woensdag 1 april 2009 11:20
> Aan: users@wicket.apache.org
> Onderwerp: Re: clean way to add visibility constraints
>
> You could write a method that sets the visibility on the relevant
> components.
> The Form components have to be visible to that method though (or you
> have to use a visitor).
>
> Regards,
>
> Daan
>
> Op 1 apr 2009, om 08:32 heeft Boydens Joeri (OZ) het volgende
> geschreven:
>
>> Hi,
>>
>>
>>
>> I have this page where I have different components that need to be
>> show
>> or hidden, depending on the value of some model fields.  I implemented
>> this by overriding the isVisible method of the components.  Now I was
>> wondering if there is a less verbose way of handling this? (I can't
>> group the components because it's not possible in the html markup).
>>
>>
>>
>> item.add(new TextField("value") {
>>
>>                                         public boolean isVisible() {
>>
>>
>> OnlineBookingParametersArticle     article =
>> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>>
>>                                               return
>> article.getArticle().getNumberInStock() > 0;
>>
>>                                         }
>>
>>                                   });
>>
>>
>>
>>                                   item.add(new
>> Label("article.numberOfArticlesLabel", "Geen beschikbaar") {
>>
>>                                         public boolean isVisible() {
>>
>>
>> OnlineBookingParametersArticle     article =
>> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>>
>>                                               return
>> article.getArticle().getNumberInStock() <= 0;
>>
>>                                         }
>>
>>                                   });
>>
>>
>>
>>                                   item.add(new
>> Label("article.description"));
>>
>>
>>
>>                                   item.add(new
>> WebMarkupContainer("participantInfo") {
>>
>>                                                     public boolean
>> isVisible() {
>>
>>
>> OnlineBookingParametersArticle       article =
>> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>>
>>                                                           return
>> article.getArticle().getNumberInStock() > 0;
>>
>>                                                     }
>>
>>                                               }
>>
>>                                               .add(new
>> Label("article.numberOfRequiredParticipants"))
>>
>>                                               .add(new
>> Label("article.maximumNumberOfParticipants")));
>>
>>
>>
>>
>>
>>                                   item.add(new Link("contactLink"){
>>
>>                                         @Override
>>
>>                                         public void onClick(){
>>
>>                                               //TODO : go to correct
>> page
>>
>>                                         }
>>
>>                                         @Override
>>
>>                                         public boolean isVisible() {
>>
>>
>> OnlineBookingParametersArticle     article =
>> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>>
>>                                               return
>> article.getArticle().getNumberInStock() <= 0;
>>
>>                                         }
>>
>>                                   });
>>
>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> 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
>
>



-- 
Become a Wicket expert, learn from the best: http://wicketinaction.com
Apache Wicket 1.3.5 is released
Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


RE: clean way to add visibility constraints

Posted by "Boydens Joeri (OZ)" <jo...@oz.be>.
Is there prefered way between the methods below?  

if (condition) {
	component.setVisible(false);
}

OR

component {
@Override
public boolean isVisible() {
	return !condition;
}

If I use the above I can group my components and set them with the
setVisible method depending on the condition, with the last method I
have to add the the condition to every component.


-----Oorspronkelijk bericht-----
Van: Daan van Etten [mailto:daan@stuq.nl] 
Verzonden: woensdag 1 april 2009 11:20
Aan: users@wicket.apache.org
Onderwerp: Re: clean way to add visibility constraints

You could write a method that sets the visibility on the relevant  
components.
The Form components have to be visible to that method though (or you  
have to use a visitor).

Regards,

Daan

Op 1 apr 2009, om 08:32 heeft Boydens Joeri (OZ) het volgende  
geschreven:

> Hi,
>
>
>
> I have this page where I have different components that need to be  
> show
> or hidden, depending on the value of some model fields.  I implemented
> this by overriding the isVisible method of the components.  Now I was
> wondering if there is a less verbose way of handling this? (I can't
> group the components because it's not possible in the html markup).
>
>
>
> item.add(new TextField("value") {
>
>                                         public boolean isVisible() {
>
>
> OnlineBookingParametersArticle     article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                               return
> article.getArticle().getNumberInStock() > 0;
>
>                                         }
>
>                                   });
>
>
>
>                                   item.add(new
> Label("article.numberOfArticlesLabel", "Geen beschikbaar") {
>
>                                         public boolean isVisible() {
>
>
> OnlineBookingParametersArticle     article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                               return
> article.getArticle().getNumberInStock() <= 0;
>
>                                         }
>
>                                   });
>
>
>
>                                   item.add(new
> Label("article.description"));
>
>
>
>                                   item.add(new
> WebMarkupContainer("participantInfo") {
>
>                                                     public boolean
> isVisible() {
>
>
> OnlineBookingParametersArticle       article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                                           return
> article.getArticle().getNumberInStock() > 0;
>
>                                                     }
>
>                                               }
>
>                                               .add(new
> Label("article.numberOfRequiredParticipants"))
>
>                                               .add(new
> Label("article.maximumNumberOfParticipants")));
>
>
>
>
>
>                                   item.add(new Link("contactLink"){
>
>                                         @Override
>
>                                         public void onClick(){
>
>                                               //TODO : go to correct
> page
>
>                                         }
>
>                                         @Override
>
>                                         public boolean isVisible() {
>
>
> OnlineBookingParametersArticle     article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                               return
> article.getArticle().getNumberInStock() <= 0;
>
>                                         }
>
>                                   });
>
>
>
>
>


---------------------------------------------------------------------
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


Re: clean way to add visibility constraints

Posted by Daan van Etten <da...@stuq.nl>.
You could write a method that sets the visibility on the relevant  
components.
The Form components have to be visible to that method though (or you  
have to use a visitor).

Regards,

Daan

Op 1 apr 2009, om 08:32 heeft Boydens Joeri (OZ) het volgende  
geschreven:

> Hi,
>
>
>
> I have this page where I have different components that need to be  
> show
> or hidden, depending on the value of some model fields.  I implemented
> this by overriding the isVisible method of the components.  Now I was
> wondering if there is a less verbose way of handling this? (I can't
> group the components because it's not possible in the html markup).
>
>
>
> item.add(new TextField("value") {
>
>                                         public boolean isVisible() {
>
>
> OnlineBookingParametersArticle     article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                               return
> article.getArticle().getNumberInStock() > 0;
>
>                                         }
>
>                                   });
>
>
>
>                                   item.add(new
> Label("article.numberOfArticlesLabel", "Geen beschikbaar") {
>
>                                         public boolean isVisible() {
>
>
> OnlineBookingParametersArticle     article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                               return
> article.getArticle().getNumberInStock() <= 0;
>
>                                         }
>
>                                   });
>
>
>
>                                   item.add(new
> Label("article.description"));
>
>
>
>                                   item.add(new
> WebMarkupContainer("participantInfo") {
>
>                                                     public boolean
> isVisible() {
>
>
> OnlineBookingParametersArticle       article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                                           return
> article.getArticle().getNumberInStock() > 0;
>
>                                                     }
>
>                                               }
>
>                                               .add(new
> Label("article.numberOfRequiredParticipants"))
>
>                                               .add(new
> Label("article.maximumNumberOfParticipants")));
>
>
>
>
>
>                                   item.add(new Link("contactLink"){
>
>                                         @Override
>
>                                         public void onClick(){
>
>                                               //TODO : go to correct
> page
>
>                                         }
>
>                                         @Override
>
>                                         public boolean isVisible() {
>
>
> OnlineBookingParametersArticle     article =
> (OnlineBookingParametersArticle) getParent().getModel().getObject();
>
>                                               return
> article.getArticle().getNumberInStock() <= 0;
>
>                                         }
>
>                                   });
>
>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org