You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2012/07/31 20:12:13 UTC

git commit: make updateNode() and updateBranch() abstract, NestedTree and TableTree handle markupIds as they need it

Updated Branches:
  refs/heads/master 3be3f20f5 -> fe0815b58


make updateNode() and updateBranch() abstract, NestedTree and TableTree handle markupIds as they need it


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/fe0815b5
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/fe0815b5
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/fe0815b5

Branch: refs/heads/master
Commit: fe0815b586c485e50df8285eea379f9bbb00da2f
Parents: 3be3f20
Author: svenmeier <sv...@apache.org>
Authored: Tue Jul 31 20:11:56 2012 +0200
Committer: svenmeier <sv...@apache.org>
Committed: Tue Jul 31 20:11:56 2012 +0200

----------------------------------------------------------------------
 .../markup/html/repeater/tree/AbstractTree.java    |   23 +-------------
 .../markup/html/repeater/tree/NestedTree.java      |    6 ++-
 .../markup/html/repeater/tree/TableTree.java       |   22 +++++++++++++-
 3 files changed, 27 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/fe0815b5/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
index c3470b9..d3b9457 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
@@ -62,9 +62,6 @@ public abstract class AbstractTree<T> extends Panel
 			throw new IllegalArgumentException("argument [provider] cannot be null");
 		}
 		this.provider = provider;
-
-		// see #updateBranch(Object, AjaxRequestTarget)
-		setOutputMarkupId(true);
 	}
 
 	/**
@@ -288,39 +285,23 @@ public abstract class AbstractTree<T> extends Panel
 	 * Convenience method to update a single branch on an {@link AjaxRequestTarget}. Does nothing if
 	 * the given node is currently not visible or target is <code>null</code>.
 	 * 
-	 * This default implementation adds this whole component for rendering.
-	 * 
 	 * @param node
 	 *            node to update
 	 * @param target
 	 *            request target
 	 */
-	public void updateBranch(T node, final AjaxRequestTarget target)
-	{
-		if (target != null)
-		{
-			target.add(this);
-		}
-	}
+	public abstract void updateBranch(T node, final AjaxRequestTarget target);
 
 	/**
 	 * Convenience method to update a single node on an {@link AjaxRequestTarget}. Does nothing if
 	 * the given node is currently not visible or target is {@code null}.
 	 * 
-	 * This default implementation adds this whole component for rendering.
-	 * 
 	 * @param node
 	 *            node to update
 	 * @param target
 	 *            request target or {@code null}
 	 */
-	public void updateNode(T node, final AjaxRequestTarget target)
-	{
-		if (target != null)
-		{
-			target.add(this);
-		}
-	}
+	public abstract void updateNode(T node, final AjaxRequestTarget target);
 
 	/**
 	 * The state of a node.

http://git-wip-us.apache.org/repos/asf/wicket/blob/fe0815b5/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java
index cd6084f..6406a89 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java
@@ -102,7 +102,7 @@ public abstract class NestedTree<T> extends AbstractTree<T>
 	}
 
 	/**
-	 * Overridden to update the affected {@link BranchItem} only.
+	 * Overridden to update the corresponding {@link BranchItem} only.
 	 */
 	@Override
 	public void updateBranch(T t, final AjaxRequestTarget target)
@@ -117,6 +117,7 @@ public abstract class NestedTree<T> extends AbstractTree<T>
 				{
 					if (model.equals(branch.getModel()))
 					{
+						// BranchItem always outputs its markupId
 						target.add(branch);
 						visit.stop();
 					}
@@ -127,7 +128,7 @@ public abstract class NestedTree<T> extends AbstractTree<T>
 	}
 
 	/**
-	 * Overridden to update the affected {@link Node} only.
+	 * Overridden to update the corresponding {@link Node} only.
 	 */
 	@Override
 	public void updateNode(T node, final AjaxRequestTarget target)
@@ -142,6 +143,7 @@ public abstract class NestedTree<T> extends AbstractTree<T>
 				{
 					if (model.equals(node.getModel()))
 					{
+						// nodes are configured to output their markup id, see #newNodeComponent()
 						target.add(node);
 						visit.stop();
 					}

http://git-wip-us.apache.org/repos/asf/wicket/blob/fe0815b5/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java
index 3fa2bfc..d95596f 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java
@@ -99,11 +99,17 @@ public abstract class TableTree<T, S> extends AbstractTree<T>
 
 		this.table = newDataTable("table", columns, newDataProvider(provider), rowsPerPage);
 		add(table);
+
+		// see #updateBranch(Object, AjaxRequestTarget)
+		setOutputMarkupId(true);
 	}
 
 	/**
 	 * Factory method for the wrapped {@link DataTable}.
 	 * 
+	 * Note: If overwritten, the DataTable's row items have to output their markupId, or
+	 * {@link #updateNode(Object, AjaxRequestTarget)} will fail.
+	 * 
 	 * @param id
 	 * @param columns
 	 * @param dataProvider
@@ -161,7 +167,20 @@ public abstract class TableTree<T, S> extends AbstractTree<T>
 	}
 
 	/**
-	 * Overriden to update the complete row item of the node.
+	 * For updating of a single branch the whole table is added to the ART.
+	 */
+	@Override
+	public void updateBranch(T node, AjaxRequestTarget target)
+	{
+		if (target != null)
+		{
+			// TableTree always outputs markupId
+			target.add(this);
+		}
+	}
+
+	/**
+	 * For an update of a node the complete row item is added to the ART.
 	 */
 	@Override
 	public void updateNode(T t, final AjaxRequestTarget target)
@@ -178,6 +197,7 @@ public abstract class TableTree<T, S> extends AbstractTree<T>
 
 					if (model.equals(nodeModel.getWrappedModel()))
 					{
+						// row items are configured to output their markupId
 						target.add(item);
 						visit.stop();
 						return;