You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by tv...@apache.org on 2009/03/19 22:05:55 UTC

svn commit: r756197 - /incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTreeViewSkin.java

Author: tvolkert
Date: Thu Mar 19 21:05:54 2009
New Revision: 756197

URL: http://svn.apache.org/viewvc?rev=756197&view=rev
Log:
Added TreeView.NodeEditor interface and support for it in TerraTreeViewSkin

Modified:
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTreeViewSkin.java

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTreeViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTreeViewSkin.java?rev=756197&r1=756196&r2=756197&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTreeViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTreeViewSkin.java Thu Mar 19 21:05:54 2009
@@ -256,6 +256,7 @@
     private List<NodeInfo> visibleNodes = new ArrayList<NodeInfo>();
 
     private NodeInfo highlightedNode = null;
+    private NodeInfo editNode = null;
 
     // Styles
     private Font font;
@@ -1316,14 +1317,14 @@
         super.mouseOut(component);
 
         clearHighlightedNode();
+        editNode = null;
     }
 
     @Override
     public boolean mouseDown(Component component, Mouse.Button button, int x, int y) {
         boolean consumed = super.mouseDown(component, button, x, y);
 
-        if (!consumed
-            && button == Mouse.Button.LEFT) {
+        if (!consumed) {
             TreeView treeView = (TreeView)getComponent();
             treeView.requestFocus();
 
@@ -1369,7 +1370,11 @@
                         TreeView.SelectMode selectMode = treeView.getSelectMode();
 
                         if (selectMode == TreeView.SelectMode.SINGLE) {
-                            if (!nodeInfo.isSelected()) {
+                            if (nodeInfo.isSelected()) {
+                                // Edit the node
+                                editNode = nodeInfo;
+                            } else {
+                                // Select the node
                                 treeView.setSelectedPath(path);
                             }
                         } else if (selectMode == TreeView.SelectMode.MULTI) {
@@ -1396,8 +1401,7 @@
     public boolean mouseClick(Component component, Mouse.Button button, int x, int y, int count) {
         boolean consumed = super.mouseClick(component, button, x, y, count);
 
-        if (!consumed
-            && button == Mouse.Button.LEFT) {
+        if (!consumed) {
             TreeView treeView = (TreeView)getComponent();
 
             NodeInfo nodeInfo = getNodeInfoAt(y);
@@ -1423,6 +1427,17 @@
                     && y < nodeY + checkboxY + checkboxHeight) {
                     Sequence<Integer> path = nodeInfo.getPath();
                     treeView.setNodeChecked(path, !nodeInfo.isChecked());
+                } else {
+                    if (editNode != null
+                        && count == 1) {
+                        TreeView.NodeEditor nodeEditor = treeView.getNodeEditor();
+
+                        if (nodeEditor != null) {
+                            nodeEditor.edit(treeView, nodeInfo.getPath());
+                        }
+                    }
+
+                    editNode = null;
                 }
             }
         }
@@ -1638,6 +1653,7 @@
     }
 
     // TreeViewListener methods
+
     @SuppressWarnings("unchecked")
     public void treeDataChanged(TreeView treeView, List<?> previousTreeData) {
         List<Object> treeData = (List<Object>)treeView.getTreeData();
@@ -1654,11 +1670,14 @@
         invalidateComponent();
     }
 
-    public void nodeRendererChanged(TreeView treeView,
-        TreeView.NodeRenderer previousNodeRenderer) {
+    public void nodeRendererChanged(TreeView treeView, TreeView.NodeRenderer previousNodeRenderer) {
         invalidateComponent();
     }
 
+    public void nodeEditorChanged(TreeView treeView, TreeView.NodeEditor previousNodeEditor) {
+        // No-op
+    }
+
     public void selectModeChanged(TreeView treeView,
         TreeView.SelectMode previousSelectMode) {
         // The selection has implicitly been cleared