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/17 20:33:39 UTC

git commit: fixed warnings from compiler and in logs; added javadoc; aligned tree sorting with table sorting

Updated Branches:
  refs/heads/master ccd746419 -> f1bad0fc8


fixed warnings from compiler and in logs; added javadoc; aligned tree sorting with table sorting


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

Branch: refs/heads/master
Commit: f1bad0fc8eae12d2accd3fa16438855175515a73
Parents: ccd7464
Author: svenmeier <sv...@apache.org>
Authored: Tue Jul 17 20:33:09 2012 +0200
Committer: svenmeier <sv...@apache.org>
Committed: Tue Jul 17 20:33:09 2012 +0200

----------------------------------------------------------------------
 .../html/repeater/data/sort/ISortStateLocator.java |    2 +
 .../html/repeater/data/sort/OrderByLink.java       |   37 +++++++++----
 .../markup/html/repeater/data/table/DataTable.java |    6 ++-
 .../html/repeater/data/table/DefaultDataTable.java |    4 +-
 .../markup/html/repeater/tree/AbstractTree.java    |   20 +------
 .../html/repeater/tree/DefaultTableTree.java       |   12 ++--
 .../html/repeater/tree/ISortableTreeProvider.java  |    2 +
 .../markup/html/repeater/tree/NestedTree.java      |   42 +++++++++++++++
 .../extensions/markup/html/repeater/tree/Node.java |    2 -
 .../markup/html/repeater/tree/TableTree.java       |    1 +
 .../repeater/tree/table/AbstractTreeColumn.java    |   23 ++++++++-
 .../html/repeater/tree/table/ITreeColumn.java      |   10 +++-
 .../html/repeater/tree/table/NodeBorder.java       |    4 ++
 .../markup/html/repeater/tree/table/NodeModel.java |   18 ++++++-
 .../html/repeater/tree/table/TreeDataProvider.java |    4 +-
 .../markup/html/repeater/util/ProviderSubset.java  |    6 ++
 .../html/repeater/util/SortableDataProvider.java   |    5 +-
 .../html/repeater/util/SortableTreeProvider.java   |   23 ++-------
 18 files changed, 155 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
index 1180591..fa2f5d1 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
@@ -24,6 +24,8 @@ import org.apache.wicket.util.io.IClusterable;
  * version ISortState objects.
  * 
  * @author Igor Vaynberg (ivaynberg)
+ * @param <T>
+ *            the type of the sort property
  * 
  */
 public interface ISortStateLocator<T> extends IClusterable

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
index a7adff8..e027857 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
@@ -27,9 +27,9 @@ import org.apache.wicket.util.string.Strings;
 /**
  * A component that represents a sort header. When the link is clicked it will toggle the state of a
  * sortable property within the sort state object.
- *
+ * 
  * @param <S>
- *      the type of the sorting parameter
+ *            the type of the sorting parameter
  * @author Phil Kulak
  * @author Igor Vaynberg (ivaynberg)
  */
@@ -49,14 +49,15 @@ public class OrderByLink<S> extends Link<Void>
 	 * @param id
 	 *            the component id of the link
 	 * @param sortProperty
-	 *            the name of the sortable sortProperty this link represents. this value will be used as
-	 *            parameter for sort state object methods. sort state object will be located via the
-	 *            stateLocator argument.
+	 *            the name of the sortable sortProperty this link represents. this value will be
+	 *            used as parameter for sort state object methods. sort state object will be located
+	 *            via the stateLocator argument.
 	 * @param stateLocator
 	 *            locator used to locate sort state object that this will use to read/write state of
 	 *            sorted properties
 	 */
-	public OrderByLink(final String id, final S sortProperty, final ISortStateLocator<S> stateLocator)
+	public OrderByLink(final String id, final S sortProperty,
+		final ISortStateLocator<S> stateLocator)
 	{
 		this(id, sortProperty, stateLocator, new DefaultCssProvider<S>());
 	}
@@ -77,7 +78,7 @@ public class OrderByLink<S> extends Link<Void>
 	 *            CSS provider that will be used generate the value of class attribute for this link
 	 * 
 	 * @see OrderByLink.ICssProvider
