/// <summary> /// Drop MongoDB /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DelMongoDBToolStripMenuItem_Click(object sender, EventArgs e) { var strTitle = "Drop Database"; var strMessage = "Are you really want to Drop current Database?"; if (!GuiConfig.IsUseDefaultLanguage) { strTitle = GuiConfig.GetText(TextType.DropDataBase); strMessage = GuiConfig.GetText(TextType.DropDataBaseConfirm); } if (!MyMessageBox.ShowConfirm(strTitle, strMessage)) { return; } var strTagPrefix = TagInfo.GetTagPath(ConstMgr.CollectionTag + ":" + RuntimeMongoDbContext.SelectTagData); var strDbName = strTagPrefix.Split("/".ToCharArray())[(int)EnumMgr.PathLevel.Database]; if (trvsrvlst.SelectedNode == null) { trvsrvlst.SelectedNode = null; } var rtnResult = Operater.DropDatabase(RuntimeMongoDbContext.SelectObjectTag, strDbName); if (string.IsNullOrEmpty(rtnResult)) { RefreshToolStripMenuItem_Click(sender, e); //关闭所有的相关视图 MultiTabManger.SelectObjectTagPrefixDeleted(strTagPrefix); } else { MyMessageBox.ShowMessage("Error", "Error", rtnResult, true); } }
/// <summary> /// Load Form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmMain_Load(object sender, EventArgs e) { //加载到菜单 PlugIn.LoadPlugInMenuItem(plugInToolStripMenuItem); //禁用操作 DisableAllOpr(); //Set Tool bar button enable SetToolBarEnabled(); //Open ConnectionManagement Form UIAssistant.OpenModalForm(new frmConnect(), true, true); //多文档管理器的设定 var parentMenuItems = new List <ToolStripMenuItem> { CollectionToolStripMenuItem, JavaScriptStripMenuItem }; MultiTabManger.Init(tabView, parentMenuItems); //MultiTab固定项目的初始化 var serverStatusCtl = new CtlServerStatus() { IsFixedItem = true, SelectObjectTag = "[ServerStatus]", BindingMenu = StatusToolStripMenuItem }; MultiTabManger.AddView(serverStatusCtl, GuiConfig.IsUseDefaultLanguage ? "Status" : GuiConfig.GetText("MainMenu.MangtStatus"), string.Empty); //刷新 RefreshToolStripMenuItem_Click(sender, e); serverStatusCtl.RefreshGui(); MultiTabManger.SelectTab("[ServerStatus]"); //委托设置 trvsrvlst.NodeMouseClick += trvsrvlst_NodeMouseClick; trvsrvlst.NodeMouseDoubleClick += (x, y) => ViewDataObj(); ViewDataToolStripMenuItem.Click += (x, y) => ViewDataObj(); trvsrvlst.KeyDown += trvsrvlst_KeyDown; tabView.SelectedIndexChanged += tabView_SelectedIndexChanged; //CommandHelper.RunCommandComplete += CommandLog; //长时间操作时候,实时提示进度在状态栏中 lblAction.Text = string.Empty; MongoHelper.ActionDone += (x, y) => { //1.lblAction 没有InvokeRequired //2.DoEvents必须 lblAction.Text = y.Message; Application.DoEvents(); }; if (trvsrvlst.Nodes.Count > 0) { trvsrvlst.SelectedNode = trvsrvlst.Nodes[0]; } }
/// <summary> /// Load Form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmMain_Load(object sender, EventArgs e) { //加载到菜单 PlugIn.LoadPlugInMenuItem(plugInToolStripMenuItem); //禁用操作 DisableAllOpr(); //Set Tool bar button enable SetToolBarEnabled(); //Open ConnectionManagement Form Utility.OpenForm(new FrmConnect(), true, true); //多文档管理器的设定 var parentMenuItems = new List <ToolStripMenuItem>(); parentMenuItems.Add(CollectionToolStripMenuItem); parentMenuItems.Add(JavaScriptStripMenuItem); MultiTabManger.Init(tabView, parentMenuItems); //MultiTab固定项目的初始化 var serverStatusCtl = new CtlServerStatus(); serverStatusCtl.IsFixedItem = true; serverStatusCtl.SelectObjectTag = "[ServerStatus]"; serverStatusCtl.BindingMenu = StatusToolStripMenuItem; MultiTabManger.AddView(serverStatusCtl, "Status"); var ctlShellCommandEditor = new CtlJsEditor(); ctlShellCommandEditor.IsFixedItem = true; ctlShellCommandEditor.SelectObjectTag = "[ShellCommand]"; ctlShellCommandEditor.BindingMenu = commandShellToolStripMenuItem; MultiTabManger.AddView(ctlShellCommandEditor, "ShellCommand"); //刷新 RefreshToolStripMenuItem_Click(sender, e); serverStatusCtl.RefreshGui(); MultiTabManger.SelectTab("[ServerStatus]"); //委托设置 trvsrvlst.NodeMouseClick += trvsrvlst_NodeMouseClick; trvsrvlst.NodeMouseDoubleClick += (x, y) => ViewDataObj(); ViewDataToolStripMenuItem.Click += (x, y) => ViewDataObj(); trvsrvlst.KeyDown += trvsrvlst_KeyDown; tabView.SelectedIndexChanged += tabView_SelectedIndexChanged; //CommandHelper.RunCommandComplete += CommandLog; //长时间操作时候,实时提示进度在状态栏中 lblAction.Text = string.Empty; MongoHelper.ActionDone += (x, y) => { //1.lblAction 没有InvokeRequired //2.DoEvents必须 lblAction.Text = y.Message; Application.DoEvents(); }; }
/// <summary> /// 删除Mongo数据集 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DelMongoCollectionToolStripMenuItem_Click(object sender, EventArgs e) { var strDelTag = trvsrvlst.SelectedNode.Tag.ToString(); if (!Collection.DropCollection(trvsrvlst.SelectedNode)) { return; } MultiTabManger.SelectObjectTagDeleted(strDelTag); trvsrvlst.SelectedNode.Parent.Nodes.Remove(trvsrvlst.SelectedNode); DisableAllOpr(); }
/// <summary> /// Create a DataView Tab /// </summary> private void ViewDataRecord() { //由于Collection 和 Document 都可以触发这个事件,所以,先把Tag以前的标题头去掉 //Collectiong:XXXX 和 Document:XXXX 都统一成 XXXX var dataKey = RuntimeMongoDbContext.SelectTagData; if (MultiTabManger.IsExist(dataKey)) { MultiTabManger.SelectTab(dataKey); return; } var mDataViewInfo = new DataViewInfo { strCollectionPath = RuntimeMongoDbContext.SelectObjectTag, IsReadOnly = RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly, }; CtlDataView dataViewctl; switch (RuntimeMongoDbContext.SelectTagType) { case ConstMgr.GridFileSystemTag: dataViewctl = new CtlGfsView(mDataViewInfo) { AllowDrop = true }; break; case ConstMgr.UserListTag: dataViewctl = new CtlUserView(mDataViewInfo); break; case ConstMgr.ViewTag: mDataViewInfo.IsView = true; dataViewctl = new CtlDocumentView(mDataViewInfo); break; default: dataViewctl = new CtlDocumentView(mDataViewInfo); break; } dataViewctl.mDataViewInfo = mDataViewInfo; dataViewctl.SelectObjectTag = RuntimeMongoDbContext.SelectObjectTag; dataViewctl.ParentMenu = CollectionToolStripMenuItem; var TabTitle = UiHelper.GetShowName(RuntimeMongoDbContext.GetCurrentDataBaseName(), RuntimeMongoDbContext.GetCurrentCollectionName()); MultiTabManger.AddView(dataViewctl, TabTitle, RuntimeMongoDbContext.SelectTagType); }
/// <summary> /// Disconnect /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DisconnectToolStripMenuItem_Click(object sender, EventArgs e) { if (RuntimeMongoDbContext.SelectTagType == ConstMgr.ConnectionExceptionTag) { return; } //关闭相关的Tab var connectionTag = trvsrvlst.SelectedNode.Tag.ToString(); MultiTabManger.SelectObjectTagPrefixDeleted(ConstMgr.CollectionTag + ":" + TagInfo.GetTagPath(connectionTag)); RuntimeMongoDbContext.RemoveConnectionConfig( RuntimeMongoDbContext.CurrentMongoConnectionconfig.ConnectionName); trvsrvlst.Nodes.Remove(trvsrvlst.SelectedNode); RefreshToolStripMenuItem_Click(sender, e); }
/// <summary> /// Create a DataView Tab /// </summary> private void ViewDataRecord() { //由于Collection 和 Document 都可以触发这个事件,所以,先把Tag以前的标题头去掉 //Collectiong:XXXX 和 Document:XXXX 都统一成 XXXX var dataKey = RuntimeMongoDbContext.SelectTagData; if (MultiTabManger.IsExist(dataKey)) { MultiTabManger.SelectTab(dataKey); return; } var mDataViewInfo = new DataViewInfo { StrDbTag = RuntimeMongoDbContext.SelectObjectTag, IsUseFilter = false, IsReadOnly = RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly, MDataFilter = new DataFilter() }; CtlDataView dataViewctl; switch (RuntimeMongoDbContext.SelectTagType) { case ConstMgr.GridFileSystemTag: dataViewctl = new CtlGfsView(mDataViewInfo); break; case ConstMgr.UserListTag: dataViewctl = new CtlUserView(mDataViewInfo); break; case ConstMgr.ViewTag: mDataViewInfo.IsView = true; dataViewctl = new CtlDocumentView(mDataViewInfo); break; default: dataViewctl = new CtlDocumentView(mDataViewInfo); break; } dataViewctl.MDataViewInfo = mDataViewInfo; dataViewctl.SelectObjectTag = RuntimeMongoDbContext.SelectObjectTag; dataViewctl.ParentMenu = CollectionToolStripMenuItem; MultiTabManger.AddView(dataViewctl, RuntimeMongoDbContext.GetCurrentCollectionName()); }
/// <summary> /// View Js /// </summary> private void ViewJavascript() { var tagArray = RuntimeMongoDbContext.SelectTagData.Split("/".ToCharArray()); var jsName = tagArray[(int)EnumMgr.PathLevel.Document]; if (MultiTabManger.IsExist(RuntimeMongoDbContext.SelectTagData)) { MultiTabManger.SelectTab(RuntimeMongoDbContext.SelectTagData); return; } var jsEditor = new CtlJsEditor { StrDBtag = RuntimeMongoDbContext.SelectObjectTag }; var dataTab = new TabPage(jsName) { Tag = RuntimeMongoDbContext.SelectObjectTag, ImageIndex = 1 }; jsEditor.JsName = jsName; dataTab.Controls.Add(jsEditor); jsEditor.Dock = DockStyle.Fill; tabView.Controls.Add(dataTab); var dataMenuItem = new ToolStripMenuItem(jsName) { Tag = dataTab.Tag, Image = GetSystemIcon.TabViewImage.Images[1] }; JavaScriptStripMenuItem.DropDownItems.Add(dataMenuItem); dataMenuItem.Click += (x, y) => tabView.SelectTab(dataTab); //MultiTabManger.AddTabInfo(RuntimeMongoDbContext.SelectTagData, null, dataTab,string.Empty); jsEditor.CloseTab += (x, y) => { tabView.Controls.Remove(dataTab); //MultiTabManger.RemoveTabInfo(RuntimeMongoDbContext.SelectTagData); JavaScriptStripMenuItem.DropDownItems.Remove(dataMenuItem); }; tabView.SelectTab(dataTab); //} }
/// <summary> /// 重命名数据集 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void RenameCollectionToolStripMenuItem_Click(object sender, EventArgs e) { var strOldNodeTag = trvsrvlst.SelectedNode.Tag.ToString(); var strNewCollectionName = Collection.RenameCollection(trvsrvlst.SelectedNode); if (string.IsNullOrEmpty(strNewCollectionName)) { return; } var strNewNodeTag = TagInfo.ChangeName(trvsrvlst.SelectedNode.Tag.ToString(), strNewCollectionName); MultiTabManger.SelectObjectTagChanged(strOldNodeTag, strNewNodeTag, strNewCollectionName); DisableAllOpr(); RuntimeMongoDbContext.SelectObjectTag = strNewNodeTag; trvsrvlst.SelectedNode.Text = strNewCollectionName; trvsrvlst.SelectedNode.Tag = strNewNodeTag; trvsrvlst.SelectedNode.ToolTipText = strNewCollectionName + Environment.NewLine; trvsrvlst.SelectedNode.ToolTipText += "IsCapped:" + RuntimeMongoDbContext.GetCurrentCollectionIsCapped(); statusStripMain.Items[0].Text = GuiConfig.GetText("selected Collection", TextType.SelectedCollection) + ":" + RuntimeMongoDbContext.SelectTagData; }
/// <summary> /// Refresh View /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ViewRefreshToolStripMenuItem_Click(object sender, EventArgs e) { MultiTabManger.RefreshSelectTab(); }