/// <summary> /// コンストラクター /// </summary> public dlgAddOn(AllDB mgr, string nowList) { this.InitializeComponent(); this.Manager = mgr; //アドオンの効果内容リストを生成する this.cmbType.Items.Clear(); Common.SetListControlKeyValuePairMode(this.cmbType); var addonList = DBLiteral.GetListAddon(); foreach (var item in addonList) { this.cmbType.Items.Add(new AddonItem(item.Name, item)); } //既存リストを生成する var list = new List <ListViewItem>(); if (!string.IsNullOrEmpty(nowList)) { var split = nowList.Split(Resources.Split_LongData.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (split != null) { foreach (var item in split) { var add = new ListViewItem(); var subsplit = item.Split(Resources.Split_SimpleList.ToCharArray()); add.Text = ((AddonItem)this.cmbType.Items[int.Parse(subsplit[(int)AddonInfoIndices.AddonType])]).Key; //実際にユーザーが作成するのと同じ手順を踏むことで、DBSrcも反映される //対応する関連IDを取得する this.cmbType.SelectedItem = ((AddonItem)this.cmbType.Items[int.Parse(subsplit[(int)AddonInfoIndices.AddonType])]); this.cmbDBSrc.SelectedIndex = -1; add.SubItems.Add(""); add.SubItems[add.SubItems.Count - 1].Tag = ""; foreach (DBListType dbitem in this.cmbDBSrc.Items) { //FixedIDで探索する if (dbitem.Value.ToString() == subsplit[(int)AddonInfoIndices.DBItem]) { add.SubItems[add.SubItems.Count - 1].Text = dbitem.Key; add.SubItems[add.SubItems.Count - 1].Tag = dbitem.Value.ToString(); break; } } add.SubItems.Add(subsplit[(int)AddonInfoIndices.Option]); list.Add(add); } } } this.uctlListEditor.SetupList(new string[] { "内容", "関連ID", "値" }, list); this.cmbType.SelectedIndex = -1; this.cmbType_SelectedIndexChanged(this, null); }
/// <summary> /// リストを選択すると入力ソース欄に反映する /// </summary> private void uctlListEditor_ListItemSelected(object sender, CtrlComponent.Common.ctlListEditor.RequestAddItemEventArgs e) { var addons = DBLiteral.GetListAddon(); for (var i = 0; i < addons.Count; i++) { if (addons[i].Name == e.Item.SubItems[(int)AddonInfoIndices.AddonType].Text) { this.cmbType.SelectedIndex = i; break; } } //対応する関連IDを選択する this.cmbDBSrc.SelectedIndex = -1; Database.SelectComboBoxItemFromIDName(this.cmbDBSrc, e.Item.SubItems[(int)AddonInfoIndices.DBItem].Text); this.numOption.Value = int.Parse(e.Item.SubItems[(int)AddonInfoIndices.Option].Text); }
/// <summary> /// コンストラクター /// </summary> public ctlDatabaseEditor() { this.InitializeComponent(); //すべてのデータベースをセットアップする DBLiteral.SetupDatabases(this.tbcDatabaseTab, this.DBList); var dbList = Common.GetControlsOfType(this, typeof(DataGridView)); Database.AllDBSetup(dbList, this); //各DBにイベントハンドラーをセットする foreach (TabPage tab in this.tbcDatabaseTab.TabPages) { if (tab.Controls[0] is ctlDBBase) { ((ctlDBBase)tab.Controls[0]).UndoRedoBufferChanged += this.UndoRedoBufferChanged; } } //UserDBリストの選択状態が変更されたときの挙動を追加的に定義する ((ctlDBGUIUserDB)this.DBList[Database.DBIndices.UserDB]).UserDBSelected += this.userDBselectedIndexChanged; }