private bool SufficientCapabilities(IEnumerable <TreeNode> nodes, GroupCapabilities commonCaps) { bool commonContainer = CommonContainer(nodes); bool commonType = CommonType(nodes); bool pass = true; if (commonContainer && commonType) { pass &= ((commonCaps & GroupCapabilities.SiblingSameType) == GroupCapabilities.SiblingSameType); } else if (commonContainer && !commonType) { pass &= ((commonCaps & GroupCapabilities.SiblingMixedType) == GroupCapabilities.SiblingMixedType); } else if (!commonContainer && commonType) { pass &= ((commonCaps & GroupCapabilities.MultiSameType) == GroupCapabilities.MultiSameType); } else if (!commonContainer && !commonType) { pass &= ((commonCaps & GroupCapabilities.MultiMixedType) == GroupCapabilities.MultiMixedType); } return(pass); }
private GroupCapabilities CommonCapabilities(IEnumerable <GroupCapabilities> capabilities) { GroupCapabilities caps = GroupCapabilities.All; foreach (GroupCapabilities cap in capabilities) { caps &= cap; } return(caps); }
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); }
public static bool CreateStringNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return((dataNode != null) && dataNode.CanCreateTag(TagType.TAG_STRING)); }
private bool PasteIntoNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.PasteIntoNodeCapabilities; return (dataNode != null) && dataNode.CanPasteIntoNode; }
private bool DeleteNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.DeleteNodeCapabilities; return (dataNode != null) && dataNode.CanDeleteNode; }
private bool CreateIntArrayNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_INT_ARRAY); }
private bool CreateDoubleNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_DOUBLE); }
private bool SufficientCapabilities(IEnumerable<TreeNode> nodes, GroupCapabilities commonCaps) { bool commonContainer = CommonContainer(nodes); bool commonType = CommonType(nodes); bool pass = true; if (commonContainer && commonType) pass &= ((commonCaps & GroupCapabilities.SiblingSameType) == GroupCapabilities.SiblingSameType); else if (commonContainer && !commonType) pass &= ((commonCaps & GroupCapabilities.SiblingMixedType) == GroupCapabilities.SiblingMixedType); else if (!commonContainer && commonType) pass &= ((commonCaps & GroupCapabilities.MultiSameType) == GroupCapabilities.MultiSameType); else if (!commonContainer && !commonType) pass &= ((commonCaps & GroupCapabilities.MultiMixedType) == GroupCapabilities.MultiMixedType); return pass; }
public static bool CreateListNodePred (DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_LIST); }
public static bool CreateByteArrayNodePred (DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_BYTE_ARRAY); }
public static bool ReorderNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.ReorderNodeCapabilities; return((dataNode != null) && dataNode.CanReoderNode); }
public static bool SearchNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.SearchNodeCapabilites; return((dataNode != null) && dataNode.CanSearchNode); }
public static bool DeleteNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.DeleteNodeCapabilities; return((dataNode != null) && dataNode.CanDeleteNode); }
public static bool PasteIntoNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.PasteIntoNodeCapabilities; return(dataNode != null && dataNode.CanPasteIntoNode); }
public static bool RenameNodePred (DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.RenameNodeCapabilities; return (dataNode != null) && dataNode.CanRenameNode; }
public static bool RefreshNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.RefreshNodeCapabilites; return(dataNode != null && dataNode.CanRefreshNode); }
public static bool MoveNodeUpPred (DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.ReorderNodeCapabilities; return (dataNode != null) && dataNode.CanMoveNodeUp; }
private bool SearchNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.SearchNodeCapabilites; return (dataNode != null) && dataNode.CanSearchNode; }
public static bool CreateLongArrayNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return(dataNode != null && dataNode.CanCreateTag(TagType.TAG_LONG_ARRAY)); }
private bool CreateCompoundNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_COMPOUND); }
public static bool CreateListNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return(dataNode != null && dataNode.CanCreateTag(TagType.TAG_LIST)); }
private bool CreateFloatNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_FLOAT); }
public static bool CreateCompoundNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return(dataNode != null && dataNode.CanCreateTag(TagType.TAG_COMPOUND)); }
private bool CreateStringNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_STRING); }
public static bool MoveNodeDownPred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.ReorderNodeCapabilities; return(dataNode != null && dataNode.CanMoveNodeDown); }
private bool EditNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.EditNodeCapabilities; return (dataNode != null) && dataNode.CanEditNode; }
public static bool CopyNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.CopyNodeCapabilities; return(dataNode != null && dataNode.CanCopyNode); }
private bool ReorderNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = dataNode.ReorderNodeCapabilities; return (dataNode != null) && dataNode.CanReoderNode; }
public static bool CreateByteArrayNodePred(DataNode dataNode, out GroupCapabilities caps) { caps = GroupCapabilities.Single; return((dataNode != null) && dataNode.CanCreateTag(TagType.TAG_BYTE_ARRAY)); }