feat: 初始化NewLife Studio项目,完成基础框架与数据管理模块
何炳宏 authored at 2026-05-26 12:09:09
1.15 KiB
NewLife.Studio
using CommunityToolkit.Mvvm.ComponentModel;
using NewLife.Studio.Core.DTOs;
using NewLife.Studio.Data;
using NewLife.Studio.Store;
using NewLife.Log;

namespace NewLife.Studio.Modules.DataStudio.ViewModels;

/// <summary>数据管理主 ViewModel</summary>
public partial class DataStudioViewModel : ObservableObject
{
    public ConnectionListViewModel ConnectionList { get; }
    public ObjectTreeViewModel ObjectTree { get; }
    public SqlEditorViewModel SqlEditor { get; }

    [ObservableProperty]
    private IDbSession? _activeSession;

    public DataStudioViewModel(IStoreService storeService, IDataProvider dataProvider)
    {
        ConnectionList = new ConnectionListViewModel(storeService, dataProvider);
        ObjectTree = new ObjectTreeViewModel();
        SqlEditor = new SqlEditorViewModel(storeService);

        ConnectionList.ConnectionOpened += OnConnectionOpened;
    }

    private void OnConnectionOpened(object? sender, IDbSession session)
    {
        ActiveSession = session;
        ObjectTree.SetSession(session);
        SqlEditor.SetSession(session);
        XTrace.WriteLine($"DataStudio: Connection opened {session.SessionId}");
    }
}