示例#1
0
        public MainWindowViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            if (snackbarMessageQueue == null)
            {
                throw new ArgumentNullException(nameof(snackbarMessageQueue));
            }
            //登录界面
            AtsItems.Add(new AtsItem("Log In", new Home()
            {
                DataContext = new HomeViewModel(snackbarMessageQueue)
            })
            {
                VisibilityType = Visibility.Collapsed,
                Title          = "Automatic Testing System"
            });
            //自动测试界面
            AtsItems.Add(new AtsItem("Auto Test", new TaskPage())
            {
                VisibilityType = Visibility.Collapsed,
                Title          = "Auto Test"
            });
            //测试计划管理界面
            AtsItems.Add(new AtsItem("Test Plan", new ProcessManage())
            {
                VisibilityType = Visibility.Collapsed,
                Title          = "Test Plan Management"
            });

            //产品模型界面
            AtsItems.Add(new AtsItem("Product Model", new ProductManageView())
            {
                VisibilityType = Visibility.Collapsed,
                Title          = "Product Model Management"
            });
            //仪器设置界面
            AtsItems.Add(new AtsItem("PN Manage", new PartNumber())
            {
                VisibilityType = Visibility.Collapsed,
                Title          = "Part Number Management"
            });
            //仪器设置界面
            AtsItems.Add(new AtsItem("Settings", new Settings())
            {
                VisibilityType = Visibility.Collapsed,
                Title          = "Instrument Settings"
            });

            //模块EEPROM读取界面
            AtsItems.Add(new AtsItem("EEPROM", new TablesView())
            {
                VisibilityType = Visibility.Collapsed,
                Title          = "EEPROM In Module"
            });

            PreviewMouseLeftButtonDown = new RelayCommand(PreviewMLBD);
            LoadAllEnumSource();
            CheckFiles();
            LoadInstruments();
            LoadProductModels();
        }
示例#2
0
        public MainWindowViewModel(ISnackbarMessageQueue messageQueue, IEventAggregator eventAggregator)
        {
            MessageQueue     = messageQueue;
            _eventAggregator = eventAggregator;

            _eventAggregator.GetEvent <DialogIsOpenChangedEvent>().Subscribe(x => DialogHostIsOpen = x, ThreadOption.UIThread);
        }
        public MainWindowViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            var(settings, loadSettingsErrMsg) = Settings.LoadSettingsAsync().GetAwaiter().GetResult();
            if (loadSettingsErrMsg is not null)
            {
                snackbarMessageQueue.Enqueue(loadSettingsErrMsg);
            }

            _settings             = settings;
            _observableSettings   = new(settings);
            _snackbarMessageQueue = snackbarMessageQueue;

            // Configure logging.
            var queuedTextBoxsink = new QueuedTextBoxSink(_observableSettings);
            var logger            = new LoggerConfiguration()
                                    .WriteTo.Sink(queuedTextBoxsink)
                                    .CreateLogger();

            Locator.CurrentMutable.UseSerilogFullLogger(logger);

            BackendService = new(_observableSettings);
            PresetDialogVM = new(ControlDialog);
            HomeVM         = new(_observableSettings, BackendService, queuedTextBoxsink, PresetDialogVM, snackbarMessageQueue);
            SettingsVM     = new(_observableSettings, BackendService, snackbarMessageQueue);
            Tabs           = new object[]
            {
                HomeVM,
                SettingsVM,
            };

            SaveSettingsAsyncCommand = ReactiveCommand.CreateFromTask <CancelEventArgs?, bool>(SaveSettingsAsync);
        }
