Beispiel #1
0
 private IConfigurationItem InitDefaults(IConfigurationItem configurationItem,
                                         IEditorConfigurationItemViewModel editorConfigurationItemViewModel)
 {
     configurationItem.Description = editorConfigurationItemViewModel.Description;
     configurationItem.Name        = editorConfigurationItemViewModel.Header;
     return(configurationItem);
 }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        public static ConfigurationItemEditorViewModelFactory WithParent(
            this ConfigurationItemEditorViewModelFactory factory, IEditorConfigurationItemViewModel parent)
        {
            var newFactory = factory.Clone() as ConfigurationItemEditorViewModelFactory;

            newFactory.Parent = parent;
            return(newFactory);
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        private void OnAddChildElementExecute()
        {
            if (SelectedRow is IChildAddable parent)
            {
                IEditorConfigurationItemViewModel configurationEditorViewModel =
                    (SelectedRow as IChildAddable).AddChildElement() as IEditorConfigurationItemViewModel;
                PrepareAdding();
                SelectedRow = configurationEditorViewModel;

                CompleteAdding();
            }
        }
Beispiel #8
0
        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);
                }
            });
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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();
                    }
                }
            }
        }
Beispiel #12
0
 public IConfigurationItem VisitMatrix(IEditorConfigurationItemViewModel appointableMatrixViewModel)
 {
     throw new NotImplementedException();
 }