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