private void UpdateTable(RegisterEntry entry) { TreeGridNode node; string group = entry.GetGroup(); object[] ent = entry.GetTableEntry(); bool b, isField = entry.GetRegType() == RegisterEntry.type_field.FIELD; treeGridView1.Rows.AddRange(); foreach (TreeGridNode group_node in treeGridView1.Nodes) { if (group_node.Cells["Registers"].Value.ToString().Equals(group)) { if (!isField) { node = group_node.Nodes.Add(ent); group_node.Expand(); } else { TreeGridNode tmp = null; group_node.Expand(); foreach (TreeGridNode reg in group_node.Nodes) { b = reg.GetIsExpanded(); reg.Expand(); if ((int)reg.Cells["IndexColumn"].Value == entry.GetIndex()) { tmp = reg; break; } else if (!b) { reg.Collapse(); } } if (tmp != null) { node = tmp.Nodes.Add(ent); //group_node.Expand(); tmp.Expand(); } break; } } } }
private void TreeGridView1_SelectionChanged(object sender, EventArgs e) { RegisterEntry re = null; foreach (TreeGridNode item in treeGridView1.SelectedRows) { try { re = RegList[(int)item.Cells["IndexColumn"].Value]; int index = (int)item.Cells["SecondaryIndexColumn"].Value; if (index != -1) { re = re.GetFields()[index]; //MessageBox.Show(re.GetIndex().ToString() + ", " + index); } else { //MessageBox.Show(re.GetIndex().ToString()); } break; } catch (NullReferenceException) { //do nothing for groups return; } } if (re != null) { RegNameText.Text = re.GetName(); CommentText.Text = re.GetComment(); InitText.Text = re.GetInit(); int index = LSBOpts.FindStringExact(re.GetLSB().ToString()); if (index == -1) { index = 0; } LSBOpts.SelectedIndex = index; index = LSBOpts.FindStringExact(re.GetLSB().ToString()); if (index == -1) { index = 0; } LSBOpts.SelectedIndex = index; index = MSBOpts.FindStringExact(re.GetMSB().ToString()); if (index == -1) { index = 31; } MSBOpts.SelectedIndex = index; index = MAISOpts.FindStringExact(re.GetMAIS().ToString()); if (index == -1) { index = 0; } MAISOpts.SelectedIndex = index; index = TypeOpts.FindStringExact(re.GetRegType().ToString()); if (index == -1) { index = 0; } TypeOpts.SelectedIndex = index; index = FPGAOpts.FindStringExact(re.GetFPGA().ToString()); if (index == -1) { index = 0; } FPGAOpts.SelectedIndex = index; RegGroupOpts.SelectedIndex = RegGroupOpts.FindStringExact(re.GetGroup()); if (re.GetIsComment()) { ErrorMessage.Text = ""; } else if (!re.GetValid()) { ErrorMessage.Text = re.GetReason(); } else { ErrorMessage.Text = ""; } } }