public void PopulateMenuStrip() { mMenuStrip.Items.Clear(); if (SelectedNode != null) { // InstanceSave selected if (SelectedState.Self.SelectedInstance != null) { mMenuStrip.Items.Add(mGoToDefinition); } // ScreenSave or ComponentSave else if (SelectedState.Self.SelectedScreen != null || SelectedState.Self.SelectedComponent != null) { mMenuStrip.Items.Add("View in explorer", null, HandleViewInExplorer); mMenuStrip.Items.Add("View References", null, HandleViewReferences); mMenuStrip.Items.Add("-"); mAddInstance.Text = "Add object to " + SelectedState.Self.SelectedElement.Name; mMenuStrip.Items.Add(mAddInstance); mMenuStrip.Items.Add(mSaveObject); if (SelectedState.Self.SelectedScreen != null) { duplicateElement.Text = $"Duplicate {SelectedState.Self.SelectedScreen.Name}"; } else { duplicateElement.Text = $"Duplicate {SelectedState.Self.SelectedComponent.Name}"; } mMenuStrip.Items.Add(duplicateElement); mMenuStrip.Items.Add("-"); mDeleteObject.Text = "Delete " + SelectedState.Self.SelectedElement.ToString(); mMenuStrip.Items.Add(mDeleteObject); } else if (SelectedState.Self.SelectedBehavior != null) { mDeleteObject.Text = "Delete " + SelectedState.Self.SelectedBehavior.ToString(); mMenuStrip.Items.Add(mDeleteObject); } else if (SelectedState.Self.SelectedStandardElement != null) { mMenuStrip.Items.Add(mSaveObject); } else if (SelectedNode.IsTopScreenContainerTreeNode() || SelectedNode.IsScreensFolderTreeNode()) { mMenuStrip.Items.Add(mAddScreen); mMenuStrip.Items.Add(mImportScreen); mMenuStrip.Items.Add(mAddFolder); mMenuStrip.Items.Add("View in explorer", null, HandleViewInExplorer); if (SelectedNode.IsScreensFolderTreeNode()) { mMenuStrip.Items.Add("Delete Folder", null, HandleDeleteFolder); mMenuStrip.Items.Add("Rename Folder", null, HandleRenameFolder); } } else if (SelectedNode.IsTopComponentContainerTreeNode() || SelectedNode.IsComponentsFolderTreeNode()) { mMenuStrip.Items.Add(mAddComponent); mMenuStrip.Items.Add(mImportComponent); mMenuStrip.Items.Add(mAddFolder); mMenuStrip.Items.Add("View in explorer", null, HandleViewInExplorer); if (SelectedNode.IsComponentsFolderTreeNode()) { mMenuStrip.Items.Add("Delete Folder", null, HandleDeleteFolder); mMenuStrip.Items.Add("Rename Folder", null, HandleRenameFolder); } } else if (SelectedNode.IsTopBehaviorTreeNode()) { mMenuStrip.Items.Add("Add Behavior", null, HandleAddBehavior); } } }