예제 #1
0
 public StyleBuilder(IColorIndexer ci, IImageIndexer ii)
 {
     this.ci = ci;
     this.ii = ii;
     sbPen   = new PenStyleBuilder(this, "p");
     sbPen2  = new PenStyleBuilder(this, "sp");
     sbBrush = new BrushStyleBuilder(this, "b");
     sbImage = new ImageStyleBuilder(this, "i");
     sbText  = new TextStyleBuilder(this);
     sbExt   = new ExtStyleBuilder(this);
 }
예제 #2
0
        public FilesManager(IListManager listManager, IEventSystem eventSystem, IImageIndexer imageIndexer)
            : base(listManager, eventSystem)
        {
            ReactOn <PrepareLoadEvent>(_ => Filter = string.Empty);
            ReactOn <DeleteEvent>(c =>
            {
                try
                {
                    imageIndexer
                    .GetEntity(c.Index)
                    .IfHasValue(ic =>
                    {
                        File.Delete(ic.FilePath);
                        imageIndexer.Remove(ic.Index);
                    });
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            });

            var imageSource = listManager.GetList <ImageComponent>();

            _filter = Track(new ReactiveProperty <SearchQuery>(initialValue: SearchQuery.Empty), nameof(Filter));

            var filter = _filter.Select(sq => new Func <ImageComponent, bool>(sq.FilterAction));

            DisposeThis(imageSource
                        .Connect()
                        .Filter(filter)
                        .ObserveOnDispatcher()
                        .Bind(Filtered)
                        .Subscribe());

            DisposeThis(imageSource
                        .Connect()
                        .AutoRefreshOnObservable(ic => ic.IsFavorite)
                        .Where(c => c.IsFavorite.Value)
                        .ObserveOnDispatcher()
                        .Bind(Favorites)
                        .Subscribe());
        }
예제 #3
0
 public StyleBuilder(IColorIndexer ci, IImageIndexer ii)
 {
     this.ci = ci;
     this.ii = ii;
 }