// Constructors public MainViewModel(IUIMainWindowService windowService) { IStorage storage = new Storage(windowService.AppDir); model = MainModel.CreateModel(storage); model.CorpusDir = windowService.CorpusDir; model.DicDir = windowService.DicDir; model.OutDir = windowService.OutDir; this.windowService = windowService; L.Logger.Debug("MainView is starting."); Languages = new ObservableCollection<LingvaViewModel>(); model.LanguageAdded += (obj, args) => Languages.Add(new LingvaViewModel(args.Content)); model.LanguageRemoved += (obj, args) => Languages.Remove(new LingvaViewModel(args.Content)); Projects = new ObservableCollection<string>(); model.ProjectAdded += (obj, args) => windowService.BeginInvoke( new Action(() => Projects.Add(args.Content) )); model.ProjectRemoved += (obj, args) => windowService.BeginInvoke( new Action(() => Projects.Remove(args.Content) )); Dictionaries = new ObservableCollection<DictViewModel>(); model.DictAdded += (obj, args) => windowService.BeginInvoke( new Action(() => Dictionaries.Add(new DictViewModel(windowService, args.Content)) )); model.DictRemoved += (obj, args) => windowService.BeginInvoke( new Action(() => Dictionaries.Remove(new DictViewModel(windowService, args.Content)) )); Files = new ObservableCollection<FileStatsViewModel>(); model.FileStatsAdded += (obj, args) => windowService.BeginInvoke( new Action(() => { FileStatsViewModel fsvm = new FileStatsViewModel(windowService, args.Content); Files.Add(fsvm); totalUnknown += fsvm.Unknown.GetValueOrDefault(); TotalWords += fsvm.Size.GetValueOrDefault(); })); model.FileStatsRemoved += (obj, args) => windowService.BeginInvoke( new Action(() => { FileStatsViewModel fsvm = new FileStatsViewModel(windowService, args.Content); Files.Remove(fsvm); totalUnknown -= fsvm.Unknown.GetValueOrDefault(); TotalWords -= fsvm.Size.GetValueOrDefault(); })); Words = new ObservableCollection<WordViewModel>(); WordsInProject = new ObservableCollection<WordViewModel>(); model.InitializeLanguages(); ProgressValue = 100; L.Logger.Debug("MainView has started."); }
public static void Configure(IUIMainWindowService windowService) { MainModel model = MainModel.Instance; model.Storage = new Storage(windowService.AppDir); model.Config.CommonDictionaryName = windowService.CommonDictionaryName; model.Config.CorpusDir = windowService.CorpusDir; model.Config.DicDir = windowService.DicDir; model.Config.OutDir = windowService.OutDir; model.Config.StyleDirectoryPath = IOTools.CombinePath(Directory.GetCurrentDirectory(), "plugins"); }
// ctor public MainWindowViewModel( IUIMainWindowService windowService, IFileReader fileReader, IDataProvider dataProvider) { this.windowService = windowService; this.fileReader = fileReader; this.dataProvider = dataProvider; Owned = new ObservableCollection <GameViewModel>(); Owned.CollectionChanged += (sender, e) => { RaisePropertyChanged(nameof(CanGatherTime)); }; PrevOwned = new ObservableCollection <GameViewModel>(); PrevOwned.CollectionChanged += (sender, e) => { RaisePropertyChanged(nameof(CanGatherTime)); }; HourRate = 250; }
// ctor public MainWindowViewModel(IUIMainWindowService windowService) { this.windowService = windowService; core = Core.Instance; core.Accounts.ListChanged += (sender, e) => { RaisePropertyChanged(nameof(Accounts)); }; core.Categories.CollectionChanged += (sender, r) => { RaisePropertyChanged(nameof(CanShowReport)); }; core.PropertyChanged += (sender, e) => { if (e.PropertyName == "CurrentMonthSpendings") { RaisePropertyChanged(nameof(Bars)); } }; LoadLastOpenedFile(); }
/// <summary> /// Ctor. /// </summary> /// <param name="addition">Action that handles addition to the new collection.</param> /// <param name="deletion">Action that handles deletion from the new collection.</param> /// <param name="windowService"></param> public CollectionBinder(Action <T> addition, Action <T> deletion, IUIMainWindowService windowService) { this.addition = addition; this.deletion = deletion; this.windowService = windowService; }
// Constructors public MainViewModel(IUIMainWindowService windowService) { this.windowService = windowService; // Configure the model before usage. ModelConfigurator.Configure(windowService); model = MainModel.Instance; L.Logger.Debug("MainView is starting."); Languages = new ObservableCollection <LingvaViewModel>(); CollectionBinder <Lingva> langBinder = new CollectionBinder <Lingva>( newLang => Languages.Add(new LingvaViewModel(newLang)), oldLang => Languages.Remove(new LingvaViewModel(oldLang)), windowService ); model.Languages.CollectionChanged += langBinder.Connect; Projects = new ObservableCollection <string>(); CollectionBinder <string> projectBinder = new CollectionBinder <string>( newProject => Projects.Add(newProject), oldProject => Projects.Remove(oldProject), windowService ); model.Projects.CollectionChanged += projectBinder.Connect; Dictionaries = new ObservableCollection <DictViewModel>(); CollectionBinder <Dict> dictBinder = new CollectionBinder <Dict>( newDict => Dictionaries.Add(new DictViewModel(windowService, newDict)), oldDict => Dictionaries.Remove(new DictViewModel(windowService, oldDict)), windowService ); model.Dictionaries.CollectionChanged += dictBinder.Connect; Files = new ObservableCollection <FileStatsViewModel>(); CollectionBinder <FileStats> fileBinder = new CollectionBinder <FileStats>( newFile => { FileStatsViewModel fsvm = new FileStatsViewModel(windowService, newFile); Files.Add(fsvm); totalUnknown += fsvm.Unknown.GetValueOrDefault(); TotalWords += fsvm.Size.GetValueOrDefault(); }, oldFile => { FileStatsViewModel fsvm = new FileStatsViewModel(windowService, oldFile); Files.Remove(fsvm); totalUnknown -= fsvm.Unknown.GetValueOrDefault(); TotalWords -= fsvm.Size.GetValueOrDefault(); }, windowService); model.Files.CollectionChanged += fileBinder.Connect; Words = new ObservableCollection <WordViewModel>(); WordsInProject = new ObservableCollection <WordViewModel>(); model.InitializeLanguages(); ProgressValue = 100; L.Logger.Debug("MainView has started."); }