diff --git a/Lattice.Core/README.md b/Lattice.Core/README.md index 1d16b23..65fe142 100644 --- a/Lattice.Core/README.md +++ b/Lattice.Core/README.md @@ -20,8 +20,10 @@ * `Abstractions/` — Интерфейсы для расширения системы. * `Models/` — Базовые сущности дерева (узлы, направления, ориентация). -* `Engine/` — `LayoutManager`, реализующий логику трансформации дерева. -* `Context/` — Сервисы управления активными состояниями и командами. +* `Services/` - Сервисы управления интерфейсом + * `ContextService` - Сервис управления контекстом приложения. + * `LayoutService` - Сервис управления макетом. + * `NotificationService` - Сервис уведомлений. * `Persistence/` — Логика сохранения макета в JSON. ## 🛠 Использование @@ -29,20 +31,20 @@ ### Создание базового макета ```csharp -var layoutManager = new LayoutManager(); +var layoutService = new LayoutService(); // Создаем контентные узлы var explorer = new ContentNode(new MyToolComponent("Solution Explorer", "Explorer")); var editor = new ContentNode(new MyDocumentComponent("Main.cs", "CodeEditor")); // Устанавливаем редактор как корень -layoutManager.SetRoot(editor); +layoutService.SetRoot(editor); // Прикрепляем проводник слева от редактора -layoutManager.Dock(explorer, editor, DockDirection.Left); +layoutService.Dock(explorer, editor, DockDirection.Left); //Переключение контекста -var contextService = new ContextManager(); +var contextService = new ContextService(); // Вызывается при активации вкладки в UI contextService.SetContext("CodeEditor"); diff --git a/Lattice.Studio/Controls/LatticeStudioShell.xaml.cs b/Lattice.Studio/Controls/LatticeStudioShell.xaml.cs index 8b8464a..40c2064 100644 --- a/Lattice.Studio/Controls/LatticeStudioShell.xaml.cs +++ b/Lattice.Studio/Controls/LatticeStudioShell.xaml.cs @@ -14,7 +14,7 @@ namespace Lattice.Studio.Controls; /// public sealed partial class LatticeStudioShell : UserControl { - private ILayoutService? _layoutManager; + private ILayoutService? _layoutService; private IContextService? _contextService; private IEnumerable? _allActions; @@ -50,17 +50,17 @@ public sealed partial class LatticeStudioShell : UserControl /// /// Studio Lattice.Core. /// - /// ILayoutService . + /// ILayoutService . /// IContextService . /// (ActionDefinition). - public void Initialize(ILayoutService layoutManager, IContextService contextService, IEnumerable actions) + public void Initialize(ILayoutService layoutService, IContextService contextService, IEnumerable actions) { - _layoutManager = layoutManager; + _layoutService = layoutService; _contextService = contextService; _allActions = actions; // - MainDockHost.Manager = _layoutManager; + MainDockHost.Service = _layoutService; // ( Lattice.UI) _contextService.ContextChanged += (s, newContext) => diff --git a/Lattice.UI/Controls/LatticeDockHost.cs b/Lattice.UI/Controls/LatticeDockHost.cs index 5d5c4f8..cb9fabb 100644 --- a/Lattice.UI/Controls/LatticeDockHost.cs +++ b/Lattice.UI/Controls/LatticeDockHost.cs @@ -14,26 +14,26 @@ public class LatticeDockHost : Control public DockAnchorOverlay? AnchorOverlay => GetTemplateChild("AnchorOverlay") as DockAnchorOverlay; /// - /// Определяет свойство зависимости для LayoutManager. + /// Определяет свойство зависимости для LayoutService. /// - public static readonly DependencyProperty ManagerProperty = - DependencyProperty.Register(nameof(Manager), typeof(ILayoutService), typeof(LatticeDockHost), new PropertyMetadata(null, OnManagerChanged)); + public static readonly DependencyProperty ServiceProperty = + DependencyProperty.Register(nameof(Service), typeof(ILayoutService), typeof(LatticeDockHost), new PropertyMetadata(null, OnServiceChanged)); /// /// Сервис управления макетом, привязанный к данному хосту. /// - public ILayoutService? Manager + public ILayoutService? Service { - get => (ILayoutService?)GetValue(ManagerProperty); - set => SetValue(ManagerProperty, value); + get => (ILayoutService?)GetValue(ServiceProperty); + set => SetValue(ServiceProperty, value); } /// /// Указывает конкретный узел, который должен стать корнем для этого хоста. - /// Если null — используется Manager.Root. + /// Если null — используется Service.Root. /// public static readonly DependencyProperty RootNodeProperty = - DependencyProperty.Register(nameof(RootNode), typeof(LayoutNode), typeof(LatticeDockHost), new PropertyMetadata(null, OnManagerChanged)); + DependencyProperty.Register(nameof(RootNode), typeof(LayoutNode), typeof(LatticeDockHost), new PropertyMetadata(null, OnServiceChanged)); public LayoutNode? RootNode { @@ -46,7 +46,7 @@ public class LatticeDockHost : Control this.DefaultStyleKey = typeof(LatticeDockHost); } - private static void OnManagerChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + private static void OnServiceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is LatticeDockHost host) { @@ -86,8 +86,8 @@ public class LatticeDockHost : Control { if (this.GetTemplateChild("LayoutPresenter") is ContentPresenter presenter) { - // Приоритет: сначала проверяем локальный RootNode, затем глобальный Manager.Root - var effectiveRoot = RootNode ?? Manager?.Root; + // Приоритет: сначала проверяем локальный RootNode, затем глобальный Service.Root + var effectiveRoot = RootNode ?? Service?.Root; if (effectiveRoot != null) { diff --git a/Lattice.UI/Controls/LatticeFloatingWindow.cs b/Lattice.UI/Controls/LatticeFloatingWindow.cs index 932768c..193afb8 100644 --- a/Lattice.UI/Controls/LatticeFloatingWindow.cs +++ b/Lattice.UI/Controls/LatticeFloatingWindow.cs @@ -10,15 +10,15 @@ namespace Lattice.UI.Controls; /// public class LatticeFloatingWindowHost { - private readonly ILayoutService _manager; + private readonly ILayoutService _service; /// /// Инициализирует хост плавающих окон. /// - /// Общий менеджер макета приложения. - public LatticeFloatingWindowHost(ILayoutService manager) + /// Общий менеджер макета приложения. + public LatticeFloatingWindowHost(ILayoutService service) { - _manager = manager; + _service = service; } /// @@ -33,7 +33,7 @@ public class LatticeFloatingWindowHost // Создаем и настраиваем хост докинга для нового окна var host = new LatticeDockHost { - Manager = _manager, // Передаем общий менеджер, чтобы дерево было синхронизировано + Service = _service, // Передаем общий менеджер, чтобы дерево было синхронизировано RootNode = node, // Указываем хосту отображать ТОЛЬКО этот узел }; diff --git a/Lattice.UI/Controls/LatticeSplitter.cs b/Lattice.UI/Controls/LatticeSplitter.cs index 4057ad6..6630af2 100644 --- a/Lattice.UI/Controls/LatticeSplitter.cs +++ b/Lattice.UI/Controls/LatticeSplitter.cs @@ -89,8 +89,8 @@ public class LatticeSplitter : Control { // Вызываем метод перерисовки (в Core это может быть событие LayoutUpdated) // В нашем случае это заставит LayoutPanel пересчитать Column/Row Definitions - host.Manager?.Dock(null!, null!, DockDirection.Center); // Фиктивный вызов для обновления - // Или если есть прямой доступ: host.Manager.InvokeLayoutUpdated(); + host.Service?.Dock(null!, null!, DockDirection.Center); // Фиктивный вызов для обновления + // Или если есть прямой доступ: host.Service.InvokeLayoutUpdated(); break; } parent = VisualTreeHelper.GetParent(parent); diff --git a/Lattice.UI/DragDrop/DockTabHandler.cs b/Lattice.UI/DragDrop/DockTabHandler.cs index 3a098b6..b123d73 100644 --- a/Lattice.UI/DragDrop/DockTabHandler.cs +++ b/Lattice.UI/DragDrop/DockTabHandler.cs @@ -125,10 +125,10 @@ public class DockTabHandler /// private void CompleteDocking() { - if (_sourceNode != null && _targetNode != null && _host.Manager != null) + if (_sourceNode != null && _targetNode != null && _host.Service != null) { // Вызываем логику перестроения дерева в Lattice.Core - _host.Manager.Dock(_sourceNode, _targetNode, _currentSide); + _host.Service.Dock(_sourceNode, _targetNode, _currentSide); } // Очистка UI diff --git a/Lattice.UI/Primitives/LayoutPanel.cs b/Lattice.UI/Primitives/LayoutPanel.cs index 91a8901..1a963eb 100644 --- a/Lattice.UI/Primitives/LayoutPanel.cs +++ b/Lattice.UI/Primitives/LayoutPanel.cs @@ -113,7 +113,7 @@ public class LayoutPanel : Grid pane.CloseClick += (s, e) => { - _host.Manager?.Remove(node); + _host.Service?.Remove(node); }; this.Children.Add(pane); diff --git a/Lattice.UI/README.md b/Lattice.UI/README.md index d121cc2..7dfc522 100644 --- a/Lattice.UI/README.md +++ b/Lattice.UI/README.md @@ -41,7 +41,7 @@ xmlns:lattice="using:Lattice.UI.Controls"> + Service="{x:Bind ViewModel.LayoutService}" /> ```