private void DoDownload() { ISyncDownload download = tvProjects.SelectedNode.Tag as ISyncDownload; if (download == null) { return; } download.Download(); }
private void tvProjects_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { tvProjects.SelectedNode = e.Node; menuProject.Items.Clear(); //判斷是否可以開啟 IEditorManager editorManager = e.Node.Tag as IEditorManager; if (editorManager != null) { if (editorManager.Editors.Count == 1) { IEditable editable = editorManager.Editors[0]; ToolStripItem item = menuProject.Items.Add(editable.DocumentTitle, actImgs.Images[editable.ImageKey], cmEdit_Click); item.Tag = editable; } else if (editorManager.Editors.Count > 0) { ToolStripMenuItem menuItem = new ToolStripMenuItem("開啟"); menuProject.Items.Add(menuItem); foreach (IEditable editable in editorManager.Editors) { ToolStripItem item = menuItem.DropDownItems.Add(editable.DocumentTitle, actImgs.Images[editable.ImageKey], cmEdit_Click); item.Tag = editable; } } } //判斷是否可以改名 ToolStripMenuItem cmRename = new ToolStripMenuItem("重新命名(&N)"); this.CheckMenuItemVisiable(typeof(IRenameable), cmRename); cmRename.Click += new EventHandler(cmRename_Click); cmRename.Image = actImgs.Images["rename"]; //判斷是否可以新增 IAddable addable = e.Node.Tag as IAddable; if (addable != null) { menuProject.Items.Add(addable.TitleOfAdd, actImgs.Images["add"], cmAdd_Click); } //判斷是否可以重新整理 ToolStripMenuItem cmReload = new ToolStripMenuItem("重新整理(&R)"); this.CheckMenuItemVisiable(typeof(IReloadable), cmReload); cmReload.Click += new EventHandler(cmReload_Click); cmReload.Image = actImgs.Images["reload"]; //判斷是否可以刪除 IDeleteable deleteable = e.Node.Tag as IDeleteable; if (deleteable != null) { menuProject.Items.Add(deleteable.TitleOfDelete, actImgs.Images["delete"], cmDelete_Click); } //判斷是否可以測試 ITestable testable = e.Node.Tag as ITestable; if (testable != null) { menuProject.Items.Add(testable.TitleOfTest, actImgs.Images[testable.TestImageKey], cmTest_Click); } //判斷是否可以匯出 ToolStripMenuItem cmExport = new ToolStripMenuItem("匯出(&E)"); this.CheckMenuItemVisiable(typeof(IExportable), cmExport); cmExport.Click += new EventHandler(cmExport_Click); cmExport.Image = actImgs.Images["export"]; //判斷是否可以匯入 ToolStripMenuItem cmImport = new ToolStripMenuItem("匯入(&I)"); this.CheckMenuItemVisiable(typeof(IImportable), cmImport); cmImport.Click += new EventHandler(cmImport_Click); cmImport.Image = actImgs.Images["import"]; //判斷是否可以加入專案 IJoinProject join = e.Node.Tag as IJoinProject; if (join != null) { menuProject.Items.Add("加入專案(&J)", actImgs.Images["join"], cmJoinProject_Click); } //判斷是否可以匯入 ILeaveProject leave = e.Node.Tag as ILeaveProject; if (leave != null) { menuProject.Items.Add("從專案卸載(&L)", actImgs.Images["leave"], cmLeaveProject_Click); } //判斷是否可以上傳 ISyncUpload upload = e.Node.Tag as ISyncUpload; if (upload != null) { menuProject.Items.Add("同步至伺服器(&U)", actImgs.Images["upload"], cmUpload_Click); } //判斷是否可以下載 ISyncDownload download = e.Node.Tag as ISyncDownload; if (download != null) { menuProject.Items.Add("自伺服器同步(&D)", actImgs.Images["download"], cmDownload_Click); } //判斷是否可以設定 ISetupable setup = e.Node.Tag as ISetupable; if (setup != null) { menuProject.Items.Add(setup.SetupTitle + "(&S)", actImgs.Images["setup"], cmSetup_Click); } //判斷是否可以佈署 IDeployable deploy = e.Node.Tag as IDeployable; if (deploy != null) { menuProject.Items.Add("佈署(&L)", actImgs.Images["deploy"], cmDeploy_Click); } //判斷是否可以佈署到實體 IDeployToPhysical deployToPhysical = e.Node.Tag as IDeployToPhysical; if (deployToPhysical != null) { menuProject.Items.Add("佈署到實體(&P)", actImgs.Images["deployToPhysical"], tsbtnDeployToPhysical_Click); } //判斷是否可以從實體 Service 載入 IImportFromPhysical importFromPhysical = e.Node.Tag as IImportFromPhysical; if (importFromPhysical != null) { menuProject.Items.Add("實體 Service 載入(&X)", actImgs.Images["importFromPhysical"], tsbtnImportFromPhysical_Click); } menuProject.Show(e.Location); } }