public PresentationSettingsViewModel CreatePresentationSettingsViewModel(IMeasuringGroup measuringGroup,
                                                                                 IMeasuringGroupEditorViewModel measuringGroupEditorViewModel)
        {
            var res = new PresentationSettingsViewModel(measuringGroupEditorViewModel,
                                                        CreatePositioningInfoViewModels(measuringGroup.PresentationSettings));

            if (measuringGroup?.PresentationSettings != null)
            {
                foreach (var groupsOfElement in measuringGroup?.PresentationSettings?.GroupsOfElements)
                {
                    var presentationGroupViewModel = new PresentationGroupViewModel()
                    {
                        Header = groupsOfElement.Name
                    };
                    res.PresentationElementViewModels.Add(new PresentationElementViewModel(
                                                              presentationGroupViewModel)
                    {
                        PositioningInfoViewModel = InitializePositioningInfo(groupsOfElement.PositioningInfo,
                                                                             new PresentationPositionChangedSubscription(presentationGroupViewModel, res))
                    });
                }
            }

            return(res);
        }
        public PresentationSettingsViewModel(IMeasuringGroupEditorViewModel measuringGroupEditorViewModel,
                                             Dictionary <Guid, PositioningInfoViewModel> positioningInfosDictionary)
        {
            _measuringGroupEditorViewModel = measuringGroupEditorViewModel;
            _positioningInfosDictionary    = positioningInfosDictionary;
            PresentationElementViewModels  = new ObservableCollection <PresentationElementViewModel>();
            AddGroupCommand    = new RelayCommand(OnAddGroup);
            DeleteGroupCommand = new RelayCommand(OnDeleteGroup, CanExecuteDeleteGroup);
            FilterList         = new List <string>()
            {
                _allString,
                _groupsString,
                MeasuringKeys.CONTROL_SIGNAL,
                MeasuringKeys.ANALOG_MEASURING_ELEMENT,
                MeasuringKeys.DISCRET_MEASURING_ELEMENT,
                MeasuringKeys.DATE_TIME_ELEMENT,
            };
            SelectedFilterString = _allString;
            _measuringElementViewModelFactory = StaticContainer.Container.Resolve <IMeasuringElementViewModelFactory>();
            CopySelectedPositionInfo          = new RelayCommand(() =>
            {
                _bufferPositioningInfoViewModel = SelectedElementViewModel.PositioningInfoViewModel;
                (PasteSelectedPositionInfo as RelayCommand)?.RaiseCanExecuteChanged();
                (PasteOnlySizeSelectedPositionInfo as RelayCommand)?.RaiseCanExecuteChanged();
            });
            PasteSelectedPositionInfo = new RelayCommand(() =>
            {
                SelectedElementViewModel.PositioningInfoViewModel.OffsetLeft =
                    _bufferPositioningInfoViewModel.OffsetLeft;
                SelectedElementViewModel.PositioningInfoViewModel.OffsetTop =
                    _bufferPositioningInfoViewModel.OffsetTop;
                SelectedElementViewModel.PositioningInfoViewModel.SizeHeight =
                    _bufferPositioningInfoViewModel.SizeHeight;
                SelectedElementViewModel.PositioningInfoViewModel.SizeWidth =
                    _bufferPositioningInfoViewModel.SizeWidth;
            }, () => _bufferPositioningInfoViewModel != null);

            PasteOnlySizeSelectedPositionInfo = new RelayCommand(() =>
            {
                SelectedElementViewModel.PositioningInfoViewModel.SizeHeight =
                    _bufferPositioningInfoViewModel.SizeHeight;
                SelectedElementViewModel.PositioningInfoViewModel.SizeWidth =
                    _bufferPositioningInfoViewModel.SizeWidth;
            }, () => _bufferPositioningInfoViewModel != null);



            SelectElement = new RelayCommand <object>((o =>
            {
                if (o is PresentationElementViewModel presentationElementViewModel)
                {
                    SelectedElementViewModel = presentationElementViewModel;
                }
            }));
        }
        private bool CanExecuteSetElementLeft(object arg)
        {
            if (!(arg is IMeasuringGroupEditorViewModel))
            {
                return(false);
            }
            IMeasuringGroupEditorViewModel elementToSet = arg as IMeasuringGroupEditorViewModel;
            int startIndex = MeasuringGroupEditorViewModels.IndexOf(elementToSet);

            return(startIndex > 0);
        }
        private void OnSetElementRightExecute(object arg)
        {
            if (!(arg is IMeasuringGroupEditorViewModel))
            {
                return;
            }
            IMeasuringGroupEditorViewModel elementToSet = arg as IMeasuringGroupEditorViewModel;
            int startIndex = MeasuringGroupEditorViewModels.IndexOf(elementToSet);
            int finalIndex = startIndex + 1;

            MeasuringGroupEditorViewModels.Move(startIndex, finalIndex);
            CheckElementsPositionCommand?.Execute(null);
        }
Example #5
0
        public IMeasuringGroup CreateMeasuringGroup(IMeasuringGroupEditorViewModel measuringGroupEditorViewModel)
        {
            var res = StaticContainer.Container.Resolve <IMeasuringGroup>();

            res.PresentationSettings = StaticContainer.Container.Resolve <IPresentationSettings>();
            res.Name = measuringGroupEditorViewModel.Header;
            res.MeasuringElements.Clear();
            var saver = new MeasuringElementSaver();

            foreach (IMeasuringElementEditorViewModel measuringElementEditorViewModel in
                     measuringGroupEditorViewModel.MeasuringElementEditorViewModels)
            {
                res.MeasuringElements.Add(saver.SaveMeasuringElement(measuringElementEditorViewModel));
            }
            res.PresentationSettings = new PresentationSettingsSaver().SavePresentationSettings(measuringGroupEditorViewModel.PresentationSettingsViewModel);

            return(res);
        }
        public IMeasuringGroupEditorViewModel CreateMeasuringGroupEditorViewModel(IMeasuringGroup measuringGroup = null)
        {
            if (measuringGroup == null)
            {
                measuringGroup      = _container.Resolve <IMeasuringGroup>();
                measuringGroup.Name = "New";
            }

            IMeasuringGroupEditorViewModel measuringGroupEditorViewModel =
                _container.Resolve <IMeasuringGroupEditorViewModel>();

            foreach (IMeasuringElement measuringElement in measuringGroup.MeasuringElements)
            {
                measuringGroupEditorViewModel.MeasuringElementEditorViewModels.Add(
                    _measuringElementEditorViewModelFactory.CreateMeasuringElementEditorViewModel(measuringElement));
            }
            measuringGroupEditorViewModel.PresentationSettingsViewModel = new PresentationSettingsViewModelFactory()
                                                                          .CreatePresentationSettingsViewModel(measuringGroup, measuringGroupEditorViewModel);
            measuringGroupEditorViewModel.PresentationSettingsViewModel.UpdateMeasuringElements();
            measuringGroupEditorViewModel.Header = measuringGroup.Name;
            return(measuringGroupEditorViewModel);
        }