Esempio n. 1
0
        private void JsEditor_Load(object sender, EventArgs e)
        {
            if (DesignMode)
            {
                return;
            }
            GuiConfig.Translateform(Controls);
            SaveStripButton.Image = Resources.save.ToBitmap();
//            if (!string.IsNullOrEmpty(JsName))
//            {
//                txtEditJavaScript.Text = Operater.LoadJavascript(JsName, RuntimeMongoDbContext.GetCurrentCollection());
//                txtEditJavaScript.Select(0, 0);
//            }
//            txtEditJavaScript.GotFocus += (x, y) => { RuntimeMongoDbContext.SelectObjectTag = StrDBtag; };


            if (!string.IsNullOrEmpty(JsName))
            {
                txtEditJavaScript.Text = Operater.LoadJavascript(JsName, RuntimeMongoDbContext.GetCurrentCollection());
            }
        }
Esempio n. 2
0
        /// <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;
        }
Esempio n. 3
0
 private static void ExceptionHandle(Exception ex,
                                     List <TreeNode> trvMongoDb,
                                     TreeNode connectionNode, string mongoConnKey)
 {
     if (!GuiConfig.IsUseDefaultLanguage)
     {
         connectionNode.Text += "[" +
                                GuiConfig.GetText(
             TextType.ExceptionNotConnected) + "]";
         Utility.ExceptionDeal(ex,
                               GuiConfig.GetText(TextType.ExceptionNotConnected),
                               "Unknown Exception");
     }
     else
     {
         connectionNode.Text += "[Exception]";
         Utility.ExceptionDeal(ex, "Not Connected", "Unknown Exception");
     }
     connectionNode.Tag = ConstMgr.ConnectionExceptionTag + ":" + mongoConnKey;
     trvMongoDb.Add(connectionNode);
 }
Esempio n. 4
0
        /// <summary>
        ///     加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmProfilling_Load(object sender, EventArgs e)
        {
            GuiConfig.Translateform(this);
            cmbProfillingLv.Items.Add("0-No Logging");
            cmbProfillingLv.Items.Add("1-Log Slow Operations");
            cmbProfillingLv.Items.Add("2-Log All Operations");
            cmbProfillingLv.SelectedIndex = (int)RuntimeMongoDbContext.GetCurrentDataBase().GetProfilingLevel().Level;
            switch (cmbProfillingLv.SelectedIndex)
            {
            case 1:
                NumTime.Enabled = true;
                NumTime.Value   =
                    (decimal)RuntimeMongoDbContext.GetCurrentDataBase().GetProfilingLevel().Slow.TotalSeconds *
                    1000;
                break;

            default:
                NumTime.Enabled = false;
                break;
            }
        }
    /**
     * 开启面板
     * @param key 面板唯一标识
     * @param param 参数
     *
     */
    public IBaseView open(int key, params object[] param)
    {
        IBaseView view = this.getView(key);

        if (view == null)
        {
            return(null);
        }

        if (view.isShow())
        {
            view.open(view, param);
            view.setViewTop();
            return(view);
        }

        if (view.isInit())
        {
            view.addToParent();
            view.open(view, param);
        }
        else
        {
            GuiConfig config = GuiConfig.GetConfig(key);
            if (config == null)
            {
                return(null);
            }
            else
            {
                this.setViewOpen(view, param, key);
            }
        }

        this.openUIPlaySound(key);
        this._opens.Add(key);
        this.setOpenDepth();
        view.setViewTop();
        return(view);
    }
Esempio n. 6
0
        /// <summary>
        ///     建立数据库
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CreateMongoDBToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //新版本如果数据库没有数据集,则数据库将被回收?
            string strDbName = MyMessageBox.ShowInput(
                GuiConfig.GetText("Please Input DataBaseName:", "CreateNewDataBaseInput"),
                GuiConfig.GetText("Create Database", "CreateNewDataBase"));

            if (string.IsNullOrEmpty(strDbName))
            {
                return;
            }
            string strInitColName = MyMessageBox.ShowInput(
                GuiConfig.GetText("Please Input Init CollectionName:", "CreateNewDataBaseInitCollection"),
                GuiConfig.GetText("Create Database", "CreateNewDataBase"));
            string errMessage;

            if (Operater.IsDatabaseNameValid(strDbName, out errMessage))
            {
                try
                {
                    var strRusult = Operater.CreateDataBaseWithInitCollection(strDbName, strInitColName);
                    if (string.IsNullOrEmpty(strRusult))
                    {
                        RefreshToolStripMenuItem_Click(sender, e);
                    }
                    else
                    {
                        MyMessageBox.ShowMessage("Error", "Create MongoDatabase", strRusult, true);
                    }
                }
                catch (ArgumentException ex)
                {
                    Utility.ExceptionDeal(ex, "Create MongoDatabase", "Argument Exception");
                }
            }
            else
            {
                MyMessageBox.ShowMessage("Create MongoDatabase", "Argument Exception", errMessage, true);
            }
        }
Esempio n. 7
0
 public CtlFieldInfo()
 {
     InitializeComponent();
     if (!GuiConfig.IsUseDefaultLanguage)
     {
         lblFieldName.Text =
             GuiConfig.GetText(TextType.CtlIndexCreateIndex);
         cmbSort.Items.Clear();
         cmbSort.Items.Add(GuiConfig.GetText(TextType.IndexNoSort));
         cmbSort.Items.Add(GuiConfig.GetText(TextType.IndexAsce));
         cmbSort.Items.Add(GuiConfig.GetText(TextType.IndexDesc));
         chkIsShow.Text =
             GuiConfig.GetText(TextType.CtlFieldInfoShow);
     }
     else
     {
         cmbSort.Items.Clear();
         cmbSort.Items.Add("None Sort");
         cmbSort.Items.Add("Asce");
         cmbSort.Items.Add("Desc");
     }
 }
Esempio n. 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmServerMonitor_Load(object sender, EventArgs e)
        {
            //填充分组
            GuiConfig.Translateform(this);
            UIAssistant.FillComberWithArray(cmbCatalog, SystemStatus.GetCatalog().ToArray());
            //自定义分组
            cmbCatalog.Items.Add("Custom");

            cmbCatalog.SelectedIndex = 0;
            if (!GuiConfig.IsMono)
            {
                Icon = GetSystemIcon.ConvertImgToIcon(Resources.KeyInfo);
            }
            _mTime = new Timer {
                Interval = RefreshInterval * 1000
            };
            NumTimeInterval.Value = RefreshInterval;
            _mTime.Tick          += SetValue;
            SetValue(null, null);
            FormClosing += (x, y) => _mTime.Stop();
            _mTime.Start();
        }
