private IConfigurationItem InitDefaults(IConfigurationItem configurationItem, IEditorConfigurationItemViewModel editorConfigurationItemViewModel) { configurationItem.Description = editorConfigurationItemViewModel.Description; configurationItem.Name = editorConfigurationItemViewModel.Header; return(configurationItem); }
private void OnSetElementDownExecute() { if (SelectedRow == null) { return; } IEditorConfigurationItemViewModel selectedRowBuffer = SelectedRow; if (RootConfigurationItemViewModels.Contains(SelectedRow)) { SetElement(SelectedRow, false); } else { if (SelectedRow.Parent == null) { return; } if (!(SelectedRow.Parent is IChildPositionChangeable)) { return; } SelectedRow.Checked?.Invoke(false); bool isElementSetted = (SelectedRow.Parent as IChildPositionChangeable).SetElement(SelectedRow, false); if (isElementSetted) { SelectedRow?.Parent?.Checked?.Invoke(true); } } SelectedRow = selectedRowBuffer; }
public IConfigurationItemViewModel AddMatrix() { IEditorConfigurationItemViewModel newConfigurationItemViewModel = ConfigurationItemEditorViewModelFactory.Create().WithParent(this).VisitMatrix(null); ChildStructItemViewModels.Add(newConfigurationItemViewModel); return(newConfigurationItemViewModel); }
public static ConfigurationItemEditorViewModelFactory WithParent( this ConfigurationItemEditorViewModelFactory factory, IEditorConfigurationItemViewModel parent) { var newFactory = factory.Clone() as ConfigurationItemEditorViewModelFactory; newFactory.Parent = parent; return(newFactory); }
private void OnAddRootElement() { IEditorConfigurationItemViewModel configurationItemViewModel = ConfigurationItemEditorViewModelFactory.Create().VisitProperty(null); AllRows.Add(configurationItemViewModel); RootConfigurationItemViewModels.Add(configurationItemViewModel); SelectedRow = configurationItemViewModel; CompleteAdding(); }
public IConfigurationItemViewModel AddSubProperty() { IEditorConfigurationItemViewModel subPropertyViewModel = ConfigurationItemEditorViewModelFactory.Create().WithParent(this).VisitSubProperty(null); (subPropertyViewModel as ISubPropertyEditorViewModel).BitNumbersInWord = this.MainBitNumbersInWordCollection; this.SubPropertyEditorViewModels.Add(subPropertyViewModel as ISubPropertyEditorViewModel); this.ChildStructItemViewModels.Add(subPropertyViewModel); return(subPropertyViewModel); }
private void OnAddChildElementExecute() { if (SelectedRow is IChildAddable parent) { IEditorConfigurationItemViewModel configurationEditorViewModel = (SelectedRow as IChildAddable).AddChildElement() as IEditorConfigurationItemViewModel; PrepareAdding(); SelectedRow = configurationEditorViewModel; CompleteAdding(); } }
ConvertComlexPropertyIntoDefaultProperties(IComplexPropertyEditorViewModel complexPropertyEditorViewModel, IEditorConfigurationItemViewModel parent) { List <IPropertyEditorViewModel> res = new List <IPropertyEditorViewModel>(); List <(string resourceName, IPropertyEditorViewModel resource)> resourcesResult = new List <(string resourceName, IPropertyEditorViewModel resource)>(); foreach (var subPropertyEditorViewModel in complexPropertyEditorViewModel.SubPropertyEditorViewModels) { var factory = ConfigurationItemEditorViewModelFactory.Create().WithParent(parent); var bits = subPropertyEditorViewModel.BitNumbersInWord.Where(model => model.Value && model.Owner == subPropertyEditorViewModel).ToList(); var property = factory.VisitProperty(null) as IPropertyEditorViewModel; property.Name = subPropertyEditorViewModel.Name; property.Header = subPropertyEditorViewModel.Header; property.Address = complexPropertyEditorViewModel.Address; property.Description = subPropertyEditorViewModel.Description; property.NumberOfWriteFunction = complexPropertyEditorViewModel.NumberOfWriteFunction; property.NumberOfPoints = complexPropertyEditorViewModel.NumberOfPoints; property.IsMeasureUnitEnabled = subPropertyEditorViewModel.IsMeasureUnitEnabled; property.MeasureUnit = subPropertyEditorViewModel.MeasureUnit; property.IsRangeEnabled = subPropertyEditorViewModel.IsRangeEnabled; property.DependencyViewModels.AddCollection(subPropertyEditorViewModel.DependencyViewModels .Select(model => model.Clone())); property.RangeViewModel = subPropertyEditorViewModel.RangeViewModel.Clone() as IRangeViewModel; property.IsFromBits = true; property.FormatterParametersViewModel = subPropertyEditorViewModel.FormatterParametersViewModel?.Clone(); foreach (var bit in bits) { property.BitNumbersInWord.First(model => model.BitNumber == bit.NumberOfBit).IsChecked = true; } var sharedResourcesService = StaticContainer.Container.Resolve <ISharedResourcesGlobalViewModel>(); var resourceInfo = sharedResourcesService.GetNameByResourceViewModel(subPropertyEditorViewModel); if (resourceInfo.IsSuccess) { resourcesResult.Add((resourceInfo.Item, property)); sharedResourcesService.RemoveResourceByViewModel(subPropertyEditorViewModel); } res.Add(property); } return(res, resourcesResult); }
public void RemoveChildItem(IEditorConfigurationItemViewModel configurationItemViewModelToRemove) { ISubPropertyEditorViewModel subPropertyEditorViewModelToRemove = configurationItemViewModelToRemove as ISubPropertyEditorViewModel; this.SubPropertyEditorViewModels.Remove(subPropertyEditorViewModelToRemove); this.ChildStructItemViewModels.Remove(subPropertyEditorViewModelToRemove); MainBitNumbersInWordCollection.ForEach(model => { if (model.Owner == configurationItemViewModelToRemove && model.Value) { model.ChangeValueByOwnerCommand.Execute(configurationItemViewModelToRemove); } }); }
private void DeleteHeirarchicalRow(IEditorConfigurationItemViewModel configurationItemViewModel) { if (configurationItemViewModel.ChildStructItemViewModels != null) { if (configurationItemViewModel.ChildStructItemViewModels is IEnumerable) { List <IConfigurationItemViewModel> itemsToDelete = new List <IConfigurationItemViewModel>(); itemsToDelete.AddRange(configurationItemViewModel.ChildStructItemViewModels); foreach (IConfigurationItemViewModel item in itemsToDelete) { if (item is IEditorConfigurationItemViewModel) { DeleteHeirarchicalRow(item as IEditorConfigurationItemViewModel); } } } } if (configurationItemViewModel is IDeletable) { //проверка на корневой элемент (у него нет родителя и он состоит в списке корневых элементов) if (configurationItemViewModel.Parent == null) { if (RootConfigurationItemViewModels.Contains(configurationItemViewModel)) { RootConfigurationItemViewModels.Remove(configurationItemViewModel); // this._deviceConfiguration.RootConfigurationItemList.Remove(configurationItemViewModel.Model as IConfigurationItem); } } else { ((IDeletable)configurationItemViewModel).DeleteElement(); } } AllRows.Remove(configurationItemViewModel); }
private void OnPasteAsChildElementExecute() { if (_bufferConfigurationItems.IsSuccess) { if (_bufferConfigurationItems.Item.isMove) { var parent = _bufferConfigurationItems.Item.item.First().Parent; parent?.Checked?.Invoke(false); foreach (var bufferConfigurationItem in _bufferConfigurationItems.Item.item) { var sharedResourceInfo = _sharedResourcesGlobalViewModel.GetNameByResourceViewModel(bufferConfigurationItem); var selectedRowToPaste = (SelectedRow as IAsChildPasteable); (bufferConfigurationItem as IDeletable).DeleteElement(); if (parent != null) { parent.IsCheckable = true; parent.Checked?.Invoke(true); } if (RootConfigurationItemViewModels.Contains(bufferConfigurationItem)) { RootConfigurationItemViewModels.Remove(bufferConfigurationItem); // this._deviceConfiguration.RootConfigurationItemList.Remove(configurationItemViewModel.Model as IConfigurationItem); } selectedRowToPaste.PasteAsChild(bufferConfigurationItem); if (sharedResourceInfo.IsSuccess) { _sharedResourcesGlobalViewModel.AddAsSharedResourceWithContainer( bufferConfigurationItem, sharedResourceInfo.Item, false); } } PrepareAdding(); SelectedRow = _bufferConfigurationItems.Item.item.First(); CompleteAdding(); _bufferConfigurationItems = ResultUtils.Nothing; } else { if (SelectedRow is IAsChildPasteable) { foreach (var bufferConfigurationItem in _bufferConfigurationItems.Item.item) { IEditorConfigurationItemViewModel editorConfigurationItemViewModel = bufferConfigurationItem.Clone() as IEditorConfigurationItemViewModel; (SelectedRow as IAsChildPasteable).PasteAsChild(editorConfigurationItemViewModel); } PrepareAdding(); SelectedRow = _bufferConfigurationItems.Item.item.First(); CompleteAdding(); } } } }
public IConfigurationItem VisitMatrix(IEditorConfigurationItemViewModel appointableMatrixViewModel) { throw new NotImplementedException(); }