64 lines
1.4 KiB
C#
64 lines
1.4 KiB
C#
using Crysome.Server.Model;
|
|||
|
|
using Crysome.Server.Network;
|
||
|
|
|
||
|
|
namespace Crysome.Server.ViewModel;
|
||
|
|
|
||
|
|
public class MainViewModel : ViewModelBase
|
||
|
|
{
|
||
|
|
private ViewModelBase _currentPageViewModel;
|
||
|
|
|
||
|
|
public ViewModelBase CurrentPageViewModel
|
||
|
|
{
|
||
|
|
get
|
||
|
|
{
|
||
|
|
return _currentPageViewModel;
|
||
|
|
}
|
||
|
|
set
|
||
|
|
{
|
||
|
|
_currentPageViewModel = value;
|
||
|
|
OnPropertyChanged("CurrentPageViewModel");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public ManageClientsViewModel ClientsVM { get; private set; }
|
||
|
|
|
||
|
|
public MainViewModel()
|
||
|
|
{
|
||
|
|
ClientsVM = new ManageClientsViewModel(this);
|
||
|
|
CurrentPageViewModel = ClientsVM;
|
||
|
|
}
|
||
|
|
|
||
|
|
public void GoToClients()
|
||
|
|
{
|
||
|
|
if (CurrentPageViewModel is FileExplorerViewModel fileExplorerViewModel)
|
||
|
|
{
|
||
|
|
fileExplorerViewModel.Dispose();
|
||
|
|
}
|
||
|
|
CurrentPageViewModel = ClientsVM;
|
||
|
|
}
|
||
|
|
|
||
|
|
public void GoToBuilder()
|
||
|
|
{
|
||
|
|
CurrentPageViewModel = new BuilderViewModel(this);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void GoToFileExplorer(CrysomeServer server, ClientInfo client)
|
||
|
|
{
|
||
|
|
if (CurrentPageViewModel is FileExplorerViewModel fileExplorerViewModel)
|
||
|
|
{
|
||
|
|
fileExplorerViewModel.Dispose();
|
||
|
|
}
|
||
|
|
CurrentPageViewModel = new FileExplorerViewModel(server, client, this);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void GoToSettings()
|
||
|
|
{
|
||
|
|
CurrentPageViewModel = new SettingsViewModel(this, ClientsVM.Store);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void GoToPlugins()
|
||
|
|
{
|
||
|
|
CurrentPageViewModel = new PluginManagerViewModel(this, ClientsVM.Store);
|
||
|
|
}
|
||
|
|
}
|