Exemplo n.º 1
0
        private Result ProcessConfigurationItem(
            Result <Action <ILocalAndDeviceValueContainingViewModel, ILocalAndDeviceValueContainingViewModel> > callback,
            IConfigurationItemViewModel configurationItemViewModel1,
            IConfigurationItemViewModel configurationItemViewModel2)
        {
            if (configurationItemViewModel1 is RuntimePropertyViewModel propertyViewModel1 &&
                configurationItemViewModel2 is RuntimePropertyViewModel propertyViewModel2)
            {
                callback.OnSuccess(func => func(propertyViewModel1, propertyViewModel2));
            }

            if (configurationItemViewModel1 is IItemGroupViewModel itemGroupViewModel1 &&
                configurationItemViewModel2 is IItemGroupViewModel itemGroupViewModel2)
            {
                var count = itemGroupViewModel1.ChildStructItemViewModels.Count;
                if (count != itemGroupViewModel2.ChildStructItemViewModels.Count)
                {
                    return(Result.Create(false));
                }

                for (int i = 0; i < count; i++)
                {
                    var res = ProcessConfigurationItem(callback, itemGroupViewModel1.ChildStructItemViewModels[i],
                                                       itemGroupViewModel2.ChildStructItemViewModels[i]);
                    if (!res.IsSuccess)
                    {
                        return(res);
                    }
                }
            }

            return(Result.Create(true));
        }
 private void AddTreeGridItem(ObservableCollection <IConfigurationItemViewModel> treeGridItems,
                              IConfigurationItemViewModel newConfigurationItem,
                              IConfigurationItemViewModel oldConfigurationItem, int index)
 {
     newConfigurationItem.Level = oldConfigurationItem.Level + 1;
     treeGridItems.Insert(index, newConfigurationItem);
 }
        public bool SetElement(IConfigurationItemViewModel element, bool isUp)
        {
            if (ChildStructItemViewModels.Contains(element))
            {
                int  moveIndexFrom = ChildStructItemViewModels.IndexOf(element as IEditorConfigurationItemViewModel);
                int  moveIndexTo;
                bool valid = false;
                if (isUp)
                {
                    moveIndexTo = moveIndexFrom - 1;
                    valid       = (moveIndexTo >= 0) && (moveIndexFrom > 0);
                }
                else
                {
                    moveIndexTo = moveIndexFrom + 1;
                    valid       = moveIndexFrom < ChildStructItemViewModels.Count - 1;
                }
                if (valid)
                {
                    element.Checked?.Invoke(false);
                    ChildStructItemViewModels.Move(moveIndexFrom, moveIndexTo);
                    //}
                    this.Checked?.Invoke(false);
                    this.Checked?.Invoke(true);
                    return(true);
                }
                else
                {
                    throw new Exception("invalid data input");
                }
            }

            return(false);
        }
Exemplo n.º 4
0
        public Maybe <List <TagBuilder> > RenderHtmlFromItem(IConfigurationItemViewModel configurationItem,
                                                             SelectorForItemsGroup selectorForItemsGroup, int depthLevel = 0)
        {
            IRuntimePropertyViewModel defaultProperty = configurationItem as IRuntimePropertyViewModel;

            return(Maybe <List <TagBuilder> > .FromValue(new List <TagBuilder>()
            {
                ConfigTableRowRenderer
                .Create()
                .SetDepth(depthLevel)
                .SetName(new RenderData(defaultProperty.Header))
                .SetDeviceData(Result <string> .Create(() => defaultProperty.DeviceValue.AsString(),
                                                       defaultProperty.DeviceValue != null))
                .SetLocalData(Result <string> .Create(() => defaultProperty.LocalValue
                                                      .AsString(),
                                                      defaultProperty.LocalValue != null))
                .SetRange(Result <string> .Create(
                              $"[{defaultProperty.RangeViewModel.RangeFrom} : {defaultProperty.RangeViewModel.RangeTo}]",
                              defaultProperty.IsRangeEnabled))
                .SetMeasureUnit(Result <string> .Create(defaultProperty.MeasureUnit,
                                                        defaultProperty.IsMeasureUnitEnabled))
                .SetSelectors(selectorForItemsGroup.IsPrintDeviceValuesAllowed,
                              selectorForItemsGroup.IsPrintLocalValuesAllowed)
                .Render()
            }));
        }
