private void ExchageTableItem(LogTable table, int firstIndex, int secondIndex) { LogTableItem lti = (LogTableItem)table.Columns[firstIndex].Clone(); table.Columns[firstIndex].CopyFrom(table.Columns[secondIndex]); table.Columns[secondIndex].CopyFrom(lti); }
private bool m_isUseCommand = true; // 加这个变量主要是UpdateLogTableItemValueCommand // undoredo的时候都会给datagridview赋值,这时会引起 // CellValueChanged事件,又会加一个命令 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex == SelectIndex) { return; } if (!m_isUseCommand) { m_isUseCommand = true; return; } LogTableItem newItem = GetLogTableItemRow(e.RowIndex); string appGuid = Convert.ToString(tvApps.SelectedNode.Parent.Tag); string tableGuid = Convert.ToString(tvApps.SelectedNode.Tag); UpdateLogTableItemValueCommand cmd = new UpdateLogTableItemValueCommand(appGuid, tableGuid, newItem); cmd.UndoDone += new UndoRedoEventHandler(UpdateGridViewContent); cmd.RedoDone += new UndoRedoEventHandler(UpdateGridViewContent); cmd.Execute(); UpdatePreView(); AddCommand(cmd); }
private void SetRowContent(LogTable table, int rowIndex, bool isChecked) { LogTableItem item = GetLogTableItemRow(rowIndex); LogColumn lc = LogColumnService.Instance.GetLogColumn(item.LogColumnIndex); this.dataGridView1.Rows.RemoveAt(rowIndex); InsertRow(rowIndex, isChecked, item, lc); }
public UpdateLogTableItemValueCommand(string appGuid, string tableGuid, LogTableItem newValue) { m_appGuid = appGuid; m_tableGuid = tableGuid; m_newValue = (LogTableItem)newValue.Clone(); m_oldValue = (LogTableItem)AppService.Instance.GetAppTableItem(appGuid, tableGuid, newValue.LogColumnIndex).Clone(); }
private LogTableItem GetLogTableItemRow(int rowIndex) { LogTableItem newItem = LogTableItem.CreateNewLogTableItem( Convert.ToInt32(this.dataGridView1.Rows[rowIndex].Cells[LogColumnIndexIndex].Value), Convert.ToBoolean(this.dataGridView1.Rows[rowIndex].Cells[LogItemIsFilterIndex].Value)); newItem.Visible = Convert.ToBoolean(this.dataGridView1.Rows[rowIndex].Cells[LogColumnVisibleIndex].Value); newItem.NickName = Convert.ToString(this.dataGridView1.Rows[rowIndex].Cells[LogColumnNickNameIndex].Value); return(newItem); }
public static LogTableItemPlus ToLogTableItemPlus(LogTableItem t) { LogTableItemPlus p = new LogTableItemPlus(); p.SeqIndex = t.SeqIndex; p.LogColumnIndex = t.LogColumnIndex; p.IsFilterColumn = t.IsFilterColumn; p.NickName = t.NickName; p.Visible = t.Visible; return(p); }
private void btnAddNew_Click(object sender, EventArgs e) { try { string appGuid = Convert.ToString(tvApps.SelectedNode.Parent.Tag); string tableGuid = Convert.ToString(tvApps.SelectedNode.Tag); this.Cursor = Cursors.WaitCursor; List <Int32> lstExistingIndexes = new List <int>(); foreach (DataGridViewRow dgvr in this.dataGridView1.Rows) { lstExistingIndexes.Add(Convert.ToInt32(dgvr.Cells[LogColumnIndexIndex].Value)); } frmEditItem fe = new frmEditItem(true, lstExistingIndexes); if (CGeneralFuncion.ShowWindow(this, fe, true) == System.Windows.Forms.DialogResult.OK) { List <LogTableItem> lstSelectItems = new List <LogTableItem>(); foreach (int lcIndex in fe.SelectLogColumnIndex) { lstSelectItems.Add(LogTableItem.CreateNewLogTableItem(lcIndex)); } if (lstSelectItems.Count > 0) { AddNewTableColumnsCommand cmd = new AddNewTableColumnsCommand(appGuid, tableGuid, lstSelectItems); cmd.UndoDone += new UndoRedoEventHandler(RemoveTableRows); cmd.RedoDone += new UndoRedoEventHandler(AddTableRows); cmd.Execute(); AddCommand(cmd); AddTableRows(lstSelectItems); UpdatePreView(); } } } catch (Exception ex) { MessageBox.Show("添加新的日志列失败,错误消息为:" + ex.Message); } finally { if (this.Cursor != Cursors.Default) { this.Cursor = Cursors.Default; } } }
public bool UpdateTableItemValue(string appGuid, string tableGuid, LogTableItem item) { if (!m_existingApps.ContainsKey(appGuid)) { throw new Exception("要更新的日志结构所属的应用程序不存在"); } if (DBService.Instance.UpdateTableItemValue(appGuid, tableGuid, item)) { m_existingApps[appGuid].GetTable(tableGuid).GetColumn(item.LogColumnIndex).CopyFrom(item); return(true); } return(false); }
private void UpdateGridViewContent(LogTableItem item) { foreach (DataGridViewRow dgvr in this.dataGridView1.Rows) { if (Convert.ToInt32(dgvr.Cells[LogColumnIndexIndex].Value) == item.LogColumnIndex) { m_isUseCommand = false; dgvr.Cells[LogItemIsFilterIndex].Value = item.IsFilterColumn; dgvr.Cells[LogColumnNickNameIndex].Value = item.NickName; dgvr.Cells[LogColumnVisibleIndex].Value = item.Visible; break; } } UpdatePreView(); }
private void btnDelete_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { List <LogTableItem> lstSelectedItems = new List <LogTableItem>(); foreach (DataGridViewRow dgvr in this.dataGridView1.Rows) { if (Convert.ToBoolean(dgvr.Cells[SelectIndex].Value)) { lstSelectedItems.Add(LogTableItem.CreateNewLogTableItem( Convert.ToInt32(dgvr.Cells[LogColumnIndexIndex].Value), Convert.ToBoolean(dgvr.Cells[LogItemIsFilterIndex].Value))); } } if (lstSelectedItems.Count <= 0) { MessageBox.Show("请先勾选要删除的行"); } string appGuid = Convert.ToString(tvApps.SelectedNode.Parent.Tag); string tableGuid = Convert.ToString(tvApps.SelectedNode.Tag); RemoveTableColumnsCommand cmd = new RemoveTableColumnsCommand(appGuid, tableGuid, lstSelectedItems); cmd.UndoDone += new UndoRedoEventHandler(AddTableRows); cmd.RedoDone += new UndoRedoEventHandler(RemoveTableRows); cmd.Execute(); AddCommand(cmd); RemoveTableRows(lstSelectedItems); UpdatePreView(); } catch (Exception ex) { MessageBox.Show("删除日志列操作失败,错误消息为:" + ex.Message); } finally { this.Cursor = Cursors.Default; } }
private void InsertRow(int rowIndex, bool isChecked, LogTableItem item, LogColumn lc) { this.dataGridView1.Rows.Insert(rowIndex, new object[] { isChecked, lc.Name, lc.Type, lc.Index, item.NickName, item.Visible, item.IsFilterColumn }); }
private void AddRow(LogTableItem item) { InsertRow(this.dataGridView1.Rows.Count, false, item, LogColumnService.Instance.GetLogColumn(item.LogColumnIndex)); }
public bool UpdateTableItemValue(string appGuid, string tableGuid, LogTableItem item) { return(m_dbClient.UpdateTableItemValue(tableGuid, LogTypeConvert.ToLogTableItemPlus(item))); }