/// <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); } }
/// <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(); }