/// <summary> /// コンストラクター /// </summary> public dlgEVSettings(EVData ev, string mapGUID, CtrlComponent.Text.ctlCommandTree comTree, CtrlComponent.Database.ctlDatabaseEditor dbCtl) { this.InitializeComponent(); Common.EnableDoubleBuffering(this); this.Result = ev; this.MapGUID = mapGUID; this.comTree = comTree; this.comTreeParent = comTree.Parent; //元々コマンドツリーを格納していたコントロールを覚えておく this.comTree.RequestInsertCode += this.uctlComTree_RequestInsertCode; this.comTree.EnabledEasyEditorTools = true; //Easyエディターツール群を有効にする this.dbCtl = dbCtl; //NOTE: イベント情報 IN //初期設定 this.numID.Value = ev.VisibleID; this.txtName.Text = ev.Name; this.uctlPosition.Maximum = new Point(Map.MaxMapSize); this.uctlPosition.Result = ev.TilePosition; //イベント情報をもとにセットする foreach (var page in ev.Pages) { if (this.addPage()) { ((CtrlComponent.Map.ctlEVPage) this.tbcEVPages.TabPages[this.tbcEVPages.TabCount - 1].Controls[0]).SetEVPageData(page.Clone() as EVData.EventOnePage); } } var ctl = (this.tbcEVPages.SelectedTab.Controls[0] as CtrlComponent.Map.ctlEVPage); ctl.uctlEVCommandEditor.Setup(comTree); ctl.uctlTextEditor.Setup(dbCtl); this.tbcEVPages_Selecting(this, new TabControlCancelEventArgs(this.tbcEVPages.SelectedTab, this.tbcEVPages.SelectedIndex, false, TabControlAction.Selecting)); }
/// <summary> /// コンストラクター /// </summary> public dlgEVTemplates(EVData ev, string mapGUID, CtrlComponent.Text.ctlCommandTree comTree, CtrlComponent.Database.ctlDatabaseEditor dbCtl) { this.InitializeComponent(); Common.EnableDoubleBuffering(this); this.ev = ev; this.tilePosition = ev.TilePosition; this.MapGUID = mapGUID; this.comTree = comTree; this.dbCtl = dbCtl; this.dbList = dbCtl.DBList; // デフォルトの可視ID this.numEVVisibleID.Value = ev.VisibleID; //初期設定 //リンク this.uctlSQChangeMapLink.DBList = this.dbList; //ドア Database.CreateComboBoxListFromSrcDB(this.cmbKeyItemDoor, this.dbList[Database.DBIndices.Item].DBs[0], true); Database.CreateComboBoxListFromSrcDB(this.cmbSEDoor, this.dbList[Database.DBIndices.Material].DBs[(int)Database.DBMaterialIndices.Sound], true); Database.SelectComboBoxItemFromIDName(this.cmbSEDoor, Settings.Default.Last_EVTemplate_DoorSE); if (this.cmbSEDoor.SelectedIndex == -1) { this.cmbSEDoor.SelectedIndex = 0; //「なし」を選択 } //ドア+リンク Database.CreateComboBoxListFromSrcDB(this.cmbKeyItemDL, this.dbList[Database.DBIndices.Item].DBs[0], true); Database.CreateComboBoxListFromSrcDB(this.cmbSEDL, this.dbList[Database.DBIndices.Material].DBs[(int)Database.DBMaterialIndices.Sound], true); Database.SelectComboBoxItemFromIDName(this.cmbSEDL, Settings.Default.Last_EVTemplate_DoorSE); this.uctlSQChangeMapDL.DBList = this.dbList; if (this.cmbSEDL.SelectedIndex == -1) { this.cmbSEDL.SelectedIndex = 0; //「なし」を選択 } //村人 this.uctlSQMessageHuman.SetDBList(this.dbList); //財宝 Database.CreateComboBoxListFromSrcDB(this.cmbOpenSETreasure, this.dbList[Database.DBIndices.Material].DBs[(int)Database.DBMaterialIndices.Sound], true); Database.CreateComboBoxListFromSrcDB(this.cmbItemTreasure, this.dbList[Database.DBIndices.Item].DBs[0], false); Database.CreateComboBoxListFromSrcDB(this.cmbKeyItemTreasure, this.dbList[Database.DBIndices.Item].DBs[0], true); Database.CreateComboBoxListFromSrcDB(this.cmbSelfValueTreasure, this.dbList[Database.DBIndices.Value].DBs[(int)Database.DBValueIndices.SelfEvent], false); Database.SelectComboBoxItemFromIDName(this.cmbOpenSETreasure, Settings.Default.Last_EVTemplate_TreasureSE); this.rdbMoneyTreasure.Checked = true; if (this.cmbOpenSETreasure.SelectedIndex == -1) { this.cmbOpenSETreasure.SelectedIndex = 0; //「なし」を選択 } //お店 Database.CreateComboBoxListFromSrcDB(this.cmbFaceShop, this.dbList[Database.DBIndices.Material].DBs[(int)Database.DBMaterialIndices.Face], true); Database.CreateComboBoxListFromSrcDB(this.cmbItemDBShop, this.dbList[Database.DBIndices.Item].DBs[0]); this.uctlShopItemList.SetupList(new string[] { "商品名" }, null, true); //ユーザー定義 this.reloadEVTemplates(); }
/// <summary> /// コマンドツリーをセットアップします。 /// これはプロジェクトが読み込まれた後に呼び出して下さい。 /// </summary> public void Setup(CtrlComponent.Database.ctlDatabaseEditor dbCtl, CtrlComponent.Map.mgrMapObject mgrMap) { this.dbCtl = dbCtl; this.mgrMap = mgrMap; var subNodes = new List <TreeNode>(); //オートコンプリートのソースを更新 //組み込みオブジェクトは 定数・列挙体・変数 ノード以下に絞る AutoCompleteSource.Clear(); subNodes.AddRange(Common.GetNodeListToFlat(this.trvTree.Nodes[NodeNameCppObject].Nodes[NodeNameCppObjConst])); subNodes.AddRange(Common.GetNodeListToFlat(this.trvTree.Nodes[NodeNameCppObject].Nodes[NodeNameCppObjEnum])); subNodes.AddRange(Common.GetNodeListToFlat(this.trvTree.Nodes[NodeNameCppObject].Nodes[NodeNameCppObjValue])); AutoCompleteSource.AddRange(subNodes); foreach (var node1 in subNodes) { AutoCompleteSourceAll.Add(ctlCommandTree.GetCode(node1)); } //プロジェクト関連のスクリプトからノード生成する this.trvTree.BeginUpdate(); foreach (TreeNode node in this.trvTree.Nodes) { switch (node.Text) { case NodeSQConst: //定数定義スクリプトを読み込む SQ.SetSQConstantsTree(node, Resources.Path_Scripts_Constants); break; case NodeSQFunc: //関数定義スクリプトを読み込む SQ.SetSQFunctionsTree(node, Resources.Path_Scripts_Functions); break; } //オートコンプリートのソースに追加 subNodes = Common.GetNodeListToFlat(node); AutoCompleteSource.AddRange(subNodes); foreach (var node2 in subNodes) { AutoCompleteSourceAll.Add(ctlCommandTree.GetCode(node2)); } } //コマンドツリーの並び替え実行 this.trvTree.TreeViewNodeSorter = new CommandTreeSorter(); this.trvTree.EndUpdate(); ////オートコンプリートのノード情報リストの並び替え実行 //AutoCompleteSource.Sort((x, y) => { // //コードの文字列逆順にする // var xcode = GetCode(x); // var ycode = GetCode(y); // return -string.Compare(xcode, ycode); //}); }
/// <summary> /// すべてのデータベースをセットアップします。 /// </summary> public static void AllDBSetup(List <Control> dbList, CtrlComponent.Database.ctlDatabaseEditor editor) { foreach (DataGridView db in dbList) { //初期設定 if (db.AllowUserToAddRows && db.Name != "UDB") { //左端に不可視のFixedID列を生成する Database.AddFixedIDColumn(db); } //共通イベントハンドラーの関連付け:ユーザーが編集するコントロールに限る if (db.Enabled) { db.DataError += editor.dataErrorHandler; db.RowValidating += editor.errorRowCheckHandler; db.RowValidated += editor.errorRowCheckedHandler; db.CellContentClick += editor.clickButtonCell; db.RowsAdded += editor.newRowCreated; db.DefaultValuesNeeded += editor.setDefaultValues; db.SortCompare += editor.sortCompareOnColumnHeader; } } }
/// <summary> /// テキストエディターをセットアップします。 /// これはプロジェクトが読み込まれた後に呼び出して下さい。 /// </summary> public void Setup(CtrlComponent.Database.ctlDatabaseEditor dbCtl) { this.DBCtrl = dbCtl; }
/// <summary> /// コンストラクター /// </summary> public dlgEditColumn(DBColumn col, DataGridView dgv, CtrlComponent.Database.ctlDatabaseEditor mgr) { this.InitializeComponent(); this.dbList = mgr.DBList; this.uctlMyList.SetupList(new string[] { "項目名" }, null); //依存先データベースリストを生成 var dblist = mgr.GetAllDBList(); ComboBox[] tgt = { this.cmbDBsList, this.cmbDBsIDNames, this.cmbButtonSrcDB }; foreach (var cmb in tgt) { Common.SetListControlKeyValuePairMode(cmb); foreach (var db in dblist) { var name = mgr.GetDBName(db.Key); if (string.IsNullOrEmpty(name) == false && db.Value.AllowUserToAddRows) { cmb.Items.Add(new DBListType(name, db.Key)); } } } //ComboBoxの項目を選択する処理の定義 var restoreSrcDB = new Action <ComboBox, Database.DBAddress>((cmb, address) => { var i = 0; foreach (DBListType cmbList in cmb.Items) { if (address == new Database.DBAddress(cmbList.Value.MainID, cmbList.Value.SubID)) { cmb.SelectedIndex = i; break; } i++; } }); //既存データを復元する if (col == null) { return; //新規作成の場合は処理しない } this.txtHeaderText.Text = col.HeaderText; //クラスの継承関係の都合上、末端の派生先から先に確認していく if (col is DBColumnTextNumbers) { //テキスト系 this.tbcFormType.SelectedIndex = (int)DBColumnType.TextNumbers; this.numIntsMax.Value = ((DBColumnTextOneNumber)col).MaxValue; this.numIntsMin.Value = ((DBColumnTextOneNumber)col).MinValue; } else if (col is DBColumnTextOneNumber) { this.tbcFormType.SelectedIndex = (int)DBColumnType.TextOneNumber; this.numOneIntMax.Value = ((DBColumnTextOneNumber)col).MaxValue; this.numOneIntMin.Value = ((DBColumnTextOneNumber)col).MinValue; } else if (col is DBColumnTextIDNames) { this.tbcFormType.SelectedIndex = (int)DBColumnType.TextIDNames; this.chkTextIDValueMode.Checked = false; restoreSrcDB(this.cmbDBsIDNames, ((DBColumnTextIDNames)col).SrcDBAddress); } else if (col is DBColumnTextIDValues) { this.tbcFormType.SelectedIndex = (int)DBColumnType.TextIDNames; this.chkTextIDValueMode.Checked = true; restoreSrcDB(this.cmbDBsIDNames, ((DBColumnTextIDValues)col).SrcDBAddress); } else if (col is DBColumnListDB) { //リスト系 this.tbcFormType.SelectedIndex = (int)DBColumnType.List; this.rdbFromDB.Checked = true; restoreSrcDB(this.cmbDBsList, ((DBColumnListDB)col).SrcDBAddress); } else if (col is DBColumnListUser) { this.tbcFormType.SelectedIndex = (int)DBColumnType.List; this.rdbFromMyList.Checked = true; var editList = new List <ListViewItem>(); foreach (var item in ((DBColumnListUser)col).SrcMyList) { editList.Add(new ListViewItem(item)); } this.uctlMyList.SetupList(new string[] { "項目名" }, editList); } else if (col is DBColumnButtonInputIDNames) { //ボタン系 this.tbcFormType.SelectedIndex = (int)DBColumnType.Button; this.rdbButtonIDNames.Checked = true; this.chkButtonIDValueMode.Checked = false; restoreSrcDB(this.cmbButtonSrcDB, ((DBColumnButtonInputIDNames)col).SrcDBAddress); this.numIDNameSetterDestColumnIndex.Value = ((DBColumnButtonInputIDNames)col).DestColumnIndex; } else if (col is DBColumnButtonInputIDValues) { this.tbcFormType.SelectedIndex = (int)DBColumnType.Button; this.rdbButtonIDNames.Checked = true; this.chkButtonIDValueMode.Checked = true; restoreSrcDB(this.cmbButtonSrcDB, ((DBColumnButtonInputIDValues)col).SrcDBAddress); this.numIDNameSetterDestColumnIndex.Value = ((DBColumnButtonInputIDValues)col).DestColumnIndex; } else if (col is DBColumnButtonSelectFile) { this.tbcFormType.SelectedIndex = (int)DBColumnType.Button; this.rdbButtonFileSelect.Checked = true; this.numFileSetterDestColumnIndex.Value = ((DBColumnButtonSelectFile)col).DestColumnIndex; } else if (col is DBColumnText) { //基本系 this.tbcFormType.SelectedIndex = (int)DBColumnType.Text; } else if (col is DBColumnBool) { this.tbcFormType.SelectedIndex = (int)DBColumnType.Bool; } else if (col is DBColumnPictureFile) { this.tbcFormType.SelectedIndex = (int)DBColumnType.PictureFile; } }
/// <summary> /// サブコントロールのセットアップを中継する /// </summary> public void SetupSubControls(CtrlComponent.Database.ctlDatabaseEditor dbCtl, CtrlComponent.Map.mgrMapObject mgrMap) { //データベースへの参照をサブコントロールに渡す this.uctlComTree.Setup(dbCtl, mgrMap); this.uctlOneText.Setup(dbCtl); }