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;
}
}