Ejemplo n.º 1
0
 /// <summary>
 ///     刷新连接
 /// </summary>
 private void RefreshConnection()
 {
     lstConnection.Items.Clear();
     foreach (var item in MongoConnectionConfig.MongoConfig.ConnectionList.Values)
     {
         if (string.IsNullOrEmpty(item.ReplSetName))
         {
             var t = new ListViewItem(item.ConnectionName);
             t.SubItems.Add(item.Host == string.Empty ? "localhost" : item.Host);
             t.SubItems.Add(item.Port == 0 ? string.Empty : item.Port.ToString());
             t.SubItems.Add(string.Empty);
             t.SubItems.Add((string.IsNullOrEmpty(item.UserName)) ? string.Empty : (item.UserName + "@" + item.DataBaseName));
             lstConnection.Items.Add(t);
         }
         else
         {
             var t = new ListViewItem(item.ConnectionName);
             t.SubItems.Add(item.Host == string.Empty ? "localhost" : item.Host);
             t.SubItems.Add(item.Port == 0 ? string.Empty : item.Port.ToString());
             var replArray = string.Empty;
             foreach (var repl in item.ReplsetList)
             {
                 replArray += repl + ";";
             }
             t.SubItems.Add(replArray);
             t.SubItems.Add((string.IsNullOrEmpty(item.UserName)) ? string.Empty : (item.UserName + "@" + item.DataBaseName));
             lstConnection.Items.Add(t);
         }
     }
     lstConnection.Sort();
     UIAssistant.ListViewColumnResize(lstConnection);
     MongoConnectionConfig.MongoConfig.SaveMongoConfig();
 }
Ejemplo n.º 2
0
        /// <summary>
        ///     刷新分片区域
        /// </summary>
        private void RefreshShardingZone()
        {
            var             mongoDb   = _prmSvr.GetDatabase(ConstMgr.DatabaseNameConfig);
            MongoCollection ColShards = mongoDb.GetCollection("shards");

            //现存Zone的列表
            cmbTagList.Items.Clear();
            lstExistShardZone.Columns.Clear();
            lstExistShardZone.Columns.Add("Shard Name");
            lstExistShardZone.Columns.Add("Zone Name");
            lstExistShardZone.Items.Clear();
            _tagSet.Clear();
            foreach (var mShard in ColShards.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);
                            var Item = new ListViewItem(mShard.GetElement(ConstMgr.KeyId).Value.AsString);
                            Item.SubItems.Add(tag.AsString);
                            lstExistShardZone.Items.Add(Item);
                        }
                    }
                }
            }
            UIAssistant.ListViewColumnResize(lstExistShardZone);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     ShardKey数据集变换时
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmbShardKeyCol_SelectedIndexChanged(object sender, EventArgs e)
        {
            var Col        = _prmSvr.GetDatabase(cmbShardKeyDB.Text).GetCollection(cmbShardKeyCol.Text);
            var columnList = MongoHelper.GetCollectionSchame(Col);

            UIAssistant.FillComberWithArray(cmbField, columnList.ToArray(), true);
        }