示例#4
0
        public BackupsViewModel(IRegionManager regionManager, IDataAccess dataAccess, IEventAggregator eventAggregator, IBackupService backupService,
                                IGoogleDrive googleDrive, ISnackbarMessageQueue messageQueue) : base(regionManager, eventAggregator)
        {
            _dataAccess    = dataAccess;
            _backupService = backupService;
            _googleDrive   = googleDrive;
            _messageQueue  = messageQueue;

            _eventAggregator.GetEvent <BackupListUpdateRequestedEvent>().Subscribe(UpdateBackups);

            RefreshCommand        = new DelegateCommand(UpdateBackups);
            AddCommand            = new DelegateCommand(Add);
            RemoveCommand         = new DelegateCommand <BackupModel>(Remove, x => SelectedBackup is object).ObservesProperty(() => SelectedBackup);
            RemoveSelectedCommand = new DelegateCommand(RemoveSelected, () => IsAllItemsSelected ?? true).ObservesProperty(() => IsAllItemsSelected);
            RestoreCommand        = new DelegateCommand <BackupModel>(Restore, x => SelectedBackup is object).ObservesProperty(() => SelectedBackup);

            NavigateForwardCommand  = new DelegateCommand(() => ++ CurrentPageIndex, () => To < TotalNumberOfBackups);
            NavigateBackwardCommand = new DelegateCommand(() => -- CurrentPageIndex, () => From > 1);
            NavigateToStartCommand  = new DelegateCommand(() => CurrentPageIndex = 0, () => From > 1);
            NavigateToEndCommand    = new DelegateCommand(() => CurrentPageIndex = TotalNumberOfBackups / PageSize, () => To < TotalNumberOfBackups);

            ShowInExplorerCommand     = new DelegateCommand <BackupModel>(ShowInExplorer, x => SelectedBackup is object).ObservesProperty(() => SelectedBackup);
            UpdateNoteCommand         = new DelegateCommand <BackupModel>(x => _dataAccess.UpdateNote(SelectedBackup.Backup));
            UpdateIsLikedCommand      = new DelegateCommand <BackupModel>(x => _dataAccess.UpdateIsLiked(SelectedBackup.Backup));
            ExecuteDriveActionCommand = new DelegateCommand <BackupModel>(x => ExecuteCloudAction(SelectedBackup, Ct).ConfigureAwait(false),
                                                                          x => SelectedBackup is object && _googleDrive.IsAuthorized).ObservesProperty(() => SelectedBackup);
            RecoverCommand = new DelegateCommand <BackupModel>(x => RecoverAsync(x, Ct).ConfigureAwait(false),
                                                               x => SelectedBackup is object && SelectedBackup.IsInGoogleDrive && !File.Exists(SelectedBackup.Backup.SavefilePath) && _googleDrive.IsAuthorized).ObservesProperty(() => SelectedBackup);

            Filter.PropertyChanged += (s, e) => OnFilterPropertyChanged(e.PropertyName);
        }
        public AdminWindowViewModel([NotNull] ISnackbarMessageQueue snackBarMessageQueue)
        {
            if (snackBarMessageQueue == null)
            {
                throw new ArgumentNullException(nameof(snackBarMessageQueue));
            }

            this.DemoItems = new[]
            {
                new DemoItem("Home", new AdminHome()),
                new DemoItem("Add Train", new AddTrain {
                    DataContext = new AddTrainViewModel()
                }),
                new DemoItem(
                    "Add Station",
                    new AddStation {
                    DataContext = new AddStationViewModel()
                }),
                new DemoItem("Add TTE", new AddTte {
                    DataContext = new AddTteViewModel()
                }),
                new DemoItem(
                    "Add Station Master",
                    new AddStationMaster {
                    DataContext = new AddStationMasterViewModel()
                })
            };
        }
示例#6
0
        private async void SaveAsync(ISnackbarMessageQueue snackbarMessageQueue)
        {
            var connection = _connectionProvider();

            //TODO disable commands
            if (string.IsNullOrWhiteSpace(Document.Text) || connection == null)
            {
                return;
            }

            await DialogHost.Show(new ProgressRing(), _dialogTargetFinder.SuggestDialogHostIdentifier(), async delegate(object sender, DialogOpenedEventArgs args)
            {
                try
                {
                    var response = await Save(connection, Document.Text);

                    var jToken    = JToken.Parse(response.Resource.ToString());
                    Document.Text = jToken.ToString(Formatting.Indented);

                    args.Session.Close();

                    snackbarMessageQueue.Enqueue($"Saved document '{response.Resource.Id}'.");
                }
                catch (Exception exc)
                {
                    args.Session.UpdateContent(new MessageDialog
                    {
                        Title   = "Save Error",
                        Content = exc.Message
                    });
                }
            });
        }
        public MainContentViewModel(IDialogService dialogService, ISnackbarMessageQueue snackbarMessageQueue)
        {
            this.dialogService        = dialogService ?? throw new ArgumentNullException(nameof(dialogService));
            this.snackbarMessageQueue = snackbarMessageQueue ?? throw new ArgumentNullException(nameof(snackbarMessageQueue));

            OpenDialogCommand = new DelegateCommand(OpenDialog);
        }