Esempio n. 9
0
 private static string MongoConnectionExceptionHandle(MongoConnectionException ex,
                                                      List <TreeNode> trvMongoDb,
                                                      TreeNode connectionNode, string mongoConnKey)
 {
     //暂时不处理任何异常,简单跳过
     //无法连接的理由:
     //1.服务器没有启动
     //2.认证模式不正确
     if (!GuiConfig.IsUseDefaultLanguage)
     {
         connectionNode.Text += "[" + GuiConfig.GetText("ExceptionNotConnected") + "]";
         Utility.ExceptionDeal(ex, GuiConfig.GetText("ExceptionNotConnected"), GuiConfig.GetText("ExceptionNotConnectedNote"));
     }
     else
     {
         connectionNode.Text += "[Exception]";
         Utility.ExceptionDeal(ex, "Not Connected", "Mongo Server may not Startup or Auth Mode is not correct");
     }
     connectionNode.Tag = ConstMgr.ConnectionExceptionTag + ":" + mongoConnKey;
     trvMongoDb.Add(connectionNode);
     return(mongoConnKey);
 }
Esempio n. 10
0
        private void button5_Click(object sender, EventArgs e)
        {
            GuiConfig guiConfig = new GuiConfig();

            guiConfig.configs = new List <NodeConfig>();

            foreach (ListViewItem item in nodeList.Items)
            {
                NodeConfig config   = (NodeConfig)item.Tag;
                var        pingItem = item.SubItems[item.SubItems.Count - 1];

                try
                {
                    int ping = int.Parse(pingItem.Text);
                    guiConfig.configs.Add(config);
                }
                catch (Exception)
                {
                    // do nothing
                }
            }

            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Filter   = "Config|*.json";
            saveFileDialog1.Title    = "Save node config";
            saveFileDialog1.FileName = "gui-config.json";
            saveFileDialog1.ShowDialog();

            if (saveFileDialog1.FileName != "")
            {
                using (StreamWriter file = File.CreateText(saveFileDialog1.FileName))
                {
                    JsonSerializer serializer = new JsonSerializer();
                    serializer.Formatting = Formatting.Indented;
                    serializer.Serialize(file, guiConfig);
                }
            }
        }
Esempio n. 11
0
        /// <summary>
        ///     复制菜单项目
        /// </summary>
        /// <param name="orgMenuItem">原始的菜单</param>
        /// <returns>克隆的菜单</returns>
        public static ToolStripMenuItem Clone(this ToolStripMenuItem orgMenuItem)
        {
            var cloneMenuItem = new ToolStripMenuItem();
            //!!!typeof的参数必须是ToolStripMenuItem的基类!!!如果使用Control则不能取到值!!!
            //感谢CSDN网友beargo在帖子【如何获取事件已定制方法名?】里面的提示,网上的例子没有说明这个问题
            //坑爹啊。。。。。。。。
            var list = GetObjectEventList(orgMenuItem, "EventClick", typeof(ToolStripItem));

//            if (!SystemConfig.MonoMode)
//            {
            //悲催MONO不支持
            if (list != null && list[0] != null)
            {
                try
                {
                    cloneMenuItem.Click += (x, y) => list[0].DynamicInvoke(x, y);
                }
                catch (Exception)
                {
                    //Utility.ExceptionDeal(ex, cloneMenuItem.Text);
                }
            }
//            }
            cloneMenuItem.Text = orgMenuItem.Text;
            if (GuiConfig.IsMono)
            {
                cloneMenuItem.Font = GuiConfig.GetMonoFont(cloneMenuItem.Font);
            }
            cloneMenuItem.Enabled         = orgMenuItem.Enabled;
            cloneMenuItem.BackgroundImage = orgMenuItem.BackgroundImage;
            cloneMenuItem.Image           = orgMenuItem.Image;
            //子菜单的复制
            foreach (ToolStripMenuItem item in orgMenuItem.DropDownItems)
            {
                cloneMenuItem.DropDownItems.Add(item.Clone());
            }
            return(cloneMenuItem);
        }
Esempio n. 12
0
 /// <summary>
 ///     切换Tab的时候,必须切换当前对象
 /// </summary>
 public FrmMain()
 {
     InitializeComponent();
     GetSystemIcon.InitMainTreeImage();
     GetSystemIcon.InitTabViewImage();
     trvsrvlst.ImageList = GetSystemIcon.MainTreeImage;
     tabView.ImageList   = GetSystemIcon.TabViewImage;
     SetMenuImage();
     GuiConfig.Translateform(this);
     if (!GuiConfig.IsUseDefaultLanguage)
     {
         //其他控件
         statusStripMain.Items[0].Text = GuiConfig.GetText(TextType.MainStatusBarTextReady);
     }
     //Init ToolBar
     InitToolBar();
     Text += "  " + SystemManager.Version;
     Icon  = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
     if (SystemManager.MonoMode)
     {
         Text += " MONO";
     }
 }
Esempio n. 13
0
 /// <summary>
 ///     刷新
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void RefreshToolStripMenuItem_Click(object sender, EventArgs e)
 {
     DisableAllOpr();
     RefreshToolStripMenuItem.Enabled = false;
     RefreshToolStripButton.Enabled   = false;
     try
     {
         var connectionTreeNodes = UiHelper.GetConnectionNodes();
         trvsrvlst.Nodes.Clear();
         foreach (var element in connectionTreeNodes)
         {
             trvsrvlst.Nodes.Add(element);
         }
     }
     catch (Exception)
     {
         trvsrvlst.Nodes.Clear();
         trvsrvlst.Nodes.Add("丢失与数据库的连接!");
     }
     RefreshToolStripMenuItem.Enabled = true;
     RefreshToolStripButton.Enabled   = true;
     statusStripMain.Items[0].Text    = GuiConfig.GetText("Ready", TextType.MainStatusBarTextReady);
 }
Esempio n. 14
0
 /// <summary>
 ///     View Hanlder
 /// </summary>
 /// <param name="e"></param>
 private void ViewHandler(TreeNodeMouseClickEventArgs e)
 {
     statusStripMain.Items[0].Text = GuiConfig.GetText("Selected View", "SelectedView") + ":" + e.Node.Text;
     DelMongoCollectionToolStripMenuItem.Enabled = true;
     if (e.Button == MouseButtons.Right)
     {
         contextMenuStripMain = new ContextMenuStrip();
         contextMenuStripMain.Items.Add(DelMongoCollectionToolStripMenuItem.Clone());
         var ViewInfoToolStripMenuItem = new ToolStripMenuItem("ViewInfo");
         ViewInfoToolStripMenuItem.Click += ViewInfoToolStripMenuItem_Click;
         contextMenuStripMain.Items.Add(ViewInfoToolStripMenuItem);
         e.Node.ContextMenuStrip = contextMenuStripMain;
         contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location));
     }
     //PlugIn
     foreach (ToolStripMenuItem item in plugInToolStripMenuItem.DropDownItems)
     {
         if (PlugIn.PlugInList[item.Tag.ToString()].RunLv == PlugInBase.PathLv.CollectionLv)
         {
             item.Enabled = true;
         }
     }
 }
