|
|
|
|
@@ -5,7 +5,6 @@ using System.Threading.Tasks;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
using System.Windows.Input;
|
|
|
|
|
using Elwig.Controls;
|
|
|
|
|
using Elwig.Helpers;
|
|
|
|
|
using Elwig.Helpers.Billing;
|
|
|
|
|
using Elwig.Models.Entities;
|
|
|
|
|
@@ -22,8 +21,10 @@ namespace Elwig.Windows {
|
|
|
|
|
public readonly int Year;
|
|
|
|
|
public readonly int AvNr;
|
|
|
|
|
public Season Season;
|
|
|
|
|
public string CurrencySymbol;
|
|
|
|
|
private PaymentVar PaymentVar;
|
|
|
|
|
private bool HasChanged = false;
|
|
|
|
|
private bool Updating = false;
|
|
|
|
|
|
|
|
|
|
private Scatter DataPlot;
|
|
|
|
|
private Scatter? GebundenPlot;
|
|
|
|
|
@@ -72,6 +73,9 @@ namespace Elwig.Windows {
|
|
|
|
|
AvNr = avnr;
|
|
|
|
|
using var ctx = new AppDbContext();
|
|
|
|
|
Season = ctx.Seasons.Find(year) ?? throw new ArgumentException("Season not found");
|
|
|
|
|
CurrencySymbol = Season.Currency.Symbol ?? Season.Currency.Code;
|
|
|
|
|
PriceInput.Unit = $"{CurrencySymbol}/kg";
|
|
|
|
|
GebundenFlatBonus.Unit = $"{CurrencySymbol}/kg";
|
|
|
|
|
PaymentVar = ctx.PaymentVariants.Find(year, avnr) ?? throw new ArgumentException("PaymentVar not found");
|
|
|
|
|
Title = $"{PaymentVar?.Name} - Lese {year} - Elwig";
|
|
|
|
|
LockContext = true;
|
|
|
|
|
@@ -99,6 +103,9 @@ namespace Elwig.Windows {
|
|
|
|
|
private async Task RefreshGraphList(AppDbContext ctx) {
|
|
|
|
|
PaymentVar = await ctx.PaymentVariants.FindAsync(Year, AvNr) ?? throw new ArgumentException("PaymentVar not found");
|
|
|
|
|
Season = await ctx.Seasons.FindAsync(Year) ?? throw new ArgumentException("Season not found");
|
|
|
|
|
CurrencySymbol = Season.Currency.Symbol ?? Season.Currency.Code;
|
|
|
|
|
PriceInput.Unit = $"{CurrencySymbol}/kg";
|
|
|
|
|
GebundenFlatBonus.Unit = $"{CurrencySymbol}/kg";
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
var data = EditBillingData.FromJson(PaymentVar.Data, Utils.GetVaributes(ctx, Year));
|
|
|
|
|
@@ -146,6 +153,8 @@ namespace Elwig.Windows {
|
|
|
|
|
if (SelectedGraphEntry != null) {
|
|
|
|
|
CopyButton.IsEnabled = true;
|
|
|
|
|
DeleteButton.IsEnabled = true;
|
|
|
|
|
EnableTextBox(OechsleInput);
|
|
|
|
|
GebInput.IsEnabled = SelectedGraphEntry?.GebundenGraph != null;
|
|
|
|
|
GebundenTypeFixed.IsEnabled = true;
|
|
|
|
|
GebundenTypeGraph.IsEnabled = true;
|
|
|
|
|
GebundenTypeNone.IsEnabled = true;
|
|
|
|
|
@@ -156,15 +165,15 @@ namespace Elwig.Windows {
|
|
|
|
|
} else {
|
|
|
|
|
CopyButton.IsEnabled = false;
|
|
|
|
|
DeleteButton.IsEnabled = false;
|
|
|
|
|
DisableUnitTextBox(OechsleInput);
|
|
|
|
|
DisableTextBox(OechsleInput);
|
|
|
|
|
GebInput.IsEnabled = false;
|
|
|
|
|
DisableOptionButtons();
|
|
|
|
|
}
|
|
|
|
|
if (!PaymentVar.TestVariant) {
|
|
|
|
|
AddButton.IsEnabled = false;
|
|
|
|
|
CopyButton.IsEnabled = false;
|
|
|
|
|
DeleteButton.IsEnabled = false;
|
|
|
|
|
DisableUnitTextBox(OechsleInput);
|
|
|
|
|
DisableUnitTextBox(PriceInput);
|
|
|
|
|
DisableTextBox(PriceInput);
|
|
|
|
|
GebundenTypeFixed.IsEnabled = false;
|
|
|
|
|
GebundenTypeGraph.IsEnabled = false;
|
|
|
|
|
GebundenTypeNone.IsEnabled = false;
|
|
|
|
|
@@ -388,26 +397,23 @@ namespace Elwig.Windows {
|
|
|
|
|
OechslePricePlot.Plot.Legend.ManualItems.Clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OechsleInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
|
|
|
|
if (ActiveGraph == null || SelectedGraphEntry == null) {
|
|
|
|
|
private void UpdateSelectedPoint() {
|
|
|
|
|
if (ActiveGraph == null || SelectedGraphEntry == null)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool success = int.TryParse(OechsleInput.Text, out int oechsle);
|
|
|
|
|
|
|
|
|
|
SecondaryMarkedPoint = -1;
|
|
|
|
|
ChangeMarker(SecondaryMarkedPointPlot, false);
|
|
|
|
|
|
|
|
|
|
if (success) {
|
|
|
|
|
if (oechsle >= ActiveGraph.MinX && oechsle <= ActiveGraph.MaxX) {
|
|
|
|
|
PrimaryMarkedPoint = oechsle - ActiveGraph.MinX;
|
|
|
|
|
if (int.TryParse(OechsleInput.Text, out int oe)) {
|
|
|
|
|
if (oe >= ActiveGraph.MinX && oe <= ActiveGraph.MaxX) {
|
|
|
|
|
PrimaryMarkedPoint = oe - ActiveGraph.MinX;
|
|
|
|
|
ChangeMarker(PrimaryMarkedPointPlot, true, ActiveGraph.GetOechsleAt(PrimaryMarkedPoint), ActiveGraph.GetPriceAt(PrimaryMarkedPoint));
|
|
|
|
|
|
|
|
|
|
PriceInput.Text = Math.Round(ActiveGraph.GetPriceAt(PrimaryMarkedPoint), Season.Precision).ToString();
|
|
|
|
|
|
|
|
|
|
EnableActionButtons();
|
|
|
|
|
OechslePricePlot.Refresh();
|
|
|
|
|
EnableUnitTextBox(PriceInput);
|
|
|
|
|
EnableTextBox(PriceInput);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -416,9 +422,21 @@ namespace Elwig.Windows {
|
|
|
|
|
ChangeMarker(PrimaryMarkedPointPlot, false);
|
|
|
|
|
DisableActionButtons();
|
|
|
|
|
PriceInput.Text = "";
|
|
|
|
|
DisableUnitTextBox(PriceInput);
|
|
|
|
|
DisableTextBox(PriceInput);
|
|
|
|
|
OechslePricePlot.Refresh();
|
|
|
|
|
DisableUnitTextBox(PriceInput);
|
|
|
|
|
DisableTextBox(PriceInput);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OechsleInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
|
|
|
|
UpdateSelectedPoint();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void GebInput_Changed(object sender, RoutedEventArgs evt) {
|
|
|
|
|
if (Updating)
|
|
|
|
|
return;
|
|
|
|
|
var sel = GebInput.IsChecked == true ? SelectedGraphEntry?.GebundenGraph : SelectedGraphEntry?.DataGraph;
|
|
|
|
|
if (sel != ActiveGraph) ChangeActiveGraph(sel);
|
|
|
|
|
UpdateSelectedPoint();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void PriceInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
|
|
|
|
@@ -479,31 +497,34 @@ namespace Elwig.Windows {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OechslePricePlot_MouseDown(object sender, MouseEventArgs e) {
|
|
|
|
|
if (GraphList.SelectedItem == null) {
|
|
|
|
|
if (GraphList.SelectedItem == null)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (HoverActive) {
|
|
|
|
|
if (PaymentVar.TestVariant && Keyboard.IsKeyDown(System.Windows.Input.Key.LeftCtrl)) {
|
|
|
|
|
if (PrimaryMarkedPoint == -1 || ActiveGraph == null || ActiveGraph != Highlighted.Graph) {
|
|
|
|
|
if (SecondaryMarkedPoint == -1 || ActiveGraph == null || ActiveGraph != Highlighted.Graph)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
SecondaryMarkedPoint = Highlighted.Index;
|
|
|
|
|
|
|
|
|
|
ChangeMarker(SecondaryMarkedPointPlot, true, ActiveGraph.GetOechsleAt(SecondaryMarkedPoint), ActiveGraph.GetPriceAt(SecondaryMarkedPoint));
|
|
|
|
|
|
|
|
|
|
InterpolateButton.IsEnabled = true;
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Updating = true;
|
|
|
|
|
PrimaryMarkedPoint = Highlighted.Index;
|
|
|
|
|
if (ActiveGraph != Highlighted.Graph) ChangeActiveGraph(Highlighted.Graph);
|
|
|
|
|
if (ActiveGraph != Highlighted.Graph)
|
|
|
|
|
ChangeActiveGraph(Highlighted.Graph);
|
|
|
|
|
Updating = false;
|
|
|
|
|
if (PrimaryMarkedPoint == -1 || ActiveGraph == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
ChangeMarker(PrimaryMarkedPointPlot, true, ActiveGraph!.GetOechsleAt(PrimaryMarkedPoint), ActiveGraph.GetPriceAt(PrimaryMarkedPoint));
|
|
|
|
|
ChangeMarker(PrimaryMarkedPointPlot, true, ActiveGraph.GetOechsleAt(PrimaryMarkedPoint), ActiveGraph.GetPriceAt(PrimaryMarkedPoint));
|
|
|
|
|
|
|
|
|
|
Updating = true;
|
|
|
|
|
OechsleInput.Text = Highlighted.Graph!.GetOechsleAt(Highlighted.Index).ToString();
|
|
|
|
|
GebInput.IsChecked = Highlighted.Graph == SelectedGraphEntry?.GebundenGraph;
|
|
|
|
|
PriceInput.Text = Math.Round(Highlighted.Graph.GetPriceAt(Highlighted.Index), Season.Precision).ToString();
|
|
|
|
|
Updating = false;
|
|
|
|
|
|
|
|
|
|
EnableActionButtons();
|
|
|
|
|
} else {
|
|
|
|
|
@@ -516,8 +537,9 @@ namespace Elwig.Windows {
|
|
|
|
|
ChangeMarker(SecondaryMarkedPointPlot, false);
|
|
|
|
|
|
|
|
|
|
OechsleInput.Text = "";
|
|
|
|
|
GebInput.IsChecked = false;
|
|
|
|
|
PriceInput.Text = "";
|
|
|
|
|
DisableUnitTextBox(PriceInput);
|
|
|
|
|
DisableTextBox(PriceInput);
|
|
|
|
|
|
|
|
|
|
DisableActionButtons();
|
|
|
|
|
}
|
|
|
|
|
@@ -531,28 +553,39 @@ namespace Elwig.Windows {
|
|
|
|
|
MouseChange(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Coordinates GetMouseCoordinates(Point p) {
|
|
|
|
|
Pixel px = new(p.X, p.Y);
|
|
|
|
|
var source = PresentationSource.FromVisual(this);
|
|
|
|
|
if (source?.CompositionTarget != null) {
|
|
|
|
|
var matrix = source.CompositionTarget.TransformToDevice;
|
|
|
|
|
px.X *= (float)matrix.M11;
|
|
|
|
|
px.Y *= (float)matrix.M22;
|
|
|
|
|
}
|
|
|
|
|
return OechslePricePlot.Plot.GetCoordinates(px);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MouseChange(MouseEventArgs e) {
|
|
|
|
|
if (GraphList.SelectedItem == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
(double x, double y, int index)? mouseOnData = MouseOnPlot(DataPlot, e.GetPosition(OechslePricePlot));
|
|
|
|
|
(double x, double y, int index)? mouseOnGebunden = MouseOnPlot(GebundenPlot, e.GetPosition(OechslePricePlot));
|
|
|
|
|
var mouseOnData = MouseOnPlot(DataPlot, GetMouseCoordinates(e.GetPosition(OechslePricePlot)));
|
|
|
|
|
var mouseOnGebunden = MouseOnPlot(GebundenPlot, GetMouseCoordinates(e.GetPosition(OechslePricePlot)));
|
|
|
|
|
|
|
|
|
|
Highlighted = LastHighlighted;
|
|
|
|
|
|
|
|
|
|
if (mouseOnData != null) {
|
|
|
|
|
ChangeMarker(HighlightedPointPlot, true, mouseOnData.Value.x, mouseOnData.Value.y);
|
|
|
|
|
ChangeMarker(HighlightedPointPlot, true, mouseOnData.Value.X, mouseOnData.Value.Y);
|
|
|
|
|
HighlightedPointPlot.IsVisible = true;
|
|
|
|
|
HoverChanged = true ^ HoverActive;
|
|
|
|
|
HoverActive = true;
|
|
|
|
|
HandleTooltip(mouseOnData.Value.x, mouseOnData.Value.y, mouseOnData.Value.index, SelectedGraphEntry!.DataGraph, e.GetPosition(OechslePricePlot), e is MouseWheelEventArgs);
|
|
|
|
|
HandleTooltip(mouseOnData.Value.X, mouseOnData.Value.Y, mouseOnData.Value.Index, SelectedGraphEntry!.DataGraph, e.GetPosition(OechslePricePlot), e is MouseWheelEventArgs);
|
|
|
|
|
} else if (mouseOnGebunden != null) {
|
|
|
|
|
ChangeMarker(HighlightedPointPlot, true, mouseOnGebunden.Value.x, mouseOnGebunden.Value.y);
|
|
|
|
|
ChangeMarker(HighlightedPointPlot, true, mouseOnGebunden.Value.X, mouseOnGebunden.Value.Y);
|
|
|
|
|
HighlightedPointPlot.IsVisible = true;
|
|
|
|
|
HoverChanged = true ^ HoverActive;
|
|
|
|
|
HoverActive = true;
|
|
|
|
|
HandleTooltip(mouseOnGebunden.Value.x, mouseOnGebunden.Value.y, mouseOnGebunden.Value.index, SelectedGraphEntry!.GebundenGraph!, e.GetPosition(OechslePricePlot), e is MouseWheelEventArgs);
|
|
|
|
|
HandleTooltip(mouseOnGebunden.Value.X, mouseOnGebunden.Value.Y, mouseOnGebunden.Value.Index, SelectedGraphEntry!.GebundenGraph!, e.GetPosition(OechslePricePlot), e is MouseWheelEventArgs);
|
|
|
|
|
} else {
|
|
|
|
|
ChangeMarker(HighlightedPointPlot, false);
|
|
|
|
|
HoverChanged = false ^ HoverActive;
|
|
|
|
|
@@ -562,30 +595,20 @@ namespace Elwig.Windows {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private (double, double, int)? MouseOnPlot(Scatter? plot, Point p) {
|
|
|
|
|
if (plot == null) {
|
|
|
|
|
private (double X, double Y, int Index)? MouseOnPlot(Scatter? plot, Coordinates c) {
|
|
|
|
|
if (plot == null)
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
OechslePricePlot.Refresh();
|
|
|
|
|
Pixel mousePixel = new(p.X, p.Y);
|
|
|
|
|
Coordinates mouseLocation = OechslePricePlot.Plot.GetCoordinates(mousePixel);
|
|
|
|
|
DataPoint nearestPoint = plot.Data.GetNearest(mouseLocation, OechslePricePlot.Plot.LastRender, 3);
|
|
|
|
|
|
|
|
|
|
if (nearestPoint.IsReal) {
|
|
|
|
|
return (nearestPoint.X, nearestPoint.Y, nearestPoint.Index);
|
|
|
|
|
} else {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
DataPoint nearestPoint = plot.Data.GetNearest(c, OechslePricePlot.Plot.LastRender, 5);
|
|
|
|
|
return nearestPoint.IsReal ? (nearestPoint.X, nearestPoint.Y, nearestPoint.Index) : null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void HandleTooltip(double pointX, double pointY, int pointIndex, Graph g, Point p, bool force) {
|
|
|
|
|
if (force || LastHighlighted != Highlighted || HoverChanged) {
|
|
|
|
|
OechslePricePlot.Plot.PlottableList.Remove(TooltipPlot);
|
|
|
|
|
if (TooltipInput.IsChecked == true) {
|
|
|
|
|
Pixel mousePixel = new(p.X, p.Y - 30);
|
|
|
|
|
Coordinates mouseLocation = OechslePricePlot.Plot.GetCoordinates(mousePixel);
|
|
|
|
|
TooltipPlot = OechslePricePlot.Plot.Add.Text($"Oechsle: {pointX:N2}, Preis: {Math.Round(pointY, Season.Precision)}€/kg", mouseLocation.X, mouseLocation.Y);
|
|
|
|
|
Coordinates mouseLocation = GetMouseCoordinates(new(p.X, p.Y - 30));
|
|
|
|
|
TooltipPlot = OechslePricePlot.Plot.Add.Text($"Oechsle: {pointX:N2}, Preis: {Math.Round(pointY, Season.Precision)} {CurrencySymbol}/kg", mouseLocation.X, mouseLocation.Y);
|
|
|
|
|
TooltipPlot.LabelFontSize = 12;
|
|
|
|
|
TooltipPlot.LabelBold = true;
|
|
|
|
|
TooltipPlot.LabelBorderColor = Colors.Black;
|
|
|
|
|
@@ -658,31 +681,37 @@ namespace Elwig.Windows {
|
|
|
|
|
SetHasChanged(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void EnableUnitTextBox(UnitTextBox u) {
|
|
|
|
|
if (PaymentVar.TestVariant) {
|
|
|
|
|
private void EnableTextBox(TextBox u) {
|
|
|
|
|
if (PaymentVar.TestVariant || u == OechsleInput) {
|
|
|
|
|
u.IsEnabled = true;
|
|
|
|
|
u.IsReadOnly = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void DisableUnitTextBox(UnitTextBox u) {
|
|
|
|
|
private void DisableTextBox(TextBox u) {
|
|
|
|
|
u.IsEnabled = false;
|
|
|
|
|
u.IsReadOnly = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ChangeActiveGraph(Graph? g) {
|
|
|
|
|
if (g != null && g == SelectedGraphEntry?.DataGraph) {
|
|
|
|
|
EnableUnitTextBox(OechsleInput);
|
|
|
|
|
EnableTextBox(OechsleInput);
|
|
|
|
|
if (SelectedGraphEntry?.GebundenGraph != null) ChangeLineWidth(DataPlot, 4);
|
|
|
|
|
ChangeLineWidth(GebundenPlot, 1);
|
|
|
|
|
GebInput.IsEnabled = SelectedGraphEntry?.GebundenGraph != null;
|
|
|
|
|
GebInput.IsChecked = false;
|
|
|
|
|
} else if (g != null && g == SelectedGraphEntry?.GebundenGraph) {
|
|
|
|
|
EnableUnitTextBox(OechsleInput);
|
|
|
|
|
EnableTextBox(OechsleInput);
|
|
|
|
|
ChangeLineWidth(GebundenPlot, 4);
|
|
|
|
|
ChangeLineWidth(DataPlot, 1);
|
|
|
|
|
GebInput.IsEnabled = SelectedGraphEntry?.GebundenGraph != null;
|
|
|
|
|
GebInput.IsChecked = true;
|
|
|
|
|
} else {
|
|
|
|
|
DisableUnitTextBox(OechsleInput);
|
|
|
|
|
DisableUnitTextBox(PriceInput);
|
|
|
|
|
DisableTextBox(OechsleInput);
|
|
|
|
|
DisableTextBox(PriceInput);
|
|
|
|
|
OechsleInput.Text = "";
|
|
|
|
|
GebInput.IsEnabled = false;
|
|
|
|
|
GebInput.IsChecked = false;
|
|
|
|
|
PriceInput.Text = "";
|
|
|
|
|
ChangeLineWidth(DataPlot, 1);
|
|
|
|
|
ChangeLineWidth(GebundenPlot, 1);
|
|
|
|
|
@@ -700,14 +729,6 @@ namespace Elwig.Windows {
|
|
|
|
|
RefreshInputs();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void PriceInput_LostFocus(object sender, RoutedEventArgs e) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OechsleInput_LostFocus(object sender, RoutedEventArgs e) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void GebundenFlatBonus_TextChanged(object sender, TextChangedEventArgs e) {
|
|
|
|
|
if (FillingInputs) return;
|
|
|
|
|
var r = Validator.CheckDecimal(GebundenFlatBonus, true, 2, Season.Precision);
|
|
|
|
|
@@ -778,19 +799,19 @@ namespace Elwig.Windows {
|
|
|
|
|
private void GebundenType_Checked(object sender, RoutedEventArgs e) {
|
|
|
|
|
if (FillingInputs) return;
|
|
|
|
|
if (SelectedGraphEntry == null) {
|
|
|
|
|
DisableUnitTextBox(GebundenFlatBonus);
|
|
|
|
|
DisableTextBox(GebundenFlatBonus);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (GebundenTypeNone.IsChecked == true) {
|
|
|
|
|
SelectedGraphEntry.RemoveGebundenGraph();
|
|
|
|
|
DisableUnitTextBox(GebundenFlatBonus);
|
|
|
|
|
DisableTextBox(GebundenFlatBonus);
|
|
|
|
|
} else if (GebundenTypeFixed.IsChecked == true) {
|
|
|
|
|
SelectedGraphEntry.GebundenFlatBonus = double.TryParse(GebundenFlatBonus.Text, out var val) ? val : 0.1;
|
|
|
|
|
SelectedGraphEntry.AddGebundenGraph();
|
|
|
|
|
EnableUnitTextBox(GebundenFlatBonus);
|
|
|
|
|
EnableTextBox(GebundenFlatBonus);
|
|
|
|
|
} else if (GebundenTypeGraph.IsChecked == true) {
|
|
|
|
|
SelectedGraphEntry.AddGebundenGraph();
|
|
|
|
|
DisableUnitTextBox(GebundenFlatBonus);
|
|
|
|
|
DisableTextBox(GebundenFlatBonus);
|
|
|
|
|
}
|
|
|
|
|
SetHasChanged();
|
|
|
|
|
RefreshInputs();
|
|
|
|
|
@@ -801,11 +822,11 @@ namespace Elwig.Windows {
|
|
|
|
|
if (SelectedGraphEntry?.GebundenFlatBonus is double bonus) {
|
|
|
|
|
GebundenTypeFixed.IsChecked = true;
|
|
|
|
|
GebundenFlatBonus.Text = $"{bonus}";
|
|
|
|
|
EnableUnitTextBox(GebundenFlatBonus);
|
|
|
|
|
EnableTextBox(GebundenFlatBonus);
|
|
|
|
|
} else if (SelectedGraphEntry?.GebundenGraph != null) {
|
|
|
|
|
GebundenTypeGraph.IsChecked = true;
|
|
|
|
|
GebundenFlatBonus.Text = "";
|
|
|
|
|
DisableUnitTextBox(GebundenFlatBonus);
|
|
|
|
|
DisableTextBox(GebundenFlatBonus);
|
|
|
|
|
}
|
|
|
|
|
FillingInputs = false;
|
|
|
|
|
}
|
|
|
|
|
|