Console base WIP 2

This commit is contained in:
2023-08-07 17:52:47 +02:00
parent b9adbc8272
commit 9a63516aba
18 changed files with 193 additions and 79 deletions

View File

@@ -1,7 +1,9 @@
using DeclarativeProperty;
using System.Collections.ObjectModel;
using DeclarativeProperty;
using FileTime.App.Core.ViewModels;
using FileTime.ConsoleUI.App.Controls;
using FileTime.Core.Models;
using ObservableComputations;
using Terminal.Gui;
namespace FileTime.ConsoleUI.App;
@@ -17,12 +19,12 @@ public class MainWindow
_selectedItemsView = new() {X = 1, Y = 0, Width = Dim.Fill(), Height = Dim.Fill()};
_selectedItemsView.AddKeyBinding(Key.Space, Command.ToggleChecked);
_selectedItemsView.OpenSelectedItem += (e) =>
/*_selectedItemsView.OpenSelectedItem += (e) =>
{
if (e.Value is IItemViewModel {BaseItem: IContainer container}
&& consoleAppState.SelectedTab.Value?.Tab is { } tab)
tab.SetCurrentLocation(container);
};
};*/
}
public void Initialize()
@@ -32,6 +34,22 @@ public class MainWindow
.Map(t => t.CurrentItems)
.Switch();
var selectedItem = _consoleAppState.SelectedTab
.Map(t => t.CurrentSelectedItem)
.Switch();
DeclarativePropertyHelpers.CombineLatest(
selectedItem,
selectedsItems,
(selected, items) => Task.FromResult(items.IndexOf(selected)))
.Subscribe((index, _) =>
{
if (index == -1) return;
_selectedItemsView.SelectedItem = index;
_selectedItemsView.EnsureSelectedItemVisible();
_selectedItemsView.SetNeedsDisplay();
});
var renderer = new ItemRenderer(selectedsItems, _selectedItemsView);
_selectedItemsView.Source = renderer;
}