Пример #1
0
        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);
        }
Пример #2
0
        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;
                        }
                    }
                }
            }
        }