From 57bc038357209e6fa2fe9704054ac783af323a6b Mon Sep 17 00:00:00 2001 From: Thomas Hilscher <thomas.hilscher@gmail.com> Date: Fri, 31 Mar 2023 22:29:02 +0200 Subject: [PATCH] Fixed AreaCommitmentWindow buttons --- Elwig/Windows/AreaCommAdminWindow.xaml | 26 ++-- Elwig/Windows/AreaCommAdminWindow.xaml.cs | 152 ++++++++++++++++------ 2 files changed, 127 insertions(+), 51 deletions(-) diff --git a/Elwig/Windows/AreaCommAdminWindow.xaml b/Elwig/Windows/AreaCommAdminWindow.xaml index cb82cf2..5d296e6 100644 --- a/Elwig/Windows/AreaCommAdminWindow.xaml +++ b/Elwig/Windows/AreaCommAdminWindow.xaml @@ -81,7 +81,7 @@ <Button x:Name="ContractSaveButton" Content="Speichern" Click="ContractSaveButton_Click" IsEnabled="False" Visibility="Hidden" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="10,10,0,10" Width="110" Grid.Column="0"/> <Button x:Name="ContractCancelButton" Content="Abbrechen" Click="ContractCancelButton_Click" IsEnabled="False" Visibility="Hidden" IsCancel="True" - HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,10,10,10" Width="110" Grid.Column="1"/> + HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="5,10,0,10" Width="110" Grid.Column="1"/> @@ -121,16 +121,16 @@ </Grid.ColumnDefinitions> <Label Content="VNr.:" Margin="10,10,0,0" Grid.Column="0"/> - <TextBox x:Name="VNr" Margin="0,10,0,0" Width="48" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> + <TextBox x:Name="VNrInput" Margin="0,10,0,0" Width="48" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> <Label Content="MgNr.:" Margin="10,40,0,0" Grid.Column="0"/> - <TextBox x:Name="MgNr" Margin="0,40,0,0" Width="48" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> + <TextBox x:Name="MgNrInput" Margin="0,40,0,0" Width="48" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> <Label Content="Von:" Margin="10,10,0,0" Grid.Column="2"/> - <TextBox x:Name="YearFrom" Margin="0,10,0,0" Width="100" Grid.Column="3" TextAlignment="Right" HorizontalAlignment="Left"/> + <TextBox x:Name="YearFromInput" Margin="0,10,0,0" Width="100" Grid.Column="3" TextAlignment="Right" HorizontalAlignment="Left"/> <Label Content="Bis:" Margin="10,40,0,0" Grid.Column="2"/> - <TextBox x:Name="YearTo" Margin="0,40,0,0" Width="100" Grid.Column="3" TextAlignment="Right" HorizontalAlignment="Left"/> + <TextBox x:Name="YearToInput" Margin="0,40,0,0" Width="100" Grid.Column="3" TextAlignment="Right" HorizontalAlignment="Left"/> </Grid> </GroupBox> @@ -143,19 +143,19 @@ <Label Content="Gemeinde:" Margin="10,10,0,0" Grid.Column="0"/> <ComboBox x:Name="KgInput" ItemTemplate="{StaticResource KgTemplate}" TextSearch.TextPath="Name" - Width="200" HorizontalAlignment="Left" + Width="200" HorizontalAlignment="Left" SelectionChanged="ComboBox_SelectionChanged" Margin="0,10,10,0" Grid.Column="1"/> <Label Content="Ried:" Margin="10,40,0,0" Grid.Column="0"/> <ComboBox x:Name="RdInput" ItemTemplate="{StaticResource KgTemplate}" TextSearch.TextPath="Name" - Width="200" HorizontalAlignment="Left" + Width="200" HorizontalAlignment="Left" SelectionChanged="ComboBox_SelectionChanged" Margin="0,40,0,0" Grid.Column="1"/> <Label Content="Parzelle:" Margin="10,70,0,0" Grid.Column="0"/> - <TextBox x:Name="GstNr" Margin="0,70,0,0" Width="100" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> + <TextBox x:Name="GstNrInput" Margin="0,70,0,0" Width="100" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> - <Label Content="Fläche:" Margin="10,100,0,0" Grid.Column="0"/> - <TextBox x:Name="Area" Margin="0,100,0,0" Width="100" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> + <Label Content="Fläche (m²):" Margin="10,100,0,0" Grid.Column="0"/> + <TextBox x:Name="AreaInput" Margin="0,100,0,0" Width="100" Grid.Column="1" TextAlignment="Right" HorizontalAlignment="Left"/> </Grid> </GroupBox> @@ -169,17 +169,17 @@ <Label Content="Sorte:" Margin="10,10,0,0" Grid.Column="0"/> <ComboBox x:Name="SortInput" ItemTemplate="{StaticResource KgTemplate}" TextSearch.TextPath="Name" - Width="200" HorizontalAlignment="Left" + Width="200" HorizontalAlignment="Left" SelectionChanged="ComboBox_SelectionChanged" Margin="0,10,10,0" Grid.Column="1"/> <Label Content="Attribut:" Margin="10,40,0,0" Grid.Column="0"/> <ComboBox x:Name="AttrInput" ItemTemplate="{StaticResource KgTemplate}" TextSearch.TextPath="Name" - Width="200" HorizontalAlignment="Left" + Width="200" HorizontalAlignment="Left" SelectionChanged="ComboBox_SelectionChanged" Margin="0,40,10,0" Grid.Column="1"/> <Label Content="Bewirt. Art:" Margin="10,70,0,0" Grid.Column="0"/> <ComboBox x:Name="CultInput" ItemTemplate="{StaticResource KgTemplate}" TextSearch.TextPath="Name" - Width="200" HorizontalAlignment="Left" + Width="200" HorizontalAlignment="Left" SelectionChanged="ComboBox_SelectionChanged" Margin="0,70,10,0" Grid.Column="1"/> </Grid> diff --git a/Elwig/Windows/AreaCommAdminWindow.xaml.cs b/Elwig/Windows/AreaCommAdminWindow.xaml.cs index b4aae10..80b44bc 100644 --- a/Elwig/Windows/AreaCommAdminWindow.xaml.cs +++ b/Elwig/Windows/AreaCommAdminWindow.xaml.cs @@ -19,9 +19,20 @@ namespace Elwig.Windows { this.member = member; Title = $"Flächenbindungen - {member.FamilyName} {member.GivenName} - Elwig"; RefreshContractList(); + ExemptInputs = new Control[] { + ContractList, AreaCommitmentList, NewContractButton, DeleteContractButton, + ContractSaveButton, ContractCancelButton, NewAreaCommitmentButton, + EditAreaCommitmentButton, DeleteAreaCommitmentButton, AreaCommitmentSaveButton, + AreaCommitmentResetButton, AreaCommitmentCancelButton + }; + RequiredInputs = new Control[] { + VNrInput, MgNrInput, YearFromInput, YearToInput, KgInput, + GstNrInput, AreaInput, SortInput, CultInput + }; } private void Window_Loaded(object sender, RoutedEventArgs e) { + //TODO Sources von Ried sollten sich auf Gemeinde beziehen KgInput.ItemsSource = Context.WbKgs.Select(k => k.Kg).OrderBy(k => k.Name).ToList(); RdInput.ItemsSource = Context.WbRde.OrderBy(r => r.Name).ToList(); SortInput.ItemsSource = Context.WineVarieties.OrderBy(s => s.Name).ToList(); @@ -58,34 +69,42 @@ namespace Elwig.Windows { private void RefreshInputs(bool validate = false) { ClearInputStates(); + Contract? c = (Contract)ContractList.SelectedItem; AreaCommitment? a = (AreaCommitment)AreaCommitmentList.SelectedItem; + + if (c != null) { + DeleteContractButton.IsEnabled = true; + NewAreaCommitmentButton.IsEnabled = true; + } else { + DeleteContractButton.IsEnabled = false; + NewAreaCommitmentButton.IsEnabled = false; + } + if (a != null) { - //EditMemberButton.IsEnabled = true; - //DeleteMemberButton.IsEnabled = true; - //AreaCommitmentButton.IsEnabled = true; + EditAreaCommitmentButton.IsEnabled = true; + DeleteAreaCommitmentButton.IsEnabled = true; FillInputs(a); } else { - //EditMemberButton.IsEnabled = false; - //DeleteMemberButton.IsEnabled = false; - //AreaCommitmentButton.IsEnabled = false; + EditAreaCommitmentButton.IsEnabled = false; + DeleteAreaCommitmentButton.IsEnabled = false; ClearInputs(); } - //if (!validate) ClearInputStates(); + if (!validate) ClearInputStates(); GC.Collect(); } private void FillInputs(AreaCommitment a) { ClearOriginalValues(); - VNr.Text = a.VNr.ToString(); - MgNr.Text = a.Contract.MgNr.ToString(); - YearFrom.Text = a.Contract.YearFrom.ToString(); - YearTo.Text = a.Contract.YearTo.ToString(); + VNrInput.Text = a.VNr.ToString(); + MgNrInput.Text = a.Contract.MgNr.ToString(); + YearFromInput.Text = a.Contract.YearFrom.ToString(); + YearToInput.Text = a.Contract.YearTo.ToString(); KgInput.SelectedItem = a.Kg.Kg; RdInput.SelectedItem = a.Rd; - GstNr.Text = a.GstNr; - Area.Text = a.Area.ToString() + "m²"; + GstNrInput.Text = a.GstNr; + AreaInput.Text = a.Area.ToString(); SortInput.SelectedItem = a.WineVar; AttrInput.SelectedItem = a.WineAttr; @@ -98,8 +117,11 @@ namespace Elwig.Windows { IsCreating = true; AreaCommitmentList.IsEnabled = false; AreaCommitmentList.SelectedItem = null; - HideNewEditDeleteButtons(); - ShowSaveResetCancelButtons(); + ContractList.IsEnabled = false; + ContractList.SelectedItem = null; + HideAreaCommitmentNewEditDeleteButtons(); + ShowAreaCommitmentSaveResetCancelButtons(); + DisableContractNewDeleteButtons(); UnlockInputs(); InitInputs(); } @@ -111,8 +133,9 @@ namespace Elwig.Windows { IsEditing = true; AreaCommitmentList.IsEnabled = false; - HideNewEditDeleteButtons(); - ShowSaveResetCancelButtons(); + HideAreaCommitmentNewEditDeleteButtons(); + ShowAreaCommitmentSaveResetCancelButtons(); + DisableContractNewDeleteButtons(); UnlockInputs(); } @@ -132,10 +155,13 @@ namespace Elwig.Windows { private void NewContractButton_Click(object sender, RoutedEventArgs evt) { IsCreating = true; + ContractList.IsEnabled = false; + ContractList.SelectedItem = null; AreaCommitmentList.IsEnabled = false; AreaCommitmentList.SelectedItem = null; - HideNewEditDeleteButtons(); - ShowSaveResetCancelButtons(); + HideContractNewDeleteButtons(); + ShowContractSaveCancelButtons(); + DisableAreaCommitmentNewEditDeleteButtons(); UnlockInputs(); InitInputs(); } @@ -150,7 +176,7 @@ namespace Elwig.Windows { if (r == MessageBoxResult.Yes) { Context.Remove(c); Context.SaveChanges(); - RefreshAreaCommitmentList(); + RefreshContractList(); } } @@ -165,7 +191,7 @@ namespace Elwig.Windows { a.KgNr = ((AT_Kg)KgInput.SelectedItem).KgNr; a.RdNr = ((WbRd)RdInput.SelectedItem).RdNr; - a.GstNr = GstNr.Text; + a.GstNr = GstNrInput.Text; try { if (IsEditing) @@ -182,10 +208,12 @@ namespace Elwig.Windows { IsEditing = false; IsCreating = false; AreaCommitmentList.IsEnabled = true; - HideSaveResetCancelButtons(); - ShowNewEditDeleteButtons(); + ContractList.IsEnabled = true; + HideAreaCommitmentSaveResetCancelButtons(); + ShowAreaCommitmentNewEditDeleteButtons(); + EnableContractNewDeleteButtons(); LockInputs(); - RefreshAreaCommitmentList(); + RefreshContractList(); } private void AreaCommitmentResetButton_Click(object sender, RoutedEventArgs evt) { @@ -201,8 +229,10 @@ namespace Elwig.Windows { IsEditing = false; IsCreating = false; AreaCommitmentList.IsEnabled = true; - HideSaveResetCancelButtons(); - ShowNewEditDeleteButtons(); + ContractList.IsEnabled = true; + HideAreaCommitmentSaveResetCancelButtons(); + ShowAreaCommitmentNewEditDeleteButtons(); + EnableContractNewDeleteButtons(); RefreshInputs(); ClearInputStates(); LockInputs(); @@ -216,8 +246,10 @@ namespace Elwig.Windows { IsEditing = false; IsCreating = false; ContractList.IsEnabled = true; - HideSaveResetCancelButtons(); - ShowNewEditDeleteButtons(); + AreaCommitmentList.IsEnabled = true; + HideContractSaveCancelButtons(); + ShowContractNewDeleteButtons(); + EnableAreaCommitmentNewEditDeleteButtons(); RefreshInputs(); ClearInputStates(); LockInputs(); @@ -234,7 +266,55 @@ namespace Elwig.Windows { FillOriginalValues(); } - private void ShowSaveResetCancelButtons() { + private void EnableContractNewDeleteButtons() { + NewContractButton.IsEnabled = true; + DeleteContractButton.IsEnabled = ContractList.SelectedItem != null; + } + + private void DisableContractNewDeleteButtons() { + NewContractButton.IsEnabled = false; + DeleteContractButton.IsEnabled = false; + } + + private void DisableAreaCommitmentNewEditDeleteButtons() { + NewAreaCommitmentButton.IsEnabled = false; + EditAreaCommitmentButton.IsEnabled = false; + DeleteAreaCommitmentButton.IsEnabled = false; + } + + private void EnableAreaCommitmentNewEditDeleteButtons() { + NewAreaCommitmentButton.IsEnabled = ContractList.SelectedItem != null; + EditAreaCommitmentButton.IsEnabled = AreaCommitmentList.SelectedItem != null; + DeleteAreaCommitmentButton.IsEnabled = AreaCommitmentList.SelectedItem != null; + } + + private void ShowContractSaveCancelButtons() { + ContractSaveButton.IsEnabled = false; + ContractCancelButton.IsEnabled = true; + ContractSaveButton.Visibility = Visibility.Visible; + ContractCancelButton.Visibility = Visibility.Visible; + } + + private void HideContractSaveCancelButtons() { + ContractSaveButton.IsEnabled = false; + ContractCancelButton.IsEnabled = false; + ContractSaveButton.Visibility = Visibility.Hidden; + ContractCancelButton.Visibility = Visibility.Hidden; + } + + private void ShowContractNewDeleteButtons() { + EnableContractNewDeleteButtons(); + NewContractButton.Visibility = Visibility.Visible; + DeleteContractButton.Visibility = Visibility.Visible; + } + + private void HideContractNewDeleteButtons() { + DisableContractNewDeleteButtons(); + NewContractButton.Visibility = Visibility.Hidden; + DeleteContractButton.Visibility = Visibility.Hidden; + } + + private void ShowAreaCommitmentSaveResetCancelButtons() { AreaCommitmentSaveButton.IsEnabled = false; AreaCommitmentResetButton.IsEnabled = false; AreaCommitmentCancelButton.IsEnabled = true; @@ -243,7 +323,7 @@ namespace Elwig.Windows { AreaCommitmentCancelButton.Visibility = Visibility.Visible; } - private void HideSaveResetCancelButtons() { + private void HideAreaCommitmentSaveResetCancelButtons() { AreaCommitmentSaveButton.IsEnabled = false; AreaCommitmentResetButton.IsEnabled = false; AreaCommitmentCancelButton.IsEnabled = false; @@ -252,19 +332,15 @@ namespace Elwig.Windows { AreaCommitmentCancelButton.Visibility = Visibility.Hidden; } - private void ShowNewEditDeleteButtons() { - NewAreaCommitmentButton.IsEnabled = true; - EditAreaCommitmentButton.IsEnabled = AreaCommitmentList.SelectedItem != null; - DeleteAreaCommitmentButton.IsEnabled = AreaCommitmentList.SelectedItem != null; + private void ShowAreaCommitmentNewEditDeleteButtons() { + EnableAreaCommitmentNewEditDeleteButtons(); NewAreaCommitmentButton.Visibility = Visibility.Visible; EditAreaCommitmentButton.Visibility = Visibility.Visible; DeleteAreaCommitmentButton.Visibility = Visibility.Visible; } - private void HideNewEditDeleteButtons() { - NewAreaCommitmentButton.IsEnabled = false; - EditAreaCommitmentButton.IsEnabled = false; - DeleteAreaCommitmentButton.IsEnabled = false; + private void HideAreaCommitmentNewEditDeleteButtons() { + DisableAreaCommitmentNewEditDeleteButtons(); NewAreaCommitmentButton.Visibility = Visibility.Hidden; EditAreaCommitmentButton.Visibility = Visibility.Hidden; DeleteAreaCommitmentButton.Visibility = Visibility.Hidden;