public GXDLMSProfileGenericColumnDlg( GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> target, GXDLMSObjectCollection list, string title) { Target = target; AllObjects = new GXDLMSObjectCollection(); AllObjects.AddRange(list); //Remove not needed objects. foreach (GXDLMSObject it in list.GetObjects(new ObjectType[] { ObjectType.AssociationLogicalName, ObjectType.AssociationShortName, ObjectType.ProfileGeneric })) { AllObjects.Remove(it); } InitializeComponent(); if (title != null) { this.Text = title; } foreach (GXDLMSObject it in AllObjects) { TargetCb.Items.Add(it); } if (Target.Key != null) { TargetCb.SelectedItem = AllObjects.FindByLN(Target.Key.ObjectType, Target.Key.LogicalName); } if (Target.Value != null) { IndexTB.Text = target.Value.AttributeIndex.ToString(); DataIndexTb.Text = target.Value.DataIndex.ToString(); } else { IndexTB.Text = "2"; DataIndexTb.Text = "0"; } }
/// <summary> /// Load saved COSEM objects from XML. /// </summary> /// <param name="path">File path.</param> bool LoadObjects(string path, GXDLMSObjectCollection items) { lock (settingsLock) { if (File.Exists(path)) { GXDLMSObjectCollection objects = GXDLMSObjectCollection.Load(path); items.Clear(); items.AddRange(objects); UpdateValues(items); return(true); } } return(false); }
private void ObjectList_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { try { this.ObjectTree.AfterSelect -= new System.Windows.Forms.TreeViewEventHandler(this.ObjectTree_AfterSelect); if (e.IsSelected) { SelectedListItems.Add(e.ItemIndex, e.Item.Tag as GXDLMSObject); if (SelectedListItems.Count == 1) { SelectItem(e.Item.Tag); } else { GXDLMSObjectCollection items = new GXDLMSObjectCollection(); items.AddRange(SelectedListItems.Values.ToArray()); SelectItem(items); } TreeNode node = ObjectTreeItems[e.Item.Tag] as TreeNode; if (node != null) { ObjectTree.SelectedNode = node; } } else { int pos = SelectedListItems.IndexOfValue(e.Item.Tag as GXDLMSObject); if (pos != -1) { SelectedListItems.RemoveAt(pos); } else { return; } if (SelectedListItems.Count == 0) { SelectItem(((GXDLMSObject)e.Item.Tag).Parent.Tag); } else if (SelectedListItems.Count == 1) { SelectItem(SelectedListItems.Values[0]); } else { GXDLMSObjectCollection items = new GXDLMSObjectCollection(); items.AddRange(SelectedListItems.Values.ToArray()); SelectItem(items); } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } finally { this.ObjectTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.ObjectTree_AfterSelect); } }