Esempio n. 15
0
        /// <summary>
        ///     加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ctlMongod_Load(object sender, EventArgs e)
        {
            ctlFilePickerLogPath.FileFilter   = Utility.LogFilter;
            ctllogLvT.LoglvChanged           += ctllogLvT_LoglvChanged;
            ctlFilePickerLogPath.PathChanged += ctlFilePickerT_PathChanged;
            ctlFilePickerDBPath.PathChanged  += ctlFilePickerDBPath_PathChanged;

            if (DesignMode)
            {
                return;
            }

            if (!GuiConfig.IsUseDefaultLanguage)
            {
                lblPort.Text   = GuiConfig.GetText("Common.Port");
                lblSource.Text =
                    GuiConfig.GetText(
                        TextType.DosCommandTabDeploySlaveSource);
                chkAuth.Text =
                    GuiConfig.GetText(
                        TextType.DosCommandTabDeployAuthentication);
                chkIsAppend.Text =
                    GuiConfig.GetText(
                        TextType.DosCommandTabDeployAppendMode);
                ctlFilePickerDBPath.Title =
                    GuiConfig.GetText(TextType.DosCommandTabDeployDbPath);
                ctlFilePickerLogPath.Title =
                    GuiConfig.GetText(
                        TextType.DosCommandTabDeployLogPath);
                radMaster.Text =
                    GuiConfig.GetText(TextType.DosCommandTabDeployMaster);
                radSlave.Text =
                    GuiConfig.GetText(TextType.DosCommandTabDeploySlave);
                grpLog.Text =
                    GuiConfig.GetText(TextType.DosCommandTabDeployLog);
            }
        }
Esempio n. 16
0
        /// <summary>
        ///     加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmAddSharding_Load(object sender, EventArgs e)
        {
            GuiConfig.Translateform(this);
            _prmSvr = RuntimeMongoDbContext.GetCurrentServer();
            var             mongoDb  = _prmSvr.GetDatabase(ConstMgr.DatabaseNameConfig);
            MongoCollection mongoCol = mongoDb.GetCollection("databases");

            foreach (var item in mongoCol.FindAllAs <BsonDocument>())
            {
                if (item.GetValue(ConstMgr.KeyId) != ConstMgr.DatabaseNameAdmin)
                {
                    cmbDataBase.Items.Add(item.GetValue(ConstMgr.KeyId));
                    cmbShardKeyDB.Items.Add(item.GetValue(ConstMgr.KeyId));
                }
            }
            foreach (var lst in Operater.GetShardInfo(_prmSvr, ConstMgr.KeyId))
            {
                lstSharding.Items.Add(lst.Value);
            }
            mongoCol = mongoDb.GetCollection("shards");
            cmbTagList.Items.Clear();
            foreach (var mShard in mongoCol.FindAllAs <BsonDocument>())
            {
                if (mShard.Contains("tags"))
                {
                    foreach (var tag in mShard.GetElement("tags").Value.AsBsonArray)
                    {
                        //严格意义上说,不应该在同一个路由里面出现两个同名的标签。
                        if (!_tagSet.ContainsKey(tag.ToString()))
                        {
                            _tagSet.Add(tag.ToString(), mShard.GetElement(ConstMgr.KeyId).Value.ToString());
                            cmbTagList.Items.Add(mShard.GetElement(ConstMgr.KeyId).Value + "." + tag);
                        }
                    }
                }
            }
        }
Esempio n. 17
0
        /// <summary>
        ///     输出配置字典
        /// </summary>
        private void frmQuery_Load(object sender, EventArgs e)
        {
            Icon = GetSystemIcon.ConvertImgToIcon(GetResource.GetImage(ImageType.Query));
            var fieldList = new List <DataFilter.QueryFieldItem>();

            fieldList = _currentDataViewInfo.MDataFilter.QueryFieldList;
            //增加第一个条件
            ConditionPan.AddCondition();
            if (_currentDataViewInfo.IsUseFilter)
            {
                //使用过滤:字段和条件的设定
                QueryFieldPicker.SetQueryFieldList(fieldList);
                if (_currentDataViewInfo.MDataFilter.QueryConditionList.Count > 0)
                {
                    ConditionPan.PutQueryToUi(_currentDataViewInfo.MDataFilter);
                }
            }
            else
            {
                //不使用过滤:字段初始化
                QueryFieldPicker.InitByCurrentCollection(true);
            }
            if (GuiConfig.IsUseDefaultLanguage)
            {
                return;
            }
            Text = GuiConfig.GetText(TextType.QueryTitle);
            tabFieldInfo.Text    = GuiConfig.GetText(TextType.QueryFieldInfo);
            tabCondition.Text    = GuiConfig.GetText(TextType.QueryFilter);
            tabSql.Text          = GuiConfig.GetText(TextType.ConvertSqlTitle);
            cmdAddCondition.Text =
                GuiConfig.GetText(TextType.QueryFilterAddCondition);
            cmdLoad.Text   = GuiConfig.GetText(TextType.QueryActionLoad);
            cmdSave.Text   = GuiConfig.GetText(TextType.CommonSave);
            cmdOK.Text     = GuiConfig.GetText(TextType.CommonOk);
            cmdCancel.Text = GuiConfig.GetText(TextType.CommonCancel);
        }
Esempio n. 18
0
        /// <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.DataBaseOpration(RuntimeMongoDbContext.SelectObjectTag, strDbName,
                                                      Operater.Oprcode.Drop);

            if (string.IsNullOrEmpty(rtnResult))
            {
                RefreshToolStripMenuItem_Click(sender, e);
                //关闭所有的相关视图
                MultiTabManger.SelectObjectTagPrefixDeleted(strTagPrefix);
            }
            else
            {
                MyMessageBox.ShowMessage("Error", "Error", rtnResult, true);
            }
        }
Esempio n. 19
0
 public void Init()
 {
     if (!DesignMode)
     {
         foreach (var item in MongoHelper.GetJsNameList())
         {
             cmbJsList.Items.Add(item);
         }
         cmbJsList.SelectedIndexChanged +=
             (x, y) =>
         {
             txtContext.Text = Operater.LoadJavascript(cmbJsList.Text,
                                                       RuntimeMongoDbContext.GetCurrentJavaScript());
         };
         if (!GuiConfig.IsUseDefaultLanguage)
         {
             cmdSave.Text      = GuiConfig.GetText(TextType.CommonSave);
             cmdSaveLocal.Text =
                 GuiConfig.GetText(TextType.CommonSaveLocal);
             cmdLoadLocal.Text =
                 GuiConfig.GetText(TextType.QueryActionLoad);
         }
     }
 }
