As can be seen by the Enclosure.getChildComponent method below the
component resolver expects to find the 'child' within its own parent -
i.e. it assumes that its *child* is actually its sibling via:
child = parent.get(childId.toString());
While all other children of the common parent are resolved perfectly by
the component resolver the fact that the enclosure's child is not really
a child of the enclosure's parent (at least not in the markup) but
rather a child of the enclosure itself seems to mean that the normal
resolving mechanism that allowed all other 'siblings' to be instantiated
by my custom component resolver is bypassed.
Is that a bug? If it is a bug is there something I can do to work around
this to make this 'child' get resolved like all the other children of
the enclosure's parent? i.e. somehow cause my custom component resolver
to be invoke like it is for the other children.
> public Component< ? > getChildComponent()
> {
> if (childComponent == null)
> {
> MarkupContainer< ? > parent =
> getEnclosureParent();
>
> if (childId == null)
> {
> throw new MarkupException(
> "You most likely forgot to
> register the EnclosureHandler with the MarkupParserFactory");
> }
>
> final Component< ? > child =
> parent.get(childId.toString());
> if (child == null)
> {
> throw new MarkupException(
> "Didn't find child component of
> <wicket:enclosure> with id='" + childId +
> "'. Component: " +
> this.toString());
> }
> childComponent = child;
> }
> return childComponent;
> }
>
> ---------------------------------------------------------------------
> 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]