private static void ProcessAttributeAsSignalFunction(SignalFunction sf, string name, ListViewItem lvi) { if (sf != null) { foreach (PropertyInfo pi in sf.GetType().GetProperties()) { object value = pi.GetValue(sf, null); if (value != null) { if (IsStringArray(pi)) { foreach (string s in ((string[])value)) { TestItemColor(s, name, pi, lvi); } } else { TestItemColor(value.ToString(), name, pi, lvi); } } else if (name.Equals(pi.Name)) { lvi.BackColor = RELATED_COLOR; } } } }
/// <summary> /// Constructor for dummy entries /// </summary> public SignalType(SignalFunction function, SignalAspectState aspect) : this() { FunctionType = function; Name = "UNDEFINED"; Semaphore = false; DrawStates = new Dictionary <string, SignalDrawState> { { "CLEAR", new SignalDrawState("CLEAR", 1) } }; Aspects = new List <SignalAspect> { new SignalAspect(aspect, "CLEAR") }; }
private void lvSignals_SelectedIndexChanged(object sender, EventArgs e) { //HourGlass.Enabled = true; try { if (lvSignals.SelectedItems.Count > 0) { var model = (SignalModel)lvSignals.SelectedItems[0].Tag; if (model != null) { lvAttributes.Items.Clear(); List <SignalAttribute> attributes = model.Attributes; foreach (SignalAttribute attribute in attributes) { var item = new ListViewItem(attribute.Name); item.SubItems.Add(attribute.SchemaType); item.SubItems.Add(attribute.DefaultValue); item.Tag = attribute; lvAttributes.Items.Add(item); } object itm = model.TSF.model.Item; if (itm is Signal) { var signal = (Signal)itm; lvModel.Items.Clear(); foreach (object obj in signal.Items) { XmlElement element = obj as XmlElement; SignalFunction signalFunction = obj as SignalFunction; if (signalFunction != null) { var item = new ListViewItem(obj.GetType().Name); item.SubItems.Add(signalFunction.name); item.SubItems.Add(signalFunction.type); item.SubItems.Add(signalFunction.In); item.Tag = obj; lvModel.Items.Add(item); } else if (element != null) { XmlAttribute nameAttribute = element.Attributes["name"]; XmlAttribute typeAttribute = element.Attributes["type"]; XmlAttribute inAttribute = element.Attributes["in"]; var item = new ListViewItem(element.LocalName); item.SubItems.Add(nameAttribute == null?"":nameAttribute.Value); item.SubItems.Add(typeAttribute == null ? "" : typeAttribute.Value); item.SubItems.Add(inAttribute == null ? "" : inAttribute.Value); item.Tag = obj; lvModel.Items.Add(item); } } } } } } finally { //HourGlass.Enabled = false; } }