示例#8
0
        public ShellViewModel(
            IClipboardManager clipboardManager,
            INHotkeyManagerMapper hotkeyManager,
            ISnackbarMessageQueue snackbarMessageQueue,
            IEventAggregator eventAggregator,
            IDialogHostMapper dialogHostMapper,
            ILoggerManager loggerManager,
            MainViewModel mainViewModel,
            AboutViewModel aboutViewModel)
        {
            this.clipboardManager = clipboardManager;
            this.hotkeyManager    = hotkeyManager;
            this.SbMessageQueue   = snackbarMessageQueue;
            this.eventAggregator  = eventAggregator;
            this.dialogHostMapper = dialogHostMapper;
            this.loggerManager    = loggerManager;
            this.mainViewModel    = mainViewModel;
            this.aboutViewModel   = aboutViewModel;

            this.eventAggregator.Subscribe(this);

            // Register hotkey
            this.RegisterHotkey();

            // Load Menu items
            this.LoadMenuItems();
        }
 private void LoadPasswordModule(ISnackbarMessageQueue snackbarMessageQueue)
 {
     LoginViewModel =
         AutoSerializableHelper.LoadAutoSerializable <LoginViewModel>(DirectoryConstants.ConfigDirectory, "PD");
     LoginViewModel.ShouldAutoSerialize = true;
     LoginViewModel.MessageQueue        = snackbarMessageQueue;
 }
示例#10
0
        public ClientsPageViewModel(IClientsService clientsService, IResidencesService residencesService, ISnackbarMessageQueue snackbarMessageQueue, IDialogHost dialogHost, Hotel hotel)
        {
            _clientsService       = clientsService;
            _residencesService    = residencesService;
            _snackbarMessageQueue = snackbarMessageQueue;
            _hotel      = hotel;
            _dialogHost = dialogHost;


            Clients = new ObservableCollection <Client>(_clientsService.Get());

            ClientsViews        = (CollectionView)CollectionViewSource.GetDefaultView(Clients);
            ClientsViews.Filter = ClientsFilter;


            FilteredFields = new Dictionary <string, string>(Client.Fields)
            {
                { AnyFieldFilterValue, "Любое поле" }
            };
            SelectedFilterField = AnyFieldFilterValue;
            IsContainsFilter    = true;

            SortedFields = new Dictionary <string, string>(Client.Fields)
            {
                { NoSortingSortValue, "Не сортировать" }
            };
            SelectedSortField = NoSortingSortValue;
            IsAscendingSort   = true;
        }
示例#11
0
        public Window1ViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            //if (snackbarMessageQueue == null) throw new ArgumentNullException(nameof(snackbarMessageQueue));

            //DemoItems = new MenuTreeViewModel();

            //List<Node> nodes = new List<Node>()
            //{
            //    new Node { ID = 1, Name = "中国" },
            //    new Node { ID = 2, Name = "北京市", ParentID = 1 },
            //    new Node { ID = 3, Name = "吉林省", ParentID = 1 },
            //    new Node { ID = 4, Name = "上海市", ParentID = 1 },
            //    new Node { ID = 5, Name = "海淀区", ParentID = 2 },
            //    new Node { ID = 6, Name = "朝阳区", ParentID = 2 },
            //    new Node { ID = 7, Name = "大兴区", ParentID = 2 },
            //    new Node { ID = 8, Name = "白山市", ParentID = 3 },
            //    new Node { ID = 9, Name = "长春市", ParentID = 3 },
            //    new Node { ID = 10, Name = "抚松县", ParentID = 8 },
            //    new Node { ID = 11, Name = "靖宇县", ParentID = 8 },
            //    new Node { ID = 12, Name = "甘肃省", ParentID = 1 },
            //    new Node { ID = 13, Name = "张掖市", ParentID = 12 },
            //    new Node { ID = 14, Name = "山丹县", ParentID = 13 },
            //    new Node { ID = 15, Name = "位奇镇", ParentID = 14 },
            //    new Node { ID = 16, Name = "清泉镇", ParentID = 14 },
            //    new Node { ID = 17, Name = "汪庄村", ParentID = 15 },
            //    new Node { ID = 18, Name = "新开村", ParentID = 15 },
            //    new Node { ID = 19, Name = "一社", ParentID = 17 },
            //    new Node { ID = 20, Name = "金昌市", ParentID = 12 }
            //};

            //Nodes = Bind(nodes);
        }