Ejemplo n.º 4
0
 private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
 {
     //将数据放入ListView视图
     lstMultiLan.Clear();
     //Header
     lstMultiLan.Columns.Add("统一标示");
     lstMultiLan.Columns.Add(_multiLanguageDictionary.Keys.ElementAt(cmbLanguage.SelectedIndex));
     //Details
     for (var i = 0; i < uuiDs.Count; i++)
     {
         var item = new ListViewItem(uuiDs[i]);
         for (var j = 0; j < _multiLanguageDictionary.Keys.Count; j++)
         {
             if (_multiLanguageDictionary[_multiLanguageDictionary.Keys.ElementAt(cmbLanguage.SelectedIndex)].ContainsKey(uuiDs[i]))
             {
                 item.SubItems.Add(_multiLanguageDictionary[_multiLanguageDictionary.Keys.ElementAt(cmbLanguage.SelectedIndex)][uuiDs[i]]);
             }
             else
             {
                 item.SubItems.Add("");
             }
         }
         lstMultiLan.Items.Add(item);
     }
     UIAssistant.ListViewColumnResize(lstMultiLan);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// </summary>
        /// <returns></returns>
        public override int Run()
        {
            var frm = new FrmSelectTable();

            frm.mServer = (MongoServer)PlugObj;
            UIAssistant.OpenModalForm(frm, true, true);
            return(Success);
        }
Ejemplo n.º 6
0
        /// <summary>
        ///     普通数据的加载
        /// </summary>
        /// <param name="dataList"></param>
        /// <param name="lstData"></param>
        /// <param name="collectionName"></param>
        private static void SetDataListToListView(List <BsonDocument> dataList, ListView lstData, string collectionName)
        {
            var columnlist = new List <string>();
            //可以让_id 不在第一位,昏过去了,很多逻辑需要调整
            var isSystem = Operater.IsSystemCollection(string.Empty, collectionName);

            if (!isSystem)
            {
                columnlist.Add(ConstMgr.KeyId);
                lstData.Columns.Add(ConstMgr.KeyId);
            }
            foreach (var docItem in dataList)
            {
                var lstItem = new ListViewItem();
                foreach (var item in docItem.Names)
                {
                    if (!columnlist.Contains(item))
                    {
                        columnlist.Add(item);
                        lstData.Columns.Add(item);
                    }
                }
                //Key:_id
                if (!isSystem)
                {
                    BsonElement id;
                    docItem.TryGetElement(ConstMgr.KeyId, out id);
                    if ((id.Value is BsonNull) || (id.Value == null))
                    {
                        lstItem.Text = "[Empty]";
                        lstItem.Tag  = docItem.GetElement(0).Value;
                    }
                    else
                    {
                        lstItem.Text = docItem.GetValue(ConstMgr.KeyId).ToString();
                        //这里保存真实的主Key数据,删除的时候使用
                        lstItem.Tag = docItem.GetValue(ConstMgr.KeyId);
                    }
                }
                else
                {
                    lstItem.Text = docItem.GetValue(columnlist[0]).ToString();
                }
                //OtherItems
                for (var i = isSystem ? 1 : 0; i < columnlist.Count; i++)
                {
                    if (columnlist[i] == ConstMgr.KeyId)
                    {
                        continue;
                    }
                    BsonValue val;
                    docItem.TryGetValue(columnlist[i], out val);
                    lstItem.SubItems.Add(val == null ? "" : ConvertToString(val));
                }
                lstData.Items.Add(lstItem);
            }
            UIAssistant.ListViewColumnResize(lstData);
        }
Ejemplo n.º 7
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>
            {
                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];
            }
        }
Ejemplo n.º 8
0
 /// <summary>
 ///     CollectionStatus
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void CollectionStatusToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (SystemManager.MonoMode)
     {
         UIAssistant.OpenModalForm(new FrmStatusMono(), true, true);
     }
     else
     {
         UIAssistant.OpenModalForm(new FrmStatus(), true, true);
     }
 }
