/// <summary> /// handles document closing event by removing the corresponding document node in TreeView /// </summary> public void OnDocumentClosed(Document doc) { NodeTag.NodeType nodeType = NodeTag.NodeType.NT_DOCUMENT; // get node TreeNode docNode = FindNode(null, new NodeTag(nodeType, doc)); // remove node Nodes.Remove(docNode); }
void OnNodeLeftDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { try { SelectedNode = e.Node; // handle only left mouse button click if (e.Button != MouseButtons.Left) { return; } NodeTag tag = CurrentTag; NodeTag.NodeType tagType = tag.Type; if (null != AnalysisNodeClicked && (tag.Type == NodeTag.NodeType.NT_ANALYSIS) || (tag.Type == NodeTag.NodeType.NT_ECTANALYSIS) || (tag.Type == NodeTag.NodeType.NT_BOX) || (tag.Type == NodeTag.NodeType.NT_CASE) || (tag.Type == NodeTag.NodeType.NT_PACK) || (tag.Type == NodeTag.NodeType.NT_BUNDLE) || (tag.Type == NodeTag.NodeType.NT_CYLINDER) || (tag.Type == NodeTag.NodeType.NT_CASEOFBOXES) || (tag.Type == NodeTag.NodeType.NT_PALLET) || (tag.Type == NodeTag.NodeType.NT_INTERLAYER) || (tag.Type == NodeTag.NodeType.NT_PALLETCORNERS) || (tag.Type == NodeTag.NodeType.NT_PALLETCAP) || (tag.Type == NodeTag.NodeType.NT_PALLETFILM) || (tag.Type == NodeTag.NodeType.NT_TRUCK) ) { AnalysisNodeClicked(this, new AnalysisTreeViewEventArgs(tag)); e.Node.Expand(); } } catch (Exception ex) { _log.Error(ex.ToString()); } }
/// <summary> /// handles new type removed /// </summary> /// <param name="doc"></param> /// <param name="itemBase"></param> public void OnTypeRemoved(Document doc, ItemBase itemBase) { NodeTag.NodeType nodeType = NodeTag.NodeType.NT_UNKNOWN; if (itemBase.GetType() == typeof(BoxProperties)) { BoxProperties box = itemBase as BoxProperties; if (box.HasInsideDimensions) { nodeType = NodeTag.NodeType.NT_CASE; } else { nodeType = NodeTag.NodeType.NT_BOX; } } else if (itemBase.GetType() == typeof(BundleProperties)) { nodeType = NodeTag.NodeType.NT_BUNDLE; } else if (itemBase.GetType() == typeof(PackProperties)) { nodeType = NodeTag.NodeType.NT_PACK; } else if (itemBase.GetType() == typeof(CaseOfBoxesProperties)) { nodeType = NodeTag.NodeType.NT_CASEOFBOXES; } else if (itemBase.GetType() == typeof(InterlayerProperties)) { nodeType = NodeTag.NodeType.NT_INTERLAYER; } else if (itemBase.GetType() == typeof(PalletCornerProperties)) { nodeType = NodeTag.NodeType.NT_PALLETCORNERS; } else if (itemBase.GetType() == typeof(PalletCapProperties)) { nodeType = NodeTag.NodeType.NT_PALLETCAP; } else if (itemBase.GetType() == typeof(PalletFilmProperties)) { nodeType = NodeTag.NodeType.NT_PALLETFILM; } else if (itemBase.GetType() == typeof(PalletProperties)) { nodeType = NodeTag.NodeType.NT_PALLET; } else if (itemBase.GetType() == typeof(TruckProperties)) { nodeType = NodeTag.NodeType.NT_TRUCK; } else if (itemBase.GetType() == typeof(CylinderProperties)) { nodeType = NodeTag.NodeType.NT_CYLINDER; } Debug.Assert(nodeType != NodeTag.NodeType.NT_UNKNOWN); if (nodeType == NodeTag.NodeType.NT_UNKNOWN) { return; // ->not found exit } // get node TreeNode typeNode = FindNode(null, new NodeTag(nodeType, doc, itemBase)); // remove node if (null != typeNode) { Nodes.Remove(typeNode); } }
/// <summary> /// handles new type creation /// </summary> /// <param name="doc"></param> /// <param name="itemProperties"></param> public void OnNewTypeCreated(Document doc, ItemBase itemProperties) { int iconIndex = 0; NodeTag.NodeType nodeType = NodeTag.NodeType.NT_BOX; NodeTag.NodeType parentNodeType = NodeTag.NodeType.NT_LISTBOX; if (itemProperties.GetType() == typeof(CaseOfBoxesProperties)) { iconIndex = 17; nodeType = NodeTag.NodeType.NT_CASEOFBOXES; parentNodeType = NodeTag.NodeType.NT_LISTCASE; } else if (itemProperties.GetType() == typeof(BoxProperties)) { BoxProperties boxProperties = itemProperties as BoxProperties; if (boxProperties.HasInsideDimensions) { iconIndex = 4; nodeType = NodeTag.NodeType.NT_CASE; parentNodeType = NodeTag.NodeType.NT_LISTCASE; } else { iconIndex = 3; nodeType = NodeTag.NodeType.NT_BOX; parentNodeType = NodeTag.NodeType.NT_LISTBOX; } } else if (itemProperties.GetType() == typeof(BundleProperties)) { iconIndex = 5; nodeType = NodeTag.NodeType.NT_BUNDLE; parentNodeType = NodeTag.NodeType.NT_LISTBUNDLE; } else if (itemProperties.GetType() == typeof(CylinderProperties)) { iconIndex = 6; nodeType = NodeTag.NodeType.NT_CYLINDER; parentNodeType = NodeTag.NodeType.NT_LISTCYLINDER; } else if (itemProperties.GetType() == typeof(PalletProperties)) { iconIndex = 7; nodeType = NodeTag.NodeType.NT_PALLET; parentNodeType = NodeTag.NodeType.NT_LISTPALLET; } else if (itemProperties.GetType() == typeof(InterlayerProperties)) { iconIndex = 8; nodeType = NodeTag.NodeType.NT_INTERLAYER; parentNodeType = NodeTag.NodeType.NT_LISTINTERLAYER; } else if (itemProperties.GetType() == typeof(TruckProperties)) { iconIndex = 9; nodeType = NodeTag.NodeType.NT_TRUCK; parentNodeType = NodeTag.NodeType.NT_LISTTRUCK; } else if (itemProperties.GetType() == typeof(PalletCornerProperties)) { iconIndex = 10; nodeType = NodeTag.NodeType.NT_PALLETCORNERS; parentNodeType = NodeTag.NodeType.NT_LISTPALLETCORNERS; } else if (itemProperties.GetType() == typeof(PalletCapProperties)) { iconIndex = 11; nodeType = NodeTag.NodeType.NT_PALLETCAP; parentNodeType = NodeTag.NodeType.NT_LISTPALLETCAP; } else if (itemProperties.GetType() == typeof(PalletFilmProperties)) { iconIndex = 12; nodeType = NodeTag.NodeType.NT_PALLETFILM; parentNodeType = NodeTag.NodeType.NT_LISTPALLETFILM; } else if (itemProperties.GetType() == typeof(PackProperties)) { iconIndex = 13; nodeType = NodeTag.NodeType.NT_PACK; parentNodeType = NodeTag.NodeType.NT_LISTPACK; } else { Debug.Assert(false); _log.Error("AnalysisTreeView.OnNewTypeCreated() -> unknown type!"); return; } // get parent node TreeNode parentNode = FindNode(null, new NodeTag(parentNodeType, doc)); if (null == parentNode) { _log.Error(string.Format("Failed to load parentNode for {0}", itemProperties.Name)); return; } // instantiate node TreeNode nodeItem = new TreeNode(itemProperties.Name, iconIndex, iconIndex) { // set node tag Tag = new NodeTag(nodeType, doc, itemProperties) }; // insert parentNode.Nodes.Add(nodeItem); parentNode.Expand(); // if item is CaseOfBoxesProperties if (itemProperties is CaseOfBoxesProperties) { // insert sub node CaseOfBoxesProperties caseOfBoxesProperties = itemProperties as CaseOfBoxesProperties; TreeNode subNode = new TreeNode(caseOfBoxesProperties.InsideBoxProperties.Name, 3, 3) { Tag = new NodeTag(NodeTag.NodeType.NT_BOX, doc, caseOfBoxesProperties.InsideBoxProperties) }; nodeItem.Nodes.Add(subNode); } }