Exemplo n.º 5
0
        private void TreeViewToggleButtonBehavior_Checked(object sender, System.Windows.RoutedEventArgs e)
        {
            IConfigurationItemViewModel oldItem = ((sender as ToggleButton).DataContext as IConfigurationItemViewModel);

            if (oldItem == null)
            {
                return;
            }
            if (oldItem.IsChecked)
            {
                (sender as ToggleButton).IsChecked = false;
                TreeViewToggleButtonBehavior_Unchecked(sender, e);

                return;
            }

            oldItem.IsChecked = true;
            ObservableCollection <IConfigurationItemViewModel> treeGridItems = ((sender as ToggleButton)?.Tag as ObservableCollection <IConfigurationItemViewModel>);
            int index = treeGridItems.IndexOf(oldItem);

            if (oldItem?.ChildStructItemViewModels is IEnumerable <IConfigurationItemViewModel> )
            {
                IEnumerable <IConfigurationItemViewModel> newItems = oldItem.ChildStructItemViewModels;
                foreach (IConfigurationItemViewModel newItem in newItems)
                {
                    index++;
                    AddTreeGridItem(treeGridItems, newItem, oldItem, index);
                }

                return;
            }
        }
Exemplo n.º 6
0
 private void AddTreeGridItem(ObservableCollection <IConfigurationItemViewModel> treeGridItems,
                              IConfigurationItemViewModel childConfigurationItemViewModel,
                              IConfigurationItemViewModel parentConfigurationItemViewModel, int index)
 {
     childConfigurationItemViewModel.Level = parentConfigurationItemViewModel.Level + 1;
     treeGridItems.Insert(index, childConfigurationItemViewModel);
 }
Exemplo n.º 7
0
        public Maybe <List <TagBuilder> > RenderHtmlFromItem(IConfigurationItemViewModel configurationItem,
                                                             SelectorForItemsGroup selectorForItemsGroup, int depthLevel = 0)
        {
            if (selectorForItemsGroup == null || !selectorForItemsGroup.IsSelected)
            {
                return(Maybe <List <TagBuilder> > .Empty());
            }

            var group = configurationItem as IItemGroupViewModel;
            List <TagBuilder> tagBuilders = new List <TagBuilder>
            {
                ConfigTableRowRenderer
                .Create()
                .SetName(new RenderData(group.Header, depthLevel == 0 ? "rootItem" : null))
                .SetDepth(depthLevel)
                .SetShouldRenderEmptyItems(depthLevel != 0)
                .SetSelectors(selectorForItemsGroup.IsPrintDeviceValuesAllowed, selectorForItemsGroup.IsPrintLocalValuesAllowed)
                .Render()
            };

            group.ChildStructItemViewModels.ForEach((item =>
            {
                _itemRendererFactory
                .GetConfigurationItemRenderer(item)
                .RenderHtmlFromItem(item,
                                    selectorForItemsGroup.Selectors.FirstOrDefault((itemsGroup =>
                                                                                    itemsGroup.RelatedItemsGroup == item)) ?? selectorForItemsGroup, depthLevel + 1)
                .OnNotEmpty(result => tagBuilders.AddRange(result));
            }));
            return(Maybe <List <TagBuilder> > .FromValue(tagBuilders));
        }
Exemplo n.º 8
0
        public static bool ValidateConfigItem(IConfigurationItemViewModel configurationViewModel, bool initial)
        {
            bool res = initial;

            if (configurationViewModel is ICanBeHidden canBeHidden && !canBeHidden.IsHidden)
            {
                if (configurationViewModel is ILocalAndDeviceValueContainingViewModel
                    localAndDeviceValueContainingViewModel &&
                    localAndDeviceValueContainingViewModel.LocalValue != null &&
                    localAndDeviceValueContainingViewModel.LocalValue.HasErrors)
                {
                    var errorMes =
                        $"{StaticContainer.Container.Resolve<ILocalizerService>().GetLocalizedString(ApplicationGlobalNames.StatusMessages.ERROR)}: {configurationViewModel.BuildItemPath()}";
                    StaticContainer.Container.Resolve <ILogService>().LogMessage(errorMes, LogMessageTypeEnum.Error);
                    res = false;
                }
            }

            if (configurationViewModel.ChildStructItemViewModels.Count > 0)
            {
                foreach (var configurationItemViewModel in configurationViewModel.ChildStructItemViewModels)
                {
                    res = ValidateConfigItem(configurationItemViewModel, res);
                }
            }
            return(res);
        }
