You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/10/22 19:04:21 UTC
svn commit: r587154 -
/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
Author: jcompagner
Date: Mon Oct 22 10:04:20 2007
New Revision: 587154
URL: http://svn.apache.org/viewvc?rev=587154&view=rev
Log:
auto add components removed in detach instead of directly
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=587154&r1=587153&r2=587154&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java Mon Oct 22 10:04:20 2007
@@ -203,21 +203,29 @@
/* Replace strategy */
component.setAuto(true);
-// if (get(component.getId()) != null)
-// {
-// this.remove(component);
-// }
+
+ int index = children_indexOf(component);
+ if (index >= 0)
+ {
+ children_remove(index);
+ }
add(component);
component.prepareForRender();
- if (markupStream == null)
+ try
{
- component.render();
+ if (markupStream == null)
+ {
+ component.render();
+ }
+ else
+ {
+ component.render(markupStream);
+ }
}
- else
+ finally
{
- component.render(markupStream);
+ component.afterRender();
}
- remove(component);
return true;
}
@@ -1438,18 +1446,23 @@
{
super.detachChildren();
- for (int i = 0; i < children_size(); ++i)
+ for (int i = children_size(); i-- > 0;)
{
Object child = children_get(i, false);
if (child instanceof Component)
{
- ((Component)child).detach();
+ Component component = (Component)child;
+ component.detach();
if (child instanceof IComponentSourceProvider)
{
- ComponentSourceEntry entry = new ComponentSourceEntry(this, (Component)child,
+ ComponentSourceEntry entry = new ComponentSourceEntry(this, component,
((IComponentSourceProvider)child).getComponentSource());
children_set(i, entry, false);
+ }
+ else if (component.isAuto())
+ {
+ children_remove(i);
}
}
}