improve ui

This commit is contained in:
2024-09-23 22:40:18 +02:00
parent 782965ce49
commit 3f620cd963
9 changed files with 95 additions and 43 deletions

View File

@ -8,10 +8,8 @@ using Splat;
namespace StarsAssistant.ViewModels;
public partial class BuColViewModel : ViewModelBase, IActivatableViewModel
public partial class BuColViewModel : ViewModelBase
{
public ViewModelActivator Activator { get; } = new ViewModelActivator();
public BuColViewModel()
{
this.WhenActivated((CompositeDisposable disposables) =>

View File

@ -1,5 +1,4 @@

using System.Reactive.Disposables;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using ReactiveUI;
using ReactiveUI.SourceGenerators;
@ -8,10 +7,8 @@ using StarsAssistant.Model;
namespace StarsAssistant.ViewModels;
public partial class MainWindowViewModel : ViewModelBase, IActivatableViewModel
public partial class MainWindowViewModel : ViewModelBase
{
public ViewModelActivator Activator { get; } = new ViewModelActivator();
[Reactive]
private string _dbPath;
@ -20,6 +17,8 @@ public partial class MainWindowViewModel : ViewModelBase, IActivatableViewModel
public MainWindowViewModel()
{
InitializeCommands();
using var db = Locator.Current.GetService<StarsDatabase>()!;
DbPath = Path.GetFullPath(db.DbPath);
@ -32,6 +31,15 @@ public partial class MainWindowViewModel : ViewModelBase, IActivatableViewModel
});
}
[ReactiveCommand]
private void New()
{
this.Log().Info("New button hit");
}
[ReactiveCommand]
private void Open()
{
this.Log().Info("Open button hit");
}
}

View File

@ -1,13 +1,44 @@
using System.Collections.ObjectModel;
using System.Reactive.Disposables;
using Microsoft.EntityFrameworkCore;
using ReactiveUI;
using StarsAssistant.Model;
using Splat;
namespace StarsAssistant.ViewModels;
public partial class PlanetViewModel(Planet planet) : ViewModelBase
public partial class PlanetViewModel : ViewModelBase
{
public static ObservableCollection<PlanetViewModel> LoadAll()
public PlanetViewModel(Planet planet)
{
Planet = planet;
this.WhenActivated((CompositeDisposable disposables) =>
{
// /* handle activation */
// Disposable
// .Create(() => { /* handle deactivation */ })
// .DisposeWith(disposables);
});
}
private readonly Planet Planet;
public string Name => Planet.Name;
public string Owner => Planet.OwnerId ?? String.Empty;
public int Value => Planet.Value ?? 0;
public int Population => Planet.Population ?? 0;
public int SurfaceIronium => Planet.SurfaceIronium ?? 0;
public int SurfaceBoranium => Planet.SurfaceBoranium ?? 0;
public int SurfaceGermanium => Planet.SurfaceGermanium ?? 0;
public static ObservableCollection<PlanetViewModel> LoadAll()
{
using var db = Locator.Current.GetService<StarsDatabase>()!;
var result = new ObservableCollection<PlanetViewModel>();
@ -18,20 +49,4 @@ public partial class PlanetViewModel(Planet planet) : ViewModelBase
}
return result;
}
private readonly Planet planet = planet;
public string Name => planet.Name;
public string Owner => planet.OwnerId ?? String.Empty;
public int Value => planet.Value ?? 0;
public int Population => planet.Population ?? 0;
public int SurfaceIronium => planet.SurfaceIronium ?? 0;
public int SurfaceBoranium => planet.SurfaceBoranium ?? 0;
public int SurfaceGermanium => planet.SurfaceGermanium ?? 0;
}

View File

@ -1,7 +1,9 @@
using ReactiveUI;
using Splat;
namespace StarsAssistant.ViewModels;
public class ViewModelBase : ReactiveObject
public class ViewModelBase : ReactiveObject, IEnableLogger, IActivatableViewModel
{
public ViewModelActivator Activator { get; } = new ViewModelActivator();
}