Добавлен Studio
This commit is contained in:
116
Lattice.Studio/Controls/LatticeStudioWindow.xaml.cs
Normal file
116
Lattice.Studio/Controls/LatticeStudioWindow.xaml.cs
Normal file
@@ -0,0 +1,116 @@
|
||||
using Lattice.Core.Abstractions;
|
||||
using Lattice.Core.Models;
|
||||
using Lattice.Core.Services;
|
||||
using Microsoft.UI.Xaml;
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
|
||||
namespace Lattice.Studio.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Îêíî âåðõíåãî óðîâíÿ, ñîäåðæàùåå LatticeStudioShell.
|
||||
/// Îò íåãî íàñëåäóåòñÿ ðåàëüíîå ïðèëîæåíèå.
|
||||
/// </summary>
|
||||
public partial class LatticeStudioWindow : Window
|
||||
{
|
||||
/// <summary>
|
||||
/// Âíóòðåííèé âèçóàëüíûé Shell.
|
||||
/// </summary>
|
||||
public LatticeStudioShell Shell => ShellRoot;
|
||||
|
||||
public LatticeStudioWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
// Ñòàðòîâûé çàãîëîâîê
|
||||
Title = "Lattice IDE";
|
||||
Shell.Title = Title;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ïåðåîïðåäåëÿåì Title, ÷òîáû ñèíõðîíèçèðîâàòü åãî ñ Shell.
|
||||
/// </summary>
|
||||
public new string Title
|
||||
{
|
||||
get => base.Title;
|
||||
set
|
||||
{
|
||||
base.Title = value;
|
||||
if (ShellRoot is not null)
|
||||
{
|
||||
ShellRoot.Title = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// Ïðîêñèðóåì ñâîéñòâà Shell íàðóæó
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
public string Subtitle
|
||||
{
|
||||
get => Shell.Subtitle;
|
||||
set => Shell.Subtitle = value;
|
||||
}
|
||||
|
||||
public IconSource TitleBarIcon
|
||||
{
|
||||
get => Shell.TitleBarIcon;
|
||||
set => Shell.TitleBarIcon = value;
|
||||
}
|
||||
|
||||
public object MenuContent
|
||||
{
|
||||
get => Shell.MenuContent;
|
||||
set => Shell.MenuContent = value;
|
||||
}
|
||||
|
||||
public object StatusContent
|
||||
{
|
||||
get => Shell.StatusContent;
|
||||
set => Shell.StatusContent = value;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// Èíèöèàëèçàöèÿ ñåðâèñîâ Lattice.Core
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/// <summary>
|
||||
/// Åäèíàÿ òî÷êà èíèöèàëèçàöèè îêíà.
|
||||
/// Âûçûâàåòñÿ èç êîíñòðóêòîðà íàñëåäíèêà (MainWindow).
|
||||
/// </summary>
|
||||
public void Initialize(
|
||||
ILayoutService layoutService,
|
||||
IContextService contextService,
|
||||
IEnumerable<ActionDefinition> actions,
|
||||
INotificationService notificationService)
|
||||
{
|
||||
Shell.Initialize(layoutService, contextService, actions);
|
||||
Shell.InitializeNotifications(notificationService);
|
||||
Shell.SetupWindow(this);
|
||||
|
||||
OnShellInitialized();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Èíèöèàëèçèðóåò îêíî ñòàíäàðòíûìè ðåàëèçàöèÿìè ñåðâèñîâ Lattice.Core.
|
||||
/// Ïîäõîäèò äëÿ áûñòðûõ ïðîòîòèïîâ è ïðîñòûõ ïðèëîæåíèé.
|
||||
/// </summary>
|
||||
public void Initialize()
|
||||
{
|
||||
var layout = new LayoutService();
|
||||
var context = new ContextService();
|
||||
var notifications = new NotificationService();
|
||||
|
||||
// Ïóñòîé íàáîð êîìàíä ïî óìîë÷àíèþ
|
||||
var actions = Enumerable.Empty<ActionDefinition>();
|
||||
|
||||
Initialize(layout, context, actions, notifications);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Õóê äëÿ íàñëåäíèêîâ — âûçûâàåòñÿ ïîñëå ïîëíîé èíèöèàëèçàöèè Shell.
|
||||
/// </summary>
|
||||
protected virtual void OnShellInitialized()
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user