New reactive core WIP

This commit is contained in:
2023-07-21 22:15:48 +02:00
parent 342fc0d047
commit b61c204e49
61 changed files with 1605 additions and 413 deletions

View File

@@ -0,0 +1,9 @@
namespace FileTime.App.Core.Services;
public interface IRefreshSmoothnessCalculator
{
TimeSpan RefreshDelay { get; }
void RegisterChange();
void RegisterChange(DateTime changeTime);
void RecalculateSmoothness();
}

View File

@@ -1,3 +1,4 @@
using DeclarativeProperty;
using FileTime.App.Core.Models;
using FileTime.App.Core.Models.Enums;
using FileTime.Core.Models;
@@ -10,9 +11,9 @@ public interface IItemViewModel : IInitable<IItem, ITabViewModel, ItemViewModelT
IItem? BaseItem { get; set; }
IObservable<IReadOnlyList<ItemNamePart>>? DisplayName { get; set; }
string? DisplayNameText { get; set; }
IObservable<bool>? IsSelected { get; set; }
IDeclarativeProperty<bool> IsSelected { get; set; }
IObservable<bool>? IsMarked { get; set; }
IObservable<bool> IsAlternative { get; }
IDeclarativeProperty<bool> IsAlternative { get; }
IObservable<ItemViewMode> ViewMode { get; set; }
DateTime? CreatedAt { get; set; }
string? Attributes { get; set; }

View File

@@ -1,4 +1,6 @@
using System.Collections.ObjectModel;
using DeclarativeProperty;
using DynamicData;
using FileTime.Core.Models;
using FileTime.Core.Services;
@@ -11,19 +13,13 @@ public interface ITabViewModel : IInitable<ITab, int>, IDisposable
ITab? Tab { get; }
int TabNumber { get; }
IObservable<bool> IsSelected { get; }
IObservable<IContainer?> CurrentLocation { get; }
IObservable<IItemViewModel?> CurrentSelectedItem { get; }
IObservable<IObservable<IChangeSet<IItemViewModel, string>>?> CurrentItems { get; }
IDeclarativeProperty<IContainer?> CurrentLocation { get; }
IDeclarativeProperty<IItemViewModel?> CurrentSelectedItem { get; }
IDeclarativeProperty<IContainerViewModel?> CurrentSelectedItemAsContainer { get; }
IDeclarativeProperty<ObservableCollection<IItemViewModel>?> CurrentItems { get; }
IObservable<IChangeSet<FullName>> MarkedItems { get; }
IObservable<IObservable<IChangeSet<IItemViewModel, string>>?> SelectedsChildren { get; }
IObservable<IObservable<IChangeSet<IItemViewModel, string>>?> ParentsChildren { get; }
BindedCollection<IItemViewModel, string>? CurrentItemsCollection { get; }
BindedCollection<IItemViewModel, string>? SelectedsChildrenCollection { get; }
BindedCollection<IItemViewModel, string>? ParentsChildrenCollection { get; }
IObservable<IReadOnlyCollection<IItemViewModel>?> CurrentItemsCollectionObservable { get; }
IObservable<IReadOnlyCollection<IItemViewModel>?> ParentsChildrenCollectionObservable { get; }
IObservable<IReadOnlyCollection<IItemViewModel>?> SelectedsChildrenCollectionObservable { get; }
IContainer? CachedCurrentLocation { get; }
IDeclarativeProperty<ObservableCollection<IItemViewModel>> SelectedsChildren { get; }
IDeclarativeProperty<ObservableCollection<IItemViewModel>> ParentsChildren { get; }
void ClearMarkedItems();
void RemoveMarkedItem(FullName fullName);