Esempio n. 20
0
 private static string MongoCommandExceptionHandle(MongoCommandException ex,
                                                   List <TreeNode> trvMongoDb,
                                                   TreeNode connectionNode,
                                                   string mongoConnKey)
 {
     //listDatabase命令错误,本质是用户名称错误
     if (ex.Result["errmsg"] == "unauthorized")
     {
         if (!GuiConfig.IsUseDefaultLanguage)
         {
             connectionNode.Text += "[" + GuiConfig.GetText("ExceptionAuthenticationException") + "]";
             Utility.ExceptionDeal(ex, GuiConfig.GetText("ExceptionAuthenticationException"), GuiConfig.GetText("ExceptionAuthenticationExceptionNote"));
         }
         else
         {
             connectionNode.Text += "[MongoCommandExceptionHandle]";
             Utility.ExceptionDeal(ex, "MongoCommandExceptionHandle:", "Please check UserName and Password");
         }
     }
     else
     {
         if (!GuiConfig.IsUseDefaultLanguage)
         {
             connectionNode.Text += "[" + GuiConfig.GetText("ExceptionNotConnected") + "]";
             Utility.ExceptionDeal(ex, GuiConfig.GetText("ExceptionNotConnected"), "Unknown Exception");
         }
         else
         {
             connectionNode.Text += "[Exception]";
             Utility.ExceptionDeal(ex, "Not Connected", "Unknown Exception");
         }
     }
     connectionNode.Tag = ConstMgr.ConnectionExceptionTag + ":" + mongoConnKey;
     trvMongoDb.Add(connectionNode);
     return(mongoConnKey);
 }
Esempio n. 21
0
        /// <summary>
        ///     窗体初始化
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmStatus_Load(object sender, EventArgs e)
        {
            if (!GuiConfig.IsMono)
            {
                Icon = GetSystemIcon.ConvertImgToIcon(Resources.KeyInfo);
            }
            GuiConfig.Translateform(this);
            var strType   = RuntimeMongoDbContext.SelectTagType;
            var docStatus = new BsonDocument();

            cmbChartField.Visible          = false;
            chartResult.Visible            = false;
            tempIsDisplayNumberWithKSystem = CtlTreeViewColumns.IsDisplayNumberWithKSystem;
            CtlTreeViewColumns.IsDisplayNumberWithKSystem = true;

            switch (strType)
            {
            case ConstMgr.ServerTag:
            case ConstMgr.SingleDbServerTag:
                if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin)
                {
                    var StatusList = new List <BsonDocument>();
                    var Status     = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand,
                                                                           RuntimeMongoDbContext.GetCurrentServer()).Response;
                    StatusList.Add(Status);
                    try
                    {
                        var ServerDesripter = MongoUtility.ToolKit.MongoHelper.GetCurrentServerDescription();
                        StatusList.Add(ServerDesripter);
                    }
                    catch (Exception)
                    {
                        //Repl的时候,无法获得
                    }
                    UiHelper.FillDataToTreeView(strType, trvStatus, StatusList, 0);
                    trvStatus.Height = trvStatus.Height * 2;
                    trvStatus.DatatreeView.Nodes[0].Expand();
                    trvStatus.DatatreeView.Nodes[1].Expand();
                    return;
                }
                break;

            case ConstMgr.DatabaseTag:
            case ConstMgr.SingleDatabaseTag:
                docStatus             = RuntimeMongoDbContext.GetCurrentDataBase().GetStats().Response.ToBsonDocument();
                cmbChartField.Visible = true;
                chartResult.Visible   = true;
                //{{ "db" : "aaaa",
                //   "collections" : 8,
                //   "objects" : 0,
                //   "avgObjSize" : 0.0,
                //   "dataSize" : 0.0,
                //   "storageSize" : 32768.0,
                //   "numExtents" : 0,
                //   "indexes" : 8,
                //   "indexSize" : 32768.0,
                //   "ok" : 1.0 }}
                var statuspoint = docStatus.AsBsonDocument;
                //这里其实应该看Collection的Status,不同的引擎所拥有的状态不一样
                if (statuspoint.Contains("avgObjSize"))
                {
                    cmbChartField.Items.Add("AverageObjectSize");
                }
                if (statuspoint.Contains("dataSize"))
                {
                    cmbChartField.Items.Add("DataSize");
                }
                if (statuspoint.Contains("extentCount"))
                {
                    cmbChartField.Items.Add("ExtentCount");
                }
                if (statuspoint.Contains("indexes"))
                {
                    cmbChartField.Items.Add("IndexCount");
                }
                if (statuspoint.Contains("lastExtentSize"))
                {
                    cmbChartField.Items.Add("LastExtentSize");
                }
                //MaxDocuments仅在CapedCollection时候有效
                if (statuspoint.Contains("MaxDocuments"))
                {
                    cmbChartField.Items.Add("MaxDocuments");
                }
                if (statuspoint.Contains("ObjectCount"))
                {
                    cmbChartField.Items.Add("ObjectCount");
                }
                if (statuspoint.Contains("PaddingFactor"))
                {
                    cmbChartField.Items.Add("PaddingFactor");
                }
                if (statuspoint.Contains("storageSize"))
                {
                    cmbChartField.Items.Add("StorageSize");
                }
                cmbChartField.SelectedIndex = 0;
                try
                {
                    RefreshDbStatusChart("StorageSize");
                }
                catch (Exception ex)
                {
                    Utility.ExceptionDeal(ex);
                }
                break;

            case ConstMgr.CollectionTag:
                //TODO:这里无法看到Collection的Document Validation信息。
                docStatus = RuntimeMongoDbContext.GetCurrentCollection().GetStats().Response.ToBsonDocument();
                //图形化初始化
                chartResult.Visible = true;

                chartResult.Series.Clear();
                chartResult.Titles.Clear();
                var seriesResult = new Series("Usage");
                var dpDataSize   = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize)
                {
                    LegendText    = "DataSize",
                    LegendToolTip = "DataSize",
                    ToolTip       = "DataSize"
                };
                seriesResult.Points.Add(dpDataSize);

                var dpTotalIndexSize = new DataPoint(0,
                                                     RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize)
                {
                    LegendText    = "TotalIndexSize",
                    LegendToolTip = "TotalIndexSize",
                    ToolTip       = "TotalIndexSize"
                };
                seriesResult.Points.Add(dpTotalIndexSize);

                var dpFreeSize = new DataPoint(0,
                                               RuntimeMongoDbContext.GetCurrentCollection().GetStats().StorageSize -
                                               RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize -
                                               RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize)
                {
                    LegendText    = "FreeSize",
                    LegendToolTip = "FreeSize",
                    ToolTip       = "FreeSize"
                };
                seriesResult.Points.Add(dpFreeSize);

                seriesResult.ChartType = SeriesChartType.Pie;
                chartResult.Series.Add(seriesResult);
                chartResult.Titles.Add(new Title("Usage"));

                break;

            default:
                if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin)
                {
                    docStatus =
                        CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand,
                                                              RuntimeMongoDbContext.GetCurrentServer()).Response;
                    trvStatus.Height = trvStatus.Height * 2;
                }
                break;
            }
            UiHelper.FillDataToTreeView(strType, trvStatus, docStatus);
            trvStatus.DatatreeView.Nodes[0].Expand();
        }
