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);
        }