[#31] AdministrationWindow: Add shortcuts
This commit is contained in:
@ -11,6 +11,7 @@ using System.Windows;
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Threading;
|
using System.Windows.Threading;
|
||||||
using Xceed.Wpf.Toolkit;
|
using Xceed.Wpf.Toolkit;
|
||||||
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace Elwig.Windows {
|
namespace Elwig.Windows {
|
||||||
public abstract class AdministrationWindow : ContextWindow {
|
public abstract class AdministrationWindow : ContextWindow {
|
||||||
@ -48,7 +49,18 @@ namespace Elwig.Windows {
|
|||||||
private readonly Dictionary<Control, int?> OriginalValues;
|
private readonly Dictionary<Control, int?> OriginalValues;
|
||||||
private readonly Dictionary<Control, int?> DefaultValues;
|
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() {
|
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;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
ExemptInputs = [];
|
ExemptInputs = [];
|
||||||
@ -69,6 +81,18 @@ namespace Elwig.Windows {
|
|||||||
Loaded += base.OnLoaded;
|
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) {
|
private new void OnLoaded(object sender, RoutedEventArgs evt) {
|
||||||
TextBoxInputs = ControlUtils.FindAllChildren<TextBox>(this, ExemptInputs).ToArray();
|
TextBoxInputs = ControlUtils.FindAllChildren<TextBox>(this, ExemptInputs).ToArray();
|
||||||
ComboBoxInputs = ControlUtils.FindAllChildren<ComboBox>(this, ExemptInputs).ToArray();
|
ComboBoxInputs = ControlUtils.FindAllChildren<ComboBox>(this, ExemptInputs).ToArray();
|
||||||
|
@ -95,18 +95,42 @@
|
|||||||
</DataGrid>
|
</DataGrid>
|
||||||
|
|
||||||
<Button x:Name="NewAreaCommitmentButton" Content="Neu" Click="NewAreaCommitmentButton_Click"
|
<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"
|
<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"
|
<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"
|
<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"
|
<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"
|
<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>
|
</Grid>
|
||||||
|
|
||||||
<GridSplitter Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
<GridSplitter Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||||
|
@ -209,7 +209,13 @@ namespace Elwig.Windows {
|
|||||||
await RefreshAreaCommitmentList();
|
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;
|
IsCreating = true;
|
||||||
AreaCommitmentList.IsEnabled = false;
|
AreaCommitmentList.IsEnabled = false;
|
||||||
AreaCommitmentList.SelectedItem = null;
|
AreaCommitmentList.SelectedItem = null;
|
||||||
@ -220,7 +226,14 @@ namespace Elwig.Windows {
|
|||||||
LockSearchInputs();
|
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)
|
if (AreaCommitmentList.SelectedItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -233,14 +246,20 @@ namespace Elwig.Windows {
|
|||||||
LockSearchInputs();
|
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;
|
AreaCom a = (AreaCom)AreaCommitmentList.SelectedItem;
|
||||||
if (a == null) return;
|
if (a == null) return;
|
||||||
|
|
||||||
var r = MessageBox.Show(
|
var r = MessageBox.Show(
|
||||||
$"Soll die Flächenbindung {a.GstNr} ({a.Area} m²) wirklich unwiderruflich gelöscht werden?",
|
$"Soll die Flächenbindung {a.GstNr} ({a.Area} m²) wirklich unwiderruflich gelöscht werden?",
|
||||||
"Flächenbindung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
|
"Flächenbindung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.Yes) {
|
if (r == MessageBoxResult.OK) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
ctx.Remove(a);
|
ctx.Remove(a);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
@ -291,7 +310,13 @@ namespace Elwig.Windows {
|
|||||||
return newFbNr;
|
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;
|
int? fbnr = null;
|
||||||
try {
|
try {
|
||||||
fbnr = await UpdateAreaCom((AreaCommitmentList.SelectedItem as AreaCom)?.FbNr);
|
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());
|
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) {
|
if (IsEditing) {
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
} else if (IsCreating) {
|
} else if (IsCreating) {
|
||||||
|
@ -559,15 +559,31 @@
|
|||||||
|
|
||||||
<Button x:Name="EditButton" Content="Bearbeiten"
|
<Button x:Name="EditButton" Content="Bearbeiten"
|
||||||
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,10" Width="120"
|
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"
|
<Button x:Name="SaveButton" Content="Speichern" IsEnabled="False"
|
||||||
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,250,10" Width="120"
|
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"
|
<Button x:Name="ResetButton" Content="Zurücksetzen" IsEnabled="False" Visibility="Hidden"
|
||||||
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,10" Width="120"
|
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"
|
<Button x:Name="CancelButton" Content="Abbrechen" IsEnabled="False" IsCancel="True"
|
||||||
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="250,0,0,10" Width="120"
|
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>
|
</Grid>
|
||||||
</local:AdministrationWindow>
|
</local:AdministrationWindow>
|
||||||
|
@ -37,6 +37,10 @@ namespace Elwig.Windows {
|
|||||||
WineAttributeFillLowerLabel.Visibility = Visibility.Hidden;
|
WineAttributeFillLowerLabel.Visibility = Visibility.Hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void ShortcutNew() { }
|
||||||
|
|
||||||
|
protected override void ShortcutDelete() { }
|
||||||
|
|
||||||
new protected void LockInputs() {
|
new protected void LockInputs() {
|
||||||
base.LockInputs();
|
base.LockInputs();
|
||||||
|
|
||||||
@ -228,7 +232,14 @@ namespace Elwig.Windows {
|
|||||||
await ModifiersFinishEditing(ctx);
|
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;
|
IsEditing = true;
|
||||||
EditButton.Visibility = Visibility.Hidden;
|
EditButton.Visibility = Visibility.Hidden;
|
||||||
ResetButton.Visibility = Visibility.Visible;
|
ResetButton.Visibility = Visibility.Visible;
|
||||||
@ -255,7 +266,13 @@ namespace Elwig.Windows {
|
|||||||
LockInputs();
|
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;
|
_branchChanged = false;
|
||||||
_attrChanged = false;
|
_attrChanged = false;
|
||||||
_cultChanged = false;
|
_cultChanged = false;
|
||||||
@ -268,7 +285,13 @@ namespace Elwig.Windows {
|
|||||||
UpdateButtons();
|
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 {
|
try {
|
||||||
await Save();
|
await Save();
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
|
@ -185,31 +185,59 @@
|
|||||||
Click="NewDeliveryPartButton_Click"/>
|
Click="NewDeliveryPartButton_Click"/>
|
||||||
<Button x:Name="CancelCreatingButton" Content="Abbrechen" IsEnabled="False" Visibility="Hidden"
|
<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"
|
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"
|
<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"
|
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"
|
<Button x:Name="AbwertenButton" Content="Abwerten" IsEnabled="False"
|
||||||
ToolTip="Ausgewählte Teillieferung vollständig oder teilweise abwerten"
|
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"
|
HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="5,5,2.5,10" Grid.Column="0" Grid.Row="2"
|
||||||
Click="AbwertenButton_Click"/>
|
Click="AbwertenButton_Click"/>
|
||||||
<Button x:Name="EditDeliveryButton" Content="Bearbeiten" IsEnabled="False"
|
<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"
|
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"
|
<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"
|
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"
|
<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"
|
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"
|
<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"
|
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"
|
<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"
|
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>
|
</Grid>
|
||||||
|
|
||||||
<GridSplitter Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
<GridSplitter Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||||
|
@ -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) {
|
private async void NewDeliveryButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
TodayOnlyInput.IsChecked = true;
|
TodayOnlyInput.IsChecked = true;
|
||||||
SearchInput.Text = "";
|
SearchInput.Text = "";
|
||||||
@ -1357,7 +1363,13 @@ namespace Elwig.Windows {
|
|||||||
WeighingId = null;
|
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)
|
if (DeliveryPartList.SelectedItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1375,14 +1387,20 @@ namespace Elwig.Windows {
|
|||||||
DeleteDeliveryPartButton.IsEnabled = false;
|
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)
|
if (DeliveryList.SelectedItem is not Delivery d)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var r = MessageBox.Show(
|
var r = MessageBox.Show(
|
||||||
$"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.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.Yes) {
|
if (r == MessageBoxResult.OK) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
ctx.Remove(d);
|
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.IsEnabled = false;
|
||||||
SaveButton.Cursor = Cursors.Wait;
|
SaveButton.Cursor = Cursors.Wait;
|
||||||
|
|
||||||
@ -1425,7 +1449,13 @@ namespace Elwig.Windows {
|
|||||||
DeleteDeliveryPartButton.IsEnabled = DeliveryList.SelectedItem is Delivery { Parts.Count: > 1 } && !IsCreating;
|
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) {
|
if (IsEditing) {
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
} else if (IsCreating) {
|
} else if (IsCreating) {
|
||||||
@ -1522,8 +1552,8 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
var r = MessageBox.Show(
|
var r = MessageBox.Show(
|
||||||
$"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.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.Yes) {
|
if (r == MessageBoxResult.OK) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
ctx.Remove(p);
|
ctx.Remove(p);
|
||||||
|
@ -164,23 +164,47 @@
|
|||||||
|
|
||||||
<Button x:Name="NewMemberButton" Content="Neu"
|
<Button x:Name="NewMemberButton" Content="Neu"
|
||||||
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"
|
||||||
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"
|
<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"
|
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"
|
<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"
|
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"
|
<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"
|
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"
|
<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"
|
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"
|
<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"
|
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>
|
</Grid>
|
||||||
|
|
||||||
<GridSplitter Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
<GridSplitter Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||||
|
@ -369,7 +369,13 @@ namespace Elwig.Windows {
|
|||||||
await RefreshMemberListQuery();
|
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;
|
IsCreating = true;
|
||||||
MemberList.IsEnabled = false;
|
MemberList.IsEnabled = false;
|
||||||
MemberList.SelectedItem = null;
|
MemberList.SelectedItem = null;
|
||||||
@ -383,7 +389,13 @@ namespace Elwig.Windows {
|
|||||||
LockSearchInputs();
|
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)
|
if (MemberList.SelectedItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -399,15 +411,21 @@ namespace Elwig.Windows {
|
|||||||
LockSearchInputs();
|
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)
|
if (MemberList.SelectedItem is not Member m)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var r = MessageBox.Show(
|
var r = MessageBox.Show(
|
||||||
$"Soll das Mitglied \"{m.AdministrativeName}\" (MgNr. {m.MgNr}) wirklich unwiderruflich gelöscht werden?\n" +
|
$"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!",
|
$"Sämtliche Lieferungen und Flächenbindungen dieses Mitglieds werden auch gelöscht!",
|
||||||
"Mitglied löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
|
"Mitglied löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.Yes) {
|
if (r == MessageBoxResult.OK) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
ctx.Remove(m);
|
ctx.Remove(m);
|
||||||
await ctx.SaveChangesAsync();
|
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;
|
int? mgnr = null;
|
||||||
try {
|
try {
|
||||||
mgnr = await UpdateMember((MemberList.SelectedItem as Member)?.MgNr);
|
mgnr = await UpdateMember((MemberList.SelectedItem as Member)?.MgNr);
|
||||||
@ -440,7 +464,13 @@ namespace Elwig.Windows {
|
|||||||
FocusMember(m);
|
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;
|
TransferPredecessorAreaComs = false;
|
||||||
CancelAreaComs = false;
|
CancelAreaComs = false;
|
||||||
if (IsEditing) {
|
if (IsEditing) {
|
||||||
|
Reference in New Issue
Block a user