public override void ViewWillAppear() { base.ViewWillAppear(); if (_aggregator != null) { return; } _aggregator = TinyIoC.TinyIoCContainer.Current.Resolve <IRepositoryInformationAggregator>(); var actionProvider = TinyIoC.TinyIoCContainer.Current.Resolve <IRepositoryActionProvider>(); _monitor = TinyIoC.TinyIoCContainer.Current.Resolve <IRepositoryMonitor>(); _appSettingsService = TinyIoC.TinyIoCContainer.Current.Resolve <IAppSettingsService>(); _repositoryIgnoreStore = TinyIoC.TinyIoCContainer.Current.Resolve <IRepositoryIgnoreStore>(); // Do any additional setup after loading the view. var datasource = new RepositoryTableDataSource(_aggregator.Repositories); RepoTab.DataSource = datasource; datasource.CollectionChanged += Datasource_CollectionChanged; RepoTab.Delegate = new RepositoryTableDelegate(RepoTab, datasource, actionProvider); SetControlVisibilityByRepositoryAvailability(); RepoTab.BackgroundColor = NSColor.Clear; RepoTab.EnclosingScrollView.DrawsBackground = false; SearchBox.FinishInput += SearchBox_FinishInput; SearchBox.NextKeyView = RepoTab; }
public MainWindow(StatusCharacterMap statusCharacterMap, IRepositoryInformationAggregator aggregator, IRepositoryMonitor repositoryMonitor, IRepositoryActionProvider repositoryActionProvider, IRepositoryIgnoreStore repositoryIgnoreStore, IAppSettingsService appSettingsService) { InitializeComponent(); DataContext = new MainWindowPageModel(appSettingsService); SettingsMenu.DataContext = DataContext; // this is out of the visual tree _monitor = repositoryMonitor as DefaultRepositoryMonitor; if (_monitor != null) { _monitor.OnScanStateChanged += OnScanStateChanged; ShowScanningState(_monitor.Scanning); } _repositoryActionProvider = repositoryActionProvider ?? throw new ArgumentNullException(nameof(repositoryActionProvider)); _repositoryIgnoreStore = repositoryIgnoreStore ?? throw new ArgumentNullException(nameof(repositoryIgnoreStore)); lstRepositories.ItemsSource = aggregator.Repositories; var view = CollectionViewSource.GetDefaultView(lstRepositories.ItemsSource); view.CollectionChanged += View_CollectionChanged; view.Filter = FilterRepositories; lstRepositories.Items.SortDescriptions.Add( new SortDescription(nameof(RepositoryView.Name), ListSortDirection.Ascending)); txtHelp.Text = GetHelp(statusCharacterMap); PlaceFormToLowerRight(); }
public DefaultRepositoryMonitor( IPathProvider pathProvider, IRepositoryReader repositoryReader, IRepositoryDetectorFactory repositoryDetectorFactory, IRepositoryObserverFactory repositoryObserverFactory, IPathCrawlerFactory pathCrawlerFactory, IRepositoryStore repositoryStore, IRepositoryInformationAggregator repositoryInformationAggregator, IAutoFetchHandler autoFetchHandler, IRepositoryIgnoreStore repositoryIgnoreStore ) { _repositoryReader = repositoryReader ?? throw new ArgumentNullException(nameof(repositoryReader)); _repositoryDetectorFactory = repositoryDetectorFactory ?? throw new ArgumentNullException(nameof(repositoryDetectorFactory)); _repositoryObserverFactory = repositoryObserverFactory ?? throw new ArgumentNullException(nameof(repositoryObserverFactory)); _pathCrawlerFactory = pathCrawlerFactory ?? throw new ArgumentNullException(nameof(pathCrawlerFactory)); _pathProvider = pathProvider ?? throw new ArgumentNullException(nameof(pathProvider)); _repositoryStore = repositoryStore ?? throw new ArgumentNullException(nameof(repositoryStore)); _repositoryInformationAggregator = repositoryInformationAggregator ?? throw new ArgumentNullException(nameof(repositoryInformationAggregator)); _repositoryObservers = new Dictionary <string, IRepositoryObserver>(); _repositoryIgnoreStore = repositoryIgnoreStore; _storeFlushTimer = new Timer(RepositoryStoreFlushTimerCallback, null, Timeout.Infinite, Timeout.Infinite); AutoFetchHandler = autoFetchHandler ?? throw new ArgumentNullException(nameof(autoFetchHandler)); }
public MainWindow(StatusCharacterMap statusCharacterMap, IRepositoryInformationAggregator aggregator, IRepositoryMonitor repositoryMonitor, IRepositoryActionProvider repositoryActionProvider, IRepositoryIgnoreStore repositoryIgnoreStore, IAppSettingsService appSettingsService, ITranslationService translationService) { _translationService = translationService; InitializeComponent(); AcrylicWindow.SetAcrylicWindowStyle(this, AcrylicWindowStyle.None); DataContext = new MainWindowPageModel(appSettingsService); SettingsMenu.DataContext = DataContext; // this is out of the visual tree _monitor = repositoryMonitor as DefaultRepositoryMonitor; if (_monitor != null) { _monitor.OnScanStateChanged += OnScanStateChanged; ShowScanningState(_monitor.Scanning); } _repositoryActionProvider = repositoryActionProvider ?? throw new ArgumentNullException(nameof(repositoryActionProvider)); _repositoryIgnoreStore = repositoryIgnoreStore ?? throw new ArgumentNullException(nameof(repositoryIgnoreStore)); lstRepositories.ItemsSource = aggregator.Repositories; var view = CollectionViewSource.GetDefaultView(lstRepositories.ItemsSource); view.CollectionChanged += View_CollectionChanged; view.Filter = FilterRepositories; lstRepositories.Items.SortDescriptions.Add( new SortDescription(nameof(RepositoryView.Name), ListSortDirection.Ascending)); var appName = System.Reflection.Assembly.GetEntryAssembly().GetName(); txtHelpCaption.Text = appName.Name + " " + appName.Version.ToString(2); txtHelp.Text = GetHelp(statusCharacterMap); PlaceFormByTaskbarLocation(); }