Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        private void ProcessPaste()
        {
            if (CopyPasteHelper.Helper.CopyObj is IDeviceDevelop)
            {
                var vv = (CopyPasteHelper.Helper.CopyObj as IDeviceDevelop).Clone();
                vv.Group = this.FullName;
                vv.Name  = mDocument.GetAvaiableName(vv.Name, vv.Group);

                if (Document.AddDevice(vv))
                {
                    var vvv = new DeviceTreeViewModel()
                    {
                        Document = this.Document, Model = vv, Parent = this
                    };
                    this.Children.Add(vvv);
                    OnNameRefresh();

                    var driver    = (vv as DeviceDevelop).Driver;
                    var driverdoc = GetMachineViewModel(this).Model.Driver;
                    driverdoc?.AddDriver(driver);
                }
            }
            else if (CopyPasteHelper.Helper.CopyObj is DeviceGroup)
            {
                DeviceGroup dgg = CopyPasteHelper.Helper.CopyObj as DeviceGroup;
                PasteGroup(dgg, this);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="group"></param>
        private void PasteGroup(DeviceGroup group, DeviceGroupViewModel parentViewModel)
        {
            var vgg = mDocument.GetGroups(group);
            var ggg = group.Clone();

            DeviceGroup parent = (this.Parent is DeviceGroupViewModel) ? (Parent as DeviceGroupViewModel).Model : null;

            ggg.Name = Document.GetAvaiableGroupName(ggg.Name, parent != null ? parent.FullName : string.Empty);

            Document.AddDeviceGroup(parent, ggg);
            var vmodel = new DeviceGroupViewModel()
            {
                Model = ggg, Document = this.Document, Parent = parentViewModel
            };

            parentViewModel.Children.Add(vmodel);


            foreach (IDeviceDevelop vv in ggg.Devices.ToArray())
            {
                vv.Group = ggg.FullName;
                Document.AddDevice(vv);

                vmodel.Children.Add(new DeviceTreeViewModel()
                {
                    Model = vv, Document = this.Document, Parent = vmodel
                });

                var driver = (vv as DeviceDevelop).Driver;
                if (driver != null)
                {
                    var driverdoc = GetMachineViewModel(this).Model.Driver;
                    driverdoc?.AddDriver(driver);
                }
            }

            foreach (var vv in vgg)
            {
                PasteGroup(vv, vmodel);
            }
            parentViewModel.RefreshView();
        }