When do you set a transparent resolver to none visible?
I also think if 1 parent (transparent resolver or not) is invisible then the
childs shouldn't be rendered.

Because why else would you set it to not visible?

But i haven't looked deeply into the resolver stuff But isn't it fixable
here:


MarkupContainer parent = container;
while ((parent != null) && (parent.isTransparentResolver()))
{
// Try to find the component with the parent component.
parent = parent.getParent();
if (parent != null)
{
Component component = parent.get(tag.getId());
if (component != null)
{
component.render(markupStream);
return true;
}
}
}
in the ParentResolver class?
So an extra check in that loop if the parent is visible?

johan





On 10/23/07, Gerolf Seitz <[EMAIL PROTECTED]> wrote:
>
> anybody with more insight into transparentResolvers (matej, igor?):
>
> what is the desired behavior for invisible transparentResolvers?
> it's really undefined right now, as the resolver is not rendered, but the
> "children" _are_ (though without markup).
>
> if "children" of an invisible transparentResolver should be rendered, i
> may
> have an easy fix for this in Component#render(MarkupStream):
> instead of
> if (isRenderAllowed() && isVisible()) ....
> we could do
> if (isRenderAllowed() &&
>                (isVisible() || (this instanceof MarkupContainer &&
> ((MarkupContainer)this).isTransparentResolver())))
>
> nevertheless i think that the expected behavior of setting a
> transparentResolver to invisible is that it's "children" are not rendered.



Gerolf
>
> On 10/23/07, Gerolf Seitz (JIRA) <[EMAIL PROTECTED]> wrote:
> >
> > invisible TransparentResolver skips markup of visible children and thus
> > resulting in an exception in Page#checkRendering (component not found in
> > markup)
> >
> >
> --------------------------------------------------------------------------------------------------------------------------------------------------------
> >
> >                  Key: WICKET-1095
> >                  URL: https://issues.apache.org/jira/browse/WICKET-1095
> >              Project: Wicket
> >           Issue Type: Bug
> >     Affects Versions: 1.3.0-beta4
> >             Reporter: Gerolf Seitz
> >              Fix For: 1.3.0-beta5
> >
> >
> > the code involved can be found at
> > http://papernapkin.org/pastebin/view/13287
> >
> > if a transparent (= isTransparentResolver() {return true;})
> > markupContainer is set to invisible, the component's markup is skipped (
> > markupStream.skipComponent() in Component.java line 2319).
> > if the parent containing the transparent markupContainer is added to the
> > ajax request target and there is a component (in this case a button)
> > "inside" the transparent markupcontainer's markup but is actually a
> child of
> > the transparent markupcontainer's parent, the button is never actually
> > rendered (due to skipping the markup of the transparent
> webmarkupcontainer)
> > but is still visibleInHierarchy (see Page.java line 1005), because the
> > invisible transparent markupcontainer is not a parent of the button.
> >
> > the ultimate question is: what is the desired behavior for an invisible
> > transparentResolver? render it's "children" or not?
> >
> > --
> > This message is automatically generated by JIRA.
> > -
> > You can reply to this email to add a comment to the issue online.
> >
> >
>

Reply via email to