Exemplo n.º 9
0
 public ConfigItemWrapper(IEnumerable <ConfigItemWrapper> childConfigItemWrappers,
                          IConfigurationItemViewModel relatedConfigurationItemViewModel, bool toInclude, bool matchesFilter = true)
 {
     ChildConfigItemWrappers           = childConfigItemWrappers;
     RelatedConfigurationItemViewModel = relatedConfigurationItemViewModel;
     ToInclude     = toInclude;
     MatchesFilter = matchesFilter;
 }
        public static RuntimeConfigurationItemViewModelFactory WithParent(
            this RuntimeConfigurationItemViewModelFactory factory, IConfigurationItemViewModel parent)
        {
            var newFactory = factory.Clone() as RuntimeConfigurationItemViewModelFactory;

            newFactory.Parent = parent;
            return(newFactory);
        }
Exemplo n.º 11
0
        public bool IsStructureSimilar(IConfigurationItemViewModel configurationItemViewModel1,
                                       IConfigurationItemViewModel configurationItemViewModel2)
        {
            var res = ProcessConfigurationItem(
                Result <Action <ILocalAndDeviceValueContainingViewModel, ILocalAndDeviceValueContainingViewModel> >
                .Create(false), configurationItemViewModel1, configurationItemViewModel2);

            return(res.IsSuccess);
        }
        public bool GetIsSetElementPossible(IConfigurationItemViewModel element, bool isUp)
        {
            if (ChildStructItemViewModels.Contains(element))
            {
                int startIndex = ChildStructItemViewModels.IndexOf(element as IEditorConfigurationItemViewModel);
                return(isUp ? startIndex > 0 : ChildStructItemViewModels.Count - 1 > startIndex);
            }

            return(false);
        }
Exemplo n.º 13
0
 private void InitializeBaseProperties(IConfigurationItemViewModel configurationViewModel, IConfigurationItem configurationItem)
 {
     configurationViewModel.Description = configurationItem?.Description;
     configurationViewModel.Header      = configurationItem?.Name;
     if (Parent != null)
     {
         configurationViewModel.Parent = Parent;
         configurationViewModel.Level  = Parent.Level + 1;
     }
 }
Exemplo n.º 14
0
 public IConfigurationItemRenderer GetConfigurationItemRenderer(IConfigurationItemViewModel configurationItem)
 {
     try
     {
         return(_typesContainer.Resolve <IConfigurationItemRenderer>(configurationItem.StrongName));
     }
     catch
     {
         return(new FallbackItemRenderer());
     }
 }
        public List <EditorValidationErrorViewModel> CheckItem(List <EditorValidationErrorViewModel> initialErrors,
                                                               IConfigurationItemViewModel configurationEditorItemViewModel,
                                                               IConfigurationEditorViewModel configurationEditorViewModel)
        {
            if (configurationEditorItemViewModel is IPropertyEditorViewModel propertyEditorViewModel &&
                !(configurationEditorItemViewModel is IComplexPropertyEditorViewModel))
            {
                if (propertyEditorViewModel.FormatterParametersViewModel == null ||
                    (propertyEditorViewModel.FormatterParametersViewModel.RelatedUshortsFormatterViewModel == null &&
                     !propertyEditorViewModel.FormatterParametersViewModel.IsFromSharedResources))
                {
                    initialErrors.Add(new EditorValidationErrorViewModel(
                                          $"{propertyEditorViewModel.Name} ({_localizerService.GetLocalizedString("Address")}:{propertyEditorViewModel.Address}): {_localizerService.GetLocalizedString(ApplicationGlobalNames.StatusMessages.EMPTY_FORMATTING_MESSAGE)}",
                                          Result <Action> .Create(
                                              () =>
                    {
                        _formatterEditorFactory.EditFormatterByUser(propertyEditorViewModel,
                                                                    configurationEditorViewModel.RootConfigurationItemViewModels.ToList());
                    }, true)));
                }

                if (propertyEditorViewModel.FormatterParametersViewModel != null &&

                    propertyEditorViewModel.FormatterParametersViewModel.IsFromSharedResources &&
                    _sharedResourcesGlobalViewModel.GetResourceByName(propertyEditorViewModel
                                                                      .FormatterParametersViewModel.Name) == null)
                {
                    initialErrors.Add(new EditorValidationErrorViewModel(
                                          $"{propertyEditorViewModel.Name} ({_localizerService.GetLocalizedString("Address")}:{propertyEditorViewModel.Address}): {_localizerService.GetLocalizedString(ApplicationGlobalNames.StatusMessages.FORMATTING_RESOURCE_NOT_FOUND_MESSAGE)}",
                                          Result <Action> .Create(
                                              () =>
                    {
                        _formatterEditorFactory.EditFormatterByUser(propertyEditorViewModel,
                                                                    configurationEditorViewModel.RootConfigurationItemViewModels.ToList());
                    }, true)));
                }
            }

            if (configurationEditorItemViewModel is IConfigurationGroupEditorViewModel configurationGroupEditorViewModel
                )
            {
                configurationGroupEditorViewModel.ChildStructItemViewModels.ForEach(model =>
                                                                                    CheckItem(initialErrors, model, configurationEditorViewModel));
            }

            if (configurationEditorItemViewModel is IComplexPropertyEditorViewModel complexPropertyEditorViewModel)
            {
                complexPropertyEditorViewModel.SubPropertyEditorViewModels.ForEach(model =>
                                                                                   CheckItem(initialErrors, model, configurationEditorViewModel));
            }

            return(initialErrors);
        }