Ejemplo n.º 9
0
        /// <summary>
        ///     CreateQuery
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdCreateQueryDocument_Click(object sender, EventArgs e)
        {
            var frmInsertDoc = new frmCreateDocument();

            UIAssistant.OpenModalForm(frmInsertDoc, false, true);
            QueryDoc = frmInsertDoc.mBsonDocument;
            if (QueryDoc != null)
            {
                UiHelper.FillDataToTreeView("Query", QueryTreeView, frmInsertDoc.mBsonDocument);
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        ///     修改
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdModifyCon_Click(object sender, EventArgs e)
        {
            if (lstConnection.CheckedItems.Count != 1)
            {
                return;
            }
            var connectionName = lstConnection.CheckedItems[0].Text;

            UIAssistant.OpenModalForm(new FrmConnectionMgr(connectionName), true, true);
            RefreshConnection();
        }
Ejemplo n.º 11
0
        /// <summary>
        ///     Aggregation Builder
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAggrBuilder_Click(object sender, EventArgs e)
        {
            var frmAggregationBuilder = new FrmStageBuilder();

            UIAssistant.OpenModalForm(frmAggregationBuilder, false, true);
            foreach (var item in frmAggregationBuilder.Aggregation)
            {
                stages.Add(item);
            }
            FillStagesTreeview();
        }
Ejemplo n.º 12
0
        private void cmdCreateGroupFields_Click(object sender, EventArgs e)
        {
            var frmInsertDoc = new frmCreateDocument();

            UIAssistant.OpenModalForm(frmInsertDoc, false, true);
            if (frmInsertDoc.mBsonDocument != null)
            {
                FieldsElement = new BsonElement("fields", frmInsertDoc.mBsonDocument);
                UiHelper.FillDataToTreeView("GroupId", TreeViewGroupFields, frmInsertDoc.mBsonDocument);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        ///     显示这个Pipeline
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ViewInfoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var pipeline = new List <BsonDocument>();

            pipeline.Add(RuntimeMongoDbContext.GetCurrentCollectionInfo());
            var frm = new frmDataView();

            frm.ShowData = pipeline;
            frm.Title    = "ViewInfo";
            UIAssistant.OpenModalForm(frm, true, true);
        }
Ejemplo n.º 14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCollation_Click(object sender, EventArgs e)
        {
            var frm = new frmCreateCollation();

            UIAssistant.OpenModalForm(frm, false, true);
            if (frm.mCollation != null)
            {
                mCollation = frm.mCollation;
                UiHelper.FillDataToTreeView("Collation", trvCollation, mCollation.ToBsonDocument());
            }
        }
Ejemplo n.º 15
0
        private void cmdCustom_Click(object sender, EventArgs e)
        {
            var frm = new frmCustomMonitorItems();

            UIAssistant.OpenModalForm(frm, false, true);
            if (frm.SelectedItems != null)
            {
                MonitorItemsChanged(frm.SelectedItems);
                MonitorItems             = frm.SelectedItems;
                cmbCatalog.SelectedIndex = cmbCatalog.Items.Count - 1;
            }
        }
Ejemplo n.º 16
0
        private void btnPickDoc_Click(object sender, EventArgs e)
        {
            var frmInsertDoc = new frmCreateDocument();

            UIAssistant.OpenModalForm(frmInsertDoc, false, true);
            if (frmInsertDoc.mBsonDocument == null)
            {
                return;
            }
            customData             = frmInsertDoc.mBsonDocument;
            lblcustomDocument.Text = "Custom Document:" + customData.ToString();
        }
Ejemplo n.º 17
0
 /// <summary>
 ///     检查MongoDB执行目录是否存在
 /// </summary>
 /// <returns></returns>
 private bool MongoPathCheck()
 {
     if (Directory.Exists(SystemManager.SystemConfig.MongoBinPath))
     {
         return(true);
     }
     MyMessageBox.ShowMessage("Exception",
                              "Mongo Bin Path Can't be found",
                              "Mongo Bin Path[" + SystemManager.SystemConfig.MongoBinPath + "]Can't be found");
     UIAssistant.OpenModalForm(new FrmOption(), true, true);
     return(false);
 }
Ejemplo n.º 18
0
 /// <summary>
 ///     Options
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OptionToolStripMenuItem_Click(object sender, EventArgs e)
 {
     UIAssistant.OpenModalForm(new FrmOption(), true, true);
     SystemManager.InitLanguage();
     if (GuiConfig.IsUseDefaultLanguage)
     {
         MyMessageBox.ShowMessage("Language", "Language will change to \"English\" when you restart this tool");
     }
     else
     {
         GuiConfig.Translateform(this);
     }
 }
Ejemplo n.º 19
0
        /// <summary>
        ///     运行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdRun_Click(object sender, EventArgs e)
        {
            var map    = new BsonJavaScript(ctlMapFunction.Context);
            var reduce = new BsonJavaScript(ctlReduceFunction.Context);
            //TODO:这里可能会超时,失去响应
            //需要设置SocketTimeOut
            var args = new MapReduceArgs()
            {
                MapFunction    = map,
                ReduceFunction = reduce
            };

            if (!string.IsNullOrEmpty(ctlFinalizeFunction.Context))
            {
                args.FinalizeFunction = new BsonJavaScript(ctlFinalizeFunction.Context);
            }
            args.OutputMode = (MapReduceOutputMode)cmbOutputMode.SelectedIndex;
            if (!string.IsNullOrEmpty(txtOutputCollectionName.Text))
            {
                args.OutputCollectionName = txtOutputCollectionName.Text;
            }
            if (NumLimit.Value != 0)
            {
                args.Limit = (long)NumLimit.Value;
            }
            args.JsMode  = chkjsMode.Checked;
            args.Verbose = chkverbose.Checked;
            args.BypassDocumentValidation = chkbypassDocumentValidation.Checked;
            if (QueryDoc != null)
            {
                args.Query = new QueryDocument(QueryDoc);
            }
            if (mCollation != null)
            {
                args.Collation = mCollation;
            }
            try
            {
                var mMapReduceResult = RuntimeMongoDbContext.GetCurrentCollection().MapReduce(args);
                var frm = new frmDataView()
                {
                    ShowDocument = mMapReduceResult.Response,
                    Title        = "MapReduce Result"
                };
                UIAssistant.OpenModalForm(frm, true, true);
            }
            catch (Exception ex)
            {
                Utility.ExceptionDeal(ex);
            }
        }
Ejemplo n.º 20
0
 private void cmdCreateValidation_Click(object sender, EventArgs e)
 {
     try
     {
         var frmInsertDoc = new frmCreateDocument();
         UIAssistant.OpenModalForm(frmInsertDoc, false, true);
         ValidationDoc = frmInsertDoc.mBsonDocument;
         if (ValidationDoc != null)
         {
             UiHelper.FillDataToTreeView("Validation", trvValidationDoc, frmInsertDoc.mBsonDocument);
         }
     }
     catch (Exception ex)
     {
         Utility.ExceptionDeal(ex);
     }
 }
Ejemplo n.º 21
0
        /// <summary>
        ///     生成管道
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAggrBuilder_Click(object sender, EventArgs e)
        {
            if (cmbViewOn.SelectedIndex == -1)
            {
                //必须先选中Collection
                return;
            }
            RuntimeMongoDbContext.SetCurrentCollection(cmbViewOn.Text);
            var frmAggregationBuilder = new FrmStageBuilder();

            UIAssistant.OpenModalForm(frmAggregationBuilder, false, true);
            foreach (var item in frmAggregationBuilder.Aggregation)
            {
                stages.Add(item);
            }
            UiHelper.FillDataToTreeView("stages", trvNewStage, stages.Values.ToList().Select(x => (BsonDocument)x).ToList(), 0);
        }
Ejemplo n.º 22
0
 /// <summary>
 ///     用户列表
 /// </summary>
 /// <param name="dataList"></param>
 /// <param name="lstData"></param>
 private static void SetUserListToListView(List <BsonDocument> dataList, ListView lstData)
 {
     //2.4以后的用户,没有ReadOnly属性,取而代之的是roles属性
     //这里为了向前兼容暂时保持ReadOnle属性
     //Ref:http://docs.mongodb.org/manual/reference/method/db.addUser/
     lstData.Clear();
     if (!GuiConfig.IsUseDefaultLanguage)
     {
         lstData.Columns.Add("ID");
         lstData.Columns.Add(GuiConfig.GetText("Common.Username"));
         lstData.Columns.Add(GuiConfig.GetText("Common.Roles"));
         lstData.Columns.Add(GuiConfig.GetText("Common.Credentials"));
         lstData.Columns.Add(GuiConfig.GetText("Common.CustomData"));
     }
     else
     {
         lstData.Columns.Add("ID");
         lstData.Columns.Add("user");
         lstData.Columns.Add("roles");
         lstData.Columns.Add("credentials");
         lstData.Columns.Add("customData");
     }
     foreach (var docFile in dataList)
     {
         var lstItem = new ListViewItem();
         //ID
         lstItem.Text = docFile.GetValue(ConstMgr.KeyId).ToString();
         //User
         lstItem.SubItems.Add(docFile.GetValue("user").ToString());
         //roles
         BsonValue strRoles;
         docFile.TryGetValue("roles", out strRoles);
         lstItem.SubItems.Add(strRoles == null ? "N/A" : strRoles.ToString());
         //密码是Hash表示的,这里没有安全隐患
         //Password和userSource不能同时设置,所以password也可能不存在
         BsonValue credentials;
         docFile.TryGetValue("credentials", out credentials);
         lstItem.SubItems.Add(credentials == null ? "N/A" : credentials.ToString());
         //customData
         BsonValue customData;
         docFile.TryGetValue("customData", out customData);
         lstItem.SubItems.Add(customData == null ? "N/A" : customData.ToString());
         lstData.Items.Add(lstItem);
     }
     UIAssistant.ListViewColumnResize(lstData);
 }
Ejemplo n.º 23
0
 /// <summary>
 ///     增加条件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdAddCondition_Click(object sender, EventArgs e)
 {
     try
     {
         var frmAddStage = new FrmAddStage();
         UIAssistant.OpenModalForm(frmAddStage, false, true);
         if (frmAddStage.DialogResult == DialogResult.OK)
         {
             stages.AddRange(frmAddStage.BsonDocumentList);
             FillStagesTreeview();
         }
     }
     catch (Exception ex)
     {
         Utility.ExceptionDeal(ex);
     }
 }
Ejemplo n.º 24
0
        /// <summary>
        ///     Create Collection
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CreateMongoCollectionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //Advance CreateCollection
            var frm =
                new frmCreateCollection
            {
                StrSvrPathWithTag = RuntimeMongoDbContext.SelectObjectTag,
                TreeNode          = trvsrvlst.SelectedNode
            };

            UIAssistant.OpenModalForm(frm, true, true);
            if (frm.Result)
            {
                //这里表示: Client / Server  一个Client 可能连结复数Server
                var srvkey = RuntimeMongoDbContext.GetCurrentServerKey() + "/" +
                             RuntimeMongoDbContext.GetCurrentServerKey();
                var newCol =
                    UiHelper.FillCollectionInfoToTreeNode(
                        RuntimeMongoDbContext.GetCurrentIMongoDataBase().GetCollection <BsonDocument>(frm.CollectionName),
                        srvkey);

                if (TagInfo.GetTagType(trvsrvlst.SelectedNode.Tag.ToString()) == ConstMgr.CollectionListTag)
                {
                    //选中CollectionList添加
                    trvsrvlst.SelectedNode.Nodes.Add(newCol);
                }
                else
                {
                    //选中Database添加
                    foreach (TreeNode item in trvsrvlst.SelectedNode.Nodes)
                    {
                        var strNodeType = TagInfo.GetTagType(item.Tag.ToString());
                        if (strNodeType == ConstMgr.CollectionListTag)
                        {
                            //自己添加的Collection不是SystemCollection
                            item.Nodes.Add(newCol);
                            break;
                        }
                    }
                }

                DisableAllOpr();
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        ///     刷新分片范围
        /// </summary>
        private void RefreshShardingRange()
        {
            var             mongoDb = _prmSvr.GetDatabase(ConstMgr.DatabaseNameConfig);
            MongoCollection ColTags = mongoDb.GetCollection("tags");

            lstExistShardRange.Columns.Clear();
            lstExistShardRange.Columns.Add("Tag");
            lstExistShardRange.Columns.Add("Collection");
            lstExistShardRange.Columns.Add("MinDoc");
            lstExistShardRange.Columns.Add("MaxDoc");
            lstExistShardRange.Items.Clear();
            foreach (var mShard in ColTags.FindAllAs <BsonDocument>())
            {
                var Item = new ListViewItem(mShard.GetElement("tag").Value.AsString);
                Item.SubItems.Add(mShard.GetElement(ConstMgr.KeyId).Value.AsBsonDocument.GetElement("ns").Value.ToString());
                Item.SubItems.Add(mShard.GetElement("min").Value.ToString());
                Item.SubItems.Add(mShard.GetElement("max").Value.ToString());
                lstExistShardRange.Items.Add(Item);
            }
            UIAssistant.ListViewColumnResize(lstExistShardRange);
        }
Ejemplo n.º 26
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();
        }
Ejemplo n.º 27
0
 void Awake()
 {
     main = this;
     screenSize = new Vector2(Screen.width, Screen.height);
 }
Ejemplo n.º 28
0
    public override void OnInspectorGUI()
    {
        if (!metaTarget)
        {
            return;
        }
        main = (UIAssistant)metaTarget;

        Undo.RecordObject(main, "");
        Color defColor = GUI.color;

        if (main.UImodules == null)
        {
            main.UImodules = new List <Transform>();
        }

        if (main.pages == null)
        {
            main.pages = new List <UIAssistant.Page>();
        }

        #region UI Modules

        GUILayout.Label("UI Modules", GUILayout.ExpandWidth(true));
        EditorGUILayout.BeginVertical();
        for (int i = 0; i < main.UImodules.Count; i++)
        {
            EditorGUILayout.BeginHorizontal();
            main.UImodules[i] = (Transform)EditorGUILayout.ObjectField(main.UImodules[i], typeof(Transform), true, GUILayout.Width(200));
            if (main.UImodules[i] == null)
            {
                main.UImodules.RemoveAt(i);
                break;
            }
            else
            {
                EditorGUILayout.LabelField(main.UImodules[i].GetComponentsInChildren <CPanel>(true).Length.ToString() + " panel(s)", EditorStyles.miniBoldLabel, GUILayout.Width(100));
            }
            EditorGUILayout.EndHorizontal();
        }
        Transform new_module = (Transform)EditorGUILayout.ObjectField(null, typeof(Transform), true, GUILayout.Width(150));
        if (new_module)
        {
            main.UImodules.Add(new_module);
        }
        EditorGUILayout.EndVertical();
        #endregion

        #region Pages

        GUILayout.Space(20);
        GUILayout.Label("Pages", GUILayout.ExpandWidth(true));
        main.ArraysConvertation();
        EditorGUILayout.BeginVertical();

        EditorGUILayout.BeginHorizontal();

        GUILayout.Space(10);
        GUILayout.Label("Edit", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(35));
        GUILayout.Label("Name", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(200));

        EditorGUILayout.EndHorizontal();

        foreach (UIAssistant.Page page in main.pages)
        {
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("X", GUILayout.Width(20)))
            {
                main.pages.Remove(page);
                break;
            }
            if (GUILayout.Button("Edit", GUILayout.Width(35)))
            {
                if (edit == page)
                {
                    edit = null;
                }
                else
                {
                    edit = page;
                }
            }
            page.name = EditorGUILayout.TextField(page.name, GUILayout.Width(200));

            UIAssistant.Page default_page = main.pages.Find(x => x.default_page);

            if (default_page == null)
            {
                default_page      = page;
                page.default_page = true;
            }

            if (page.default_page && default_page != page)
            {
                page.default_page = false;
            }


            if (page.default_page)
            {
                GUILayout.Label("DEFAULT", GUILayout.Width(80));
            }
            else
            if (GUILayout.Button("Make default", EditorStyles.miniButton, GUILayout.Width(80)))
            {
                default_page.default_page = false;
                default_page      = page;
                page.default_page = true;
            }

            EditorGUILayout.EndHorizontal();

            if (edit == page)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(40);
                EditorGUILayout.BeginVertical(EditorStyles.textArea, GUILayout.Width(350));

                if (!AudioAssistant.main)
                {
                    AudioAssistant.main = FindObjectOfType <AudioAssistant>();
                }

                if (!AudioAssistant.main)
                {
                    EditorGUILayout.HelpBox("AudioAssistant is missing", MessageType.Error, true);
                }
                else if (AudioAssistant.main.tracks.Count > 0)
                {
                    List <string> tracks = new List <string>();
                    tracks.Add("-");
                    tracks.Add("None");
                    tracks.AddRange(AudioAssistant.main.tracks.Select(x => x.name).ToList());
                    int selected = -1;
                    selected = tracks.FindIndex(x => x == page.soundtrack);
                    if (selected == -1)
                    {
                        selected = 0;
                    }

                    selected = EditorGUILayout.Popup("Soundtrack", selected, tracks.ToArray());

                    page.soundtrack = tracks[selected];
                }

                bool active = GUI.enabled;
                GUI.enabled = false;
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.Toggle(false, GUILayout.Width(20));
                GUILayout.Label("Show Ads", GUILayout.Width(100));
                EditorGUILayout.EndHorizontal();
                GUI.enabled = active;

                EditorGUILayout.BeginHorizontal();
                page.setTimeScale = EditorGUILayout.Toggle(page.setTimeScale, GUILayout.Width(20));
                GUILayout.Label("Time Scale", GUILayout.Width(100));
                if (page.setTimeScale)
                {
                    page.timeScale = EditorGUILayout.Slider(page.timeScale, 0, 1, GUILayout.Width(200));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Label("Name", EditorStyles.boldLabel, GUILayout.Width(150));
                GUILayout.Label("Show", EditorStyles.boldLabel, GUILayout.Width(60));
                GUILayout.Label("Ignor", EditorStyles.boldLabel, GUILayout.Width(60));
                GUILayout.Label("Hide", EditorStyles.boldLabel, GUILayout.Width(60));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginVertical();
                Dictionary <CPanel, int> mask = new Dictionary <CPanel, int>();
                foreach (CPanel panel in main.panels)
                {
                    mask.Add(panel, -1);
                    if (page.panels.Contains(panel))
                    {
                        mask[panel] = 1;
                    }
                    else if (page.ignoring_panels.Contains(panel))
                    {
                        mask[panel] = 0;
                    }
                }

                foreach (CPanel panel in main.panels)
                {
                    EditorGUILayout.BeginHorizontal();
                    switch (mask[panel])
                    {
                    case -1: GUI.color = Color.red; break;

                    case 0: GUI.color = Color.yellow; break;

                    case 1: GUI.color = Color.green; break;
                    }
                    EditorGUILayout.LabelField(panel.name, GUILayout.Width(150));
                    GUI.color = defColor;

                    if (EditorGUILayout.Toggle(mask[panel] == 1, GUILayout.Width(60)))
                    {
                        mask[panel] = 1;
                    }
                    if (EditorGUILayout.Toggle(mask[panel] == 0, GUILayout.Width(60)))
                    {
                        mask[panel] = 0;
                    }
                    if (EditorGUILayout.Toggle(mask[panel] == -1, GUILayout.Width(60)))
                    {
                        mask[panel] = -1;
                    }
                    EditorGUILayout.EndHorizontal();
                }
                EditorGUILayout.EndVertical();

                page.panels.Clear();
                page.ignoring_panels.Clear();
                foreach (KeyValuePair <CPanel, int> pair in mask)
                {
                    if (pair.Value == 1)
                    {
                        page.panels.Add(pair.Key);
                    }
                    else if (pair.Value == 0)
                    {
                        page.ignoring_panels.Add(pair.Key);
                    }
                }

                EditorGUILayout.EndVertical();
                EditorGUILayout.EndHorizontal();
            }
        }

        if (GUILayout.Button("Add", GUILayout.Width(60)))
        {
            main.pages.Add(new UIAssistant.Page());
        }


        EditorGUILayout.EndVertical();
        #endregion

        GUI.color = defColor;
    }
Ejemplo n.º 29
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();
            };
        }
