private void _ProjectTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (!IsProjectOpen())
            {
                return;
            }

            _ProjectTree.SelectedNode = e.Node;

            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                ContextMenuStrip popupMenu = new ContextMenuStrip();
                popupMenu.ItemClicked += new ToolStripItemClickedEventHandler(ProjectTreeView_MouseClick_PopupMenu_ItemClicked);

                ProjectTreeNode.BasicNodeTypes basicNodeType = ((ProjectTreeNode)e.Node).BasicNodeType;
                ProjectTreeNode.NodeTypes      nodeType      = ((ProjectTreeNode)e.Node).NodeType;

                if (basicNodeType == ProjectTreeNode.BasicNodeTypes.Project || basicNodeType == ProjectTreeNode.BasicNodeTypes.Folder)
                {
                    ToolStripMenuItem addNewMenu = (ToolStripMenuItem)(popupMenu.Items.Add("Add New", TransparentImage(Properties.Resources.TreeCodeFile.ToBitmap())));
                    addNewMenu.DropDownItemClicked += new ToolStripItemClickedEventHandler(ProjectTreeView_MouseClick_PopupMenu_ItemClicked);

                    addNewMenu.DropDownItems.Add("Code File", TransparentImage(Properties.Resources.TreeCodeFile.ToBitmap())).Tag = e.Node;
                    addNewMenu.DropDownItems.Add("HTML File", TransparentImage(Properties.Resources.TreeHTMLFile.ToBitmap())).Tag = e.Node;
                    addNewMenu.DropDownItems.Add("Folder", TransparentImage(Properties.Resources.TreeFolderFile.ToBitmap())).Tag  = e.Node;

                    popupMenu.Items.Add("Add Existing Folder", TransparentImage(Properties.Resources.TreeFolderFile.ToBitmap())).Tag = e.Node;
                    popupMenu.Items.Add("Add Existing File", TransparentImage(Properties.Resources.TreeUnknownFile.ToBitmap())).Tag  = e.Node;
                    popupMenu.Items.Add("-");
                    popupMenu.Items.Add("Explore Folder", TransparentImage(Properties.Resources.TreeExplore.ToBitmap())).Tag = e.Node;
                }
                else if (basicNodeType == ProjectTreeNode.BasicNodeTypes.File)
                {
                    if (nodeType == ProjectTreeNode.NodeTypes.CodeFile || nodeType == ProjectTreeNode.NodeTypes.CodeFileDefault)
                    {
                        popupMenu.Items.Add("Set as startup object", TransparentImage(Properties.Resources.ToolRun)).Tag = e.Node;
                    }
                }
                else if (basicNodeType == ProjectTreeNode.BasicNodeTypes.Invalid)
                {
                    popupMenu.Items.Add("Remove", TransparentImage(Properties.Resources.ToolRemove)).Tag = e.Node;
                }

                if (basicNodeType != ProjectTreeNode.BasicNodeTypes.Invalid && basicNodeType != ProjectTreeNode.BasicNodeTypes.Project)
                {
                    if (popupMenu.Items.Count > 0)
                    {
                        popupMenu.Items.Add("-");
                    }
                    popupMenu.Items.Add("Rename").Tag = e.Node;
                    popupMenu.Items.Add("Remove", TransparentImage(Properties.Resources.ToolRemove)).Tag = e.Node;
                    popupMenu.Items.Add("Delete", TransparentImage(Properties.Resources.ToolDelete)).Tag = e.Node;
                }

                popupMenu.Show(_ProjectTree, e.Location);
            }
        }
        public ProjectTreeNode AddNode(string text, ProjectTreeNode.NodeTypes nodeType)
        {
            ProjectTreeNode node = new ProjectTreeNode();

            node.NodeType = nodeType;
            node.SetImage(nodeType);
            node.Text = text;
            this.Nodes.Add(node);
            return(node);
        }
        static public string GetNodeTypeImageKey(ProjectTreeNode.NodeTypes nodeType)
        {
            string typeString = nodeType.ToString();

            return(typeString);
        }