예제 #1
0
        public void SetUp()
        {
            _settings   = new Mock <IApplicationSettings>();
            _dataSource =
                CreateViewModel(
                    new FileDataSource(_logSourceFactory, _scheduler, new DataSource("Foobar")
            {
                Id = DataSourceId.CreateNew()
            }));
            _control = new LogViewerControl
            {
                DataSource = _dataSource,
                Width      = 1024,
                Height     = 768
            };

            DispatcherExtensions.ExecuteAllEvents();
        }
예제 #2
0
        private IDataSourceViewModel CreateViewModel(IDataSource dataSource)
        {
            if (dataSource == null)
            {
                throw new ArgumentNullException(nameof(dataSource));
            }

            IDataSourceViewModel viewModel;

            if (dataSource is IFileDataSource single)
            {
                viewModel = new FileDataSourceViewModel(single, _actionCenter, _settings);
            }
            else if (dataSource is IMergedDataSource merged)
            {
                viewModel = new MergedDataSourceViewModel(merged, _actionCenter, _settings);
            }
            else if (dataSource is IFolderDataSource folder)
            {
                viewModel = new FolderDataSourceViewModel(folder, _actionCenter, _settings);
            }
            else if (dataSource is ICustomDataSource custom)
            {
                viewModel = new CustomDataSourceViewModel(custom, _actionCenter, _settings);
            }
            else
            {
                throw new ArgumentException(string.Format("Unknown data source: {0} ({1})", dataSource, dataSource.GetType()));
            }

            viewModel.Remove += OnRemove;
            _allDataSourceViewModels.Add(viewModel);

            if (_settings.DataSources.SelectedItem == viewModel.DataSource.Id)
            {
                SelectedItem = viewModel;
            }

            return(viewModel);
        }