Windows: Add cursor waiting

This commit is contained in:
2023-09-06 18:04:13 +02:00
parent 540236f878
commit 7086a72fab
2 changed files with 40 additions and 12 deletions

View File

@ -102,15 +102,19 @@ namespace Elwig.Windows {
private async void Menu_Print_ShowDeliveryNote_Click(object sender, RoutedEventArgs evt) { private async void Menu_Print_ShowDeliveryNote_Click(object sender, RoutedEventArgs evt) {
if (DeliveryList.SelectedItem is not Delivery d) return; if (DeliveryList.SelectedItem is not Delivery d) return;
Mouse.OverrideCursor = Cursors.Wait;
using var doc = new DeliveryNote(d, Context); using var doc = new DeliveryNote(d, Context);
await doc.Generate(); await doc.Generate();
doc.Show(); doc.Show();
Mouse.OverrideCursor = null;
} }
private async void Menu_Print_PrintDeliveryNote_Click(object sender, RoutedEventArgs evt) { private async void Menu_Print_PrintDeliveryNote_Click(object sender, RoutedEventArgs evt) {
if (DeliveryList.SelectedItem is not Delivery d) return; if (DeliveryList.SelectedItem is not Delivery d) return;
Mouse.OverrideCursor = Cursors.Wait;
using var doc = new DeliveryNote(d, Context); using var doc = new DeliveryNote(d, Context);
await doc.Generate(); await doc.Generate();
Mouse.OverrideCursor = null;
await doc.Print(); await doc.Print();
} }
@ -702,26 +706,36 @@ namespace Elwig.Windows {
} }
private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) { private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
FinishButton.IsEnabled = false;
NewDeliveryPartButton.IsEnabled = false;
NewDeliveryPartButton.Cursor = Cursors.Wait;
DeliveryPartList.IsEnabled = false; DeliveryPartList.IsEnabled = false;
var p = await UpdateDeliveryPart(DeliveryList.SelectedItem as Delivery, DeliveryPartList.SelectedItem as DeliveryPart); var p = await UpdateDeliveryPart(DeliveryList.SelectedItem as Delivery, DeliveryPartList.SelectedItem as DeliveryPart);
await RefreshDeliveryList(); await RefreshDeliveryList();
await RefreshDeliveryParts(); await RefreshDeliveryParts();
NewDeliveryPartButton.Cursor = null;
DeliveryList.SelectedItem = p?.Delivery; DeliveryList.SelectedItem = p?.Delivery;
DeliveryPartList.SelectedItem = null; DeliveryPartList.SelectedItem = null;
InitialInputs(); InitialInputs();
} }
private async void FinishButton_Click(object sender, RoutedEventArgs evt) { private async void FinishButton_Click(object sender, RoutedEventArgs evt) {
FinishButton.IsEnabled = false;
NewDeliveryPartButton.IsEnabled = false;
FinishButton.Cursor = Cursors.Wait;
DeliveryPartList.IsEnabled = false; DeliveryPartList.IsEnabled = false;
var p = await UpdateDeliveryPart(DeliveryList.SelectedItem as Delivery, DeliveryPartList.SelectedItem as DeliveryPart); var p = await UpdateDeliveryPart(DeliveryList.SelectedItem as Delivery, DeliveryPartList.SelectedItem as DeliveryPart);
await RefreshDeliveryList(); await RefreshDeliveryList();
await RefreshDeliveryParts(); await RefreshDeliveryParts();
if (p?.Delivery != null) { if (p?.Delivery != null) {
Mouse.OverrideCursor = Cursors.Wait;
using var doc = new DeliveryNote(p.Delivery, Context); using var doc = new DeliveryNote(p.Delivery, Context);
await doc.Generate(); await doc.Generate();
Mouse.OverrideCursor = Cursors.Wait;
doc.Show(); doc.Show();
//await doc.Print(2); //await doc.Print(2);
} }
FinishButton.Cursor = null;
DeliveryList.SelectedItem = null; DeliveryList.SelectedItem = null;
InitInputs(); InitInputs();
} }
@ -769,6 +783,7 @@ namespace Elwig.Windows {
try { try {
if (res == null || res <= 0) if (res == null || res <= 0)
return; return;
Mouse.OverrideCursor = Cursors.Wait;
ClearOriginalValues(); ClearOriginalValues();
if (res >= p.Weight) { if (res >= p.Weight) {
ControlUtils.SelectComboBoxItem(WineQualityLevelInput, q => (q as WineQualLevel)?.QualId, "WEI"); ControlUtils.SelectComboBoxItem(WineQualityLevelInput, q => (q as WineQualLevel)?.QualId, "WEI");
@ -797,6 +812,7 @@ namespace Elwig.Windows {
} }
await Context.SaveChangesAsync(); await Context.SaveChangesAsync();
await RefreshDeliveryParts(); await RefreshDeliveryParts();
Mouse.OverrideCursor = null;
FinishInputFilling(); FinishInputFilling();
} catch (Exception exc) { } catch (Exception exc) {
if (entry1 != null) { if (entry1 != null) {
@ -849,21 +865,28 @@ namespace Elwig.Windows {
$"Soll die Lieferung {d.LsNr} ({d.Member.AdministrativeName}, MgNr. {d.Member.MgNr}) wirklich unwiderruflich gelöscht werden?", $"Soll die Lieferung {d.LsNr} ({d.Member.AdministrativeName}, MgNr. {d.Member.MgNr}) wirklich unwiderruflich gelöscht werden?",
"Lieferung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No); "Lieferung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r == MessageBoxResult.Yes) { if (r == MessageBoxResult.Yes) {
Mouse.OverrideCursor = Cursors.Wait;
Context.Remove(d); Context.Remove(d);
await Context.SaveChangesAsync(); await Context.SaveChangesAsync();
await RefreshDeliveryList(); await RefreshDeliveryList();
await RefreshDeliveryParts(); await RefreshDeliveryParts();
Mouse.OverrideCursor = null;
} }
} }
private async void SaveButton_Click(object sender, RoutedEventArgs evt) { private async void SaveButton_Click(object sender, RoutedEventArgs evt) {
DeliveryPart p = await UpdateDeliveryPart(DeliveryList.SelectedItem as Delivery, DeliveryPartList.SelectedItem as DeliveryPart); SaveButton.IsEnabled = false;
SaveButton.Cursor = Cursors.Wait;
IsEditing = false; IsEditing = false;
IsCreating = false; IsCreating = false;
DeliveryList.IsEnabled = true; DeliveryList.IsEnabled = true;
DeliveryPartList.IsEnabled = true; DeliveryPartList.IsEnabled = true;
DeliveryPart p = await UpdateDeliveryPart(DeliveryList.SelectedItem as Delivery, DeliveryPartList.SelectedItem as DeliveryPart);
SaveButton.Cursor = null;
HideSaveResetCancelButtons(); HideSaveResetCancelButtons();
ShowNewEditDeleteButtons(); ShowNewEditDeleteButtons();
LockInputs(); LockInputs();
@ -925,12 +948,12 @@ namespace Elwig.Windows {
.ToListAsync(); .ToListAsync();
var res = Utils.ShowDeliveryExtractionDialog($"{delivery.LsNr}/{p.DPNr}", delivery.Member.AdministrativeName, count == 1, lsnrs); var res = Utils.ShowDeliveryExtractionDialog($"{delivery.LsNr}/{p.DPNr}", delivery.Member.AdministrativeName, count == 1, lsnrs);
if (res == null) return;
EntityEntry<Delivery>? entry = null; EntityEntry<Delivery>? entry = null;
try { try {
Delivery? d = null; Delivery? d = null;
if (res == null) { Mouse.OverrideCursor = Cursors.Wait;
return; if (res == "new") {
} else if (res == "new") {
d = Context.CreateProxy<Delivery>(); d = Context.CreateProxy<Delivery>();
d.Date = delivery.Date; d.Date = delivery.Date;
d.Time = delivery.Time; d.Time = delivery.Time;
@ -958,6 +981,7 @@ namespace Elwig.Windows {
await Context.Entry(p).ReloadAsync(); await Context.Entry(p).ReloadAsync();
await Context.Entry(delivery).ReloadAsync(); await Context.Entry(delivery).ReloadAsync();
Mouse.OverrideCursor = null;
await RefreshDeliveryList(); await RefreshDeliveryList();
DeliveryList.SelectedItem = d; DeliveryList.SelectedItem = d;
} catch (Exception exc) { } catch (Exception exc) {
@ -979,9 +1003,11 @@ namespace Elwig.Windows {
$"Soll die Teillieferung Nr. {p.DPNr} wirklich unwiderruflich gelöscht werden?", $"Soll die Teillieferung Nr. {p.DPNr} wirklich unwiderruflich gelöscht werden?",
"Lieferung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No); "Lieferung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r == MessageBoxResult.Yes) { if (r == MessageBoxResult.Yes) {
Mouse.OverrideCursor = Cursors.Wait;
Context.Remove(p); Context.Remove(p);
await Context.SaveChangesAsync(); await Context.SaveChangesAsync();
await RefreshDeliveryParts(); await RefreshDeliveryParts();
Mouse.OverrideCursor = null;
} }
} }

View File

@ -1,7 +1,9 @@
using System.Linq; using System.Linq;
using System.Windows; using System.Windows;
using System.Windows.Input;
using Elwig.Documents; using Elwig.Documents;
using Elwig.Helpers; using Elwig.Helpers;
using Microsoft.EntityFrameworkCore;
namespace Elwig.Windows { namespace Elwig.Windows {
public partial class MainWindow : Window { public partial class MainWindow : Window {
@ -38,13 +40,13 @@ namespace Elwig.Windows {
// TODO // TODO
} }
private void PdfButton_Click(object sender, RoutedEventArgs evt) { private async void PdfButton_Click(object sender, RoutedEventArgs evt) {
Utils.RunBackground("PDF Generation", async () => { Mouse.OverrideCursor = Cursors.Wait;
using var ctx = new AppDbContext(); using var ctx = new AppDbContext();
using var doc = new DeliveryNote(ctx.Deliveries.OrderBy(d => d.Parts.Count).ThenBy(d => d.Year).ThenBy(d => d.DId).Last(), ctx); using var doc = new DeliveryNote(await ctx.Deliveries.OrderBy(d => d.Parts.Count).ThenBy(d => d.Year).ThenBy(d => d.DId).LastAsync(), ctx);
await doc.Generate(); await doc.Generate();
doc.Show(); doc.Show();
}); Mouse.OverrideCursor = null;
} }
private void TestWindowButton_Click(object sender, RoutedEventArgs evt) { private void TestWindowButton_Click(object sender, RoutedEventArgs evt) {