From ad2f5649ddc5c172cb4c1670563ac1c8adfee00d Mon Sep 17 00:00:00 2001 From: Derrell Lipman Date: Tue, 13 Feb 2007 20:35:48 +0000 Subject: r21321: - Allow pruning all of the children of a node without removing the node itself. - By default, create only one meta column if only the tree is displayed. If additional columns are displayed, then put all of them in a separate meta column, and the tree in the first meta column by itself. (This used to be commit 6c86cd416b64e97071f6bbd2d63f33a950a28ec0) --- .../class/qx/ui/treevirtual/SimpleTreeDataModel.js | 39 +++++++++++++--------- .../source/class/qx/ui/treevirtual/TreeVirtual.js | 2 +- 2 files changed, 24 insertions(+), 17 deletions(-) (limited to 'webapps') diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js index f9ff3a9758..875eeea6ec 100644 --- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +++ b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js @@ -405,35 +405,42 @@ qx.Proto.addLeaf = function(parentNodeId, /** - * Prune the tree by removing the specified node, and, if the node has - * children, recursively all of its children. + * Prune the tree by removing, recursively, all of a node's children. If + * requested, also remove the node itself. * * @param nodeId {Integer} * The node id, previously returned by {@link #addLeaf} or {@link * #addBranch}, of the node (and its children) to be pruned from the tree. + * + * @param bSelfAlso {Boolean} + * If true then remove the node identified by nodeId as well + * as all of the children. */ -qx.Proto.prune = function(nodeId) +qx.Proto.prune = function(nodeId, bSelfAlso) { // First, recursively remove all children for (var i = 0; i < this._nodeArr[nodeId].children.length; i++) { - this.prune(this._nodeArr[nodeId].children[i]); + this.prune(this._nodeArr[nodeId].children[i], true); } - // Delete ourself from our parent's children list - var node = this._nodeArr[nodeId]; - qx.lang.Array.remove(this._nodeArr[node.parentNodeId].children, nodeId); - - // Delete ourself from the selections list, if we're in it. - if (this._selections[nodeId]) + if (bSelfAlso) { - delete this._selections[nodeId]; - } + // Delete ourself from our parent's children list + var node = this._nodeArr[nodeId]; + qx.lang.Array.remove(this._nodeArr[node.parentNodeId].children, nodeId); - // We can't splice the node itself out, because that would muck up the - // nodeId == index correspondence. Instead, just replace the node with - // null so its index just becomes unused. - this._nodeArr[nodeId] = null; + // Delete ourself from the selections list, if we're in it. + if (this._selections[nodeId]) + { + delete this._selections[nodeId]; + } + + // We can't splice the node itself out, because that would muck up the + // nodeId == index correspondence. Instead, just replace the node with + // null so its index just becomes unused. + this._nodeArr[nodeId] = null; + } }; diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/TreeVirtual.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/TreeVirtual.js index c32cb15f25..3b7df7d4ca 100644 --- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/TreeVirtual.js +++ b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/TreeVirtual.js @@ -71,7 +71,7 @@ function(headings) // Set sizes this.setRowHeight(16); - this.setMetaColumnCounts([1, -1]); + this.setMetaColumnCounts(headings.length > 1 ? [ 1, -1 ] : [ 1 ]); // Set the data cell render. We use the SimpleTreeDataCellRenderer for the // tree column, and our DefaultDataCellRenderer for all other columns. -- cgit