private CS_BuiltInSignalLibrary CloneLibrary(CS_BuiltInSignalLibrary OriginalLib) { if (!(OriginalLib == null)) { CS_BuiltInSignalLibrary CloneLib = new CS_BuiltInSignalLibrary(); CloneLib.Name = OriginalLib.Name; CloneLib.Comment = OriginalLib.Comment; CloneLib.ReadOnly = OriginalLib.ReadOnly; foreach (CS_BuiltInSignal oSignal in OriginalLib.Signals) { CloneLib.Signals.Add(OriginalLib.CloneSignal(oSignal)); } return(CloneLib); } return(null); }
private void PasteItem() { if (!(oClipBoardItem == null)) { if (oClipBoardItem.GetType().Equals(typeof(CS_BuiltInSignalLibrary))) //Paste of a library { oActiveLibrary = CloneLibrary((CS_BuiltInSignalLibrary)oClipBoardItem); //Rename library if (oBSLibCollection.LibraryExists(oActiveLibrary.Name)) { int i = 1; while (oBSLibCollection.LibraryExists(oActiveLibrary.Name + "_" + i.ToString("D2"))) { i++; } oActiveLibrary.Name = oActiveLibrary.Name + "_" + i.ToString("D2"); } oActiveLibrary.CollectionParent = oBSLibCollection; oBSLibCollection.AddLibrary(oActiveLibrary); AddLibrary(oActiveLibrary); //Set flag to make the main form reloading libraries bFrmMain_ReloadLibraries = true; if (bCutOption) { DeleteItem(oClipBoardItem, true); bCutOption = false; } } if (oClipBoardItem.GetType().Equals(typeof(CS_BuiltInSignal))) //Paste of a signal { if (!(oActiveLibrary == null)) { oActiveSignal = oActiveLibrary.CloneSignal((CS_BuiltInSignal)oClipBoardItem); //Rename channel (if needed) if (oActiveLibrary.SignalExists(oActiveSignal.Name)) { int i = 1; while (oActiveLibrary.SignalExists(oActiveSignal.Name + "_" + i.ToString("D2"))) { i++; } oActiveSignal.Name = oActiveSignal.Name + "_" + i.ToString("D2"); } oActiveSignal.ParentLibrary = oActiveLibrary; oActiveLibrary.Signals.Add(oActiveSignal); //Set flag to make the main form reloading libraries bFrmMain_ReloadLibraries = true; TreeNode nLib = GetLibraryNode(oActiveLibrary.Name); if (!(nLib == null)) { nLib.Nodes.Add(oActiveSignal.Name, oActiveSignal.Name, 1, 1); } if (bCutOption) { DeleteItem(oClipBoardItem, true); bCutOption = false; } } } } }