示例#1
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="container">Используется только для того, чтобы зарегистрировать репозиторий после его инициализации </param>
        /// <param name="loader">Загрузчик.</param>
        /// <param name="applicationSettings">Настройки приложения</param>
        /// <param name="selectionMasksStorage"></param>
        /// <param name="messenger"></param>
        /// <param name="repositoryViewModelFactory"></param>
        /// <param name="sciChartViewModelFactory"> </param>
        /// <param name="colorsStorage"></param>
        public MainViewModel(IUnityContainer container,
                             ILoader loader,
                             IApplicationSettings applicationSettings,
                             ISelectionMasksStorage selectionMasksStorage,
                             IMessenger messenger,
                             IRepositoryViewModelFactory repositoryViewModelFactory,
                             ISciChartViewModelFactory sciChartViewModelFactory,
                             IColorsStorage colorsStorage)
        {
            SelectionMasksStorage = selectionMasksStorage;

            _container                  = container;
            _loader                     = loader;
            _applicationSettings        = applicationSettings;
            _messenger                  = messenger;
            _repositoryViewModelFactory = repositoryViewModelFactory;
            _colorsStorage              = colorsStorage;

            _mainChart = sciChartViewModelFactory.Create();

            IsRepositoryLoaded = false;

            if (File.Exists(_applicationSettings.SelectionMasksFullFilePath))
            {
                SelectionMasksStorage.Load(_applicationSettings.SelectionMasksFullFilePath);
            }

            InitializeCommands();
            _collapseTreeCmd        = new RelayCommand(CollapseTree, () => true);
            _collapsePowerOnTreeCmd = new RelayCommand(CollapsePowerOnTree, () => true);

            _messenger.Register <IsTrendOnPlotChangedMessage>(this, IsTrendOnPlotChanged);
        }
示例#2
0
        public SciChartViewModel(IColorsStorage colorsStorage)
        {
            _colorsStorage = colorsStorage;
            AnalogSeries.CollectionChanged   += SeriesOnCollectionChanged;
            DiscreteSeries.CollectionChanged += SeriesOnCollectionChanged;

            MouseRightButtonUpCommand = new RelayCommand <object>(MouseRightButtonUpExecute);
        }
        public PsnConfigurationViewModel(IPsnConfiguration psnConfiguration, IColorsStorage colorsStorage)
        {
            Model = psnConfiguration;

            PsnMeterConfigs = new ObservableCollection <IPsnMeterConfigViewModel>();

            Model.PsnMeterConfigs.ForEach(m => PsnMeterConfigs.Add(new PsnMeterConfigViewModel(m, colorsStorage)));
        }
示例#4
0
        /// <param name="model">Модель</param>
        /// <param name="colorsStorage">Хранилище цветов. Может быть null</param>
        public PsnMeterConfigViewModel(IPsnMeterConfig model, IColorsStorage colorsStorage)
        {
            _model = model;

            foreach (var psnChannelConfig in _model.PsnChannelConfigs)
            {
                PsnChannelConfigs.Add(new PsnChannelConfigViewModel(psnChannelConfig, colorsStorage));
            }
        }
        /// <param name="model">Модель</param>
        /// <param name="colorsStorage">Хранилище цветов. Может быть null</param>
        public PsnChannelConfigViewModel(IPsnChannelConfig model, IColorsStorage colorsStorage)
        {
            Model          = model;
            _colorsStorage = colorsStorage;

            var col = _colorsStorage?.GetColor(Model.Id);

            if (col != null)
            {
                _color = col.Value;
            }
        }
示例#6
0
        public DefualtColorsViewModel(ILoader loader, IMessenger messenger, IColorsStorage colorsStorage)
        {
            _messenger     = messenger;
            _colorsStorage = colorsStorage;

            Configurations = new ObservableCollection <IPsnConfigurationViewModel>();

            InitializeDefaultColors();
            FillAvailablePsnConfigurations(loader);

            Close = new RelayCommand(CloseExecute);
            ShowSelectColorDialog     = new RelayCommand(ShowSelectColorDialogExecute);
            AddSelectedColorToPalette = new RelayCommand(AddSelectedColorToPaletteExecute);
        }
示例#7
0
 public SciChartViewModelFactory(IColorsStorage colorsStorage)
 {
     _colorsStorage = colorsStorage;
 }
示例#8
0
        /// <summary>
        /// Генерирует цвета по умолчанию для всех сигналов, после чего отображает сообщение
        /// пользователю и запоминает это. При следующем запуске, генерации и сообщения не будет.
        /// </summary>
        public static void GenerateDefaultColorsIfNeed(IApplicationSettings settings, ILoader loader, IColorsStorage colorsStorage)
        {
            if (settings.IsDefaultColorsGenerated)
            {
                return;
            }

            foreach (var config in loader.AvailablePsnConfigruations)
            {
                foreach (var psnMeterConfig in config.PsnMeterConfigs)
                {
                    foreach (var channel in psnMeterConfig.PsnChannelConfigs)
                    {
                        if (!colorsStorage.GetColor(channel.Id).HasValue)
                        {
                            colorsStorage.SetColor(channel.Id, GetColorForNewLine());
                        }
                    }
                }
            }

            settings.IsDefaultColorsGenerated = true;
            colorsStorage.Save();
            settings.Save();

            MessageBox.Show(null, "Для всех каналов ПСН сгенерированы цвета отображения на графике. Чтобы изменить настройки цветов по умолчанию воспользуйтесь пунктом главного меню \"Настройки\" -> \"Настройки цветов по умолчанию...\".",
                            "РПД", MessageBoxButtons.OK, MessageBoxIcon.None);
        }