Exemplo n.º 16
0
        private void RefreshToggleButtonRows()
        {
            ObservableCollection <IConfigurationItemViewModel> allItems =
                _assToggleButton.Tag as ObservableCollection <IConfigurationItemViewModel>;
            IConfigurationItemViewModel currentItem = _assToggleButton.DataContext as IConfigurationItemViewModel;

            if (allItems != null)
            {
                int startIndex =
                    allItems.IndexOf(currentItem);
                if (startIndex < 0)
                {
                    return;
                }
                if (currentItem.ChildStructItemViewModels is IEnumerable <IConfigurationItemViewModel> )
                {
                    IEnumerable <IConfigurationItemViewModel> childItems =
                        currentItem.ChildStructItemViewModels;
                    foreach (IConfigurationItemViewModel child in childItems)
                    {
                        child.Checked?.Invoke(false);
                        startIndex++;
                        if (allItems.Count > startIndex)
                        {
                            if (allItems[startIndex].GetType() == child.GetType())
                            {
                                if (allItems[startIndex] == child)
                                {
                                    continue;
                                }

                                if (allItems.Count > startIndex)
                                {
                                    if (allItems[startIndex].GetType() == allItems[startIndex + 1].GetType())
                                    {
                                        allItems.Move(startIndex, startIndex + 1);
                                    }
                                }
                            }
                            else
                            {
                                allItems.Insert(startIndex, child);
                            }
                        }
                        else
                        {
                            allItems.Add(child);
                        }
                    }
                }
            }
        }
Exemplo n.º 17
0
 public Maybe <List <TagBuilder> > RenderHtmlFromItem(IConfigurationItemViewModel configurationItem,
                                                      SelectorForItemsGroup selectorForItemsGroup = null, int depthLevel = 0)
 {
     return(Maybe <List <TagBuilder> > .FromValue(new List <TagBuilder>()
     {
         ConfigTableRowRenderer
         .Create()
         .SetDepth(depthLevel)
         .SetName(new RenderData(configurationItem.Header))
         .SetSelectors(selectorForItemsGroup.IsPrintDeviceValuesAllowed, selectorForItemsGroup.IsPrintLocalValuesAllowed)
         .Render()
     }));
 }
Exemplo n.º 18
0
        public void CopyValuesToItem(IConfigurationItemViewModel configurationItemViewModelFrom,
                                     IConfigurationItemViewModel configurationItemViewModelTo)
        {
            var callback =
                Result <Action <ILocalAndDeviceValueContainingViewModel, ILocalAndDeviceValueContainingViewModel> >
                .Create((viewModel1, viewModel2) =>
            {
                viewModel2.LocalValue.Accept(
                    _editableValueCopyVisitorProvider.GetValueViewModelCopyVisitor(viewModel1.LocalValue));
            }, true);

            var res = ProcessConfigurationItem(callback, configurationItemViewModelFrom, configurationItemViewModelTo);
        }
