using System.Collections.ObjectModel; namespace CommanderApp.Services; public class MockPanelManager : IPanelManager { public event EventHandler StateChanged; public bool IsLeftPanelActive { get; set; } = true; public FileSystemItem SelectedItem { get; set; } public string ActivePanelPath { get; set; } = "/mock/path"; public string LeftPanelPath { get; set; } = "/left/path"; public string RightPanelPath { get; set; } = "/right/path"; public int LeftSelectedIndex { get; set; } = 0; public int RightSelectedIndex { get; set; } = -1; public ObservableCollection LeftItems { get; } = new(); public ObservableCollection RightItems { get; } = new(); public void SwitchToLeftPanel() => IsLeftPanelActive = true; public void SwitchToRightPanel() => IsLeftPanelActive = false; public void MoveSelection(int direction) { if (IsLeftPanelActive) LeftSelectedIndex = Math.Max(0, LeftSelectedIndex + direction); else RightSelectedIndex = Math.Max(0, RightSelectedIndex + direction); } public void SetSelection(int index, bool isLeftPanel) { if (isLeftPanel) LeftSelectedIndex = index; else RightSelectedIndex = index; } public void UpdatePanelPaths(string leftPath, string rightPath) { LeftPanelPath = leftPath; RightPanelPath = rightPath; } public void ClearSelection() { LeftSelectedIndex = -1; RightSelectedIndex = -1; } }