Ejemplo n.º 30
0
 /// <summary>
 ///     载入
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void frmMapReduce_Load(object sender, EventArgs e)
 {
     GuiConfig.Translateform(this);
     UIAssistant.FillComberWithEnum(cmbOutputMode, typeof(MapReduceOutputMode));
 }
Ejemplo n.º 31
0
        /// <summary>
        ///     获得数据对象方法的注入
        /// </summary>
        private static void GetInject()
        {
            //新建文档的文档获得方法注入
            CtlDocumentView._getDocument = () =>
            {
                var frmInsertDoc = new frmCreateDocument();
                UIAssistant.OpenModalForm(frmInsertDoc, false, true);
                return(frmInsertDoc.mBsonDocument);
            };
            ctlBsonValue.GetDocument = () =>
            {
                var frmInsertDoc = new frmCreateDocument();
                UIAssistant.OpenModalForm(frmInsertDoc, false, true);
                return(frmInsertDoc.mBsonDocument);
            };
            ctlBsonValue.GetArray = () =>
            {
                var frmInsertArray = new frmArrayCreator();
                UIAssistant.OpenModalForm(frmInsertArray, false, true);
                return(frmInsertArray.mBsonArray);
            };
            ctlBsonValue.GetGeoPoint = () =>
            {
                var frmGeo = new frmCreateGeo();
                UIAssistant.OpenModalForm(frmGeo, false, true);
                return(frmGeo.mBsonArray);
            };
            frmGeoNear.GetGeo = () =>
            {
                var frmGeo = new frmCreateGeo();
                UIAssistant.OpenModalForm(frmGeo, false, true);
                return(frmGeo.mBsonArray);
            };

            FrmServerMonitor.FreshTimeChanged = (time) =>
            {
                SystemManager.SystemConfig.RefreshStatusTimer = time;
                SystemManager.SystemConfig.SaveSystemConfig();
            };

            FrmServerMonitor.MonitorItemsChanged = (items) =>
            {
                SystemManager.SystemConfig.MonitorItems = items;
                SystemManager.SystemConfig.SaveSystemConfig();
            };

            RuntimeMongoDbContext.GetPassword = (username) =>
            {
                var Password = MyMessageBox.ShowPasswordInput("Please Input Password of " + username, "Password");
                return(Password);
            };

            CtlUserView.OpenAddNewUserForm = (isAdmin) =>
            {
                UIAssistant.OpenModalForm(new FrmUser(isAdmin), true, true);
            };
            CtlUserView.OpenChangePasswordForm = (isAdmin, name) =>
            {
                UIAssistant.OpenModalForm(new FrmUser(isAdmin, name), true, true);
            };

            CtlDocumentView.ElementOp = (isUpdate, selectedNode, isElement) =>
            {
                var f = new FrmElement(isUpdate, selectedNode, isElement);
                f.ShowDialog();
            };
            CtlGfsView.GetUploadFileOption = () =>
            {
                var opt = new Gfs.UpLoadFileOption();
                var frm = new FrmGfsOption();
                frm.ShowDialog();
                opt.AlreadyOpt             = frm.Option;
                opt.DirectorySeparatorChar = frm.DirectorySeparatorChar;
                opt.FileNameOpt            = frm.Filename;
                opt.IgnoreSubFolder        = frm.IgnoreSubFolder;
                return(opt);
            };
        }