Exemplo n.º 19
0
        public List <EditorValidationErrorViewModel> CheckItem(List <EditorValidationErrorViewModel> initialErrors,
                                                               IConfigurationItemViewModel configurationEditorViewModel)
        {
            if (configurationEditorViewModel is IPropertyEditorViewModel propertyEditorViewModel &&
                !(configurationEditorViewModel is IComplexPropertyEditorViewModel))
            {
                var resources = propertyEditorViewModel.DependencyViewModels
                                .Where(model => model is ConditionResultDependencyViewModel)
                                .Select(model => (model as ConditionResultDependencyViewModel).SelectedConditionViewModel)
                                .Where(model => model is RegexMatchConditionViewModel)
                                .Cast <RegexMatchConditionViewModel>()
                                .Select(model => _sharedResourcesGlobalViewModel.GetResourceViewModelByName(model.ReferencedResourcePropertyName))
                                .Choose()
                                .Where(nameable => nameable is IPropertyEditorViewModel)
                                .Select(nameable => (nameable as IPropertyEditorViewModel).FormatterParametersViewModel)
                                .ToList();



                if (resources.Any(model => !_formatterInfoService.ReturnsString(model.RelatedUshortsFormatterViewModel)))
                {
                    initialErrors.Add(new EditorValidationErrorViewModel(
                                          $"{propertyEditorViewModel.Name} ({_localizerService.GetLocalizedString("Address")}:{propertyEditorViewModel.Address}): {_localizerService.GetLocalizedString(ApplicationGlobalNames.StatusMessages.REGEX_RESOURCE_FORMATTER_IS_NOT_STRING_MESSAGE)}",
                                          Result <Action> .Create(
                                              () =>
                    {
                        _dependenciesService.EditDependencies(propertyEditorViewModel,
                                                              new DependenciesConfiguration(("ConditionResultDependency",
                                                                                             () => _dependencyFillHelper.CreateEmptyConditionResultDependencyViewModel())));
                    }, true)));
                }
            }

            if (configurationEditorViewModel is IConfigurationGroupEditorViewModel configurationGroupEditorViewModel)
            {
                configurationGroupEditorViewModel.ChildStructItemViewModels.ForEach(model =>
                                                                                    CheckItem(initialErrors, model));
            }

            if (configurationEditorViewModel is IComplexPropertyEditorViewModel complexPropertyEditorViewModel)
            {
                complexPropertyEditorViewModel.SubPropertyEditorViewModels.ForEach(model =>
                                                                                   CheckItem(initialErrors, model));
            }

            return(initialErrors);
        }
Exemplo n.º 20
0
        public List <EditorValidationErrorViewModel> CheckItem(List <EditorValidationErrorViewModel> initialErrors,
                                                               IConfigurationItemViewModel configurationEditorViewModel)
        {
            if (configurationEditorViewModel is IPropertyEditorViewModel propertyEditorViewModel &&
                !(configurationEditorViewModel is IComplexPropertyEditorViewModel))
            {
                var dependenciesWithResources = propertyEditorViewModel.DependencyViewModels
                                                .Where(model => model is ConditionResultDependencyViewModel)
                                                .Select(model => (model as ConditionResultDependencyViewModel).SelectedConditionViewModel)
                                                .Where(model => model is IConditionWithResourceViewModel)
                                                .Cast <IConditionWithResourceViewModel>()
                                                .ToList();

                if (dependenciesWithResources.Any(model =>
                                                  string.IsNullOrEmpty(model.ReferencedResourcePropertyName)) ||
                    dependenciesWithResources.Any(model =>
                                                  !_sharedResourcesGlobalViewModel.GetResourceViewModelByName(
                                                      model.ReferencedResourcePropertyName).IsSuccess))
                {
                    initialErrors.Add(new EditorValidationErrorViewModel(
                                          $"{propertyEditorViewModel.Name} ({_localizerService.GetLocalizedString("Address")}:{propertyEditorViewModel.Address}): {_localizerService.GetLocalizedString(ApplicationGlobalNames.StatusMessages.RESOURCE_FOR_DEPENDENCY_NOT_FOUND_MESSAGE)}",
                                          Result <Action> .Create(
                                              () =>
                    {
                        _dependenciesService.EditDependencies(propertyEditorViewModel,
                                                              new DependenciesConfiguration(("ConditionResultDependency",
                                                                                             () => _dependencyFillHelper.CreateEmptyConditionResultDependencyViewModel())));
                    }, true)));
                }
            }

            if (configurationEditorViewModel is IConfigurationGroupEditorViewModel configurationGroupEditorViewModel)
            {
                configurationGroupEditorViewModel.ChildStructItemViewModels.ForEach(model =>
                                                                                    CheckItem(initialErrors, model));
            }

            if (configurationEditorViewModel is IComplexPropertyEditorViewModel complexPropertyEditorViewModel)
            {
                complexPropertyEditorViewModel.SubPropertyEditorViewModels.ForEach(model =>
                                                                                   CheckItem(initialErrors, model));
            }

            return(initialErrors);
        }