示例#12
0
        public RDCGroupsViewModel(ISnackbarMessageQueue snackbarMessageQueue, IRDCGroupManager rdcGroupManager)
        {
            _snackbarMessageQueue = snackbarMessageQueue;
            _rdcGroupManager      = rdcGroupManager;

            RDCGroups = new ObservableCollection <RDCGroup>(_rdcGroupManager.GetGroups());
        }
示例#13
0
        public ShellViewModel(
            ISnackbarMessageQueue snackbarMessageQueue,
            IMediator mediator,
            IDialogHostMapper dialogHostMapper,
            ILocalizationService localizationService,
            IWindowManager windowManager,
            ISubscriptionAggregator subscriptionAggregator,
            AboutViewModel aboutViewModel,
            FinCalcViewModel finCalcViewModel)
        {
            this.SbMessageQueue         = snackbarMessageQueue;
            this.mediator               = mediator;
            this.dialogHostMapper       = dialogHostMapper;
            this.localizationService    = localizationService;
            this.windowManager          = windowManager;
            this.subscriptionAggregator = subscriptionAggregator;

            this.aboutViewModel   = aboutViewModel;
            this.finCalcViewModel = finCalcViewModel;

            this.subscriptionAggregator.Subscribe(this);

            this.LoadMenuItems();
            this.LoadLanguages();
            this.TitleBarText = Resources.AppTitleTxt_Text + " - " + Resources.FinCalcItem_Name;
        }
示例#14
0
        public MainOffersViewModel(
            IWebpageService webpageService,
            IBrowserService browserService,
            IMvxNavigationService navigationService,
            IUnitOfWork unitOfWork,
            ISnackbarMessageQueue snackbarMessageQueue,
            IMvxLog logger
            )
        {
            _webpageService      = webpageService;
            _browserService      = browserService;
            _navigationService   = navigationService;
            _unitOfWork          = unitOfWork;
            SnackbarMessageQueue = snackbarMessageQueue;
            _logger = logger;
            Offers  = new MvxObservableCollection <OfferViewModel>();

            GetDataFromWebpageCommand  = new MvxAsyncCommand(GetDataFromWebpage, CanGetDataFromWebpage);
            NavigateToOfferViewCommand = new MvxAsyncCommand(NavigateToOfferView);
            UpdatePricesCommand        = new MvxAsyncCommand(UpdatePrices, CanUpdatePrices);
            DeleteCommand = new MvxAsyncCommand(DeleteOffer, CanDeleteOffer);

            InfoText = "Uruchomiono";
            _logger.Debug("test uruchomiono MainOffersViewModel");
        }
示例#15
0
        public ReservoirManagerViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            _snackbarMessageQueue = snackbarMessageQueue ?? throw new ArgumentNullException(nameof(snackbarMessageQueue));

            _reservoirs = new ObservableCollection <ReservoirViewModel>();
            //_reservoirs = CreateData();
        }
示例#16
0
        public MainWindowViewModel(IRegionManager regionManager, ILogger logger, IEventAggregator eventAggregator) : base(logger, eventAggregator)
        {
            _regionManager = regionManager;

            MessageQueue = new SnackbarMessageQueue();
            eventAggregator.GetEvent <SnackbarMessageEvent>().Subscribe(ShowSnackbarMessage);
        }
