You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zero/ZeroNetworkMonitor/MainWindow.xaml.cs

65 lines
1.9 KiB

using System;
using System.Collections.ObjectModel;
using System.Windows;
using ZeroLevel;
using ZeroLevel.Network;
namespace ZeroNetworkMonitor
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private ObservableCollection<string> _service_keys = new ObservableCollection<string>();
private IExchange _exchange;
private long _refresh_services_task = -1;
public ObservableCollection<string> Services
{
get { return _service_keys; }
}
public MainWindow()
{
InitializeComponent();
_exchange = Bootstrap.CreateExchange();
Injector.Default.Register<IExchange>(_exchange);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
_exchange.UseDiscovery(tbDiscovery.Text);
if (_refresh_services_task == -1)
{
_refresh_services_task = Sheduller.RemindEvery(TimeSpan.FromSeconds(5), () =>
{
Dispatcher.Invoke(() =>
{
var si = lbServices.SelectedItem;
_service_keys.Clear();
foreach (var s in _exchange.DiscoveryStorage.GetKeys())
{
_service_keys.Add(s);
};
lbServices.SelectedItem = si;
});
});
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
lbServices.ItemsSource = Services;
}
private void LbServices_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (lbServices.SelectedItem != null)
{
pService.UpdateView((string)lbServices.SelectedItem);
}
}
}
}

Powered by TurnKey Linux.