Author: knopp
Date: Tue May 20 15:16:37 2008
New Revision: 658464
URL: http://svn.apache.org/viewvc?rev=658464&view=rev
Log:
WICKET-1555
Removed:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/ExtendedTreeModel.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LinkIconPanel.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java?rev=658464&r1=658463&r2=658464&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java
Tue May 20 15:16:37 2008
@@ -26,7 +26,6 @@
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.TreeModel;
-import javax.swing.tree.TreeNode;
import org.apache.wicket.Component;
import org.apache.wicket.IRequestTarget;
@@ -102,6 +101,8 @@
/** tree item level - how deep is this item in tree */
private final int level;
+ private final TreeItem parent;
+
/**
* Construct.
*
@@ -111,11 +112,14 @@
* tree node
* @param level
* current level
+ * @param parent
*/
- public TreeItem(String id, final Object node, int level)
+ public TreeItem(TreeItem parent, String id, final Object node,
int level)
{
super(id, new Model((Serializable)node));
+ this.parent = parent;
+
nodeToItemMap.put(node, this);
this.level = level;
setOutputMarkupId(true);
@@ -127,6 +131,11 @@
}
}
+ public TreeItem getParentItem()
+ {
+ return parent;
+ }
+
/**
* @return The children
*/
@@ -156,14 +165,6 @@
}
/**
- * @return parent item
- */
- public TreeItem getParentItem()
- {
- return
nodeToItemMap.get(getParentNode(getModelObject()));
- }
-
- /**
* Sets the children.
*
* @param children
@@ -559,11 +560,11 @@
{
if (isRootLess())
{
- rootItem =
newTreeItem(rootNode, -1);
+ rootItem = newTreeItem(null,
rootNode, -1);
}
else
{
- rootItem =
newTreeItem(rootNode, 0);
+ rootItem = newTreeItem(null,
rootNode, 0);
}
itemContainer.add(rootItem);
buildItemChildren(rootItem);
@@ -776,7 +777,7 @@
{
Object node = e.getChildren()[i];
int index = e.getChildIndices()[i];
- TreeItem item = newTreeItem(node,
parentItem.getLevel() + 1);
+ TreeItem item = newTreeItem(parentItem, node,
parentItem.getLevel() + 1);
itemContainer.add(item);
parentItem.getChildren().add(index, item);
@@ -1068,7 +1069,7 @@
if (isNodeExpanded(item.getModelObject()))
{
// build the items for children of the items' treenode.
- items =
buildTreeItems(nodeChildren(item.getModelObject()), item.getLevel() + 1);
+ items = buildTreeItems(item,
nodeChildren(item.getModelObject()), item.getLevel() + 1);
}
else
{
@@ -1082,13 +1083,14 @@
/**
* Builds (recursively) TreeItems for the given Iterator of TreeNodes.
*
+ * @param parent
* @param nodes
* The nodes to build tree items for
* @param level
* The current level
* @return List with new tree items
*/
- private final List<TreeItem> buildTreeItems(Iterator<Object> nodes, int
level)
+ private final List<TreeItem> buildTreeItems(TreeItem parent,
Iterator<Object> nodes, int level)
{
List<TreeItem> result = new ArrayList<TreeItem>();
@@ -1097,7 +1099,7 @@
{
Object node = nodes.next();
// create tree item
- TreeItem item = newTreeItem(node, level);
+ TreeItem item = newTreeItem(parent, node, level);
itemContainer.add(item);
// builds it children (recursively)
@@ -1272,7 +1274,7 @@
item.remove();
- item = newTreeItem(node, level, id);
+ item = newTreeItem(parent, node, level,
id);
itemContainer.add(item);
item.setChildren(children);
@@ -1366,38 +1368,37 @@
*/
public Object getParentNode(Object node)
{
- if (getModelObject() instanceof ExtendedTreeModel)
+ TreeItem item = nodeToItemMap.get(node);
+ if (item == null)
{
- return
((ExtendedTreeModel)getModelObject()).getParent(node);
- }
- else if (node instanceof TreeNode)
- {
- return ((TreeNode)node).getParent();
+ return null;
}
else
{
- throw new IllegalStateException(
- "Couldn't determine node parent. Either the
tree model must implement ParentTreeModel or Node must implement TreeNode.");
+ TreeItem parent = item.getParentItem();
+ return parent == null ? null : parent.getModelObject();
}
}
/**
* Creates a tree item for given node.
*
+ * @param parent
* @param node
* The tree node
* @param level
- * The level
+ * The level *
* @return The new tree item
*/
- private final TreeItem newTreeItem(Object node, int level)
+ private final TreeItem newTreeItem(TreeItem parent, Object node, int
level)
{
- return new TreeItem("" + idCounter++, node, level);
+ return new TreeItem(parent, "" + idCounter++, node, level);
}
/**
* Creates a tree item for given node with specified id.
*
+ * @param parent
* @param node
* The tree node
* @param level
@@ -1406,9 +1407,9 @@
* the component id
* @return The new tree item
*/
- private final TreeItem newTreeItem(Object node, int level, String id)
+ private final TreeItem newTreeItem(TreeItem parent, Object node, int
level, String id)
{
- return new TreeItem(id, node, level);
+ return new TreeItem(parent, id, node, level);
}
/**
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java?rev=658464&r1=658463&r2=658464&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java
Tue May 20 15:16:37 2008
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.markup.html.tree;
-import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreeModel;
import org.apache.wicket.Component;
import org.apache.wicket.ResourceReference;
@@ -74,16 +74,16 @@
* @return icon image component
*/
protected Component newImageComponent(String componentId, final
BaseTree tree,
- final IModel model)
+ final IModel model)
{
return new Image(componentId)
{
private static final long serialVersionUID = 1L;
+ @Override
protected ResourceReference getImageResourceReference()
{
- return
LabelIconPanel.this.getImageResourceReference(tree, (TreeNode)model
- .getObject());
+ return
LabelIconPanel.this.getImageResourceReference(tree, model.getObject());
}
};
}
@@ -108,9 +108,10 @@
* @param node
* @return image resource reference
*/
- protected ResourceReference getImageResourceReference(BaseTree tree,
TreeNode node)
+ protected ResourceReference getImageResourceReference(BaseTree tree,
Object node)
{
- if (node.isLeaf())
+ TreeModel model = (TreeModel)tree.getModelObject();
+ if (model.isLeaf(node))
{
return getResourceItemLeaf(node);
}
@@ -144,7 +145,7 @@
* @param node
* @return resource reference
*/
- protected ResourceReference getResourceFolderClosed(TreeNode node)
+ protected ResourceReference getResourceFolderClosed(Object node)
{
return RESOURCE_FOLDER_CLOSED;
}
@@ -155,7 +156,7 @@
* @param node
* @return resource reference
*/
- protected ResourceReference getResourceFolderOpen(TreeNode node)
+ protected ResourceReference getResourceFolderOpen(Object node)
{
return RESOURCE_FOLDER_OPEN;
}
@@ -166,15 +167,15 @@
* @param node
* @return resource reference
*/
- protected ResourceReference getResourceItemLeaf(TreeNode node)
+ protected ResourceReference getResourceItemLeaf(Object node)
{
return RESOURCE_ITEM;
}
private static final ResourceReference RESOURCE_FOLDER_OPEN = new
ResourceReference(
- LabelIconPanel.class, "res/folder-open.gif");
+ LabelIconPanel.class, "res/folder-open.gif");
private static final ResourceReference RESOURCE_FOLDER_CLOSED = new
ResourceReference(
- LabelIconPanel.class, "res/folder-closed.gif");
+ LabelIconPanel.class, "res/folder-closed.gif");
private static final ResourceReference RESOURCE_ITEM = new
ResourceReference(
- LabelIconPanel.class, "res/item.gif");
+ LabelIconPanel.class, "res/item.gif");
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LinkIconPanel.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LinkIconPanel.java?rev=658464&r1=658463&r2=658464&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LinkIconPanel.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LinkIconPanel.java
Tue May 20 15:16:37 2008
@@ -16,8 +16,6 @@
*/
package org.apache.wicket.markup.html.tree;
-import javax.swing.tree.TreeNode;
-
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.model.IModel;
@@ -49,6 +47,7 @@
* @see
org.apache.wicket.markup.html.tree.LabelIconPanel#addComponents(org.apache.wicket.model.IModel,
* org.apache.wicket.markup.html.tree.BaseTree)
*/
+ @Override
protected void addComponents(final IModel model, final BaseTree tree)
{
BaseTree.ILinkCallback callback = new BaseTree.ILinkCallback()
@@ -57,7 +56,7 @@
public void onClick(AjaxRequestTarget target)
{
- onNodeLinkClicked((TreeNode)model.getObject(),
tree, target);
+ onNodeLinkClicked(model.getObject(), tree,
target);
}
};
@@ -77,7 +76,7 @@
* @param tree
* @param target
*/
- protected void onNodeLinkClicked(TreeNode node, BaseTree tree,
AjaxRequestTarget target)
+ protected void onNodeLinkClicked(Object node, BaseTree tree,
AjaxRequestTarget target)
{
tree.getTreeState().selectNode(node,
!tree.getTreeState().isNodeSelected(node));
tree.updateTree(target);