예제 #1
0
        public RPlotDeviceVisualComponent(IRPlotManager plotManager
                                          , int instanceId
                                          , IVisualComponentContainer <IRPlotDeviceVisualComponent> container
                                          , IServiceContainer services)
        {
            Check.ArgumentNull(nameof(plotManager), plotManager);
            Check.ArgumentNull(nameof(plotManager), plotManager);

            _mainThread = services.MainThread();
            _viewModel  = new RPlotDeviceViewModel(plotManager, _mainThread, instanceId);

            var control = new RPlotDeviceControl {
                DataContext = _viewModel,
            };

            _disposableBag = DisposableBag.Create <RPlotDeviceVisualComponent>()
                             .Add(() => control.ContextMenuRequested    -= Control_ContextMenuRequested)
                             .Add(() => _viewModel.DeviceNameChanged    -= ViewModel_DeviceNameChanged)
                             .Add(() => _viewModel.LocatorModeChanged   -= ViewModel_LocatorModeChanged)
                             .Add(() => _viewModel.PlotChanged          -= ViewModel_PlotChanged)
                             .Add(() => plotManager.ActiveDeviceChanged -= PlotManager_ActiveDeviceChanged);

            control.ContextMenuRequested    += Control_ContextMenuRequested;
            _viewModel.DeviceNameChanged    += ViewModel_DeviceNameChanged;
            _viewModel.LocatorModeChanged   += ViewModel_LocatorModeChanged;
            _viewModel.PlotChanged          += ViewModel_PlotChanged;
            plotManager.ActiveDeviceChanged += PlotManager_ActiveDeviceChanged;

            Control   = control;
            Container = container;
        }
예제 #2
0
        public RPlotDeviceVisualComponent(IRPlotManager plotManager, ICommandTarget controller, int instanceId, IVisualComponentContainer <IRPlotDeviceVisualComponent> container, ICoreShell coreShell)
        {
            if (plotManager == null)
            {
                throw new ArgumentNullException(nameof(plotManager));
            }

            if (container == null)
            {
                throw new ArgumentNullException(nameof(container));
            }

            if (coreShell == null)
            {
                throw new ArgumentNullException(nameof(coreShell));
            }

            _plotManager = plotManager;
            _viewModel   = new RPlotDeviceViewModel(plotManager, coreShell, instanceId);
            _shell       = coreShell;

            var control = new RPlotDeviceControl {
                DataContext = _viewModel,
            };

            _disposableBag = DisposableBag.Create <RPlotDeviceVisualComponent>()
                             .Add(() => control.ContextMenuRequested     -= Control_ContextMenuRequested)
                             .Add(() => _viewModel.DeviceNameChanged     -= ViewModel_DeviceNameChanged)
                             .Add(() => _viewModel.LocatorModeChanged    -= ViewModel_LocatorModeChanged)
                             .Add(() => _viewModel.PlotChanged           += ViewModel_PlotChanged)
                             .Add(() => _plotManager.ActiveDeviceChanged += PlotManager_ActiveDeviceChanged);

            control.ContextMenuRequested     += Control_ContextMenuRequested;
            _viewModel.DeviceNameChanged     += ViewModel_DeviceNameChanged;
            _viewModel.LocatorModeChanged    += ViewModel_LocatorModeChanged;
            _viewModel.PlotChanged           += ViewModel_PlotChanged;
            _plotManager.ActiveDeviceChanged += PlotManager_ActiveDeviceChanged;

            Control    = control;
            Controller = controller;
            Container  = container;
        }