[richfaces-svn-commits] JBoss Rich Faces SVN: r9217 - trunk/samples/tree-demo/src/main/java/org/richfaces.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Jun 25 09:15:09 EDT 2008


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);




More information about the richfaces-svn-commits mailing list