Esempio n. 22
0
        /// <summary>
        ///     ConnectionList TreeView Node is clicked by mouse
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void trvsrvlst_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Node.ImageIndex != -1)
            {
                statusStripMain.Items[0].Image = GetSystemIcon.MainTreeImage.Images[e.Node.ImageIndex];
            }
            //First , set Every MenuItem to disable
            DisableAllOpr();
            if (e.Node.Tag != null)
            {
                //选中节点的设置
                trvsrvlst.SelectedNode = e.Node;
                var strNodeType = TagInfo.GetTagType(e.Node.Tag.ToString());
                var mongoSvrKey = TagInfo.GetTagPath(e.Node.Tag.ToString()).Split("/".ToCharArray())[0];
                RuntimeMongoDbContext.CurrentMongoConnectionconfig =
                    MongoConnectionConfig.MongoConfig.ConnectionList[mongoSvrKey];
                if (string.IsNullOrEmpty(RuntimeMongoDbContext.CurrentMongoConnectionconfig.UserName))
                {
                    lblUserInfo.Text = GuiConfig.GetText("UserInfo", "UserInfo") + ":Admin";
                }
                else
                {
                    lblUserInfo.Text = GuiConfig.GetText("UserInfo", "UserInfo") + ":" + RuntimeMongoDbContext.CurrentMongoConnectionconfig.UserName;
                }
                if (RuntimeMongoDbContext.CurrentMongoConnectionconfig.AuthMode)
                {
                    lblUserInfo.Text += " @AuthMode";
                }
                if (RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly)
                {
                    lblUserInfo.Text += " [" + GuiConfig.GetText("ReadOnly", "Common_ReadOnly") + "]";
                }
                if (!RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly)
                {
                    //恢复数据:这个操作可以针对服务器,数据库,数据集,所以可以放在共通
                    RestoreMongoToolStripMenuItem.Enabled = true;
                }
                RuntimeMongoDbContext.SelectObjectTag = string.Empty;
                if (RuntimeMongoDbContext.SelectObjectTag != null)
                {
                    RuntimeMongoDbContext.SelectObjectTag = e.Node.Tag.ToString();
                }
                switch (strNodeType)
                {
                case ConstMgr.ConnectionTag:
                case ConstMgr.ConnectionReplsetTag:
                case ConstMgr.ConnectionClusterTag:
                    ConnectionHandler(strNodeType, e);
                    break;

                case ConstMgr.ConnectionExceptionTag:
                    ExceptionConnectionHandler(e);
                    break;

                case ConstMgr.ServerTag:
                    ServerHandler(e);
                    break;

                case ConstMgr.SingleDbServerTag:
                    SingleDBServerHandler(e);
                    break;

                case ConstMgr.DatabaseTag:
                case ConstMgr.SingleDatabaseTag:
                    DataBaseHandler(strNodeType, e);
                    break;

                case ConstMgr.SystemCollectionListTag:
                    RuntimeMongoDbContext.SelectObjectTag = e.Node.Tag.ToString();
                    statusStripMain.Items[0].Text         = GuiConfig.GetText("System Collection List ", "SystemCollectionList");
                    break;

                case ConstMgr.CollectionListTag:
                    //添加数据集
                    CollectionListHandler(e);
                    RuntimeMongoDbContext.SelectObjectTag = e.Node.Tag.ToString();
                    statusStripMain.Items[0].Text         = GuiConfig.GetText("Collection List ", "CollectionList");
                    break;

                case ConstMgr.ViewListTag:
                    ViewListHandler(e);
                    RuntimeMongoDbContext.SelectObjectTag = e.Node.Tag.ToString();
                    statusStripMain.Items[0].Text         = GuiConfig.GetText("List View ", "ViewList");
                    break;

                case ConstMgr.CollectionTag:
                    CollectionHandler(e);
                    break;

                case ConstMgr.ViewTag:
                    ViewHandler(e);
                    break;

                case ConstMgr.IndexTag:
                    statusStripMain.Items[0].Text = GuiConfig.GetText("Selected Index:", "SelectedIndex") +
                                                    ":" + RuntimeMongoDbContext.SelectTagData;
                    break;

                case ConstMgr.IndexesTag:
                    statusStripMain.Items[0].Text =
                        GuiConfig.GetText("Selected Index", "SelectedIndexes") + ":" +
                        RuntimeMongoDbContext.SelectTagData;
                    break;

                case ConstMgr.UserListTag:
                    statusStripMain.Items[0].Text =
                        GuiConfig.GetText("Selected UserList", "SelectedUserList") + ":" +
                        RuntimeMongoDbContext.SelectTagData;
                    ViewDataToolStripMenuItem.Enabled = true;
                    if (e.Button == MouseButtons.Right)
                    {
                        contextMenuStripMain = new ContextMenuStrip();
                        if (SystemManager.MonoMode)
                        {
                            var viewDataTool = ViewDataToolStripMenuItem.Clone();
                            viewDataTool.Click += (x, y) => ViewDataObj();
                            contextMenuStripMain.Items.Add(viewDataTool);
                        }
                        else
                        {
                            contextMenuStripMain.Items.Add(ViewDataToolStripMenuItem.Clone());
                        }
                        e.Node.ContextMenuStrip = contextMenuStripMain;
                        contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location));
                    }
                    break;

                case ConstMgr.RoleListTag:
                    statusStripMain.Items[0].Text =
                        GuiConfig.GetText("Selected RoleList", "Selected_RoleList") + ":" + RuntimeMongoDbContext.SelectTagData;
                    break;

                case ConstMgr.GridFileSystemTag:
                    //GridFileSystem
                    RuntimeMongoDbContext.SelectObjectTag = e.Node.Tag.ToString();
                    statusStripMain.Items[0].Text         = GuiConfig.GetText("Selected GFS", "SelectedGfs") + ":" +
                                                            RuntimeMongoDbContext.SelectTagData;
                    ViewDataToolStripMenuItem.Enabled = true;
                    if (e.Button == MouseButtons.Right)
                    {
                        contextMenuStripMain = new ContextMenuStrip();
                        if (SystemManager.MonoMode)
                        {
                            var viewData = ViewDataToolStripMenuItem.Clone();
                            viewData.Click += (x, y) => ViewDataObj();
                            contextMenuStripMain.Items.Add(viewData);
                        }
                        else
                        {
                            contextMenuStripMain.Items.Add(ViewDataToolStripMenuItem.Clone());
                        }
                        e.Node.ContextMenuStrip = contextMenuStripMain;
                        contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location));
                    }
                    break;

                case ConstMgr.JavascriptTag:
                    RuntimeMongoDbContext.SelectObjectTag = e.Node.Tag.ToString();
                    ViewDataToolStripMenuItem.Enabled     = true;
                    if (!RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly)
                    {
                        creatJavaScriptToolStripMenuItem.Enabled = true;
                    }
                    if (e.Button == MouseButtons.Right)
                    {
                        contextMenuStripMain = new ContextMenuStrip();
                        if (SystemManager.MonoMode)
                        {
                            var creatJavaScript = creatJavaScriptToolStripMenuItem.Clone();
                            creatJavaScript.Click += creatJavaScriptToolStripMenuItem_Click;
                            contextMenuStripMain.Items.Add(creatJavaScript);
                        }
                        else
                        {
                            contextMenuStripMain.Items.Add(creatJavaScriptToolStripMenuItem.Clone());
                        }
                        e.Node.ContextMenuStrip = contextMenuStripMain;
                        contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location));
                    }
                    statusStripMain.Items[0].Text = GuiConfig.GetText("Selected collection Javascript ", "JavascriptCollection");
                    break;

                case ConstMgr.JavascriptDocTag:
                    statusStripMain.Items[0].Text           = GuiConfig.GetText("Selected JavaScript", "Selected_Javascript") + ":" + RuntimeMongoDbContext.SelectTagData;
                    ViewDataToolStripMenuItem.Enabled       = true;
                    dropJavascriptToolStripMenuItem.Enabled = true;

                    if (e.Button == MouseButtons.Right)
                    {
                        contextMenuStripMain = new ContextMenuStrip();
                        if (SystemManager.MonoMode)
                        {
                            var viewData = ViewDataToolStripMenuItem.Clone();
                            viewData.Click += (x, y) => ViewDataObj();
                            contextMenuStripMain.Items.Add(viewData);
                            var dropJavascript = dropJavascriptToolStripMenuItem.Clone();
                            dropJavascript.Click += dropJavascriptToolStripMenuItem_Click;
                            contextMenuStripMain.Items.Add(dropJavascript);
                        }
                        else
                        {
                            contextMenuStripMain.Items.Add(ViewDataToolStripMenuItem.Clone());
                            contextMenuStripMain.Items.Add(dropJavascriptToolStripMenuItem.Clone());
                        }
                        e.Node.ContextMenuStrip = contextMenuStripMain;
                        contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location));
                    }
                    break;

                default:
                    statusStripMain.Items[0].Text = "Selected Object:" + e.Node.Text;
                    break;
                }
            }
            else
            {
                statusStripMain.Items[0].Text = "Selected Object:" + e.Node.Text;
            }
            //重新Reset工具栏
            SetToolBarEnabled();
        }
