private void addNewObjectToolStripMenuItem_Click(object sender, EventArgs e) { NewIndex ni = new NewIndex(eds); if (ni.ShowDialog() == DialogResult.OK) { eds.dirty = true; ODentry od = new ODentry(); od.objecttype = ni.ot; od.index = ni.index; od.StorageLocation = "RAM"; od.defaultvalue = ""; od.accesstype = EDSsharp.AccessType.rw; od.datatype = ni.dt; od.parameter_name = ni.name; if (od.objecttype == ObjectType.REC || od.objecttype == ObjectType.ARRAY) { { ODentry sod = new ODentry(); sod.objecttype = ObjectType.VAR; sod.subindex = 0; sod.index = ni.index; sod.StorageLocation = "RAM"; sod.defaultvalue = String.Format("{0}", ni.nosubindexes); sod.accesstype = EDSsharp.AccessType.ro; sod.datatype = DataType.UNSIGNED8; sod.parent = od; sod.parameter_name = "max sub-index"; od.subobjects.Add(0, sod); } for (int p = 0; p < ni.nosubindexes; p++) { ODentry sod = new ODentry(); sod.objecttype = ObjectType.VAR; sod.subindex = (UInt16)(p + 1); sod.index = ni.index; sod.StorageLocation = "RAM"; sod.defaultvalue = ""; sod.accesstype = EDSsharp.AccessType.rw; sod.datatype = ni.dt; sod.parent = od; od.subobjects.Add((ushort)(p + 1), sod); } } eds.ods.Add(od.index, od); //Now switch to it as well Bug #26 updateselectedindexdisplay(od.index); selectedobject = eds.ods[od.index]; validateanddisplaydata(); populateindexlists(); } }