How about using an IVisitor to call setVisible() on the image
components? That way, you wouldn't need to keep an explicit reference
to those image components. You could trigger the visitor in
onBeforeRender() and you could use a marker interface to identify the
image components whose visibility should be changed (called
'IOptionalImage' in the example below). Something like:
public class OptionalImageVisitor implements IVisitor {
private boolean visible;
public OptionalImageVisitor(boolean visible) {
this.visible = visible;
}
public Object component(Component component) {
component.setVisible(this.visible);
}
}
public class MyPage {
public onBeforeRender() {
boolean imagesVisible = ...logic to determine whether images are
visible
visitChildren(IOptionalImage.class, new OptionalImageVisitor
(imagesVisible);
}
}
-Ryan
On Sep 7, 2007, at 1:41 PM, Scott Swank wrote:
Matej,
My issue isn't that the div is rendered, but rather that I have to add
it to the html file in the first place. I think that I could
implement this as a Behavior, but for this problem I just went ahead
and added div tags around the relevant components.
Thanks again,
Scott
On 9/7/07, Matej Knopp <[EMAIL PROTECTED]> wrote:
Can't you just call webmarkupcontainer.setRenderBodyOnly(true) ?
-Matej
On 9/7/07, Scott Swank <[EMAIL PROTECTED]> wrote:
I get what you're saying, but the images in question are scattered
across the page rather than in one place that could simply be
enclosed. Thank you none the less, I do appreciate the insight.
Cheers,
Scott
On 9/7/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
well, thats kinda the point of the enclosure...
it lets you group components together inside it, and let one of
those
components drive the visibility of the entire enclosure
-igor
On 9/7/07, Scott Swank <[EMAIL PROTECTED]> wrote:
I could, but it's kind of the opposite of what I want. I want to
_not_ have to add an enclosing tag to the relevant portions of the
html template. So I don't mind coding a WebMarkupContainer --
I just
want to avoid having to change:
<span wicket:id="foo"></span>
to
<div wicket:id="fooContainer"><span wicket:id="foo"></span></
div>
The basic problem is that sometimes we have a set of images for a
product (scattered across a few components) and sometimes we
don't.
My thought is to wrap all of the relevant images in such a
container
that knows how to determine isVisible().
Scott
On 9/7/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
you can prob port enclosure to 1.2.6 yourself if you wanted it
badly
-igor
On 9/7/07, Scott Swank <[EMAIL PROTECTED]> wrote:
Pity we're not on 1.3 yet. Thank you though.
Scott
On 9/7/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
no, but you can try wicket:enclosure tag. see javadoc on
Enclosure.java
-igor
On 9/7/07, Scott Swank <[EMAIL PROTECTED]> wrote:
I want to make a few parts of my page visible or not in a
consistent
manner -- i.e. based on the same true/false result, which I
derive
from my model. Can I wrap the relevant components in
WebMarkupContainer without adding a matching <div> tag to my
markup?
Thank you,
Scott
----------------------------------------------------------------
-----
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Scott Swank
reformed mathematician
------------------------------------------------------------------
---
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Scott Swank
reformed mathematician
--------------------------------------------------------------------
-
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]
--
Scott Swank
reformed mathematician
---------------------------------------------------------------------
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]