示例#17
0
        public MainWindowViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            _allItems = GenerateDemoItems(snackbarMessageQueue);
            FilterItems(null);

            MovePrevCommand = new AnotherCommandImplementation(
                _ =>
            {
                if (!string.IsNullOrWhiteSpace(SearchKeyword))
                {
                    SearchKeyword = string.Empty;
                }

                SelectedIndex--;
            },
                _ => SelectedIndex > 0);

            MoveNextCommand = new AnotherCommandImplementation(
                _ =>
            {
                if (!string.IsNullOrWhiteSpace(SearchKeyword))
                {
                    SearchKeyword = string.Empty;
                }

                SelectedIndex++;
            },
                _ => SelectedIndex < _allItems.Count - 1);
        }
示例#18
0
        /// <summary>
        /// Ctor.
        /// </summary>
        public MainWindowViewModel(ISnackbarMessageQueue messageQueue, IContainer container)
        {
            MessageQueue     = messageQueue;
            DialogIdentifier = container.ResolveRootDialogIdentifier();

            WindowSettings = Settings.Default.MainWindowSettings;
        }
示例#19
0
        public RootViewModel(
            IEventAggregator eventAggregator,
            ISettingsService settingsService,
            ICoreService coreService,
            IDebugService debugService,
            IRegistrationService builtInRegistrationService,
            ISnackbarMessageQueue snackbarMessageQueue,
            SidebarViewModel sidebarViewModel)
        {
            SidebarViewModel            = sidebarViewModel;
            _eventAggregator            = eventAggregator;
            _coreService                = coreService;
            _debugService               = debugService;
            _builtInRegistrationService = builtInRegistrationService;
            _snackbarMessageQueue       = snackbarMessageQueue;

            _frameTimeUpdateTimer = new Timer(500);

            _colorScheme = settingsService.GetSetting("UI.ColorScheme", ApplicationColorScheme.Automatic);
            _windowSize  = settingsService.GetSetting <WindowSize>("UI.RootWindowSize");

            _themeWatcher = new ThemeWatcher();
            ApplyColorSchemeSetting();

            ActiveItem      = SidebarViewModel.SelectedItem;
            ActiveItemReady = true;

            AssemblyInformationalVersionAttribute?versionAttribute = typeof(RootViewModel).Assembly.GetCustomAttribute <AssemblyInformationalVersionAttribute>();

            WindowTitle = $"Artemis {versionAttribute?.InformationalVersion}";
        }
        public SettingsViewModel()
        {
            addonController = new AddonsControllerFactory().CreateAddonController();
            settingsManager = domainFactory.CreateSettingsManager();

            NotificationQueue = new SnackbarMessageQueue();
        }
示例#21
0
        public MainWindowViewModel(ISnackbarMessageQueue snackbarMessageQueue, ListBox MenuBox)
        {
            if (snackbarMessageQueue == null)
            {
                throw new ArgumentNullException(nameof(snackbarMessageQueue));
            }

            MenuItems = new[]
            {
                new Domain.MenuItem("Home", new Home {
                    DataContext = new HomeViewModel(MenuBox)
                }),
                new Domain.MenuItem("Analyzer", new Analyzer {
                    DataContext = new AnalyzerViewModel(snackbarMessageQueue)
                }),
                new Domain.MenuItem("Record Manager", new RecordManager {
                    DataContext = new RecordManagerViewModel(snackbarMessageQueue)
                }),
                new Domain.MenuItem("Reservoir Manager", new ReservoirManager {
                    DataContext = new ReservoirManagerViewModel(snackbarMessageQueue)
                }),
                new Domain.MenuItem("Helper", new Helper {
                    DataContext = new HelperViewModel()
                }),
            };
        }
