68 lines
2.8 KiB
C#
68 lines
2.8 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|