/// <summary> /// Constructor takes the clicked node tag as argument /// </summary> /// <param name="nodeTag"></param> public AnalysisTreeViewEventArgs(NodeTag nodeTag) { _nodeTag = nodeTag; }
internal TreeNode FindNode(TreeNode node, NodeTag nodeTag) { // check with node itself if (null != node) { NodeTag tag = node.Tag as NodeTag; if (null == tag) { _log.Error(string.Format("Node {0} has no valid NodeTag", node.Text)); return null; } if (tag.Equals(nodeTag)) return node; } // check with child nodes TreeNodeCollection tnCollection = null == node ? Nodes : node.Nodes; foreach (TreeNode tn in tnCollection) { TreeNode tnResult = FindNode(tn, nodeTag); if (null != tnResult) return tnResult; } return null; }
private void QueryContextMenuItems(NodeTag nodeTag, ContextMenuStrip contextMenuStrip) { if (nodeTag.Type == NodeTag.NodeType.NT_DOCUMENT) { contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBOX, AnalysisTreeView.Box , new EventHandler(onCreateNewBox))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWCASE, AnalysisTreeView.Case, new EventHandler(onCreateNewCase))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWCYLINDER, AnalysisTreeView.Cylinder, new EventHandler(onCreateNewCylinder))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLET, AnalysisTreeView.Pallet , new EventHandler(onCreateNewPallet))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWINTERLAYER, AnalysisTreeView.Interlayer, new EventHandler(onCreateNewInterlayer))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBUNDLE, AnalysisTreeView.Bundle , new EventHandler(onCreateNewBundle))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLETCORNERS, AnalysisTreeView.PalletCorners, new EventHandler(onCreateNewPalletCorners))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLETCAP, AnalysisTreeView.PalletCap, new EventHandler(onCreateNewPalletCap))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLETFILM, AnalysisTreeView.PalletFilm, new EventHandler(onCreateNewPalletFilm))); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWTRUCK, AnalysisTreeView.Truck , new EventHandler(onCreateNewTruck))); if (((DocumentSB)nodeTag.Document).CanCreateCasePalletAnalysis || ((DocumentSB)nodeTag.Document).CanCreateBundlePalletAnalysis || ((DocumentSB)nodeTag.Document).CanCreateBoxCasePalletAnalysis) contextMenuStrip.Items.Add(new ToolStripSeparator()); if (((DocumentSB)nodeTag.Document).CanCreateCasePalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWANALYSIS, AnalysisTreeView.Analysis, new EventHandler(onCreateNewCasePalletAnalysis))); if (((DocumentSB)nodeTag.Document).CanCreatePackPalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPACKANALYSIS, AnalysisTreeView.PackAnalysis, new EventHandler(onCreateNewPackPalletAnalysis))); if (((DocumentSB)nodeTag.Document).CanCreateBundlePalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBUNDLEANALYSIS, AnalysisTreeView.AnalysisBundle, new EventHandler(onCreateNewBundleAnalysis))); if (((DocumentSB)nodeTag.Document).CanCreateBoxCaseAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBOXCASEANALYSIS, AnalysisTreeView.BoxCaseAnalysis, new EventHandler(onCreateNewBoxCaseAnalysis))); if (((DocumentSB)nodeTag.Document).CanCreateBoxCasePalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWCASEANALYSIS, AnalysisTreeView.CaseAnalysis, new EventHandler(onCreateNewCaseAnalysis))); contextMenuStrip.Items.Add(new ToolStripSeparator()); contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_CLOSE, null, new EventHandler(onDocumentClose))); } if (nodeTag.Type == NodeTag.NodeType.NT_BOX || nodeTag.Type == NodeTag.NodeType.NT_CASE || nodeTag.Type == NodeTag.NodeType.NT_PACK || nodeTag.Type == NodeTag.NodeType.NT_CASEOFBOXES || nodeTag.Type == NodeTag.NodeType.NT_CYLINDER || nodeTag.Type == NodeTag.NodeType.NT_PALLET || nodeTag.Type == NodeTag.NodeType.NT_BUNDLE || nodeTag.Type == NodeTag.NodeType.NT_INTERLAYER || nodeTag.Type == NodeTag.NodeType.NT_TRUCK || nodeTag.Type == NodeTag.NodeType.NT_PALLETCORNERS || nodeTag.Type == NodeTag.NodeType.NT_PALLETCAP || nodeTag.Type == NodeTag.NodeType.NT_PALLETFILM ) { string message = string.Format(Resources.ID_DELETE, nodeTag.ItemProperties.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.DELETE, new EventHandler(onDeleteBaseItem))); } else if (nodeTag.Type == NodeTag.NodeType.NT_CASEPALLETANALYSIS) { string message = string.Format(Resources.ID_EDIT, nodeTag.CasePalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onEditCasePalletAnalysis))); message = string.Format(Resources.ID_DELETE, nodeTag.CasePalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.DELETE, new EventHandler(onDeleteCasePalletAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_PACKPALLETANALYSIS) { string message = string.Format(Resources.ID_EDIT, nodeTag.PackPalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onEditPackPalletAnalysis))); message = string.Format(Resources.ID_DELETE, nodeTag.PackPalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.DELETE, new EventHandler(onDeletePackPalletAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_CYLINDERPALLETANALYSIS) { string message = string.Format(Resources.ID_EDIT, nodeTag.CylinderPalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onEditCylinderPalletAnalysis))); message = string.Format(Resources.ID_DELETE, nodeTag.CylinderPalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onDeleteCylinderPalletAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_HCYLINDERPALLETANALYSIS) { string message = string.Format(Resources.ID_EDIT, nodeTag.HCylinderPalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onEditHCylinderPalletAnalysis))); message = string.Format(Resources.ID_DELETE, nodeTag.HCylinderPalletAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onDeleteHCylinderPalletAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_BOXCASEANALYSIS) { string message = string.Format(Resources.ID_EDIT, nodeTag.BoxCaseAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onEditBoxCaseAnalysis))); message = string.Format(Resources.ID_DELETE, nodeTag.BoxCaseAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.DELETE, new EventHandler(onDeleteBoxCaseAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_TRUCKANALYSIS) { string message = string.Format(Resources.ID_EDIT, nodeTag.TruckAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onEditTruckAnalysis))); message = string.Format(Resources.ID_DELETE, nodeTag.TruckAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.DELETE, new EventHandler(onDeleteTruckAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_ECTANALYSIS) { string message = string.Format(Resources.ID_EDIT, nodeTag.ECTAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, null, new EventHandler(onEditECTAnalysis))); message = string.Format(Resources.ID_DELETE, nodeTag.ECTAnalysis.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.DELETE, new EventHandler(onDeleteECTAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_LISTBOX) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBOX, AnalysisTreeView.Box, new EventHandler(onCreateNewBox))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTCASE) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWCASE, AnalysisTreeView.Case, new EventHandler(onCreateNewCase))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTCYLINDER) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWCYLINDER, AnalysisTreeView.Cylinder, new EventHandler(onCreateNewCylinder))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTPALLET) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLET, AnalysisTreeView.Pallet, new EventHandler(onCreateNewPallet))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTINTERLAYER) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWINTERLAYER, AnalysisTreeView.Interlayer, new EventHandler(onCreateNewInterlayer))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTBUNDLE) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBUNDLE, AnalysisTreeView.Bundle, new EventHandler(onCreateNewBundle))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTTRUCK) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWTRUCK, AnalysisTreeView.Truck, new EventHandler(onCreateNewTruck))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTPALLETCORNERS) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLETCORNERS, AnalysisTreeView.PalletCorners, new EventHandler(onCreateNewPalletCorners))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTPALLETCAP) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLETCAP, AnalysisTreeView.PalletCap, new EventHandler(onCreateNewPalletCap))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTPALLETFILM) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPALLETFILM, AnalysisTreeView.PalletFilm, new EventHandler(onCreateNewPalletFilm))); else if (nodeTag.Type == NodeTag.NodeType.NT_LISTANALYSIS) { if (nodeTag.Document.CanCreateCasePalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWANALYSIS, AnalysisTreeView.Analysis, new EventHandler(onCreateNewCasePalletAnalysis))); if (nodeTag.Document.CanCreateBundlePalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBUNDLEANALYSIS, AnalysisTreeView.AnalysisBundle, new EventHandler(onCreateNewBundleAnalysis))); if (nodeTag.Document.CanCreatePackPalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWPACKANALYSIS, AnalysisTreeView.PackAnalysis, new EventHandler(onCreateNewPackPalletAnalysis))); if (nodeTag.Document.CanCreateBoxCaseAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWBOXCASEANALYSIS, AnalysisTreeView.BoxCaseAnalysis, new EventHandler(onCreateNewBoxCaseAnalysis))); if (nodeTag.Document.CanCreateBoxCasePalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWCASEANALYSIS, AnalysisTreeView.CaseAnalysis, new EventHandler(onCreateNewCaseAnalysis))); if (nodeTag.Document.CanCreateCylinderPalletAnalysis) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWCYLINDERANALYSIS, AnalysisTreeView.CylinderPalletAnalysis, new EventHandler(onCreateNewCylinderPalletAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_CASEPALLETANALYSISSOLUTION) { contextMenuStrip.Items.Add(new ToolStripMenuItem(string.Format(Resources.ID_UNSELECTSOLUTION, nodeTag.SelSolution.Solution.Title), AnalysisTreeView.DELETE, new EventHandler(onUnselectCasePalletAnalysisSolution))); if (nodeTag.Document.Trucks.Count > 0 && !nodeTag.SelSolution.HasDependingAnalyses) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWTRUCKANALYSIS, AnalysisTreeView.TruckAnalysis, new EventHandler(onCreateNewTruckAnalysis))); if (!nodeTag.SelSolution.HasECTAnalyses) contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_ADDNEWECTANALYSIS, AnalysisTreeView.AnalysisStackingStrength, new EventHandler(onCreateNewECTAnalysis))); if (nodeTag.CasePalletAnalysis.IsBoxAnalysis) { BoxProperties bProperties = nodeTag.CasePalletAnalysis.BProperties as BoxProperties; if (bProperties.HasInsideDimensions) // BoxProperties must also have inside dimensions contextMenuStrip.Items.Add(new ToolStripMenuItem(Resources.ID_SENDTODATABASE, AnalysisTreeView.Database, new EventHandler(onSendSolutionToDatabase))); } string message = string.Format(Resources.ID_GENERATEREPORTHTML, nodeTag.SelSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.HTML, new EventHandler(onAnalysisReportHTML))); message = string.Format(Resources.ID_GENERATEREPORTMSWORD, nodeTag.SelSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.WORD, new EventHandler(onAnalysisReportMSWord))); message = string.Format(Resources.ID_GENERATEREPORTPDF, nodeTag.SelSolution.Name); if (nodeTag.CasePalletAnalysis.IsBoxAnalysis && Settings.Default.ShowLogConsole) { message = string.Format(Resources.ID_GENERATECOLLADA, nodeTag.SelSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.COLLADAWEBGL, new EventHandler(onAnalysisExportCollada))); } } else if (nodeTag.Type == NodeTag.NodeType.NT_PACKPALLETANALYSISSOLUTION) { string message = string.Format(Resources.ID_GENERATEREPORTHTML, nodeTag.SelPackPalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.HTML, new EventHandler(onAnalysisReportHTML))); message = string.Format(Resources.ID_GENERATEREPORTMSWORD, nodeTag.SelPackPalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.WORD, new EventHandler(onAnalysisReportMSWord))); message = string.Format(Resources.ID_GENERATEREPORTPDF, nodeTag.SelPackPalletSolution.Name); } else if (nodeTag.Type == NodeTag.NodeType.NT_CYLINDERPALLETANALYSISSOLUTION) { contextMenuStrip.Items.Add(new ToolStripMenuItem(string.Format(Resources.ID_UNSELECTSOLUTION, nodeTag.SelCylinderPalletSolution.Solution.Title) , AnalysisTreeView.DELETE, new EventHandler(onUnselectCylinderPalletAnalysisSolution))); string message = string.Format(Resources.ID_GENERATEREPORTHTML, nodeTag.SelCylinderPalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.HTML, new EventHandler(onAnalysisReportHTML))); message = string.Format(Resources.ID_GENERATEREPORTMSWORD, nodeTag.SelCylinderPalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.WORD, new EventHandler(onAnalysisReportMSWord))); } else if (nodeTag.Type == NodeTag.NodeType.NT_HCYLINDERPALLETANALYSISSOLUTION) { contextMenuStrip.Items.Add(new ToolStripMenuItem(string.Format(Resources.ID_UNSELECTSOLUTION, nodeTag.SelHCylinderPalletSolution.Solution.Title) , AnalysisTreeView.DELETE, new EventHandler(onUnselectHCylinderPalletAnalysisSolution))); string message = string.Format(Resources.ID_GENERATEREPORTHTML, nodeTag.SelHCylinderPalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.HTML, new EventHandler(onAnalysisReportHTML))); message = string.Format(Resources.ID_GENERATEREPORTMSWORD, nodeTag.SelHCylinderPalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.WORD, new EventHandler(onAnalysisReportMSWord))); } else if (nodeTag.Type == NodeTag.NodeType.NT_BOXCASEANALYSISSOLUTION) { contextMenuStrip.Items.Add(new ToolStripMenuItem(string.Format(Resources.ID_UNSELECTSOLUTION, nodeTag.SelBoxCaseSolution.Solution.Title), AnalysisTreeView.DELETE, new EventHandler(onUnselectBoxCaseAnalysisSolution))); string message = string.Format(Resources.ID_GENERATEREPORTHTML, nodeTag.SelBoxCaseSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.HTML, new EventHandler(onAnalysisReportHTML))); message = string.Format(Resources.ID_GENERATEREPORTMSWORD, nodeTag.SelBoxCaseSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.WORD, new EventHandler(onAnalysisReportMSWord))); } else if (nodeTag.Type == NodeTag.NodeType.NT_BOXCASEPALLETANALYSIS) { contextMenuStrip.Items.Add(new ToolStripMenuItem(string.Format(Resources.ID_EDIT, nodeTag.CaseAnalysis.Name), null, new EventHandler(onEditCaseAnalysis))); contextMenuStrip.Items.Add(new ToolStripMenuItem(string.Format(Resources.ID_DELETE, nodeTag.CaseAnalysis.Name), AnalysisTreeView.DELETE, new EventHandler(onDeleteCaseAnalysis))); } else if (nodeTag.Type == NodeTag.NodeType.NT_CASESOLUTION) { contextMenuStrip.Items.Add(new ToolStripMenuItem(string.Format(Resources.ID_UNSELECTSOLUTION, nodeTag.SelBoxCasePalletSolution.Solution.Title), AnalysisTreeView.DELETE, new EventHandler(onUnselectBoxCasePalletAnalysisSolution))); string message = string.Format(Resources.ID_GENERATEREPORTHTML, nodeTag.SelBoxCasePalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.HTML, new EventHandler(onAnalysisReportHTML))); message = string.Format(Resources.ID_GENERATEREPORTMSWORD, nodeTag.SelBoxCasePalletSolution.Name); contextMenuStrip.Items.Add(new ToolStripMenuItem(message, AnalysisTreeView.WORD, new EventHandler(onAnalysisReportMSWord))); } }