using Elwig.Helpers; using System; using System.Windows; using System.Windows.Controls; namespace Elwig.Dialogs { public partial class AreaComModifyDialog : Window { public int? YearTo { get; set; } public bool ModifyRetroactively { get; set; } public string OrigYearFrom { get; set; } public string OrigYearTo { get; set; } public string Area { get; set; } public AreaComModifyDialog(int? yearFrom, int? yearTo, int area, bool delete, bool forceRetroactive = false) { Area = $"{area:N0}"; OrigYearFrom = $"{yearFrom}"; OrigYearTo = $"{yearTo}"; InitializeComponent(); Title = delete ? "Flächenbindung löschen" : "Flächenbindung bearbeiten"; RetroactiveInput.Content = delete ? "Rückwirkend löschen" : "Rückwirkend bearbeiten"; forceRetroactive = forceRetroactive || yearFrom.HasValue && yearTo.HasValue && yearFrom.Value == yearTo.Value; RetroactiveInput.IsEnabled = !forceRetroactive; if (delete) { QuestionBlock1.Visibility = Visibility.Hidden; QuestionBlock2.Visibility = Visibility.Visible; DescBlock1.Visibility = Visibility.Hidden; DescBlock2.Visibility = Visibility.Visible; } SeasonInput.Minimum = yearFrom.HasValue ? yearFrom + 1 : null; SeasonInput.Maximum = yearTo.HasValue ? yearTo : null; if (forceRetroactive || (yearTo.HasValue && yearTo < Utils.CurrentYear) || (yearFrom.HasValue && yearFrom >= Utils.CurrentYear)) { RetroactiveInput.IsChecked = true; } else { SeasonInput.Text = $"{Utils.CurrentYear}"; } } private void SeasonInput_TextChanged(object sender, TextChangedEventArgs evt) { YearTo = SeasonInput.Value! - 1; CancelSeason1.Text = $"{YearTo}"; CancelSeason2.Text = $"{YearTo}"; NewSeason1.Text = $"{YearTo + 1}"; } private void RetroactiveInput_Changed(object sender, RoutedEventArgs evt) { if (ModifyRetroactively) { SeasonInput.IsEnabled = false; SeasonInput.Text = ""; YearTo = null; DescBlock1.Visibility = Visibility.Hidden; DescBlock2.Visibility = Visibility.Hidden; } else { SeasonInput.IsEnabled = true; SeasonInput.Text = $"{Math.Max(SeasonInput.Minimum ?? Utils.CurrentYear, Utils.CurrentYear)}"; DescBlock1.Visibility = QuestionBlock1.Visibility; DescBlock2.Visibility = QuestionBlock2.Visibility; } } private void ConfirmButton_Click(object sender, RoutedEventArgs evt) { DialogResult = true; Close(); } } }