Esempio n. 23
0
 /// <summary>
 ///     载入
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void frmNewDocument_Load(object sender, EventArgs e)
 {
     txtDocument.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy(ConstMgr.CSharp);
     GuiConfig.Translateform(this);
 }
Esempio n. 24
0
 /// <summary>
 ///     测试连接
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdTest_Click(object sender, EventArgs e)
 {
     if (!CreateConnection())
     {
         return;
     }
     try
     {
         var srv = RuntimeMongoDbContext.CreateMongoServer(ref ModifyConn);
         srv.Connect();
         srv.Disconnect();
         MyMessageBox.ShowMessage("Connect Test", "Connected OK.");
     }
     catch (MongoAuthenticationException ex)
     {
         //需要验证的数据服务器,没有Admin权限无法获得数据库列表
         if (!GuiConfig.IsUseDefaultLanguage && !GuiConfig.IsMono)
         {
             MyMessageBox.ShowMessage(GuiConfig.GetText("ExceptionAuthenticationException"), GuiConfig.GetText("ExceptionAuthenticationExceptionNote"), ex.ToString(), true);
         }
         else
         {
             MyMessageBox.ShowMessage("MongoAuthenticationException:", "Please check UserName and Password",
                                      ex.ToString(), true);
         }
     }
     catch (Exception ex)
     {
         //暂时不处理任何异常,简单跳过
         //无法连接的理由:
         //1.服务器没有启动
         //2.认证模式不正确
         if (!GuiConfig.IsUseDefaultLanguage && !GuiConfig.IsMono)
         {
             MyMessageBox.ShowMessage(GuiConfig.GetText("ExceptionNotConnected"), GuiConfig.GetText("ExceptionNotConnectedNote"), ex.ToString(), true);
         }
         else
         {
             MyMessageBox.ShowMessage("Exception", "Mongo Server may not Startup or Auth Mode is not correct",
                                      ex.ToString(), true);
         }
     }
 }
Esempio n. 25
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
            UIAssistant.OpenModalForm(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, 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];
            }
        }
Esempio n. 26
0
        private static void InitControl(Control ctl)
        {
            if (ctl.Tag != null && ctl.Tag is string && ctl.Tag.ToString().Trim().ToLower() == "ignoreinit")
            {
                return;
            }
            GuiConfig guiConfig = App.Config.guiConfig;
            Font      origFont  = ctl.Font;

            if (ctl.Font.Size < 10)
            {
                ctl.Font = guiConfig.font;
            }
            if (ctl is Form)
            {
                Form form = (Form)ctl;
                if (form.FormBorderStyle == FormBorderStyle.Sizable)
                {
                    if (guiConfig.formSize.Width > 100 && guiConfig.formSize.Height > 100)
                    {
                        form.Size = guiConfig.formSize;
                    }
                    form.MinimumSize = form.Size;
                }
                form.StartPosition = FormStartPosition.CenterParent;
            }
            else if (ctl is UserControl)
            {
                UserControl uc = (UserControl)ctl;
                uc.AutoScroll = true;
            }
            else if (ctl is DataGridView)
            {
                DataGridView gridView = (DataGridView)ctl;
                gridView.SelectionMode         = DataGridViewSelectionMode.FullRowSelect;
                gridView.AutoSizeColumnsMode   = DataGridViewAutoSizeColumnsMode.Fill;
                gridView.AllowUserToResizeRows = false;
                gridView.DefaultCellStyle.Font = guiConfig.gridFont;
                gridView.AutoGenerateColumns   = false;
            }
            else if (ctl is TextBox)
            {
                TextBox tb = (TextBox)ctl;
                tb.Font = App.Config.guiConfig.gridFont;
            }
            else if (ctl is NumericUpDown)
            {
                NumericUpDown nud = (NumericUpDown)ctl;
                nud.Font = guiConfig.gridFont;
            }
            else if (ctl is ComboBox)
            {
                ComboBox cb = (ComboBox)ctl;
                cb.Font = guiConfig.gridFont;
            }
            else if (ctl is DateTimePicker)
            {
                DateTimePicker dtp = (DateTimePicker)ctl;
                dtp.Font       = guiConfig.gridFont;
                dtp.ShowUpDown = guiConfig.dateTimePickerShowUpDown;
            }
            if (origFont.Bold)
            {
                ctl.Font = new Font(ctl.Font, FontStyle.Bold);
            }
        }
