コード例 #1
0
        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;
                }
            }));
        }
コード例 #2
0
        private bool IsElementInAnotherElement(PositioningInfoViewModel basePositioning, PositioningInfoViewModel elementPositioningToCheck)
        {
            var isHorizontalMatch = elementPositioningToCheck.OffsetLeft > basePositioning.OffsetLeft &&
                                    elementPositioningToCheck.OffsetLeft <
                                    basePositioning.OffsetLeft + basePositioning.SizeWidth;
            var isVerticalMatch = elementPositioningToCheck.OffsetTop > basePositioning.OffsetTop &&
                                  elementPositioningToCheck.OffsetTop <
                                  basePositioning.OffsetTop + basePositioning.SizeHeight;

            return(isVerticalMatch && isHorizontalMatch);
        }
コード例 #3
0
        private IPositioningInfo SavePositioningInfo(
            PositioningInfoViewModel positioningInfoViewModel)
        {
            var res = StaticContainer.Container.Resolve <IPositioningInfo>();

            res.SizeHeight = positioningInfoViewModel.SizeHeight;
            res.OffsetLeft = positioningInfoViewModel.OffsetLeft;
            res.OffsetTop  = positioningInfoViewModel.OffsetTop;
            res.SizeWidth  = positioningInfoViewModel.SizeWidth;

            return(res);
        }
コード例 #4
0
        public void PositionChanged(int offset, OffsetKind offsetKind, PositioningInfoViewModel basePositioning)
        {
            if (_presentationGroupViewModel.IsMoveWithChildren)
            {
                foreach (var presentationElementViewModel in _presentationSettingsViewModel.PresentationElementViewModels)
                {
                    if (presentationElementViewModel.IsSelected || !IsElementInAnotherElement(basePositioning,
                                                                                              presentationElementViewModel.PositioningInfoViewModel))
                    {
                        continue;
                    }

                    if (offsetKind == OffsetKind.Left)
                    {
                        presentationElementViewModel.PositioningInfoViewModel.OffsetLeft += offset;
                    }
                    else if (offsetKind == OffsetKind.Top)
                    {
                        presentationElementViewModel.PositioningInfoViewModel.OffsetTop += offset;
                    }
                }
            }
        }