Exemplo n.º 21
0
        private void TreeViewToggleButtonBehavior_Unchecked(object sender, System.Windows.RoutedEventArgs e)
        {
            ObservableCollection <IConfigurationItemViewModel> allItems =
                (sender as ToggleButton).Tag as ObservableCollection <IConfigurationItemViewModel>;

            if (allItems == null)
            {
                return;
            }

            IConfigurationItemViewModel oldItem = ((sender as ToggleButton).DataContext as IConfigurationItemViewModel);

            if (oldItem == null)
            {
                return;
            }
            oldItem.IsChecked = false;
            DeleteTreeGridItem(allItems, oldItem, false);
        }
Exemplo n.º 22
0
        private void InitTree(ToggleButton toggleButton)
        {
            IConfigurationItemViewModel oldItem = (toggleButton.DataContext as IConfigurationItemViewModel);

            if (oldItem == null)
            {
                return;
            }
            if (oldItem is IAsTableViewModel configurationAsTableViewModel && configurationAsTableViewModel.IsTableView)
            {
                return;
            }
            oldItem.IsChecked = true;
            ObservableCollection <IConfigurationItemViewModel> treeGridItems = (toggleButton?.Tag as ObservableCollection <IConfigurationItemViewModel>);
            int index = treeGridItems.IndexOf(oldItem);

            if (oldItem?.ChildStructItemViewModels is IEnumerable <IConfigurationItemViewModel> )
            {
                IEnumerable <IConfigurationItemViewModel> newItems = oldItem.ChildStructItemViewModels;
                foreach (IConfigurationItemViewModel newItem in newItems)
                {
                    bool isAdded = false;
                    if (newItem is IGroupedConfigurationItemViewModel)
                    {
                        if (!(newItem as IGroupedConfigurationItemViewModel).IsGroupedProperty)
                        {
                            newItem.ChildStructItemViewModels.ForEach((model =>
                            {
                                index++;
                                AddTreeGridItem(treeGridItems, model, oldItem, index);
                            }));
                            isAdded = true;
                        }
                    }
                    if (!isAdded)
                    {
                        index++;
                        AddTreeGridItem(treeGridItems, newItem, oldItem, index);
                    }
                }
            }
        }
Exemplo n.º 23
0
 /// <summary>
 /// рекурсивное удаление всей ветки
 /// </summary>
 /// <param name="treeGridItems">коллекция всех объектов в строках</param>
 /// <param name="removingItem">текущие элемент</param>
 /// <param name="removeFromCollection">удалять ли из коллекции текущий элемент</param>
 private void DeleteTreeGridItem(ObservableCollection <IConfigurationItemViewModel> treeGridItems,
                                 IConfigurationItemViewModel removingItem, bool removeFromCollection)
 {
     if (removingItem.ChildStructItemViewModels is IEnumerable <IConfigurationItemViewModel> )
     {
         IEnumerable <IConfigurationItemViewModel> newItems =
             removingItem.ChildStructItemViewModels;
         foreach (IConfigurationItemViewModel newItem in newItems)
         {
             DeleteTreeGridItem(treeGridItems, newItem, true);
         }
     }
     else if (removingItem.ChildStructItemViewModels is IConfigurationItemViewModel)
     {
         DeleteTreeGridItem(treeGridItems, removingItem.ChildStructItemViewModels as IConfigurationItemViewModel, true);
     }
     if (removeFromCollection)
     {
         RemoveItemFromList(treeGridItems, removingItem);
     }
 }