Esempio n. 27
0
        /// <summary>
        ///     GFS系统
        /// </summary>
        /// <param name="dataList"></param>
        /// <param name="lstData"></param>
        private static void SetGridFileToListView(List <BsonDocument> dataList, ListView lstData)
        {
            lstData.Clear();
            if (!GuiConfig.IsUseDefaultLanguage)
            {
                lstData.Columns.Add(GuiConfig.GetText(TextType.GfsFilename));
                lstData.Columns.Add(GuiConfig.GetText(TextType.GfsLength));
                lstData.Columns.Add(
                    GuiConfig.GetText(TextType.GfsChunkSize));
                lstData.Columns.Add(
                    GuiConfig.GetText(TextType.GfsUploadDate));
                lstData.Columns.Add(GuiConfig.GetText(TextType.GfsMd5));
                //!MONO
                lstData.Columns.Add("ContentType");
            }
            else
            {
                lstData.Columns.Add("filename");
                lstData.Columns.Add("length");
                lstData.Columns.Add("chunkSize");
                lstData.Columns.Add("uploadDate");
                lstData.Columns.Add("MD5");
                //!MONO
                lstData.Columns.Add("ContentType");
            }
            lstData.SmallImageList = GetSystemIcon.IconImagelist;
            lstData.LargeImageList = GetSystemIcon.IconImagelist;
            lstData.TileSize       = new Size(200, 100);

            foreach (var docFile in dataList)
            {
                var filename = docFile.GetValue("filename").ToString();
                var lstItem  = new ListViewItem();
                lstItem.ImageIndex  = GetSystemIcon.GetIconIndexByFileName(filename, false);
                lstItem.Text        = filename;
                lstItem.ToolTipText = filename;
                lstItem.SubItems.Add(MongoHelper.GetBsonSize(docFile.GetValue("length")));
                lstItem.SubItems.Add(MongoHelper.GetBsonSize(docFile.GetValue("chunkSize")));
                lstItem.SubItems.Add(ConvertToString(docFile.GetValue("uploadDate")));
                lstItem.SubItems.Add(ConvertToString(docFile.GetValue("md5")));
                //!MONO
                lstItem.SubItems.Add(GetSystemIcon.GetContentType(filename));
                lstData.Items.Add(lstItem);
            }
            //自动调节列宽
            UIAssistant.ListViewColumnResize(lstData);
            // 用新的排序方法对ListView排序
            var lvwGfsColumnSorter = new LvwColumnSorter();

            lstData.ListViewItemSorter = lvwGfsColumnSorter;
            lstData.ColumnClick       += (sender, e) =>
            {
                switch (e.Column)
                {
                case 1:
                case 2:
                    lvwGfsColumnSorter.CompareMethod = LvwColumnSorter.SortMethod.SizeCompare;
                    break;

                default:
                    lvwGfsColumnSorter.CompareMethod = LvwColumnSorter.SortMethod.StringCompare;
                    break;
                }
                // 检查点击的列是不是现在的排序列.
                if (e.Column == lvwGfsColumnSorter.SortColumn)
                {
                    // 重新设置此列的排序方法.
                    lvwGfsColumnSorter.Order = lvwGfsColumnSorter.Order == SortOrder.Ascending
                        ? SortOrder.Descending
                        : SortOrder.Ascending;
                }
                else
                {
                    // 设置排序列,默认为正向排序
                    lvwGfsColumnSorter.SortColumn = e.Column;
                    lvwGfsColumnSorter.Order      = SortOrder.Ascending;
                }
                lstData.Sort();
            };
        }
