EventLoop V1

This commit is contained in:
2023-08-08 12:49:15 +02:00
parent 7b8764ac16
commit 52536b569d
21 changed files with 479 additions and 68 deletions

View File

@@ -1,7 +1,6 @@
using System.Collections.ObjectModel;
using System.Linq.Expressions;
using DeclarativeProperty;
using FileTime.App.Core.ViewModels;
using FileTime.ConsoleUI.App.Extensions;
using TerminalUI;
using TerminalUI.Controls;
using TerminalUI.Extensions;
@@ -11,23 +10,39 @@ namespace FileTime.ConsoleUI.App;
public class MainWindow
{
private readonly IConsoleAppState _consoleAppState;
private readonly IApplicationContext _applicationContext;
private const int ParentColumnWidth = 20;
public MainWindow(IConsoleAppState consoleAppState)
public MainWindow(IConsoleAppState consoleAppState, IApplicationContext applicationContext)
{
_consoleAppState = consoleAppState;
_applicationContext = applicationContext;
}
public void Initialize()
{
ListView<IAppState, IItemViewModel> selectedItemsView = new();
ListView<IAppState, IItemViewModel> selectedItemsView = new()
{
ApplicationContext = _applicationContext
};
selectedItemsView.DataContext = _consoleAppState;
selectedItemsView.ItemTemplate = item =>
{
var textBlock = item.CreateChild<TextBlock<IItemViewModel>>();
textBlock.Bind(
textBlock,
dc => dc == null ? string.Empty : dc.DisplayNameText,
tb => tb.Text
);
return textBlock;
};
selectedItemsView.Bind(
selectedItemsView,
appState => appState.SelectedTab.Map(t => t == null ? null : t.CurrentItems).Switch(),
v => v.ItemsSource);
selectedItemsView.Render();
selectedItemsView.RequestRerender();
}
}