wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruno Cesar Borges" <brunobor...@cetip.com.br>
Subject Re: make invisible if model object is null
Date Mon, 01 Dec 2008 12:54:19 GMT
Alright, this is my last try replying with MS Outlook. =) And I will also add more info to
help with this thread.

You can use borders to acomplish what you want. Here's an example:

#JAVA
public abstract class ConditionalHiddenBorder extends Border {

   public ConditionalHiddenBorder(String id) {
      super(id);
   }

   public abstract boolean isVisible();

}

#HTML
   <html>
   <body>
     <wicket:border>
       <wicket:body/>
     </wicket:border>
   </body>
   </html>

#EXAMPLE (Wicket's Quickstart)
   public HomePage() {
      final Label label = new Label("message", "If you see this message wicket is properly
configured and running");
      ConditionalHiddenBorder chb = new ConditionalHiddenBorder("border") {

         public boolean isVisible() {
            return label.getDefaultModelObject() != null;
         }
      };
      chb.add(label);
      add(chb);
   }

#HTML Example
        <div wicket:id="border">
        	<span wicket:id="message">message will be here</span>
        </div>

Hope this reply works!

cheers,
Bruno

-----Original Message-----
From: kan [mailto:kan.izh@gmail.com]
Sent: Monday, December 01, 2008 9:03 AM
To: users@wicket.apache.org
Subject: make invisible if model object is null


I use the next construction very often:

[markup]
<wicket:enclosure child="something">
<p>Something here, description, comments etc: <span
wicket:id="somethinig"></span></p>
</wicket:enclosure>

[java]
add(new Label("something")
{
	@Override
	public boolean isVisible() {
		return super.isVisible() && getDefaultModelObject() != null;
	}
});

And there are a lot different components which should be hidden with
some arounding text if they have null value of model object.
How to make this more elegant?
First obvious way - inherit from Label, and make something
LabelInvisibleNull, but it is very bad, because a lot different
components (not only Label, but Image, WebMarkupContainer, some my
custom components, etc) require this behavior.
Second - more meaningful - make a IBehavior. But it doesn't work. In
"bind" is to early to check model, but in "beforeRender" is too late
to change visibility.
Is there any other option?


-- 
WBR, kan.

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

***************************************************************************************************
"Atenção: Esta mensagem foi enviada para uso exclusivo do(s) destinatários(s) acima identificado(s),
podendo conter informações e/ou documentos confidencias/privilegiados e seu sigilo é protegido
por 
lei. Caso você tenha recebido por engano, por favor, informe o remetente e apague-a de seu
sistema.
Notificamos que é proibido por lei a sua retenção, disseminação, distribuição, cópia
ou uso sem 
expressa autorização do remetente. Opiniões pessoais do remetente não refletem, necessariamente,

o ponto de vista da CETIP, o qual é divulgado somente por pessoas autorizadas."


"Warning: This message was sent for exclusive use of the addressees above identified, possibly

containing information and or privileged/confidential documents whose content is protected
by law. 
In case you have mistakenly received it, please notify the sender and delete it from your
system. 
Be noticed that the law forbids the retention, dissemination, distribution, copy or use without

express authorization from the sender. Personal opinions of the sender do not necessarily
reflect 
CETIP's point of view, which is only divulged by authorized personnel."
***************************************************************************************************
Mime
View raw message