public DefaultRepositoryActionProvider( IRepositoryActionConfigurationStore repositoryActionConfigurationStore, IRepositoryWriter repositoryWriter, IRepositoryMonitor repositoryMonitor, IErrorHandler errorHandler, ITranslationService translationService) { _repositoryActionConfigurationStore = repositoryActionConfigurationStore ?? throw new ArgumentNullException(nameof(repositoryActionConfigurationStore)); _repositoryWriter = repositoryWriter ?? throw new ArgumentNullException(nameof(repositoryWriter)); _repositoryMonitor = repositoryMonitor ?? throw new ArgumentNullException(nameof(repositoryMonitor)); _errorHandler = errorHandler ?? throw new ArgumentNullException(nameof(errorHandler)); _translationService = translationService ?? throw new ArgumentNullException(nameof(translationService)); _configuration = _repositoryActionConfigurationStore.RepositoryActionConfiguration; }
public MainWindow(StatusCharacterMap statusCharacterMap, IRepositoryInformationAggregator aggregator, IRepositoryMonitor repositoryMonitor, IRepositoryActionProvider repositoryActionProvider, IRepositoryIgnoreStore repositoryIgnoreStore, IAppSettingsService appSettingsService, ITranslationService translationService, IRepositoryActionConfigurationStore actionConfigurationStore) { _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)); _actionConfigurationStore = actionConfigurationStore ?? throw new ArgumentNullException(nameof(actionConfigurationStore)); lstRepositories.ItemsSource = aggregator.Repositories; var view = (ListCollectionView)CollectionViewSource.GetDefaultView(aggregator.Repositories); ((ICollectionView)view).CollectionChanged += View_CollectionChanged; view.Filter = FilterRepositories; view.CustomSort = new CustomRepositoryViewSortBehavior(); var appName = System.Reflection.Assembly.GetEntryAssembly().GetName(); txtHelpCaption.Text = appName.Name + " " + appName.Version.ToString(2); txtHelp.Text = GetHelp(statusCharacterMap); PlaceFormByTaskbarLocation(); }
public override void ViewWillAppear() { base.ViewWillAppear(); if (_aggregator != null) { return; } var container = TinyIoC.TinyIoCContainer.Current; _aggregator = container.Resolve <IRepositoryInformationAggregator>(); var actionProvider = container.Resolve <IRepositoryActionProvider>(); _monitor = container.Resolve <IRepositoryMonitor>(); _appSettingsService = container.Resolve <IAppSettingsService>(); _repositoryIgnoreStore = container.Resolve <IRepositoryIgnoreStore>(); _translationService = container.Resolve <ITranslationService>(); _actionConfigurationStore = container.Resolve <IRepositoryActionConfigurationStore>(); // 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; }