Command execution, CreateContainer command WIP
This commit is contained in:
@@ -22,6 +22,7 @@ public class ItemManipulationUserCommandHandlerService : UserCommandHandlerServi
|
||||
private readonly IInputInterface _inputInterface;
|
||||
private readonly ILogger<ItemManipulationUserCommandHandlerService> _logger;
|
||||
private readonly ITimelessContentProvider _timelessContentProvider;
|
||||
private readonly ICommandScheduler _commandScheduler;
|
||||
private readonly BindedCollection<FullName>? _markedItems;
|
||||
private PointInTime _currentPointInTime;
|
||||
|
||||
@@ -31,13 +32,15 @@ public class ItemManipulationUserCommandHandlerService : UserCommandHandlerServi
|
||||
IClipboardService clipboardService,
|
||||
IInputInterface inputInterface,
|
||||
ILogger<ItemManipulationUserCommandHandlerService> logger,
|
||||
ITimelessContentProvider timelessContentProvider) : base(appState, timelessContentProvider)
|
||||
ITimelessContentProvider timelessContentProvider,
|
||||
ICommandScheduler commandScheduler) : base(appState, timelessContentProvider)
|
||||
{
|
||||
_userCommandHandlerService = userCommandHandlerService;
|
||||
_clipboardService = clipboardService;
|
||||
_inputInterface = inputInterface;
|
||||
_logger = logger;
|
||||
_timelessContentProvider = timelessContentProvider;
|
||||
_commandScheduler = commandScheduler;
|
||||
_currentPointInTime = null!;
|
||||
|
||||
SaveSelectedTab(t => _selectedTab = t);
|
||||
@@ -128,5 +131,6 @@ public class ItemManipulationUserCommandHandlerService : UserCommandHandlerServi
|
||||
var newContainerName = containerNameInput.Value;
|
||||
|
||||
var command = new CreateContainerCommand();
|
||||
await _commandScheduler.AddCommand(command);
|
||||
}
|
||||
}
|
||||
@@ -67,7 +67,8 @@ public class NavigationUserCommandHandlerService : UserCommandHandlerServiceBase
|
||||
|
||||
private Task OpenSelected()
|
||||
{
|
||||
if (_currentSelectedItem is not IContainerViewModel containerViewModel || containerViewModel.Container is null) return Task.CompletedTask;
|
||||
if (_currentSelectedItem is not IContainerViewModel containerViewModel || containerViewModel.Container is null)
|
||||
return Task.CompletedTask;
|
||||
|
||||
_selectedTab?.Tab?.SetCurrentLocation(containerViewModel.Container);
|
||||
return Task.CompletedTask;
|
||||
@@ -75,7 +76,8 @@ public class NavigationUserCommandHandlerService : UserCommandHandlerServiceBase
|
||||
|
||||
private async Task GoUp()
|
||||
{
|
||||
if (_currentLocation?.Parent is not AbsolutePath parentPath || await parentPath.ResolveAsyncSafe() is not IContainer newContainer) return;
|
||||
if (_currentLocation?.Parent is not AbsolutePath parentPath ||
|
||||
await parentPath.ResolveAsyncSafe() is not IContainer newContainer) return;
|
||||
_selectedTab?.Tab?.SetCurrentLocation(newContainer);
|
||||
}
|
||||
|
||||
@@ -125,7 +127,8 @@ public class NavigationUserCommandHandlerService : UserCommandHandlerServiceBase
|
||||
}
|
||||
else if (tabViewModel == null)
|
||||
{
|
||||
var tab = _serviceProvider.GetInitableResolver<IContainer>(_currentLocation ?? _localContentProvider).GetRequiredService<ITab>();
|
||||
var tab = _serviceProvider.GetInitableResolver<IContainer>(_currentLocation ?? _localContentProvider)
|
||||
.GetRequiredService<ITab>();
|
||||
var newTabViewModel = _serviceProvider.GetInitableResolver(tab, number).GetRequiredService<ITabViewModel>();
|
||||
|
||||
_appState.AddTab(newTabViewModel);
|
||||
@@ -144,9 +147,18 @@ public class NavigationUserCommandHandlerService : UserCommandHandlerServiceBase
|
||||
|
||||
private Task CloseTab()
|
||||
{
|
||||
if (_appState.Tabs.Count < 2) return Task.CompletedTask;
|
||||
if (_appState.Tabs.Count < 2 || _selectedTab == null) return Task.CompletedTask;
|
||||
|
||||
_appState.RemoveTab(_selectedTab!);
|
||||
var tabToRemove = _selectedTab;
|
||||
_appState.RemoveTab(tabToRemove!);
|
||||
|
||||
try
|
||||
{
|
||||
tabToRemove.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user