On 15/10/14 14:49, Martin Grigorov wrote:
Hi Andrea,
On Wed, Oct 15, 2014 at 1:33 PM, <[email protected]> wrote:
+ *
+ * @param component
+ * The children markup container
+ */
+ private void queueChildContainer(final Component component)
+ {
+ if (queue != null && !queue.isEmpty() &&
+ component instanceof MarkupContainer)
+ {
+ MarkupContainer childContainer =
(MarkupContainer)component;
+ childContainer.queue(queue);
+ }
+ }
/**
* @param component
@@ -1661,24 +1682,8 @@ public abstract class MarkupContainer extends
Component implements Iterable<Comp
{
Component component = (Component)child;
component.detach();
-
- // We need to keep InlineEnclosures for
Ajax request handling.
- // TODO this is really ugly. Feature
request for 1.5: change auto-component that
- // they don't need to be removed anymore.
- if (!(component instanceof
InlineEnclosure) && component.isAuto())
- {
- children_remove(i);
- }
auto components should be removed at the end of the rendering.
what has changed so they can stay ?
if add() is used then the auto components are resolved at rendering time
with IComponentResolver, not with IAutoComponentFactory (as with queue()).
To be honest I didn't know much about how auto components are handled.
Before resolving an auto component Wicket checks if it already exists in
the container hierarchy (line 1424), so I don't think it's dangerous if
we leave them. Have you in mind any case in which this behavior could be
dangerous?
}
}
-
- if (children instanceof ChildList)
- {
- ChildList lst = (ChildList)children;
- Object[] tmp = new Object[lst.size];
- System.arraycopy(lst.childs, 0, tmp, 0, lst.size);
- children = tmp;
- }
I don't understand why this is no more needed too...
This is removed since we don't remove auto components anymore. So it's
useless to rebuild children array.