private void initNextHopTable(ref DataGridView originalTable, ref CustomDataGridView <FibTreeLabel> customMember, Panel container, FibTree fibTree) { customMember = CreateTable <FibTreeLabel>(ref originalTable, container); CustomDataGridViewColumnDescriptorBuilder <FibTreeLabel> builder; // Column: prefix, IP format builder = new CustomDataGridViewColumnDescriptorBuilder <FibTreeLabel>(customMember); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Label"); builder.Width(60); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.Text; }); builder.AddChangeEvent(nameof(FibEntry.IpForm)); builder.BuildAndAdd(); // Column: next hop builder = new CustomDataGridViewColumnDescriptorBuilder <FibTreeLabel>(customMember); builder.Type(DataGridViewColumnType.TextBox); builder.Header("IP address"); builder.Width(120); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.NextHop; }); builder.AddChangeEvent(nameof(FibEntry.NextHop)); builder.BuildAndAdd(); // Bind database customMember.BoundCollection = fibTree.Labels; }
private void initFibTable(ref DataGridView originalTable, ref CustomDataGridView <FibEntry> customMember, Panel container, bool canDelete, FibTable fibTable) { customMember = CreateTable <FibEntry>(ref originalTable, container); CustomDataGridViewColumnDescriptorBuilder <FibEntry> builder; // Column: prefix, IP format builder = new CustomDataGridViewColumnDescriptorBuilder <FibEntry>(customMember); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Prefix"); builder.Width(120); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.IpForm; }); builder.AddChangeEvent(nameof(FibEntry.IpForm)); builder.BuildAndAdd(); // Column: prefix, IP format builder = new CustomDataGridViewColumnDescriptorBuilder <FibEntry>(customMember); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Binary"); builder.Width(120); builder.UpdaterMethod((entry, cell) => { cell.Value = string.IsNullOrEmpty(entry.BinaryForm) ? "-" : entry.BinaryForm; }); builder.AddChangeEvent(nameof(FibEntry.BinaryForm)); builder.BuildAndAdd(); // Column: next hop builder = new CustomDataGridViewColumnDescriptorBuilder <FibEntry>(customMember); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Next hop"); builder.Width(100); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.NextHop; }); builder.AddChangeEvent(nameof(FibEntry.NextHop)); builder.BuildAndAdd(); if (canDelete) { // Column: delete button builder = new CustomDataGridViewColumnDescriptorBuilder <FibEntry>(customMember); builder.Type(DataGridViewColumnType.Button); builder.Header("Delete"); builder.Width(70); builder.ButtonText("Delete"); builder.CellContentClickHandlerMethod((entry, cell, e) => { string msgBoxText = string.Format("Do you really want to delete this prefix?\n{0}", entry.IpForm); var confirm = MessageBox.Show(msgBoxText, "Delete confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (confirm == DialogResult.Yes) { fibTable.RemoveEntry(entry); } }); builder.BuildAndAdd(); } // Bind database customMember.BoundCollection = fibTable; }
protected CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> idColumnCreator <TModelBasetype>(CustomDataGridView <TModelBasetype> table, ItemListFormBaseManager <TModelBasetype> .ColumnDescriptorBuilderGetterDelegate builderGetterMethod) where TModelBasetype : class, IModel, INotifyPropertyChanged { CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> builder = builderGetterMethod(); builder.Type(DataGridViewColumnType.TextBox); builder.Header("ID"); builder.Width(30); builder.UpdaterMethod((item, cell) => { cell.Value = string.Format("#{0}", item.ID); }); builder.AddChangeEvent(nameof(IModel.ID)); return(builder); }
protected CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> nameColumnCreator <TModelBasetype>(CustomDataGridView <TModelBasetype> table, ItemListFormBaseManager <TModelBasetype> .ColumnDescriptorBuilderGetterDelegate builderGetterMethod) where TModelBasetype : class, IModel, INotifyPropertyChanged { CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> builder = builderGetterMethod(); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Name"); builder.Width(150); builder.CellStyle(BOLD_TEXT_CELL_STYLE); builder.UpdaterMethod((item, cell) => { cell.Value = item.Name; }); builder.AddChangeEvent(nameof(IModel.Name)); return(builder); }
protected CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> deleteButtonColumnCreator <TModelBasetype>(CustomDataGridView <TModelBasetype> table, ItemListFormBaseManager <TModelBasetype> .ColumnDescriptorBuilderGetterDelegate builderGetterMethod) where TModelBasetype : class, IModel, INotifyPropertyChanged { CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> builder = builderGetterMethod(); builder.Type(DataGridViewColumnType.Button); builder.Header("Delete"); builder.Width(70); builder.DividerWidth(DEFAULT_DIVIDER_WIDTH); builder.ButtonText("Delete"); builder.CellContentClickHandlerMethod((item, cell, e) => { string msgBoxText = string.Format("Do you really want to delete this {0}?\n{1}", SubjectSingular, item); var confirm = MessageBox.Show(msgBoxText, "Delete confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (confirm == DialogResult.Yes) { ((IModelListFormBaseManager)Manager).DeleteItem(item); } }); return(builder); }
public void InitializeTable() { table = form.CreateTable <TItem>(); List <CustomDataGridViewColumnDescriptorBuilder <TItem> > columnDescriptorBuilders = new List <CustomDataGridViewColumnDescriptorBuilder <TItem> >(); ColumnDescriptorBuilderGetterDelegate builderGetterMethod = () => { CustomDataGridViewColumnDescriptorBuilder <TItem> builder = new CustomDataGridViewColumnDescriptorBuilder <TItem>(); columnDescriptorBuilders.Add(builder); return(builder); }; foreach (ColumnDescriptorCreatorDelegate columnDescriptorCreator in columnDescriptorCreators) { columnDescriptorCreator(table, builderGetterMethod); } foreach (CustomDataGridViewColumnDescriptorBuilder <TItem> builder in columnDescriptorBuilders) { builder.BuildAndAdd(table); } table.BoundCollection = boundCollection; }
protected CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> editButtonColumnCreator <TModelBasetype>(CustomDataGridView <TModelBasetype> table, ItemListFormBaseManager <TModelBasetype> .ColumnDescriptorBuilderGetterDelegate builderGetterMethod) where TModelBasetype : class, IModel, INotifyPropertyChanged { CustomDataGridViewColumnDescriptorBuilder <TModelBasetype> builder = builderGetterMethod(); builder.Type(DataGridViewColumnType.Button); builder.Header("Edit"); builder.Width(70); builder.ButtonText("Edit"); builder.CellContentClickHandlerMethod((item, cell, e) => { ChildWindowBase editWindow = null; if (EditorFormTypeRegister != null) { ModelEditorFormTypeRegister <TModelBasetype> typeRegisterCasted = EditorFormTypeRegister as ModelEditorFormTypeRegister <TModelBasetype>; editWindow = typeRegisterCasted?.GetFormForModel(item) as ChildWindowBase; } else if (ModelEditorForm != null) { editWindow = ModelEditorForm.GetInstance(item) as ChildWindowBase; } editWindow?.ShowAsChild(); }); return(builder); }
private void initIpLookupStatisticsTable() { _ipLookupStatisticsTable = CreateTable <MultiLookup>(ref ipLookupStatisticsTable, ipLookupStatisticsTableContainer); CustomDataGridViewColumnDescriptorBuilder <MultiLookup> builder; // Column: prefix, IP format builder = new CustomDataGridViewColumnDescriptorBuilder <MultiLookup>(_ipLookupStatisticsTable); builder.Type(DataGridViewColumnType.TextBox); builder.Header("IP"); builder.Width(150); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.IP; }); builder.AddChangeEvent(nameof(MultiLookup.IP)); builder.BuildAndAdd(); // Column: prefix, IP format builder = new CustomDataGridViewColumnDescriptorBuilder <MultiLookup>(_ipLookupStatisticsTable); builder.Type(DataGridViewColumnType.TextBox); builder.Header("IP (binary)"); builder.Width(300); builder.UpdaterMethod((entry, cell) => { cell.Value = IpConverter.IpToBinary(entry.IP, " "); }); builder.AddChangeEvent(nameof(MultiLookup.IP)); builder.BuildAndAdd(); // Column: next hop builder = new CustomDataGridViewColumnDescriptorBuilder <MultiLookup>(_ipLookupStatisticsTable); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Next hop"); builder.Width(150); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.NextHop ?? "-"; }); builder.AddChangeEvent(nameof(MultiLookup.NextHop)); builder.BuildAndAdd(); // Column: edges (original) builder = new CustomDataGridViewColumnDescriptorBuilder <MultiLookup>(_ipLookupStatisticsTable); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Edges (original)"); builder.Width(120); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.EdgesOriginal?.ToString() ?? "-"; }); builder.AddChangeEvent(nameof(MultiLookup.EdgesOriginal)); builder.BuildAndAdd(); // Column: edges (normalized) builder = new CustomDataGridViewColumnDescriptorBuilder <MultiLookup>(_ipLookupStatisticsTable); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Edges (normalized)"); builder.Width(120); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.EdgesNormalized?.ToString() ?? "-"; }); builder.AddChangeEvent(nameof(MultiLookup.EdgesNormalized)); builder.BuildAndAdd(); // Column: edges (original) builder = new CustomDataGridViewColumnDescriptorBuilder <MultiLookup>(_ipLookupStatisticsTable); builder.Type(DataGridViewColumnType.TextBox); builder.Header("Edges (compressed)"); builder.Width(120); builder.UpdaterMethod((entry, cell) => { cell.Value = entry.EdgesCompressed?.ToString() ?? "-"; }); builder.AddChangeEvent(nameof(MultiLookup.EdgesCompressed)); builder.BuildAndAdd(); // Column: visualize builder = new CustomDataGridViewColumnDescriptorBuilder <MultiLookup>(_ipLookupStatisticsTable); builder.Type(DataGridViewColumnType.Button); builder.Header("Visualize"); builder.Width(90); builder.ButtonText("Visualize"); builder.CellContentClickHandlerMethod((entry, cell, e) => { visualizeLookups(entry); }); builder.BuildAndAdd(); // Bind database _ipLookupStatisticsTable.BoundCollection = mMultiLookupCollection; }