mirror of
https://github.com/jwetzell/qController.git
synced 2026-08-11 02:13:55 +00:00
Begin work on QBrowserPage
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
using QSharp;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace qController.ViewModels
|
||||
{
|
||||
public class QBrowserViewModel : INotifyPropertyChanged
|
||||
{
|
||||
QBrowser browser;
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public ObservableCollection<QServerViewModel> ServersGrouped { get; set; }
|
||||
public QBrowserViewModel(QBrowser browser)
|
||||
{
|
||||
this.browser = browser;
|
||||
ServersGrouped = new ObservableCollection<QServerViewModel>();
|
||||
|
||||
this.browser.ServerFound += OnServerFound;
|
||||
}
|
||||
|
||||
private void OnServerFound(object source, QServerFoundArgs args)
|
||||
{
|
||||
ServersGrouped.Add(new QServerViewModel(args.server));
|
||||
|
||||
}
|
||||
|
||||
void OnPropertyChanged([CallerMemberName] string name = "")
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using qController.Pages;
|
||||
using QSharp;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace qController.ViewModels
|
||||
{
|
||||
public class QServerViewModel : ObservableCollection<QWorkspaceViewModel>
|
||||
{
|
||||
QServer server;
|
||||
public string name
|
||||
{
|
||||
get
|
||||
{
|
||||
return server.name;
|
||||
}
|
||||
set
|
||||
{
|
||||
server.name = value;
|
||||
}
|
||||
}
|
||||
|
||||
public QServerViewModel(QServer server)
|
||||
{
|
||||
this.server = server;
|
||||
name = this.server.name;
|
||||
foreach (var workspace in this.server.workspaces)
|
||||
{
|
||||
this.Add(new QWorkspaceViewModel(workspace));
|
||||
}
|
||||
this.server.ServerUpdated += OnServerUpdated;
|
||||
}
|
||||
|
||||
private void OnServerUpdated(object source, QServerUpdatedArgs args)
|
||||
{
|
||||
foreach (var workspace in this.server.workspaces)
|
||||
{
|
||||
QWorkspaceViewModel workspaceViewModel = new QWorkspaceViewModel(workspace);
|
||||
if (!Contains(workspaceViewModel))
|
||||
Add(workspaceViewModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
using qController.QItems;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using QSharp;
|
||||
namespace qController.ViewModels
|
||||
{
|
||||
public class QWorkspaceViewModel
|
||||
{
|
||||
public QWorkspace workspace;
|
||||
public QWorkspaceViewModel(QWorkspace workspace)
|
||||
{
|
||||
this.workspace = workspace;
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return workspace.name;
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasPasscode
|
||||
{
|
||||
get
|
||||
{
|
||||
return workspace.hasPasscode;
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user