Ejemplo n.º 32
0
    public override void OnInspectorGUI()
    {
        main = (UIAssistant) target;
        Undo.RecordObject (main, "");
        Color defColor = GUI.color;

        main.timeScale = EditorGUILayout.Slider("Time Scale", main.timeScale, 0f, 3f);

        if (main.UImodules == null)
            main.UImodules = new List<Transform>();

        if (main.pages == null)
            main.pages = new List<UIAssistant.Page>();

        #region UI Modules
        modulesFade.target = GUILayout.Toggle(modulesFade.target, "UI Modules: " + main.UImodules.Count.ToString() + " item(s)", EditorStyles.foldout);

        EditorGUILayout.BeginHorizontal();
        GUILayout.Space(20);
        if (EditorGUILayout.BeginFadeGroup(modulesFade.faded)) {
            EditorGUILayout.BeginVertical();
            for (int i = 0; i < main.UImodules.Count; i++) {
                EditorGUILayout.BeginHorizontal();
                main.UImodules[i] = (Transform) EditorGUILayout.ObjectField(main.UImodules[i], typeof(Transform), true, GUILayout.Width(200));
                if (main.UImodules[i] == null) {
                    main.UImodules.RemoveAt(i);
                    break;
                } else {
                    EditorGUILayout.LabelField(main.UImodules[i].GetComponentsInChildren<CPanel>(true).Length.ToString() + " panel(s)", EditorStyles.miniBoldLabel, GUILayout.ExpandWidth(true));
                }
                EditorGUILayout.EndHorizontal();
            }
            Transform new_module = (Transform) EditorGUILayout.ObjectField(null, typeof(Transform), true, GUILayout.Width(150));
            if (new_module)
                main.UImodules.Add(new_module);
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.EndFadeGroup();
        EditorGUILayout.EndHorizontal();
        #endregion

        #region Pages

        pagesFade.target = GUILayout.Toggle(pagesFade.target, "Pages", EditorStyles.foldout);
        if (EditorGUILayout.BeginFadeGroup(pagesFade.faded)) {
            main.ArraysConvertation();

            EditorGUILayout.BeginHorizontal();

            GUILayout.Space(75);
            GUILayout.Label("Name", GUILayout.Width(200));

            EditorGUILayout.EndHorizontal();

            foreach (UIAssistant.Page page in main.pages) {

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(10);
                if (GUILayout.Button("X", GUILayout.Width(20))) {
                    main.pages.Remove(page);
                    break;
                }
                if (GUILayout.Button("Edit", GUILayout.Width(35))) {
                    if (edit == page)
                        edit = null;
                    else
                        edit = page;
                }
                page.name = EditorGUILayout.TextField(page.name, GUILayout.Width(200));

                UIAssistant.Page default_page = main.pages.Find(x => x.default_page);

                if (default_page == null) {
                    default_page = page;
                    page.default_page = true;
                }

                if (page.default_page && default_page != page)
                    page.default_page = false;

                if (page.default_page)
                    GUILayout.Label("DEFAULT", GUILayout.Width(80));
                else
                    if (GUILayout.Button("Make default", EditorStyles.miniButton, GUILayout.Width(80))) {
                        default_page.default_page = false;
                        default_page = page;
                        page.default_page = true;
                    }

                EditorGUILayout.EndHorizontal();

                if (edit == page) {

                    if (!AudioAssistant.main)
                        AudioAssistant.main = GameObject.FindObjectOfType<AudioAssistant>();

                    if (!AudioAssistant.main)
                        EditorGUILayout.HelpBox("AudioAssistant is missing", MessageType.Error, true);
                    else if (AudioAssistant.main.tracks.Count > 0) {
                        List<string> tracks = new List<string>();
                        tracks.Add("-");
                        tracks.Add("None");
                        tracks.AddRange(AudioAssistant.main.tracks.Select(x => x.name).ToList());
                        int selected = -1;
                        selected = tracks.FindIndex(x => x == page.soundtrack);
                        if (selected == -1)
                            selected = 0;
                        EditorGUILayout.BeginHorizontal();
                        GUILayout.Space(40);
                        selected = EditorGUILayout.Popup("Soundtrack", selected, tracks.ToArray(), GUILayout.Width(320));
                        EditorGUILayout.EndHorizontal();
                        page.soundtrack = tracks[selected];
                    }

                    EditorGUILayout.BeginHorizontal();

                    GUILayout.Space(40);
                    GUILayout.Label("Name", EditorStyles.boldLabel, GUILayout.Width(150));
                    GUILayout.Label("Show", EditorStyles.boldLabel, GUILayout.Width(60));
                    GUILayout.Label("Ignor", EditorStyles.boldLabel, GUILayout.Width(60));
                    GUILayout.Label("Hide", EditorStyles.boldLabel, GUILayout.Width(60));

                    EditorGUILayout.EndHorizontal();

                    EditorGUILayout.BeginVertical();

                    Dictionary<CPanel, int> mask = new Dictionary<CPanel, int>();
                    foreach (CPanel panel in main.panels) {
                        mask.Add(panel, -1);
                        if (page.panels.Contains(panel))
                            mask[panel] = 1;
                        else if (page.ignoring_panels.Contains(panel))
                            mask[panel] = 0;
                    }

                    foreach (CPanel panel in main.panels) {
                        EditorGUILayout.BeginHorizontal();
                        GUILayout.Space(40);

                        switch (mask[panel]) {
                            case -1: GUI.color = Color.red; break;
                            case 0: GUI.color = Color.yellow; break;
                            case 1: GUI.color = Color.green; break;
                        }
                        EditorGUILayout.LabelField(panel.name, GUILayout.Width(150));
                        GUI.color = defColor;

                        if (EditorGUILayout.Toggle(mask[panel] == 1, GUILayout.Width(60)))
                            mask[panel] = 1;
                        if (EditorGUILayout.Toggle(mask[panel] == 0, GUILayout.Width(60)))
                            mask[panel] = 0;
                        if (EditorGUILayout.Toggle(mask[panel] == -1, GUILayout.Width(60)))
                            mask[panel] = -1;
                        EditorGUILayout.EndHorizontal();
                    }
                    EditorGUILayout.EndVertical();

                    page.panels.Clear();
                    page.ignoring_panels.Clear();
                    foreach (KeyValuePair<CPanel, int> pair in mask) {
                        if (pair.Value == 1)
                            page.panels.Add(pair.Key);
                        else if (pair.Value == 0)
                            page.ignoring_panels.Add(pair.Key);
                    }

                }

            }

            if (GUILayout.Button("Add", GUILayout.Width(60)))
                main.pages.Add(new UIAssistant.Page());

        }
        EditorGUILayout.EndFadeGroup();
        #endregion
        EditorUtility.SetDirty(main);
    }