Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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;
        }