/// <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(); }
/// <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); }
/// <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); }
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); }
/// <summary> /// </summary> /// <returns></returns> public override int Run() { var frm = new FrmSelectTable(); frm.mServer = (MongoServer)PlugObj; UIAssistant.OpenModalForm(frm, true, true); return(Success); }
/// <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); }
/// <summary> /// Load Form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmMain_Load(object sender, EventArgs e) { //加载到菜单 PlugIn.LoadPlugInMenuItem(plugInToolStripMenuItem); //禁用操作 DisableAllOpr(); //Set Tool bar button enable SetToolBarEnabled(); //Open ConnectionManagement Form UIAssistant.OpenModalForm(new frmConnect(), true, true); //多文档管理器的设定 var parentMenuItems = new List <ToolStripMenuItem> { CollectionToolStripMenuItem, JavaScriptStripMenuItem }; MultiTabManger.Init(tabView, parentMenuItems); //MultiTab固定项目的初始化 var serverStatusCtl = new CtlServerStatus() { IsFixedItem = true, SelectObjectTag = "[ServerStatus]", BindingMenu = StatusToolStripMenuItem }; MultiTabManger.AddView(serverStatusCtl, GuiConfig.IsUseDefaultLanguage ? "Status" : GuiConfig.GetText("MainMenu.MangtStatus"), string.Empty); //刷新 RefreshToolStripMenuItem_Click(sender, e); serverStatusCtl.RefreshGui(); MultiTabManger.SelectTab("[ServerStatus]"); //委托设置 trvsrvlst.NodeMouseClick += trvsrvlst_NodeMouseClick; trvsrvlst.NodeMouseDoubleClick += (x, y) => ViewDataObj(); ViewDataToolStripMenuItem.Click += (x, y) => ViewDataObj(); trvsrvlst.KeyDown += trvsrvlst_KeyDown; tabView.SelectedIndexChanged += tabView_SelectedIndexChanged; //CommandHelper.RunCommandComplete += CommandLog; //长时间操作时候,实时提示进度在状态栏中 lblAction.Text = string.Empty; MongoHelper.ActionDone += (x, y) => { //1.lblAction 没有InvokeRequired //2.DoEvents必须 lblAction.Text = y.Message; Application.DoEvents(); }; if (trvsrvlst.Nodes.Count > 0) { trvsrvlst.SelectedNode = trvsrvlst.Nodes[0]; } }
/// <summary> /// 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); } }
/// <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); } }
/// <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(); }
/// <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(); }
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); } }
/// <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); }
/// <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()); } }
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; } }
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(); }
/// <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); }
/// <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); } }
/// <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); } }
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); } }
/// <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); }
/// <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); }
/// <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); } }
/// <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(); } }
/// <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); }
/// <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(); }
void Awake() { main = this; screenSize = new Vector2(Screen.width, Screen.height); }
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; }
/// <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(); }; }
/// <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)); }
/// <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); }; }
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); }