Author: dmorozov
Date: 2008-06-25 09:15:09 -0400 (Wed, 25 Jun 2008)
New Revision: 9217
Modified:
trunk/samples/tree-demo/src/main/java/org/richfaces/TreeDndBean.java
Log:
http://jira.jboss.com/jira/browse/RF-3785
Modified: trunk/samples/tree-demo/src/main/java/org/richfaces/TreeDndBean.java
===================================================================
--- trunk/samples/tree-demo/src/main/java/org/richfaces/TreeDndBean.java 2008-06-25
13:06:58 UTC (rev 9216)
+++ trunk/samples/tree-demo/src/main/java/org/richfaces/TreeDndBean.java 2008-06-25
13:15:09 UTC (rev 9217)
@@ -110,6 +110,7 @@
public void processLSelection(NodeSelectedEvent event) {
UITree tree = (UITree) event.getComponent();
leftSelectedNodeTitle = (String) tree.getRowData();
+ System.out.println("OnSelect LEFT tree: " + leftSelectedNodeTitle);
}
/**
@@ -120,6 +121,7 @@
UITree tree = (UITree) event.getComponent();
if (tree != null) {
rightSelectedNodeTitle = (String) tree.getRowData();
+ System.out.println("OnSelect RIGHT tree: " + rightSelectedNodeTitle);
}
}
@@ -280,11 +282,19 @@
UITreeNode srcNode = (dropEvent.getDraggableSource() instanceof UITreeNode) ?
(UITreeNode) dropEvent.getDraggableSource() : null;
UITree srcTree = srcNode != null ? srcNode.getUITree() : null;
TreeRowKey dragNodeKey = (dropEvent.getDragValue() instanceof TreeRowKey) ? (TreeRowKey)
dropEvent.getDragValue() : null;
+ TreeNode draggedNode = dragNodeKey != null ? srcTree.getTreeNode(dragNodeKey) : null;
// resolve drag destination attributes
UITreeNode destNode = (dropEvent.getSource() instanceof UITreeNode) ? (UITreeNode)
dropEvent.getSource() : null;
UITree destTree = destNode != null ? destNode.getUITree() : getTree(dropEvent);
TreeRowKey dropNodeKey = (dropEvent.getDropValue() instanceof TreeRowKey) ? (TreeRowKey)
dropEvent.getDropValue() : null;
+ TreeNode droppedInNode = dropNodeKey != null ? destTree.getTreeNode(dropNodeKey) :
null;
+
+ // Note: check if we dropped node on to itself here
+ if (droppedInNode != null && droppedInNode.equals(draggedNode)) {
+ System.out.println("Warning: Can't drop on itself!");
+ return;
+ }
FacesContext context = FacesContext.getCurrentInstance();
@@ -293,10 +303,7 @@
destTree.addRequestKey(dropNodeKey);
Object state = null;
- TreeNode draggedNode = null;
if (dragNodeKey != null) { // Drag from this or other tree
- draggedNode = srcTree.getTreeNode(dragNodeKey);
-
TreeNode parentNode = draggedNode.getParent();
// 1. remove node from tree
state = srcTree.removeNode(dragNodeKey);