示例#1
0
        // events

        override protected void OnActivated(object option)
        {
            bufferedKanjouKamokuTable           = new models.db.vtables.BufferedMTKanjouKamoku(Context.KaikeiDatabase);
            bufferedKanjouKamokuTable.Recursive = false;
            bufferedKanjouKamokuTable.RootId    = -1;
            bufferedKanjouKamokuTable.SyncRowList();

            gridController.SetTable(bufferedKanjouKamokuTable);
            gridController.SetQuery("");
        }
示例#2
0
        // selectedKamokuRow=nullの場合は新規作成
        public void ShowPopup(System.Windows.Forms.Form owner, models.db.Row selectedKamokuRow, models.db.vtables.BufferedMTKanjouKamoku table)
        {
            bufferedKanjouKamokuTable = table;
            kanjouKamokuRow           = CreateKanjouKamokuDetailRow(owner, selectedKamokuRow);
            if (kanjouKamokuRow == null)
            {
                return;
            }

            if (popup != null)
            {
                popup.Close();
                popup = null;
            }

            popup              = new views.popup.KanjouKamokuDetailPopup();
            popup.PopupClosed += delegate() {
                popup = null;
                hojoKamokuGridController = null;
                bufferedHojoKamokuTable  = null;
            };
            popup.CloseButtonClicked += delegate() {
                this.ClosePopup();
            };
            popup.AddSubButtonClicked += delegate(object sender) {
                var row = sender as views.grid.HojoKamokuRow;
                bufferedHojoKamokuTable.Update(row.RowData);
                models.db.Row rowData = Context.KaikeiDatabase.MTKanjouKamoku.NewRow();
                rowData.Set("usable", true);
                rowData.Set("editable", true);
                rowData.Set("denpyou_print_target", false);
                rowData.Set("parent_id", row.RowData.GetLong("id", -1));
                rowData.Set("kamoku_code", "" + (bufferedHojoKamokuTable.MaxCode() + 1));
                int insertedRowNo = bufferedHojoKamokuTable.InsertChildKamoku(rowData);
                hojoKamokuGridController.SetQuery("");
                hojoKamokuGridController.SetFocus(insertedRowNo, null);
            };
            popup.FormClosing += delegate(object sender, System.Windows.Forms.FormClosingEventArgs e) {
                Dictionary <string, bool> codeHash = new Dictionary <string, bool>();
                int rowCt = 0;
                foreach (var row in bufferedHojoKamokuTable.Select(""))
                {
                    string code = row.GetStr("kamoku_code");
                    if (codeHash.ContainsKey(code))
                    {
                        helper.MsgBox.Err(KaikeiSystemBody.Properties.Resources.MsgDuplicatedKamokuCode);
                        hojoKamokuGridController.SetFocus(rowCt, "kamoku_code");
                        e.Cancel = true;
                        return;
                    }
                    codeHash[code] = true;
                    rowCt++;
                }
                e.Cancel = false;
            };

            bufferedHojoKamokuTable           = new models.db.vtables.BufferedMTKanjouKamoku(Context.KaikeiDatabase);
            bufferedHojoKamokuTable.RootId    = (int)kanjouKamokuRow.GetLong("id", -1);
            bufferedHojoKamokuTable.Recursive = true;
            bufferedHojoKamokuTable.SyncRowList();

            hojoKamokuGridController = new grid.DBPanelGridController <views.grid.HojoKamokuRow>(popup.Grid, true);
            hojoKamokuGridController.SetTable(bufferedHojoKamokuTable);
            hojoKamokuGridController.InitInsertedRow += delegate(models.db.Row row) {
                row.Set("usable", true);
                row.Set("editable", true);
                row.Set("denpyou_print_target", true);
                row.Set("parent_id", (int)kanjouKamokuRow.GetLong("id", -1));
                row.Set("kamoku_code", "" + (bufferedHojoKamokuTable.MaxCode() + 1));
            };
            hojoKamokuGridController.ValidateColumnValue += delegate(views.grid.HojoKamokuRow row, string column, object value) {
                if (column == "kamoku")
                {
                    if (row.RowData.GetLong("shikin_kamoku_kubun_id", -1) != -1)
                    {
                        row.RowData.Set("shikin_kamoku_kubun", value);
                    }
                    if (row.RowData.GetLong("jigyou_kamoku_kubun_id", -1) != -1)
                    {
                        row.RowData.Set("jigyou_kamoku_kubun", value);
                    }
                    if (row.RowData.GetLong("taisyaku_kamoku_kubun_id", -1) != -1)
                    {
                        row.RowData.Set("taisyaku_kamoku_kubun", value);
                    }
                }
            };
            hojoKamokuGridController.ValidateRemoveRow += delegate(views.grid.HojoKamokuRow row) {
                if ((row.RowData.Table.OwnerDB as models.db.KaikeiDatabase).KaikeiDenpyouMeisai.IsUsedKanjouKamoku(row.RowData.GetId()))
                {
                    helper.MsgBox.Err(Properties.Resources.MsgUsedKamokuCanNotDelete);
                    return(false);
                }
                return(true);
            };
            hojoKamokuGridController.SetQuery("");

            popup.KanjouKamokuDetailRow.SetMasterTables(Context.KaikeiDatabase);
            popup.KanjouKamokuDetailRow.SetRowData(kanjouKamokuRow, false);
            popup.KanjouKamokuDetailRow.Column_UpdateValueAction += DetailRowColumn_UpdateValue;
            popup.KanjouKamokuDetailRow.DeleteButtonClicked      += DetailRowDeleteButtonClicked;

            popup.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
            popup.Location      = new System.Drawing.Point(
                owner.Location.X + (owner.Size.Width - popup.Size.Width) / 2,
                owner.Location.Y + (owner.Size.Height - popup.Size.Height) / 2
                );

            popup.ShowDialog(owner);
        }
示例#3
0
 public KanjouKamokuDetailPopupController()
 {
     popup = null;
     bufferedHojoKamokuTable = null;
     kanjouKamokuRow         = null;
 }