InkForge/app/InkForge.Desktop/ViewModels/Workspaces/WorkspaceViewModel.cs

56 lines
1.5 KiB
C#
Raw Normal View History

2024-02-26 18:08:18 +01:00
using InkForge.Desktop.Models;
2024-03-17 22:27:01 +01:00
using Microsoft.Extensions.DependencyInjection;
2024-02-26 18:08:18 +01:00
2024-03-17 22:27:01 +01:00
namespace InkForge.Desktop.ViewModels.Workspaces
2024-02-26 18:08:18 +01:00
{
2024-04-05 12:31:34 +02:00
public class WorkspaceViewModel
2024-03-17 22:27:01 +01:00
{
2024-04-05 12:31:34 +02:00
private readonly NoteStore _noteStore;
2024-03-17 22:27:01 +01:00
// private readonly ObservableAsPropertyHelper<string> _workspaceNameProperty;
2024-02-26 18:08:18 +01:00
2024-03-17 22:27:01 +01:00
// public string WorkspaceName => _workspaceNameProperty.Value;
2024-02-26 18:08:18 +01:00
2024-03-17 22:27:01 +01:00
// public ReactiveCommand<Unit, Unit> AddDocument { get; }
2024-02-26 18:08:18 +01:00
2024-04-05 12:31:34 +02:00
public WorkspaceViewModel(NoteStore noteStore)
{
_noteStore = noteStore;
}
2024-03-17 22:27:01 +01:00
// public WorkspacesViewModel(Workspace workspace)
// {
// _workspace = workspace;
// _workspaceNameProperty = this.WhenAnyValue(v => v._workspace.Name).ToProperty(this, nameof(WorkspaceName));
2024-02-26 18:08:18 +01:00
2024-03-17 22:27:01 +01:00
// AddDocument = ReactiveCommand.Create(OnAddDocument);
// }
2024-02-26 18:08:18 +01:00
2024-03-17 22:27:01 +01:00
// private void OnAddDocument()
// {
2024-02-26 18:08:18 +01:00
2024-03-17 22:27:01 +01:00
// }
}
public interface IWorkspaceViewModelFactory
{
WorkspaceViewModel Create(Workspace workspace);
}
namespace Internal
{
internal class WorkspaceViewModelFactory(IServiceProvider services) : IWorkspaceViewModelFactory
{
private static ObjectFactory<WorkspaceViewModel>? s_workspaceViewModelFactory;
public WorkspaceViewModel Create(Workspace workspace)
{
s_workspaceViewModelFactory ??= ActivatorUtilities.CreateFactory<WorkspaceViewModel>([typeof(Workspace)]);
return s_workspaceViewModelFactory(services, [workspace]);
}
WorkspaceViewModel IWorkspaceViewModelFactory.Create(Workspace workspace) => Create(workspace);
}
}
2024-02-26 18:08:18 +01:00
}