private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) { TreeNode node = treeView1.SelectedNode; // if(node.Parent != null) // { panelIO1.Clear(); NodeType ioType = (NodeType)node.Tag; string label; switch (ioType) { case NodeType.DigitalInput: foreach (IDigitalInput ioPoint in ioManifest.digitalInputMap.Values) { label = ioPoint.Name; panelIO1.AddIO(ioPoint, label); } break; case NodeType.DigitalOutput: foreach (IDigitalOutput ioPoint in ioManifest.digitalOutputMap.Values) { label = ioPoint.Name; panelIO1.AddIO(ioPoint, label); } break; case NodeType.AnalogInput: foreach (IAnalogInput ioPoint in ioManifest.analogInputMap.Values) { label = ioPoint.Name; panelIO1.AddIO(ioPoint, label); } break; case NodeType.AnalogOutput: foreach (IAnalogOutput ioPoint in ioManifest.analogOutputMap.Values) { label = ioPoint.Name; panelIO1.AddIO(ioPoint, label); } break; } if (ioType == NodeType.Axis) { panelIO1.Visible = false; panelIO1.Dock = DockStyle.None; panelAxis1.Enabled = true; panelAxis1.Visible = true; panelAxis1.Dock = DockStyle.Fill; // assign the one and only axis for this node panelAxis1.AssignAxisMap(ioManifest.axisMap); } else { panelIO1.Visible = true; panelIO1.Dock = DockStyle.Fill; panelIO1.UpdateLayout(); panelAxis1.Enabled = false; panelAxis1.Visible = false; panelAxis1.Dock = DockStyle.Fill; panelAxis1.AssignAxis(null); } // } }
protected virtual void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) { TreeNode node = treeView1.SelectedNode; NodeType ioType = (NodeType)node.Tag; listView1.BeginUpdate(); listView1.Clear(); listView1.View = View.Details; switch (ioType) { case NodeType.DigitalInput: listView1.Columns.Add("State", 70, HorizontalAlignment.Center); listView1.Columns.Add("Digital Input Name", 300, HorizontalAlignment.Left); foreach (IDigitalInput ioPoint in ioManifest.digitalInputMap.Values) { ListViewItem item = new ListViewItem((ioPoint.State == DigitalIOState.On)?"ON ":"OFF", 0); item.Tag = ioPoint; item.SubItems.Add(ioPoint.Name); listView1.Items.Insert(0, item); } break; case NodeType.DigitalOutput: listView1.Columns.Add("State", 70, HorizontalAlignment.Center); listView1.Columns.Add("Digital Output Name", 300, HorizontalAlignment.Left); foreach (IDigitalOutput ioPoint in ioManifest.digitalOutputMap.Values) { ListViewItem item = new ListViewItem((ioPoint.State == DigitalIOState.On)?"ON ":"OFF", 0); item.Tag = ioPoint; item.SubItems.Add(ioPoint.Name); listView1.Items.Insert(0, item); } break; case NodeType.AnalogInput: listView1.Columns.Add("Value", 100, HorizontalAlignment.Center); listView1.Columns.Add("Unit", 100, HorizontalAlignment.Center); listView1.Columns.Add("Analog Input Name", 250, HorizontalAlignment.Left); foreach (IAnalogInput ioPoint in ioManifest.analogInputMap.Values) { ListViewItem item = new ListViewItem(ioPoint.Value.ToString(), 0); item.Tag = ioPoint; item.SubItems.Add(ioPoint.Unit); item.SubItems.Add(ioPoint.Name); listView1.Items.Insert(0, item); } break; case NodeType.AnalogOutput: listView1.Columns.Add("Value", 100, HorizontalAlignment.Center); listView1.Columns.Add("Unit", 100, HorizontalAlignment.Center); listView1.Columns.Add("Analog Output Name", 250, HorizontalAlignment.Left); foreach (IAnalogOutput ioPoint in ioManifest.analogOutputMap.Values) { ListViewItem item = new ListViewItem(ioPoint.Value.ToString(), 0); item.Tag = ioPoint; item.SubItems.Add(ioPoint.Unit); item.SubItems.Add(ioPoint.Name); listView1.Items.Insert(0, item); } break; } listView1.EndUpdate(); if (ioType == NodeType.Axis) { listView1.Visible = false; listView1.Dock = DockStyle.None; panelAxis1.Enabled = true; panelAxis1.Visible = true; panelAxis1.Dock = DockStyle.Fill; // assign the one and only axis for this node panelAxis1.AssignAxisMap(ioManifest.axisMap); } else { listView1.Visible = true; listView1.Dock = DockStyle.Fill; panelAxis1.Enabled = false; panelAxis1.Visible = false; panelAxis1.Dock = DockStyle.Fill; panelAxis1.AssignAxis(null); } }