コード例 #1
0
ファイル: SolutionBrowser.cs プロジェクト: thecodertom/oside
    private ToolStripMenuItem getRightClickItem_Add_NewItem()
    {
        return(new ToolStripMenuItem("New item", Icons.GetBitmap("menu.newitem", 16), delegate(object sender, EventArgs e) {
            //get the currently selected directory
            ProjectEntity folder = GetSelectedProjectEntity();
            if (folder == null)
            {
                folder = GetSelectedProject().Root;
            }
            ProjectDirectory dir = (ProjectDirectory)folder;

            #region prompt the user for a filename
            string filename = null;
            while (true)
            {
                filename = AddProjectItem.Show();
                if (filename == null)
                {
                    break;
                }

                //does the file already exist?
                if (dir.EntityExists(filename))
                {
                    MessageBox.Show("The name \"" + filename + "\" is already in use in directory \"" + dir.FullName + "\"",
                                    "Error",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    continue;
                }
                break;
            }
            if (filename == null)
            {
                return;
            }
            #endregion

            //create the file entry
            ProjectFile file = dir.CreateFile(filename);

            //update the tree
            TreeNode node = findNodeByTag(dir.IsRoot ? (object)dir.Project : (object)dir);
            object st = PushTreeState();
            IndexDirectory(dir, node);
            PopTreeState(st);
            node.Expand();
        }));
    }