[#31] AdministrationWindow: Add shortcuts

This commit is contained in:
2024-03-24 21:53:18 +01:00
parent 555ce228d4
commit dd408ca40e
9 changed files with 279 additions and 49 deletions

View File

@ -11,6 +11,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Threading;
using Xceed.Wpf.Toolkit;
using System.Windows.Input;
namespace Elwig.Windows {
public abstract class AdministrationWindow : ContextWindow {
@ -48,7 +49,18 @@ namespace Elwig.Windows {
private readonly Dictionary<Control, int?> OriginalValues;
private readonly Dictionary<Control, int?> DefaultValues;
private readonly RoutedCommand AltInsert = new("AltInsert", typeof(AdministrationWindow), [new KeyGesture(Key.Insert, ModifierKeys.Alt)]);
private readonly RoutedCommand AltDelete = new("AltDelete", typeof(AdministrationWindow), [new KeyGesture(Key.Delete, ModifierKeys.Alt)]);
private readonly RoutedCommand CtrlZ = new("CtrlZ", typeof(AdministrationWindow), [new KeyGesture(Key.Z, ModifierKeys.Control)]);
private readonly RoutedCommand CtrlS = new("CtrlS", typeof(AdministrationWindow), [new KeyGesture(Key.S, ModifierKeys.Control)]);
private readonly RoutedCommand CtrlB = new("CtrlB", typeof(AdministrationWindow), [new KeyGesture(Key.B, ModifierKeys.Control)]);
public AdministrationWindow() : base() {
CommandBindings.Add(new CommandBinding(AltInsert, ShortcutNew));
CommandBindings.Add(new CommandBinding(AltDelete, ShortcutDelete));
CommandBindings.Add(new CommandBinding(CtrlZ, ShortcutReset));
CommandBindings.Add(new CommandBinding(CtrlS, ShortcutSave));
CommandBindings.Add(new CommandBinding(CtrlB, ShortcutEdit));
IsEditing = false;
IsCreating = false;
ExemptInputs = [];
@ -69,6 +81,18 @@ namespace Elwig.Windows {
Loaded += base.OnLoaded;
}
abstract protected void ShortcutNew();
abstract protected void ShortcutDelete();
abstract protected void ShortcutReset();
abstract protected void ShortcutSave();
abstract protected void ShortcutEdit();
private void ShortcutNew(object sender, EventArgs evt) { ShortcutNew(); }
private void ShortcutDelete(object sender, EventArgs evt) { ShortcutDelete(); }
private void ShortcutReset(object sender, EventArgs evt) { ShortcutReset(); }
private void ShortcutSave(object sender, EventArgs evt) { ShortcutSave(); }
private void ShortcutEdit(object sender, EventArgs evt) { ShortcutEdit(); }
private new void OnLoaded(object sender, RoutedEventArgs evt) {
TextBoxInputs = ControlUtils.FindAllChildren<TextBox>(this, ExemptInputs).ToArray();
ComboBoxInputs = ControlUtils.FindAllChildren<ComboBox>(this, ExemptInputs).ToArray();

View File

@ -95,18 +95,42 @@
</DataGrid>
<Button x:Name="NewAreaCommitmentButton" Content="Neu" Click="NewAreaCommitmentButton_Click"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"/>
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Alt+Einfg</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="EditAreaCommitmentButton" Content="Bearbeiten" Click="EditAreaCommitmentButton_Click" IsEnabled="False"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2"/>
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+B</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="DeleteAreaCommitmentButton" Content="Löschen" Click="DeleteAreaCommitmentButton_Click" IsEnabled="False"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2"/>
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Alt+Entf</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="AreaCommitmentSaveButton" Content="Speichern" Click="AreaCommitmentSaveButton_Click" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"/>
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+S</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="AreaCommitmentResetButton" Content="Zurücksetzen" Click="AreaCommitmentResetButton_Click" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2"/>
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+Z</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="AreaCommitmentCancelButton" Content="Abbrechen" Click="AreaCommitmentCancelButton_Click" IsEnabled="False" Visibility="Hidden" IsCancel="True"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2"/>
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Esc</TextBlock>
</Button.ToolTip>
</Button>
</Grid>
<GridSplitter Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

View File

@ -209,7 +209,13 @@ namespace Elwig.Windows {
await RefreshAreaCommitmentList();
}
private void NewAreaCommitmentButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutNew() {
if (!NewAreaCommitmentButton.IsEnabled || NewAreaCommitmentButton.Visibility != Visibility.Visible)
return;
NewAreaCommitmentButton_Click(null, null);
}
private void NewAreaCommitmentButton_Click(object? sender, RoutedEventArgs? evt) {
IsCreating = true;
AreaCommitmentList.IsEnabled = false;
AreaCommitmentList.SelectedItem = null;
@ -220,7 +226,14 @@ namespace Elwig.Windows {
LockSearchInputs();
}
private void EditAreaCommitmentButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutEdit() {
if (!EditAreaCommitmentButton.IsEnabled || EditAreaCommitmentButton.Visibility != Visibility.Visible)
return;
EditAreaCommitmentButton_Click(null, null);
}
private void EditAreaCommitmentButton_Click(object? sender, RoutedEventArgs? evt) {
if (AreaCommitmentList.SelectedItem == null)
return;
@ -233,14 +246,20 @@ namespace Elwig.Windows {
LockSearchInputs();
}
private async void DeleteAreaCommitmentButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutDelete() {
if (!DeleteAreaCommitmentButton.IsEnabled || DeleteAreaCommitmentButton.Visibility != Visibility.Visible)
return;
DeleteAreaCommitmentButton_Click(null, null);
}
private async void DeleteAreaCommitmentButton_Click(object? sender, RoutedEventArgs? evt) {
AreaCom a = (AreaCom)AreaCommitmentList.SelectedItem;
if (a == null) return;
var r = MessageBox.Show(
$"Soll die Flächenbindung {a.GstNr} ({a.Area} m²) wirklich unwiderruflich gelöscht werden?",
"Flächenbindung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r == MessageBoxResult.Yes) {
"Flächenbindung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
if (r == MessageBoxResult.OK) {
using var ctx = new AppDbContext();
ctx.Remove(a);
await ctx.SaveChangesAsync();
@ -291,7 +310,13 @@ namespace Elwig.Windows {
return newFbNr;
}
private async void AreaCommitmentSaveButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutSave() {
if (!AreaCommitmentSaveButton.IsEnabled || AreaCommitmentSaveButton.Visibility != Visibility.Visible)
return;
AreaCommitmentSaveButton_Click(null, null);
}
private async void AreaCommitmentSaveButton_Click(object? sender, RoutedEventArgs? evt) {
int? fbnr = null;
try {
fbnr = await UpdateAreaCom((AreaCommitmentList.SelectedItem as AreaCom)?.FbNr);
@ -314,7 +339,13 @@ namespace Elwig.Windows {
ControlUtils.SelectItem(AreaCommitmentList, AreaCommitmentList.ItemsSource.Cast<AreaCom>().Where(a => a.FbNr == fbnr).FirstOrDefault());
}
private void AreaCommitmentResetButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutReset() {
if (!AreaCommitmentResetButton.IsEnabled || AreaCommitmentResetButton.Visibility != Visibility.Visible)
return;
AreaCommitmentResetButton_Click(null, null);
}
private void AreaCommitmentResetButton_Click(object? sender, RoutedEventArgs? evt) {
if (IsEditing) {
RefreshInputs();
} else if (IsCreating) {

View File

@ -559,15 +559,31 @@
<Button x:Name="EditButton" Content="Bearbeiten"
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,10" Width="120"
Click="EditButton_Click"/>
Click="EditButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+B</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="SaveButton" Content="Speichern" IsEnabled="False"
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,250,10" Width="120"
Click="SaveButton_Click"/>
Click="SaveButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+S</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="ResetButton" Content="Zurücksetzen" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,10" Width="120"
Click="ResetButton_Click"/>
Click="ResetButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+Z</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="CancelButton" Content="Abbrechen" IsEnabled="False" IsCancel="True"
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="250,0,0,10" Width="120"
Click="CancelButton_Click"/>
Click="CancelButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Esc</TextBlock>
</Button.ToolTip>
</Button>
</Grid>
</local:AdministrationWindow>

View File

@ -37,6 +37,10 @@ namespace Elwig.Windows {
WineAttributeFillLowerLabel.Visibility = Visibility.Hidden;
}
protected override void ShortcutNew() { }
protected override void ShortcutDelete() { }
new protected void LockInputs() {
base.LockInputs();
@ -228,7 +232,14 @@ namespace Elwig.Windows {
await ModifiersFinishEditing(ctx);
}
private async void EditButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutEdit() {
if (!EditButton.IsEnabled || EditButton.Visibility != Visibility.Visible)
return;
EditButton_Click(null, null);
}
private async void EditButton_Click(object? sender, RoutedEventArgs? evt) {
IsEditing = true;
EditButton.Visibility = Visibility.Hidden;
ResetButton.Visibility = Visibility.Visible;
@ -255,7 +266,13 @@ namespace Elwig.Windows {
LockInputs();
}
private async void ResetButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutReset() {
if (!ResetButton.IsEnabled || ResetButton.Visibility != Visibility.Visible)
return;
ResetButton_Click(null, null);
}
private async void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
_branchChanged = false;
_attrChanged = false;
_cultChanged = false;
@ -268,7 +285,13 @@ namespace Elwig.Windows {
UpdateButtons();
}
private async void SaveButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutSave() {
if (!SaveButton.IsEnabled || SaveButton.Visibility != Visibility.Visible)
return;
SaveButton_Click(null, null);
}
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
try {
await Save();
} catch (Exception exc) {

View File

@ -185,31 +185,59 @@
Click="NewDeliveryPartButton_Click"/>
<Button x:Name="CancelCreatingButton" Content="Abbrechen" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2"
Click="CancelCreatingButton_Click"/>
Click="CancelCreatingButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Esc</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="NewDeliveryButton" Content="Neu" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"
Click="NewDeliveryButton_Click"/>
Click="NewDeliveryButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Alt+Einfg</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="AbwertenButton" Content="Abwerten" IsEnabled="False"
ToolTip="Ausgewählte Teillieferung vollständig oder teilweise abwerten"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"
Click="AbwertenButton_Click"/>
<Button x:Name="EditDeliveryButton" Content="Bearbeiten" IsEnabled="False"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2"
Click="EditDeliveryButton_Click"/>
Click="EditDeliveryButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+B</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="DeleteDeliveryButton" Content="Löschen" IsEnabled="False"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2"
Click="DeleteDeliveryButton_Click"/>
Click="DeleteDeliveryButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Alt+Entf</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="SaveButton" Content="Speichern" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"
Click="SaveButton_Click"/>
Click="SaveButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+S</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="ResetButton" Content="Zurücksetzen" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2"
Click="ResetButton_Click"/>
Click="ResetButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+Z</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="CancelButton" Content="Abbrechen" IsEnabled="False" Visibility="Hidden" IsCancel="True"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2"
Click="CancelButton_Click"/>
Click="CancelButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Esc</TextBlock>
</Button.ToolTip>
</Button>
</Grid>
<GridSplitter Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

View File

@ -1276,6 +1276,12 @@ namespace Elwig.Windows {
}
}
protected override void ShortcutNew() {
if (!NewDeliveryButton.IsEnabled || NewDeliveryButton.Visibility != Visibility.Visible)
return;
NewDeliveryButton_Click(null, null);
}
private async void NewDeliveryButton_Click(object? sender, RoutedEventArgs? evt) {
TodayOnlyInput.IsChecked = true;
SearchInput.Text = "";
@ -1357,7 +1363,13 @@ namespace Elwig.Windows {
WeighingId = null;
}
private void EditDeliveryButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutEdit() {
if (!EditDeliveryButton.IsEnabled || EditDeliveryButton.Visibility != Visibility.Visible)
return;
EditDeliveryButton_Click(null, null);
}
private void EditDeliveryButton_Click(object? sender, RoutedEventArgs? evt) {
if (DeliveryPartList.SelectedItem == null)
return;
@ -1375,14 +1387,20 @@ namespace Elwig.Windows {
DeleteDeliveryPartButton.IsEnabled = false;
}
private async void DeleteDeliveryButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutDelete() {
if (!DeleteDeliveryButton.IsEnabled || DeleteDeliveryButton.Visibility != Visibility.Visible)
return;
DeleteDeliveryButton_Click(null, null);
}
private async void DeleteDeliveryButton_Click(object? sender, RoutedEventArgs? evt) {
if (DeliveryList.SelectedItem is not Delivery d)
return;
var r = MessageBox.Show(
$"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);
if (r == MessageBoxResult.Yes) {
"Lieferung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
if (r == MessageBoxResult.OK) {
Mouse.OverrideCursor = Cursors.AppStarting;
using (var ctx = new AppDbContext()) {
ctx.Remove(d);
@ -1394,7 +1412,13 @@ namespace Elwig.Windows {
}
}
private async void SaveButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutSave() {
if (!SaveButton.IsEnabled || SaveButton.Visibility != Visibility.Visible)
return;
SaveButton_Click(null, null);
}
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
SaveButton.IsEnabled = false;
SaveButton.Cursor = Cursors.Wait;
@ -1425,7 +1449,13 @@ namespace Elwig.Windows {
DeleteDeliveryPartButton.IsEnabled = DeliveryList.SelectedItem is Delivery { Parts.Count: > 1 } && !IsCreating;
}
private void ResetButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutReset() {
if (!ResetButton.IsEnabled || ResetButton.Visibility != Visibility.Visible)
return;
ResetButton_Click(null, null);
}
private void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
if (IsEditing) {
RefreshInputs();
} else if (IsCreating) {
@ -1522,8 +1552,8 @@ namespace Elwig.Windows {
var r = MessageBox.Show(
$"Soll die Teillieferung Nr. {p.DPNr} wirklich unwiderruflich gelöscht werden?",
"Lieferung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r == MessageBoxResult.Yes) {
"Lieferung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
if (r == MessageBoxResult.OK) {
Mouse.OverrideCursor = Cursors.AppStarting;
using (var ctx = new AppDbContext()) {
ctx.Remove(p);

View File

@ -164,23 +164,47 @@
<Button x:Name="NewMemberButton" Content="Neu"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"
Click="NewMemberButton_Click"/>
Click="NewMemberButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Alt+Einfg</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="EditMemberButton" Content="Bearbeiten" IsEnabled="False"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2"
Click="EditMemberButton_Click"/>
Click="EditMemberButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+B</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="DeleteMemberButton" Content="Löschen" IsEnabled="False"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2"
Click="DeleteMemberButton_Click"/>
Click="DeleteMemberButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Alt+Entf</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="SaveButton" Content="Speichern" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"
Click="SaveButton_Click"/>
Click="SaveButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+S</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="ResetButton" Content="Zurücksetzen" IsEnabled="False" Visibility="Hidden"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,2.5,10" Grid.Column="1" Grid.Row="2"
Click="ResetButton_Click"/>
Click="ResetButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Strg+Z</TextBlock>
</Button.ToolTip>
</Button>
<Button x:Name="CancelButton" Content="Abbrechen" IsEnabled="False" Visibility="Hidden" IsCancel="True"
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="2.5,5,5,10" Grid.Column="2" Grid.Row="2"
Click="CancelButton_Click"/>
Click="CancelButton_Click">
<Button.ToolTip>
<TextBlock FontWeight="Bold">Esc</TextBlock>
</Button.ToolTip>
</Button>
</Grid>
<GridSplitter Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

View File

@ -369,7 +369,13 @@ namespace Elwig.Windows {
await RefreshMemberListQuery();
}
private void NewMemberButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutNew() {
if (!NewMemberButton.IsEnabled || NewMemberButton.Visibility != Visibility.Visible)
return;
NewMemberButton_Click(null, null);
}
private void NewMemberButton_Click(object? sender, RoutedEventArgs? evt) {
IsCreating = true;
MemberList.IsEnabled = false;
MemberList.SelectedItem = null;
@ -383,7 +389,13 @@ namespace Elwig.Windows {
LockSearchInputs();
}
private void EditMemberButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutEdit() {
if (!EditMemberButton.IsEnabled || EditMemberButton.Visibility != Visibility.Visible)
return;
EditMemberButton_Click(null, null);
}
private void EditMemberButton_Click(object? sender, RoutedEventArgs? evt) {
if (MemberList.SelectedItem == null)
return;
@ -399,15 +411,21 @@ namespace Elwig.Windows {
LockSearchInputs();
}
private async void DeleteMemberButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutDelete() {
if (!DeleteMemberButton.IsEnabled || DeleteMemberButton.Visibility != Visibility.Visible)
return;
DeleteMemberButton_Click(null, null);
}
private async void DeleteMemberButton_Click(object? sender, RoutedEventArgs? evt) {
if (MemberList.SelectedItem is not Member m)
return;
var r = MessageBox.Show(
$"Soll das Mitglied \"{m.AdministrativeName}\" (MgNr. {m.MgNr}) wirklich unwiderruflich gelöscht werden?\n" +
$"Sämtliche Lieferungen und Flächenbindungen dieses Mitglieds werden auch gelöscht!",
"Mitglied löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r == MessageBoxResult.Yes) {
"Mitglied löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
if (r == MessageBoxResult.OK) {
using var ctx = new AppDbContext();
ctx.Remove(m);
await ctx.SaveChangesAsync();
@ -415,7 +433,13 @@ namespace Elwig.Windows {
}
}
private async void SaveButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutSave() {
if (!SaveButton.IsEnabled || SaveButton.Visibility != Visibility.Visible)
return;
SaveButton_Click(null, null);
}
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
int? mgnr = null;
try {
mgnr = await UpdateMember((MemberList.SelectedItem as Member)?.MgNr);
@ -440,7 +464,13 @@ namespace Elwig.Windows {
FocusMember(m);
}
private void ResetButton_Click(object sender, RoutedEventArgs evt) {
protected override void ShortcutReset() {
if (!ResetButton.IsEnabled || ResetButton.Visibility != Visibility.Visible)
return;
ResetButton_Click(null, null);
}
private void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
TransferPredecessorAreaComs = false;
CancelAreaComs = false;
if (IsEditing) {