Files
BeWoPlaner/BeWo/View/Detail/AbsenceTimesView.xaml

122 lines
9.3 KiB
XML

<UserControl x:Class="BeWo.View.Detail.AbsenceTimesView"
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:conv="clr-namespace:BeWo.Converter"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
mc:Ignorable="d"
x:Name="AbsenceTimeViewUserControl"
d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignData Type=AbsenceTimesView}">
<UserControl.Resources>
<conv:BoolVisibilityHiddenConverter x:Key="BoolVisibilityHiddenConverter" />
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.Row="1" Grid.Column="0" x:Name="GroupBoxNewAbsenceTime" Grid.ColumnSpan="2" Header="Abwesenheit hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0">Startdatum</Label>
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="{Binding AbsenceTimes.NewVM.DateEditColumnSpan, UpdateSourceTrigger=PropertyChanged}" Height="23" Margin="3" EditValue="{Binding Path=AbsenceTimes.NewVM.Start, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" AllowNullInput="False" />
<dxe:TextEdit Grid.Column="2" Grid.Row="0" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="StartTimeTextEdit"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
Height="23" Visibility="{Binding Path=AbsenceTimes.NewVM.IsAllDay, Converter={StaticResource BoolVisibilityHiddenConverter}, ConverterParameter=false, UpdateSourceTrigger=PropertyChanged}" ValidateOnEnterKeyPressed="True" ValidateOnTextInput="True"
Margin="3" EditValue="{Binding Path=AbsenceTimes.NewVM.StartTime, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" ToolTipService.Placement="Mouse" />
<Label Grid.Column="3" Grid.Row="0">Enddatum</Label>
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="4" Grid.Row="0" Height="23" Margin="3" Grid.ColumnSpan="{Binding AbsenceTimes.NewVM.DateEditColumnSpan, UpdateSourceTrigger=PropertyChanged}" EditValue="{Binding Path=AbsenceTimes.NewVM.End, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" AllowNullInput="True" />
<dxe:TextEdit Grid.Column="5" Grid.Row="0" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="EndTimeTextEdit"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
Height="23" Visibility="{Binding Path=AbsenceTimes.NewVM.IsAllDay, Converter={StaticResource BoolVisibilityHiddenConverter}, ConverterParameter=false, UpdateSourceTrigger=PropertyChanged}" ValidateOnEnterKeyPressed="True" ValidateOnTextInput="True"
Margin="3" EditValue="{Binding Path=AbsenceTimes.NewVM.EndTime, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" ToolTipService.Placement="Mouse" />
<CheckBox Grid.Row="0" Grid.Column="6" Margin="3" VerticalContentAlignment="Center" Foreground="Black" IsChecked="{Binding Path=AbsenceTimes.NewVM.IsAllDay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center">Ganztägig</CheckBox>
<Label Grid.Column="0" Grid.Row="1">Kategorie</Label>
<controls:NullItemComboBox Name="ComboBoxReasons" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" Height="23" Margin="3" ItemsSource="{Binding Path=AbsenceTimes.PossibleReasons}" SelectedItem="{validation:ValidationBinding Path=AbsenceTimes.NewVM.Reason}">
<ComboBox.ItemContainerStyle>
<Style>
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
</Style>
</ComboBox.ItemContainerStyle>
</controls:NullItemComboBox>
<Label Grid.Column="3" Grid.Row="1">Erläuterung</Label>
<TextBox Grid.Column="4" Grid.ColumnSpan="3" Grid.Row="1" Height="23" Margin="3" Text="{Binding Path=AbsenceTimes.NewVM.Notice, UpdateSourceTrigger=PropertyChanged}" />
<Button Grid.Row="2" Grid.ColumnSpan="7" Grid.Column="0" Command="{Binding AddAbsenceTimesCommand}" HorizontalAlignment="Right" Margin="1,10,0,3" Style="{DynamicResource {x:Type Button}}" Content="Abwesenheit hinzufügen" />
</Grid>
</GroupBox>
<GroupBox x:Name="GroupBoxAbsenceTimes" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Header="Erfasste Abwesenheiten" Style="{DynamicResource ObjectEditGroupBox}">
<dxg:GridControl VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="1" ItemsSource="{Binding Path=AbsenceTimes.VMList}" HorizontalAlignment="Stretch" x:Name="DataGridAbsenceTimes">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" Command="{Binding RemoveAbsenceTimeCommand, ElementName=AbsenceTimeViewUserControl}" FontFamily="Webdings" Width="18" Height="18" VerticalAlignment="Center" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Start" Header="Startdatum" AllowBestFit="True" SortOrder="Ascending">
<dxg:GridColumn.EditSettings>
<dxe:DateEditSettings DisplayFormat="d" AllowNullInput="False" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="StartTime" Header="Startzeit" AllowBestFit="True" BestFitMode="Smart">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True" ValidateOnEnterKeyPressed="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="End" Header="Enddatum" AllowBestFit="True">
<dxg:GridColumn.EditSettings>
<dxe:DateSettings AllowNullInput="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="EndTime" Header="Endzeit" AllowBestFit="True" BestFitMode="Smart">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True" ValidateOnEnterKeyPressed="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Reason" Header="Kategorie" AllowBestFit="True" />
<dxg:GridColumn FieldName="Notice" Header="Erläuterung" AllowBestFit="True" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" AllowBestFit="True" BestFitMode="Smart" />
</dxg:GridControl.View>
</dxg:GridControl>
</GroupBox>
</Grid>
</UserControl>