private void initModel() { mFibTableOriginal = new FibTable(); mFibTableNormalized = new FibTable(); mFibTableCompressed = new FibTable(); mFibTreeOriginal = new FibTree(); mFibTreeNormalized = new FibTree(); mFibTreeCompressed = new FibTree(); mMultiLookupCollection = new MultiLookupCollection(); mFibTableOriginal.CollectionChanged += MFibTableOriginal_CollectionChanged; mFibTreeOriginal.TreeChanged += MFibTreeOriginal_TreeChanged; mFibTreeNormalized.TreeChanged += MFibTreeNormalized_TreeChanged; mFibTreeCompressed.TreeChanged += MFibTreeCompressed_TreeChanged; }
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; }