Console base WIP 2
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user