示例#22
0
        public MainWindowViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            try
            {
                if (snackbarMessageQueue == null)
                {
                    throw new ArgumentNullException(nameof(snackbarMessageQueue));
                }

                ItemMenus = new[]
                {
                    new MenusItems(ConstantsDashBoard.NameWindowDashBoard, typeof(DashBoard)),
                    new MenusItems(ConstantsClients.NameWindowClientsList, typeof(ClientsList)),
                    new MenusItems(ConstantsAccessPage.NameWindowAccessPage, typeof(AccessPage)),
                    new MenusItems(ConstantsFingerPrints.NameWindowFingerPrints, typeof(FingerPrintsCreate)),
                    new MenusItems(ConstantsServiceGym.NameWindowServiceGymsList, typeof(ServiceGymsList)),
                    new MenusItems(ConstantsServiceGymType.NameWindowServiceGymTypeList, typeof(ServiceGymTypesList)),
                    new MenusItems(ConstantsServiceGymContracts.NameWindowServiceGymContractsList, typeof(ServiceGymContractsList))
                };
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("Error {0}", ex.Message), ex);
            }
        }
        public RDCUserAccountsViewModel(ISnackbarMessageQueue snackbarMessageQueue, IUserAccountManager userAccountManager)
        {
            _snackbarMessageQueue = snackbarMessageQueue;
            _userAccountManager   = userAccountManager;

            Accounts = new ObservableCollection <UserAccount>(_userAccountManager.GetUserAccounts());
        }
示例#24
0
        public MainViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            if (snackbarMessageQueue == null)
            {
                throw new ArgumentNullException(nameof(snackbarMessageQueue));
            }

            menuItems = new[]
            {
                new MenuItem("На главную", new Home()
                {
                    DataContext = new HomeViewModel()
                }),
                new MenuItem("Бот 1", new Bot1TabControl {
                    DataContext = new Bot1ContentViewModel()
                }),
                new MenuItem("Бот 2", new Bot2TabControl {
                    DataContext = new Bot2ContentViewModel()
                }),
                new MenuItem("Бот 3", new Bot3TabControl {
                    DataContext = new Bot3ContentViewModel()
                }),
                new MenuItem("Бот 4", new Bot4TabControl {
                    DataContext = new Bot4ContentViewModel()
                }),
            };
        }
示例#25
0
        public SettingsViewModel(ISnackbarMessageQueue snackbarMessageQueue)
        {
            _snackbarMessageQueue = snackbarMessageQueue ?? throw new ArgumentNullException(nameof(snackbarMessageQueue));

            _followOSColorMode = true;
            _lightMode         = false;
            _darkMode          = false;
            _autoUpdateDl      = true;
            _dlPath            = "";
            _ffmpegPath        = "";
            _proxy             = "";

            _paletteHelper   = new PaletteHelper();
            _changeColorMode = new DelegateCommand(OnChangeColorMode);
            _browseExe       = new DelegateCommand(OnBrowseExe);

            settingsChangedEvent = EventAggregator.Instance.GetEvent <SettingsChangedEvent>();
            // subscribe to settings changes published by HomeViewModel
            EventAggregator.Instance.GetEvent <SettingsFromHomeEvent>().Subscribe(async x =>
            {
                _settings = x;
                await SaveSettingsAsync();
            });
            // load and apply settings from json
            Task.Run(LoadSettingsAsync).ContinueWith(x => ApplySettings());
        }