Esempio n. 28
0
        /// <summary>
        ///     将数据库放入Node
        /// </summary>
        /// <param name="strDbName"></param>
        /// <param name="mongoSvrKey"></param>
        /// <param name="client"></param>
        /// <returns></returns>
        public static TreeNode FillDataBaseInfoToTreeNode(string strDbName, string mongoSvrKey,
                                                          MongoClient client = null)
        {
            var strShowDbName = strDbName;

            switch (strDbName)
            {
            case ConstMgr.DatabaseNameAdmin:
                strShowDbName = GuiConfig.GetText("admin", "databasename.admin") + "(" + strDbName + ")";
                break;

            case "local":
                strShowDbName = GuiConfig.GetText("local", "databasename.local") + "(" + strDbName + ")";
                break;

            case "config":
                strShowDbName = GuiConfig.GetText("config", "databasename.config") + "(" + strDbName + ")";
                break;
            }
            var mongoDbNode = new TreeNode(strShowDbName);

            mongoDbNode.Tag = TagInfo.CreateTagInfo(mongoSvrKey, strDbName);

            //User Node
            var userNode = new TreeNode(GuiConfig.GetText("Users", "collectionName.system.users"), (int)GetSystemIcon.MainTreeImageType.UserIcon,
                                        (int)GetSystemIcon.MainTreeImageType.UserIcon);

            userNode.Tag = ConstMgr.UserListTag + ":" + mongoSvrKey + "/" + strDbName + "/" +
                           ConstMgr.CollectionNameUsers;
            if (client.GetServer().GetDatabase(strDbName).CollectionExists(ConstMgr.CollectionNameUsers))
            {
                var  usercol  = ConnectionInfo.GetICollection(client, strDbName, ConstMgr.CollectionNameUsers);
                long colCount = ConnectionInfo.GetCollectionCnt(usercol);
                userNode.Text += "(" + colCount + ")";
            }
            mongoDbNode.Nodes.Add(userNode);

            var roleNode = new TreeNode(GuiConfig.GetText("Roles", "collectionName.system.roles"), (int)GetSystemIcon.MainTreeImageType.UserIcon,
                                        (int)GetSystemIcon.MainTreeImageType.UserIcon);

            roleNode.Tag = ConstMgr.RoleListTag + ":" + mongoSvrKey + "/" + strDbName + "/" +
                           ConstMgr.CollectionNameRoles;
            if (client.GetServer().GetDatabase(strDbName).CollectionExists(ConstMgr.CollectionNameRoles))
            {
                var  rolescol = ConnectionInfo.GetICollection(client, strDbName, ConstMgr.CollectionNameRoles);
                long colCount = ConnectionInfo.GetCollectionCnt(rolescol);
                roleNode.Text += "(" + colCount + ")";
            }
            mongoDbNode.Nodes.Add(roleNode);


            //JsNode
            var jsNode = new TreeNode(GuiConfig.GetText("Javascript", "collectionName.system.Javascript"), (int)GetSystemIcon.MainTreeImageType.JavaScriptList,
                                      (int)GetSystemIcon.MainTreeImageType.JavaScriptList);

            jsNode.Tag = ConstMgr.JavascriptTag + ":" + mongoSvrKey + "/" + strDbName + "/" +
                         ConstMgr.CollectionNameJavascript;
            mongoDbNode.Nodes.Add(jsNode);

            //GFS Node
            var gfsNode = new TreeNode(GuiConfig.GetText("Grid File System"), (int)GetSystemIcon.MainTreeImageType.Gfs,
                                       (int)GetSystemIcon.MainTreeImageType.Gfs);

            gfsNode.Tag = ConstMgr.GridFileSystemTag + ":" + mongoSvrKey + "/" + strDbName + "/" +
                          ConstMgr.CollectionNameGfsFiles;
            if (client.GetServer().GetDatabase(strDbName).CollectionExists(ConstMgr.CollectionNameGfsFiles))
            {
                var  gfscol   = ConnectionInfo.GetICollection(client, strDbName, ConstMgr.CollectionNameGfsFiles);
                long colCount = ConnectionInfo.GetCollectionCnt(gfscol);
                gfsNode.Text += "(" + colCount + ")";
            }
            mongoDbNode.Nodes.Add(gfsNode);

            var mongoSysColListNode = new TreeNode("Collections(System)",
                                                   (int)GetSystemIcon.MainTreeImageType.SystemCol, (int)GetSystemIcon.MainTreeImageType.SystemCol);

            mongoSysColListNode.Tag = ConstMgr.SystemCollectionListTag + ":" + mongoSvrKey + "/" + strDbName;
            mongoDbNode.Nodes.Add(mongoSysColListNode);

            var mongoColListNode = new TreeNode("Collections(General)",
                                                (int)GetSystemIcon.MainTreeImageType.CollectionList,
                                                (int)GetSystemIcon.MainTreeImageType.CollectionList);

            mongoColListNode.Tag = ConstMgr.CollectionListTag + ":" + mongoSvrKey + "/" + strDbName;
            var colNameList = ConnectionInfo.GetCollectionInfoList(client, strDbName);

            //Collection按照名称排序
            colNameList.Sort((x, y) =>
            {
                return(x.GetElement("name").Value.ToString().CompareTo(y.GetElement("name").Value.ToString()));
            });

            var viewlist = ConnectionInfo.GetViewInfoList(client, strDbName);

            foreach (var colDoc in colNameList)
            {
                var strColName = colDoc.GetElement("name").Value.ToString();
                if (viewlist.Contains(strDbName + "." + strColName))
                {
                    continue;
                }
                switch (strColName)
                {
                case ConstMgr.CollectionNameSystemViews:
                    //视图
                    TreeNode mongoViewNode;
                    var      ViewCol = ConnectionInfo.GetICollection(client, strDbName, strColName);
                    mongoViewNode     = FillViewInfoToTreeNode(ViewCol, ConstMgr.ViewTag + ":" + mongoSvrKey + "/" + strDbName + "/");
                    mongoViewNode.Tag = ConstMgr.ViewListTag + ":" + mongoSvrKey + "/" + strDbName;
                    mongoDbNode.Nodes.Add(mongoViewNode);
                    break;

                case ConstMgr.CollectionNameUsers:
                case ConstMgr.CollectionNameRoles:
                    break;

                case ConstMgr.CollectionNameJavascript:
                    FillJavaScriptInfoToTreeNode(jsNode, ConnectionInfo.GetICollection(client, strDbName, strColName), mongoSvrKey, strDbName);
                    break;

                case ConstMgr.CollectionNameGfsChunks:
                case ConstMgr.CollectionNameGfsFiles:
                    var gfscol = ConnectionInfo.GetICollection(client, strDbName, strColName);
                    gfsNode.Nodes.Add(FillCollectionInfoToTreeNode(gfscol, mongoSvrKey));
                    break;

                default:
                    TreeNode mongoColNode;
                    try
                    {
                        var col = ConnectionInfo.GetICollection(client, strDbName, strColName);
                        mongoColNode = FillCollectionInfoToTreeNode(col, mongoSvrKey);
                    }
                    catch (Exception ex)
                    {
                        mongoColNode                    = new TreeNode(strColName + "[exception:]");
                        mongoColNode.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.Err;
                        mongoColNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Err;
                        Utility.ExceptionDeal(ex);
                    }
                    if (Operater.IsSystemCollection(strDbName, strColName))
                    {
                        mongoSysColListNode.Nodes.Add(mongoColNode);
                    }
                    else
                    {
                        mongoColListNode.Nodes.Add(mongoColNode);
                    }
                    break;
                }
            }
            mongoDbNode.Nodes.Add(mongoColListNode);
            mongoDbNode.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.Database;
            mongoDbNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Database;
            return(mongoDbNode);
        }
Esempio n. 29
0
        /// <summary>
        ///     Load
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmUser_Load(object sender, EventArgs e)
        {
            if (_modifyName != string.Empty)
            {
                Text = "Change User Config";
                txtUserName.Enabled = false;
                txtUserName.Text    = _modifyName;
                var userInfo = RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(ConstMgr.CollectionNameUsers)
                               .FindOneAs <BsonDocument>(Query.EQ("user", _modifyName));

                BsonElement role;
                if (userInfo.TryGetElement("roles", out role))
                {
                    var roles = role.Value.AsBsonArray;
                    foreach (var _role in roles)
                    {
                        if (_role.IsBsonDocument)
                        {
                            _roleList.Add(new Role.GrantRole()
                            {
                                Role = _role.AsBsonDocument.GetElement("role").Value.ToString(),
                                Db   = _role.AsBsonDocument.GetElement("db").Value.ToString()
                            });
                        }
                        else
                        {
                            _roleList.Add(new Role.GrantRole()
                            {
                                Role = _role.ToString(),
                            });
                        }
                    }
                }
                RefreshRoles();

                BsonElement custom;
                if (userInfo.TryGetElement("customData", out custom))
                {
                    customData             = custom.Value.AsBsonDocument;
                    lblcustomDocument.Text = "Custom Document:" + customData.ToString();
                }
            }

            GuiConfig.Translateform(this);

            if (!GuiConfig.IsUseDefaultLanguage)
            {
                if (_modifyName == string.Empty)
                {
                    if (!GuiConfig.IsMono)
                    {
                        Icon = GetSystemIcon.ConvertImgToIcon(Resources.AddUserToDB);
                    }
                    Text = GuiConfig.GetText(_isAdmin ? "MainMenu.OperationServerAddUserToAdmin" : "MainMenu.OperationDatabaseAddUser");
                }
                else
                {
                    if (!GuiConfig.IsMono)
                    {
                        Icon = GetSystemIcon.ConvertImgToIcon(Resources.DBkey);
                    }
                    Text = GuiConfig.GetText("CommonChangePassword");
                }
            }
        }
Esempio n. 30
0
 public FrmServerMonitor()
 {
     InitializeComponent();
     GuiConfig.Translateform(this);
 }