-	 *
+	 * 
 	 */
 	public OrderByLink(final String id, final S property, final ISortStateLocator<S> stateLocator,
 		final ICssProvider<S> cssProvider)
@@ -157,8 +158,9 @@ public class OrderByLink<S> extends Link<Void>
 	/**
 	 * Uses the specified ICssProvider to add css class attributes to the link.
 	 * 
+	 * @param <S>
+	 *            type of sort property
 	 * @author Igor Vaynberg ( ivaynberg )
-	 * 
 	 */
 	public static class CssModifier<S> extends Behavior
 	{
@@ -219,8 +221,10 @@ public class OrderByLink<S> extends Link<Void>
 	/**
 	 * Easily constructible implementation of ICSSProvider
 	 * 
+	 * @param <S>
+	 *            the type of the sort property
+	 * 
 	 * @author Igor Vaynberg (ivaynberg)
-	 *
 	 */
 	public static class CssProvider<S> implements ICssProvider<S>
 	{
@@ -270,13 +274,18 @@ public class OrderByLink<S> extends Link<Void>
 	/**
 	 * Convenience implementation of ICssProvider that always returns a null and so never adds a
 	 * class attribute
-	 *
+	 * 
+	 * @param <S>
+	 *            the type of the sort property
 	 * @author Igor Vaynberg ( ivaynberg )
 	 */
 	public static class VoidCssProvider<S> extends CssProvider<S>
 	{
 		private static final long serialVersionUID = 1L;
 
+		/**
+		 * Construct.
+		 */
 		public VoidCssProvider()
 		{
 			super("", "", "");
@@ -285,13 +294,19 @@ public class OrderByLink<S> extends Link<Void>
 
 	/**
 	 * Default implementation of ICssProvider
-	 *
+	 * 
+	 * @param <S>
+	 *            the type of the sort property
+	 * 
 	 * @author Igor Vaynberg ( ivaynberg )
 	 */
 	public static class DefaultCssProvider<S> extends CssProvider<S>
 	{
 		private static final long serialVersionUID = 1L;
 
+		/**
+		 * Construct.
+		 */
 		public DefaultCssProvider()
 		{
 			super("wicket_orderUp", "wicket_orderDown", "wicket_orderNone");

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
index 4d5a386..c6912e7 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
@@ -74,7 +74,7 @@ import org.apache.wicket.util.visit.IVisitor;
  * @param <T>
  *            The model object type
  * @param <S>
- *      the type of the sorting parameter
+ *            the type of the sorting parameter
  * 
  */
 public class DataTable<T, S> extends Panel implements IPageableItems
@@ -472,6 +472,10 @@ public class DataTable<T, S> extends Panel implements IPageableItems
 	private static class Caption extends Label
 	{
 		/**
+		 */
+		private static final long serialVersionUID = 1L;
+
+		/**
 		 * Construct.
 		 * 
 		 * @param id

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
index 5b185cf..0cc30d8 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
@@ -39,7 +39,7 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *            The model object type
  * @param <S>
- *      the type of the sorting parameter
+ *            the type of the sorting parameter
  */
 public class DefaultDataTable<T, S> extends DataTable<T, S>
 {
@@ -63,7 +63,7 @@ public class DefaultDataTable<T, S> extends DataTable<T, S>
 		super(id, columns, dataProvider, rowsPerPage);
 
 		addTopToolbar(new NavigationToolbar(this));
-		addTopToolbar(new HeadersToolbar(this, dataProvider));
+		addTopToolbar(new HeadersToolbar<S>(this, dataProvider));
 		addBottomToolbar(new NoRecordsToolbar(this));
 	}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/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 ce19863..c3470b9 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
@@ -26,8 +26,6 @@ import org.apache.wicket.markup.repeater.DefaultItemReuseStrategy;
 import org.apache.wicket.markup.repeater.IItemReuseStrategy;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.util.visit.IVisit;
-import org.apache.wicket.util.visit.IVisitor;
 
 /**
  * Abstract base class for {@link NestedTree} and {@link TableTree}. Uses its model for storing the
@@ -309,6 +307,8 @@ public abstract class AbstractTree<T> extends Panel
 	 * 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
@@ -318,21 +318,7 @@ public abstract class AbstractTree<T> extends Panel
 	{
 		if (target != null)
 		{
-			final IModel<T> model = getProvider().model(node);
-			visitChildren(Node.class, new IVisitor<Node<T>, Void>()
-			{
-				@Override
-				public void component(Node<T> node, IVisit<Void> visit)
-				{
-					if (model.equals(node.getModel()))
-					{
-						target.add(node);
-						visit.stop();
-					}
-					visit.dontGoDeeper();
-				}
-			});
-			model.detach();
+			target.add(this);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
index 151cbbd..61c1d48 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
@@ -38,7 +38,7 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *            The node type
  * @param <S>
- *     the type of the sorting parameter
+ *            the type of the sorting parameter
  * @author svenmeier
  */
 public class DefaultTableTree<T, S> extends TableTree<T, S>
@@ -58,8 +58,8 @@ public class DefaultTableTree<T, S> extends TableTree<T, S>
 	 * @param rowsPerPage
 	 *            rows to show on each page
 	 */
-	public DefaultTableTree(String id, List<IColumn<T, S>> columns, ISortableTreeProvider<T, S> provider,
-		int rowsPerPage)
+	public DefaultTableTree(String id, List<IColumn<T, S>> columns,
+		ISortableTreeProvider<T, S> provider, int rowsPerPage)
 	{
 		this(id, columns, provider, rowsPerPage, null);
 	}
@@ -78,13 +78,13 @@ public class DefaultTableTree<T, S> extends TableTree<T, S>
 	 * @param state
 	 *            expansion state
 	 */
-	public DefaultTableTree(String id, List<IColumn<T, S>> columns, ISortableTreeProvider<T, S> provider,
-		int rowsPerPage, IModel<Set<T>> state)
+	public DefaultTableTree(String id, List<IColumn<T, S>> columns,
+		ISortableTreeProvider<T, S> provider, int rowsPerPage, IModel<Set<T>> state)
 	{
 		super(id, columns, provider, rowsPerPage, state);
 
 		getTable().addTopToolbar(new NavigationToolbar(getTable()));
-		getTable().addTopToolbar(new HeadersToolbar(getTable(), provider));
+		getTable().addTopToolbar(new HeadersToolbar<S>(getTable(), provider));
 		getTable().addBottomToolbar(new NoRecordsToolbar(getTable()));
 
 		add(new WindowsTheme());

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
index 5a45a01..743d135 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
@@ -24,6 +24,8 @@ import org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLoc
  * @author svenmeier
  * @param <T>
  *            node type
+ * @param <S>
+ *            the type of the sort property
  */
 public interface ISortableTreeProvider<T, S> extends ITreeProvider<T>, ISortStateLocator<S>
 {

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/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 c1769c7..cd6084f 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
@@ -86,6 +86,22 @@ public abstract class NestedTree<T> extends AbstractTree<T>
 	}
 
 	/**
+	 * Overriden to let the node output its markup id.
+	 * 
+	 * @see #updateNode(Object, AjaxRequestTarget)
+	 * @see Component#setOutputMarkupId(boolean)
+	 */
+	@Override
+	public Component newNodeComponent(String id, IModel<T> model)
+	{
+		Component node = super.newNodeComponent(id, model);
+
+		node.setOutputMarkupId(true);
+
+		return node;
+	}
+
+	/**
 	 * Overridden to update the affected {@link BranchItem} only.
 	 */
 	@Override
@@ -110,6 +126,32 @@ public abstract class NestedTree<T> extends AbstractTree<T>
 		}
 	}
 
+	/**
+	 * Overridden to update the affected {@link Node} only.
+	 */
+	@Override
+	public void updateNode(T node, final AjaxRequestTarget target)
+	{
+		if (target != null)
+		{
+			final IModel<T> model = getProvider().model(node);
+			visitChildren(Node.class, new IVisitor<Node<T>, Void>()
+			{
+				@Override
+				public void component(Node<T> node, IVisit<Void> visit)
+				{
+					if (model.equals(node.getModel()))
+					{
+						target.add(node);
+						visit.stop();
+					}
+					visit.dontGoDeeper();
+				}
+			});
+			model.detach();
+		}
+	}
+
 	private class RootsModel extends AbstractReadOnlyModel<T>
 	{
 		private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java
index 0399887..557abb6 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java
@@ -64,8 +64,6 @@ public abstract class Node<T> extends Panel
 
 		this.tree = tree;
 
-		setOutputMarkupId(true);
-
 		MarkupContainer junction = createJunctionComponent("junction");
 		junction.add(new StyleBehavior());
 		add(junction);

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/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 90af9bd..3fa2bfc 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
@@ -180,6 +180,7 @@ public abstract class TableTree<T, S> extends AbstractTree<T>
 					{
 						target.add(item);
 						visit.stop();
+						return;
 					}
 					visit.dontGoDeeper();
 				}

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/AbstractTreeColumn.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/AbstractTreeColumn.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/AbstractTreeColumn.java
index 94bb80e..380ac61 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/AbstractTreeColumn.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/AbstractTreeColumn.java
@@ -27,16 +27,32 @@ import org.apache.wicket.model.IModel;
  *            the type of the sort property
  * @author svenmeier
  */
-public abstract class AbstractTreeColumn<T, S> extends AbstractColumn<T, S> implements ITreeColumn<T, S>
+public abstract class AbstractTreeColumn<T, S> extends AbstractColumn<T, S>
+	implements
+		ITreeColumn<T, S>
 {
 
+	/**
+	 */
+	private static final long serialVersionUID = 1L;
+
 	private TableTree<T, S> tree;
 
+	/**
+	 * @param displayModel
+	 *            model used to generate header text
+	 */
 	public AbstractTreeColumn(IModel<String> displayModel)
 	{
 		super(displayModel);
 	}
 
+	/**
+	 * @param displayModel
+	 *            model used to generate header text
+	 * @param sortProperty
+	 *            sort property this column represents
+	 */
 	public AbstractTreeColumn(IModel<String> displayModel, S sortProperty)
 	{
 		super(displayModel, sortProperty);
@@ -48,6 +64,11 @@ public abstract class AbstractTreeColumn<T, S> extends AbstractColumn<T, S> impl
 		this.tree = tree;
 	}
 
+	/**
+	 * Get the containing tree.
+	 * 
+	 * @return tree
+	 */
 	public TableTree<T, S> getTree()
 	{
 		return tree;

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/ITreeColumn.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/ITreeColumn.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/ITreeColumn.java
index 0f351d8..763ae5f 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/ITreeColumn.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/ITreeColumn.java
@@ -21,12 +21,18 @@ import org.apache.wicket.extensions.markup.html.repeater.tree.TableTree;
 
 /**
  * @param <T>
- *     the type of the model object
+ *            the type of the model object
  * @param <S>
- *     the type of the sorting parameter
+ *            the type of the sorting parameter
  * @author svenmeier
  */
 public interface ITreeColumn<T, S> extends IColumn<T, S>
 {
+	/**
+	 * Set the containing tree.
+	 * 
+	 * @param t
+	 *            tree
+	 */
 	public void setTree(TableTree<T, S> t);
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeBorder.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeBorder.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeBorder.java
index fe566a4..eac23ee 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeBorder.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeBorder.java
@@ -38,6 +38,10 @@ public class NodeBorder extends Behavior
 
 	private boolean[] branches;
 
+	/**
+	 * @param branches
+	 *            branch
+	 */
 	public NodeBorder(boolean[] branches)
 	{
 		this.branches = branches;

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeModel.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeModel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeModel.java
index 85258ec..382d52e 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeModel.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/NodeModel.java
@@ -20,6 +20,7 @@ import java.util.Arrays;
 
 import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.IWrapModel;
 
 /**
  * A model wrapping the actual node model, carrying additional information about the parental
@@ -29,8 +30,10 @@ import org.apache.wicket.model.IModel;
  * @see ITreeProvider#model(Object)
  * 
  * @author svenmeier
+ * @param <T>
+ *            type of nodes
  */
-public class NodeModel<T> implements IModel<T>
+public class NodeModel<T> implements IWrapModel<T>
 {
 
 	private static final long serialVersionUID = 1L;
@@ -39,12 +42,25 @@ public class NodeModel<T> implements IModel<T>
 
 	private boolean[] branches;
 
+	/**
+	 * Wrap the given model.
+	 * 
+	 * @param model
+	 *            model to wrap
+	 * @param branches
+	 */
 	public NodeModel(IModel<T> model, boolean[] branches)
 	{
 		this.model = model;
 		this.branches = branches;
 	}
 
+	/**
+	 * Get the wrapped model.
+	 * 
+	 * @return wrapped model
+	 */
+	@Override
 	public IModel<T> getWrappedModel()
 	{
 		return model;

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/TreeDataProvider.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/TreeDataProvider.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/TreeDataProvider.java
index 4f251cb..519b1f4 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/TreeDataProvider.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/table/TreeDataProvider.java
@@ -35,9 +35,9 @@ public abstract class TreeDataProvider<T> implements ITreeDataProvider<T>
 
 	private final ITreeProvider<T> provider;
 
-	private Branch<T> currentBranch;
+	private transient Branch<T> currentBranch;
 
-	private Branch<T> previousBranch;
+	private transient Branch<T> previousBranch;
 
 	private int size = -1;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/ProviderSubset.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/ProviderSubset.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/ProviderSubset.java
index 749999d..2b7dd5c 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/ProviderSubset.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/ProviderSubset.java
@@ -34,6 +34,8 @@ import org.apache.wicket.model.IModel;
  * @see ITreeProvider#model(Object)
  * 
  * @author svenmeier
+ * @param <T>
+ *            type of data
  */
 public class ProviderSubset<T> implements Set<T>, IDetachable
 {
@@ -243,6 +245,10 @@ public class ProviderSubset<T> implements Set<T>, IDetachable
 	{
 		return new AbstractReadOnlyModel<Set<T>>()
 		{
+			/**
+			 */
+			private static final long serialVersionUID = 1L;
+
 			@Override
 			public Set<T> getObject()
 			{

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
index bdc9902..8671169 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
@@ -31,7 +31,7 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDat
  * @author Igor Vaynberg (ivaynberg at apache dot org)
  * @param <T>
  * @param <S>
- *     the type of the sorting parameter
+ *            the type of the sorting parameter
  */
 public abstract class SortableDataProvider<T, S> implements ISortableDataProvider<T, S>
 {
@@ -39,7 +39,8 @@ public abstract class SortableDataProvider<T, S> implements ISortableDataProvide
 	 * 
 	 */
 	private static final long serialVersionUID = 1L;
-	private SingleSortState<S> state = new SingleSortState<S>();
+
+	private final SingleSortState<S> state = new SingleSortState<S>();
 
 	/**
 	 * @see ISortableDataProvider#getSortState()

http://git-wip-us.apache.org/repos/asf/wicket/blob/f1bad0fc/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
index 866a4ff..c3058f6 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
@@ -26,37 +26,22 @@ import org.apache.wicket.extensions.markup.html.repeater.tree.ISortableTreeProvi
  * 
  * @author svenmeier
  * @param <T>
+ * @param <S>
+ *            the type of the sorting parameter
  */
 public abstract class SortableTreeProvider<T, S> implements ISortableTreeProvider<T, S>
 {
 	private static final long serialVersionUID = 1L;
 
-	private SingleSortState<S> state = new SingleSortState<S>();
+	private final SingleSortState<S> state = new SingleSortState<S>();
 
 	/**
 	 * @see ISortableDataProvider#getSortState()
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	public final ISortState<S> getSortState()
 	{
-		return (ISortState<S>)state;
-	}
-
-	/**
-	 * @see org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider#getSortState()
-	 * @param state
-	 */
-	@SuppressWarnings("unchecked")
-	public final void setSortState(ISortState<S> state)
-	{
-		if (!(state instanceof SingleSortState))
-		{
-			throw new IllegalArgumentException(
-				"argument [state] must be an instance of SingleSortState, but it is [" +
-					state.getClass().getName() + "]:[" + state.toString() + "]");
-		}
-		this.state = (SingleSortState<S>)state;
+		return state;
 	}
 
 	/**