Exemplo n.º 24
0
        public MainConfigItemViewModel(IEnumerable <MainConfigItemViewModel> childConfigItemViewModels,
                                       IConfigurationItemViewModel relatedConfigurationItemViewModel)
        {
            ChildConfigItemViewModels         = childConfigItemViewModels;
            RelatedConfigurationItemViewModel = relatedConfigurationItemViewModel;


            IsTableEnabled =
                (relatedConfigurationItemViewModel is IItemGroupViewModel groupViewModel) &&
                groupViewModel.IsTableViewAllowed;

            // IGroupWithReiterationInfo groupWithReiterationInfo = null;

            //if (RelatedConfigurationItemViewModel is IItemGroupViewModel groupViewModelWithreit &&
            //    groupViewModelWithreit.Model is IItemsGroup itemsGroup &&
            //    itemsGroup.GroupInfo is IGroupWithReiterationInfo groupWithReiteration)
            //{
            //    IsGroupWithReiteration = groupWithReiteration.IsReiterationEnabled;
            //    groupWithReiterationInfo = groupWithReiteration;
            //}

            if (!childConfigItemViewModels.Any() || IsGroupWithReiteration)
            {
                var relatedRows = new List <IConfigurationItemViewModel>();
                if (IsGroupWithReiteration)
                {
                    //var factory = StaticContainer.Container.Resolve<IRuntimeConfigurationItemViewModelFactory>();
                    //var children = groupWithReiterationInfo.SubGroups.Select(
                    //    (info => factory.CreateGroupWithReiterationViewModel(info))).ToList();

                    //FillRelatedRows(relatedRows, children, 0);
                }
                else
                {
                    FillRelatedRows(relatedRows, relatedConfigurationItemViewModel.ChildStructItemViewModels, 0);
                }

                RelatedRows = relatedRows;
            }
        }
Exemplo n.º 25
0
        private void TreeViewToggleButtonBehavior_Checked(object sender, System.Windows.RoutedEventArgs e)
        {
            IConfigurationItemViewModel oldItem = ((sender as ToggleButton).DataContext as IConfigurationItemViewModel);

            if (oldItem == null)
            {
                return;
            }
            oldItem.IsChecked = true;
            ObservableCollection <IConfigurationItemViewModel> treeGridItems = ((sender as ToggleButton)?.Tag as ObservableCollection <IConfigurationItemViewModel>);
            int index = treeGridItems.IndexOf(oldItem);

            if (oldItem?.ChildStructItemViewModels is IEnumerable <IConfigurationItemViewModel> )
            {
                IEnumerable <IConfigurationItemViewModel> newItems = oldItem.ChildStructItemViewModels;
                foreach (IConfigurationItemViewModel newItem in newItems)
                {
                    bool isAdded = false;
                    if (newItem is IGroupedConfigurationItemViewModel)
                    {
                        if (!(newItem as IGroupedConfigurationItemViewModel).IsGroupedProperty)
                        {
                            newItem.ChildStructItemViewModels.ForEach(model =>
                            {
                                index++;
                                AddTreeGridItem(treeGridItems, model, oldItem, index);
                            });
                            isAdded = true;
                        }
                    }

                    if (!isAdded)
                    {
                        index++;
                        AddTreeGridItem(treeGridItems, newItem, oldItem, index);
                    }
                }
            }
        }
        public bool GetIsSetElementPossible(IConfigurationItemViewModel element, bool isUp)
        {
            if (ChildStructItemViewModels.Contains(element))
            {
                if (isUp)
                {
                    if (ChildStructItemViewModels.IndexOf(element as IEditorConfigurationItemViewModel) >
                        0)
                    {
                        return(true);
                    }
                }
                else
                {
                    if (ChildStructItemViewModels.IndexOf(element as IEditorConfigurationItemViewModel) <
                        ChildStructItemViewModels.Count - 1)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 27
0
 private static string GetMessageForAlreadySetItem(IConfigurationItemViewModel configurationItemViewModel)
 {
     return
         ($"{StaticContainer.Container.Resolve<ILocalizerService>().GetLocalizedString("ThisBitSetIn")} {Environment.NewLine} {configurationItemViewModel.BuildItemPath()}");
 }
Exemplo n.º 28
0
 public static string BuildItemPath(this IConfigurationItemViewModel configurationViewModel)
 {
     return((configurationViewModel.Parent != null
         ? $"{BuildItemPath(configurationViewModel.Parent)}."
         : null) + configurationViewModel.Header);
 }
Exemplo n.º 29
0
 protected override void OnDisposing()
 {
     Parent = null;
     base.OnDisposing();
 }
Exemplo n.º 30
0
 private void RemoveItemFromList(ObservableCollection <IConfigurationItemViewModel> treeGridItems,
                                 IConfigurationItemViewModel removingItem)
 {
     treeGridItems.Remove(removingItem);
     removingItem.Level = 0;
 }