ATMLCommonLibrary.controls.signal.SignalModelLibraryForm.lvSignals_SelectedIndexChanged C# (CSharp) Method

lvSignals_SelectedIndexChanged() private method

private lvSignals_SelectedIndexChanged ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        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;
            }
        }