84 lines
2.3 KiB
C#
84 lines
2.3 KiB
C#
using System.ComponentModel;
|
|
using System.Windows;
|
|
using System.Windows.Threading;
|
|
|
|
namespace Zcbot.WindowsNode;
|
|
|
|
public partial class MainWindow : Window
|
|
{
|
|
private readonly DispatcherTimer jobRefreshTimer;
|
|
|
|
internal MainWindow(MainWindowViewModel viewModel)
|
|
{
|
|
InitializeComponent();
|
|
ViewModel = viewModel;
|
|
DataContext = viewModel;
|
|
ViewModel.PropertyChanged += ViewModel_OnPropertyChanged;
|
|
jobRefreshTimer = new DispatcherTimer(DispatcherPriority.Background, Dispatcher)
|
|
{
|
|
Interval = TimeSpan.FromSeconds(1),
|
|
};
|
|
jobRefreshTimer.Tick += (_, _) =>
|
|
{
|
|
if (IsVisible && ViewModel.IsJobsPage)
|
|
{
|
|
ViewModel.JobPage.Refresh();
|
|
}
|
|
};
|
|
jobRefreshTimer.Start();
|
|
}
|
|
|
|
internal MainWindowViewModel ViewModel { get; }
|
|
|
|
internal bool AllowClose { get; set; }
|
|
|
|
protected override void OnClosing(CancelEventArgs eventArgs)
|
|
{
|
|
if (!AllowClose)
|
|
{
|
|
eventArgs.Cancel = true;
|
|
Hide();
|
|
}
|
|
base.OnClosing(eventArgs);
|
|
}
|
|
|
|
protected override void OnClosed(EventArgs eventArgs)
|
|
{
|
|
jobRefreshTimer.Stop();
|
|
ViewModel.PropertyChanged -= ViewModel_OnPropertyChanged;
|
|
base.OnClosed(eventArgs);
|
|
}
|
|
|
|
internal void ShowAndActivate()
|
|
{
|
|
if (!IsVisible) Show();
|
|
if (WindowState == WindowState.Minimized) WindowState = WindowState.Normal;
|
|
Activate();
|
|
}
|
|
|
|
private void EnrollmentCodeBox_OnPasswordChanged(
|
|
object sender,
|
|
System.Windows.RoutedEventArgs eventArgs)
|
|
{
|
|
if (!string.Equals(
|
|
ViewModel.EnrollmentCode,
|
|
EnrollmentCodeBox.Password,
|
|
StringComparison.Ordinal))
|
|
{
|
|
ViewModel.EnrollmentCode = EnrollmentCodeBox.Password;
|
|
}
|
|
}
|
|
|
|
private void ViewModel_OnPropertyChanged(object? sender, PropertyChangedEventArgs eventArgs)
|
|
{
|
|
if (eventArgs.PropertyName == nameof(MainWindowViewModel.EnrollmentCode)
|
|
&& !string.Equals(
|
|
EnrollmentCodeBox.Password,
|
|
ViewModel.EnrollmentCode,
|
|
StringComparison.Ordinal))
|
|
{
|
|
EnrollmentCodeBox.Password = ViewModel.EnrollmentCode;
|
|
}
|
|
}
|
|
}
|