public bool CanOperateOnSelection(DataNodePredicate pred) { if (_multiTree != null) { return(CanOperateOnNodes(_multiTree.SelectedNodes, pred)); } else { return(CanOperateOnNodes(new List <TreeNode>() { _nodeTree.SelectedNode }, pred)); } }
private bool CanOperateOnNodesEx(IList <TreeNode> nodes, DataNodePredicate pred, out bool?elideChildren) { GroupCapabilities caps = GroupCapabilities.All; elideChildren = null; foreach (TreeNode node in nodes) { if (node == null || !(node.Tag is DataNode)) { return(false); } DataNode dataNode = node.Tag as DataNode; GroupCapabilities dataCaps; if (!pred(dataNode, out dataCaps)) { return(false); } caps &= dataCaps; bool elideChildrenFlag = (dataNode.DeleteNodeCapabilities & GroupCapabilities.ElideChildren) == GroupCapabilities.ElideChildren; if (elideChildren == null) { elideChildren = elideChildrenFlag; } if (elideChildren != elideChildrenFlag) { return(false); } } if (nodes.Count > 1 && !SufficientCapabilities(nodes, caps)) { return(false); } return(true); }
private bool CanOperateOnNodesEx(IList<TreeNode> nodes, DataNodePredicate pred, out bool? elideChildren) { GroupCapabilities caps = GroupCapabilities.All; elideChildren = null; foreach (TreeNode node in nodes) { if (node == null || !(node.Tag is DataNode)) return false; DataNode dataNode = node.Tag as DataNode; GroupCapabilities dataCaps; if (!pred(dataNode, out dataCaps)) return false; caps &= dataCaps; bool elideChildrenFlag = (dataNode.DeleteNodeCapabilities & GroupCapabilities.ElideChildren) == GroupCapabilities.ElideChildren; if (elideChildren == null) elideChildren = elideChildrenFlag; if (elideChildren != elideChildrenFlag) return false; } if (nodes.Count > 1 && !SufficientCapabilities(nodes, caps)) return false; return true; }
/*private bool CreateTagNodePred (DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag }*/ private bool CanOperateOnNodes(IList<TreeNode> nodes, DataNodePredicate pred) { bool? elideChildren = null; return CanOperateOnNodesEx(nodes, pred, out elideChildren); }
public bool CanOperateOnSelection (DataNodePredicate pred) { if (_multiTree != null) return CanOperateOnNodes(_multiTree.SelectedNodes, pred); else return CanOperateOnNodes(new List<TreeNode>() { _nodeTree.SelectedNode }, pred); }
private bool CanOperateOnNodes(IList <TreeNode> nodes, DataNodePredicate pred) { bool?elideChildren = null; return(CanOperateOnNodesEx(nodes, pred, out elideChildren)); }