1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

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 6c86cd416b)
This commit is contained in:
Derrell Lipman 2007-02-13 20:35:48 +00:00 committed by Gerald (Jerry) Carter
parent 1f2b94b7b7
commit ad2f5649dd
2 changed files with 24 additions and 17 deletions

View File

@ -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 <i>true</i> then remove the node identified by <i>nodeId</i> 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;
}
};

View File

@ -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.