Implemented flat editing logic.

This commit is contained in:
Tobias Erbshäußer
2020-06-11 10:30:45 +02:00
parent 7274b9b6b2
commit 9a4589f864
12 changed files with 140 additions and 24 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ using System;
// ReSharper disable MemberCanBeProtected.Global // ReSharper disable MemberCanBeProtected.Global
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
namespace ucalc.Annotations namespace UCalc.Annotations
{ {
/// <summary> /// <summary>
/// Indicates that the value of the marked element could be <c>null</c> sometimes, /// Indicates that the value of the marked element could be <c>null</c> sometimes,
+1
View File
@@ -48,6 +48,7 @@ namespace UCalc
{ {
var page = (HousePage) ((Frame) sender).Content; var page = (HousePage) ((Frame) sender).Content;
page.Model = Model.HouseModel; page.Model = Model.HouseModel;
page.ParentWindow = this;
} }
} }
} }
+1 -1
View File
@@ -4,7 +4,7 @@ using System.ComponentModel;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Windows; using System.Windows;
using System.Windows.Data; using System.Windows.Data;
using ucalc.Annotations; using UCalc.Annotations;
namespace UCalc.Controls namespace UCalc.Controls
{ {
+1 -1
View File
@@ -7,7 +7,7 @@
xmlns:controls="clr-namespace:UCalc.Controls" xmlns:controls="clr-namespace:UCalc.Controls"
mc:Ignorable="d"> mc:Ignorable="d">
<Grid Margin="10, 0, 5, 0"> <Grid Margin="10, 0, 10, 0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" /> <ColumnDefinition Width="auto" />
+74
View File
@@ -0,0 +1,74 @@
<Window x:Class="UCalc.FlatWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:UCalc"
xmlns:controls="clr-namespace:UCalc.Controls"
mc:Ignorable="d"
Title="Wohnung bearbeiten"
Width="500"
SizeToContent="Height"
MinWidth="400"
MinHeight="190"
WindowStartupLocation="CenterOwner"
ShowInTaskbar="False">
<DockPanel>
<StackPanel DockPanel.Dock="Bottom">
<Separator Margin="0, 12, 0, 0"
Background="{x:Static local:Constants.SubMainColor}"/>
<DockPanel LastChildFill="False">
<Button DockPanel.Dock="Right"
MinWidth="100"
MinHeight="24"
Margin="12"
Content="OK"
Click="OnOkClick"/>
</DockPanel>
</StackPanel>
<ScrollViewer HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto">
<StackPanel>
<controls:SectionHeader Header="Allgemeine Informationen" />
<DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left"
Content="Name:"
Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0"
DockPanel.Dock="Right"
VerticalAlignment="Center"
Errors="{Binding Path=Model.Name.Errors, RelativeSource={RelativeSource AncestorType=local:FlatWindow}}" />
<TextBox
VerticalAlignment="Center"
MinHeight="22"
Text="{Binding Path=Model.Name.Value, RelativeSource={RelativeSource AncestorType=local:FlatWindow}, UpdateSourceTrigger=PropertyChanged}" />
</DockPanel>
<DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left"
Content="Größe in m²:"
Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0"
DockPanel.Dock="Right"
VerticalAlignment="Center"
Errors="{Binding Path=Model.Size.Errors, RelativeSource={RelativeSource AncestorType=local:FlatWindow}}" />
<TextBox
VerticalAlignment="Center"
MinHeight="22"
Text="{Binding Path=Model.Size.Value, RelativeSource={RelativeSource AncestorType=local:FlatWindow}, UpdateSourceTrigger=PropertyChanged}" />
</DockPanel>
</StackPanel>
</ScrollViewer>
</DockPanel>
</Window>
+21
View File
@@ -0,0 +1,21 @@
using System.Windows;
using UCalc.Models;
namespace UCalc
{
public partial class FlatWindow
{
public FlatModel Model { get; }
public FlatWindow(FlatModel model)
{
Model = model;
InitializeComponent();
}
private void OnOkClick(object sender, RoutedEventArgs e)
{
Close();
}
}
}
+3 -1
View File
@@ -4,7 +4,7 @@ using System.Collections.ObjectModel;
using System.ComponentModel; using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using ucalc.Annotations; using UCalc.Annotations;
namespace UCalc.Models namespace UCalc.Models
{ {
@@ -133,6 +133,8 @@ namespace UCalc.Models
_modified = true; _modified = true;
_value = value; _value = value;
OnPropertyChanged("Value");
} }
} }
+4 -1
View File
@@ -12,6 +12,8 @@
WindowStartupLocation="CenterOwner" WindowStartupLocation="CenterOwner"
PreviewMouseUp="OnPreviewMouseUp"> PreviewMouseUp="OnPreviewMouseUp">
<!-- TODO: Wrap in scroll to handle small screens! -->
<StackPanel Margin="12"> <StackPanel Margin="12">
<Label Content="Geben Sie den Zeitraum ein, für den die neue Abrechnung gelten soll." <Label Content="Geben Sie den Zeitraum ein, für den die neue Abrechnung gelten soll."
@@ -67,7 +69,8 @@
</ComboBox> </ComboBox>
</DockPanel> </DockPanel>
<Separator Margin="0, 0, 0, 12" /> <Separator Margin="0, 0, 0, 12"
Background="{x:Static local:Constants.SubMainColor}" />
<DockPanel LastChildFill="False"> <DockPanel LastChildFill="False">
<Button DockPanel.Dock="Right" <Button DockPanel.Dock="Right"
+6 -5
View File
@@ -16,7 +16,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Straße:" Content="Straße:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -33,7 +33,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Hausnummer:" Content="Hausnummer:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -50,7 +50,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Stadt:" Content="Stadt:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -67,7 +67,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="PLZ:" Content="PLZ:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -140,7 +140,8 @@
</controls:HighlightButton> </controls:HighlightButton>
<controls:HighlightButton HighlightForeground="{x:Static local:Constants.SubMainColor}" <controls:HighlightButton HighlightForeground="{x:Static local:Constants.SubMainColor}"
HighlightBackground="{x:Static local:Constants.MainColor}"> HighlightBackground="{x:Static local:Constants.MainColor}"
Click="OnFlatEditClick">
<controls:ErrorIcon Errors="{Binding Errors}" <controls:ErrorIcon Errors="{Binding Errors}"
DockPanel.Dock="Left" DockPanel.Dock="Left"
+8
View File
@@ -6,6 +6,7 @@ namespace UCalc.Pages
{ {
public partial class HousePage public partial class HousePage
{ {
public Window ParentWindow { get; set; }
public HouseModel Model { get; set; } public HouseModel Model { get; set; }
public HousePage() public HousePage()
@@ -28,5 +29,12 @@ namespace UCalc.Pages
Model.RemoveFlat(flatModel); Model.RemoveFlat(flatModel);
} }
} }
private void OnFlatEditClick(object sender, RoutedEventArgs e)
{
var flatModel = (FlatModel) ((HighlightButton) sender).DataContext;
new FlatWindow(flatModel) {Owner = ParentWindow}.ShowDialog();
}
} }
} }
+11 -11
View File
@@ -16,7 +16,7 @@
<DockPanel Margin="12, 12, 12, 0"> <DockPanel Margin="12, 12, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Anrede:" Content="Anrede:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<ComboBox Margin="0, 0, 28, 0" /> <!-- TODO --> <ComboBox Margin="0, 0, 28, 0" /> <!-- TODO -->
@@ -25,7 +25,7 @@
<DockPanel Margin="12, 12, 12, 0"> <DockPanel Margin="12, 12, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Name:" Content="Name:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -42,7 +42,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Telefonnummer:" Content="Telefonnummer:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -59,7 +59,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Email Adresse:" Content="Email Adresse:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -79,7 +79,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Straße:" Content="Straße:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -96,7 +96,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Hausnummer:" Content="Hausnummer:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -113,7 +113,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Stadt:" Content="Stadt:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -130,7 +130,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="PLZ:" Content="PLZ:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -150,7 +150,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="IBAN:" Content="IBAN:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -167,7 +167,7 @@
<DockPanel Margin="12, 8, 12, 0"> <DockPanel Margin="12, 8, 12, 0">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="BIC:" Content="BIC:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
@@ -184,7 +184,7 @@
<DockPanel Margin="12, 8, 12, 12"> <DockPanel Margin="12, 8, 12, 12">
<Label DockPanel.Dock="Left" <Label DockPanel.Dock="Left"
Content="Name der Bank:" Content="Name der Bank:"
Width="200" Width="180"
Foreground="{x:Static local:Constants.SubMainColor}" /> Foreground="{x:Static local:Constants.SubMainColor}" />
<controls:ErrorIcon Margin="12, 0, 0, 0" <controls:ErrorIcon Margin="12, 0, 0, 0"
+6
View File
@@ -37,6 +37,9 @@
<Page Update="Controls\SectionHeader.xaml"> <Page Update="Controls\SectionHeader.xaml">
<Generator></Generator> <Generator></Generator>
</Page> </Page>
<Page Update="FlatWindow.xaml">
<Generator></Generator>
</Page>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -70,6 +73,9 @@
<Compile Update="Controls\SectionHeader.xaml.cs"> <Compile Update="Controls\SectionHeader.xaml.cs">
<DependentUpon>SectionHeader.xaml</DependentUpon> <DependentUpon>SectionHeader.xaml</DependentUpon>
</Compile> </Compile>
<Compile Update="FlatWindow.xaml.cs">
<DependentUpon>FlatWindow.xaml</DependentUpon>
</Compile>
</ItemGroup> </ItemGroup>
</Project> </Project>