示例#26
0
        public MainViewModel(ISnackbarMessageQueue messageQueue, Interfaces.ILog log, IBookmarkService bookmarkService, [ImportMany] IEnumerable <ExportFactory <IPageViewModel, IPageViewModelMetadata> > viewModels, [ImportMany] IEnumerable <Lazy <IPageView, IPageViewMetadata> > views, DialogHelpViewModel helpViewModel)
        {
            _log             = log;
            _pageFactories   = viewModels.ToDictionary(vm => vm.Metadata.Context, vm => (ExportFactory <IPageViewModel>)vm);
            _bookmarkService = bookmarkService;

            MessageQueue                    = messageQueue;
            Pages                           = new ObservableCollection <Model.Context>(views.Where(p => p.Metadata.Context != null).OrderBy(p => p.Metadata.Index).Select(p => (Model.Context)Activator.CreateInstance(p.Metadata.Context)));
            Bookmarks                       = new ObservableCollection <Context>(_bookmarkService.Bookmarks);
            Tabs                            = new ObservableCollection <IPageViewModel>();
            UseDarkColorScheme              = Properties.Settings.Default.DarkColorScheme;
            OpenInNewTab                    = Properties.Settings.Default.OpenInNewTab;
            OpenTabCommand                  = new DelegateCommand <Context>(CreateTab);
            ReplaceTabCommand               = new DelegateCommand <Context>(ReplaceTab);
            CloseTabCommand                 = new DelegateCommand <PageViewModel>(CloseTab, t => Tabs.Count > 1);
            ReindexCommand                  = new DelegateCommand(() => _log.Update(null, CancellationToken.None));
            OpenCommand                     = new DelegateCommand <string[]>(Open);
            EditCommand                     = new DelegateCommand <SearchContext>(_bookmarkService.Edit, c => !c.IsFromRepository);
            DeleteCommand                   = new DelegateCommand <SearchContext>(_bookmarkService.Remove, c => !c.IsFromRepository);
            SaveCommand                     = new DelegateCommand(() => _bookmarkService.Save((SearchContext)CurrentTab.Context), () => CurrentTab is IPageViewModel page && page.Context is SearchContext);
            ManageBookmarksCommand          = new DelegateCommand(_bookmarkService.Manage);
            SelectBookmarkRepositoryCommand = new DelegateCommand(SelectBookmarkRepository);
            ClearBookmarkRepositoryCommand  = new DelegateCommand(ClearBookmarkRepository, () => !string.IsNullOrEmpty(Properties.Settings.Default.BookmarkRepositoryFile));
            ShowHelpCommand                 = new DelegateCommand(() => DialogHost.Show(helpViewModel));

            // update the bookmark list when the service updates
            _bookmarkService.CollectionChanged += (s, e) =>
            {
                Bookmarks.Clear();
                Bookmarks.AddRange(_bookmarkService.Bookmarks);
            };

            // create the initial tab
            CreateTab((Context)Pages.First().Clone());
        }
示例#27
0
        public ProfileExportViewModel(ProfileDescriptor profileDescriptor, IProfileService profileService, ISnackbarMessageQueue mainMessageQueue)
        {
            ProfileDescriptor = profileDescriptor;

            _profileService   = profileService;
            _mainMessageQueue = mainMessageQueue;
        }
        public ProfileEditorViewModel(ProfileModule module,
                                      ProfileViewModel profileViewModel,
                                      ProfileTreeViewModel profileTreeViewModel,
                                      DisplayConditionsViewModel dataModelConditionsViewModel,
                                      LayerPropertiesViewModel layerPropertiesViewModel,
                                      IProfileEditorService profileEditorService,
                                      IProfileService profileService,
                                      IDialogService dialogService,
                                      ISettingsService settingsService,
                                      IModuleService moduleService,
                                      ISnackbarMessageQueue snackbarMessageQueue)
        {
            _profileEditorService = profileEditorService;
            _profileService       = profileService;
            _settingsService      = settingsService;
            _moduleService        = moduleService;
            _snackbarMessageQueue = snackbarMessageQueue;

            DisplayName   = "PROFILE EDITOR";
            Module        = module;
            DialogService = dialogService;

            Profiles = new BindableCollection <ProfileDescriptor>();

            // Populate the panels
            ProfileViewModel           = profileViewModel;
            ProfileTreeViewModel       = profileTreeViewModel;
            DisplayConditionsViewModel = dataModelConditionsViewModel;
            LayerPropertiesViewModel   = layerPropertiesViewModel;

            Items.Add(ProfileViewModel);
            Items.Add(ProfileTreeViewModel);
            Items.Add(dataModelConditionsViewModel);
            Items.Add(LayerPropertiesViewModel);
        }
示例#29
0
 public MainViewModel(INavigationService NavigationService, ISnackbarMessageQueue SnackBarMessageQueue)
     : base()
 {
     this.SnackBarMessageQueue = SnackBarMessageQueue;  //TODO: move into View? Due to independency reasons and stuff?
     this.navigationService    = NavigationService;
     this.Menu = new MenuUserControlViewModel(this.navigationService);
 }
示例#30
0
 public MainWindow(ParkingList parkingList, ISnackbarMessageQueue messageQueue)
 {
     InitializeComponent();
     DataContext            = this;
     ContentControl.Content = parkingList;
     MessageQueue           = messageQueue;
 }