コード例 #1
0
ファイル: SelectionMonitor.cs プロジェクト: ycccq/TailBlazer
        public SelectionMonitor(ILogger logger, ISchedulerProvider schedulerProvider)
        {
            _logger            = logger;
            _schedulerProvider = schedulerProvider;
            Selected           = _selected.AsObservableList();

            _cleanUp = new CompositeDisposable(
                _selected,
                _recentlyRemovedFromVisibleRange,
                _controlSubscriber,
                Selected,
                //keep recent items only up to a certain number
                _recentlyRemovedFromVisibleRange.LimitSizeTo(100).Subscribe());
        }
コード例 #2
0
        public IconProvider(IDefaultIconSelector defaultIconSelector)
        {
            DefaultIconSelector = defaultIconSelector;

            Icons = _icons.AsObservableList();

            var icons = Enum.GetNames(typeof(PackIconKind))
                        .Select(str =>
            {
                var value = (PackIconKind)Enum.Parse(typeof(PackIconKind), str);
                return(new IconDescription(value, str));
            });

            _icons.AddRange(icons);

            _cleanUp = new CompositeDisposable(Icons, _icons);
        }
コード例 #3
0
        public LogEntryService(ILogger logger)
        {
            _logger = logger;
            Items   = _source.AsObservableList();

            var loader = ReactiveLogAppender.LogEntryObservable
                         .Buffer(TimeSpan.FromMilliseconds(250))
                         .Synchronize(_locker)
                         .Subscribe(_source.AddRange);

            //limit size of cache to prevent too many items being created
            var sizeLimiter = _source.LimitSizeTo(10000).Subscribe();

            // alternatively could expire by time
            //var timeExpirer = _source.ExpireAfter(le => TimeSpan.FromSeconds(le.Level == LogLevel.Debug ? 5 : 60), TimeSpan.FromSeconds(5), TaskPoolScheduler.Default)
            //                            .Subscribe(removed => logger.Debug("{0} log items have been automatically removed", removed.Count()));

            _disposer = new CompositeDisposable(sizeLimiter, _source, loader);
            logger.Info("Log cache has been constructed");
        }
コード例 #4
0
        public SelectionMonitor(ILogger logger)
        {
            _logger  = logger;
            Selected = _selected.AsObservableList();

            var selectionLogger = _selected.Connect()
                                  .ToCollection()
                                  .Subscribe(collection =>
            {
                logger.Debug($"{collection.Count} selected: {collection.Select(l=>l.Text).ToDelimited(Environment.NewLine)} ");
            });

            _cleanUp = new CompositeDisposable(
                _selected,
                _recentlyRemovedFromVisibleRange,
                _controlSubscriber,
                Selected,
                selectionLogger,
                //keep recent items only up to a certain number
                _recentlyRemovedFromVisibleRange.LimitSizeTo(100).Subscribe());
        }
コード例 #5
0
 public VisibleRowsAccessor()
 {
     _visibleRows = _visibleRowsSource.AsObservableList();
 }