public void DoAction(ProjectNodeAction action) { if (getAllowedActions().Contains(action)) { switch (action) { case ProjectNodeAction.Open: Open(); break; case ProjectNodeAction.Delete: Delete(); break; case ProjectNodeAction.Create: Create(); break; case ProjectNodeAction.Rename: Rename(); break; default: break; } } else { throw new InvalidOperationException(action + " Is not allowed for type " + Type); } }
private void toolStripMenuItem_Click(object sender, EventArgs e) { // 🤢....🤮 ProjectNodeAction action = (ProjectNodeAction)Enum.Parse(typeof(ProjectNodeAction), (sender as ToolStripMenuItem).Text); ProjectNode projectNode = (ProjectNode)((sender as ToolStripMenuItem).Owner as ContextMenuStrip).Tag; projectNode.DoAction(action); }