Files
BeWoPlaner/BeWo/View/StundenplanView.xaml
2019-09-27 15:55:01 +02:00

226 lines
20 KiB
XML

<localView:BeWoView x:Class="BeWo.View.StundenplanView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:controls1="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
xmlns:controls="clr-namespace:BeWo.View.Controls"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
xmlns:search="clr-namespace:BeWo.View.Search"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
VerticalAlignment="Stretch" Focusable="True" d:DataContext="{d:DesignData ArbeitszeitVM}">
<localView:BeWoView.Resources>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="AppointmentDayOfWeeks">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="shared:AppointmentDayOfWeek" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</localView:BeWoView.Resources>
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox x:Name="GroupHeader" Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical" Grid.RowSpan="2">
<Button Content="{markup:Translate Neuen Zeitraum hinzufügen}" Margin="3" HorizontalAlignment="Left" IsEnabled="True" Click="ButtonOpenAndAddArbeitszeitClick" />
<TabControl x:Name="tabcontrol_Arbeitszeit" Margin="5" ItemsSource="{Binding VMList, UpdateSourceTrigger=PropertyChanged}">
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding ArbeitszeitString}" />
<Button VerticalAlignment="Center" Height="20" Visibility="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Converter={StaticResource BoolVisibilityConverter}}"
Click="btn_deleteArbeitszeit_Click" Name="btn_deleteContract" ToolTip="{markup:Translate Plan löschen}" Style="{DynamicResource CloseButtonStyle}" Margin="0" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox Margin="5" Style="{DynamicResource ObjectEditGroupBox}" x:Name="ArbeitszeiteintragsContainer">
<GroupBox.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="23" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Text="Details" Margin="0 1" Grid.Row="1" Name="Details" VerticalAlignment="Bottom" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" />
<Grid Margin="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Margin="0,3,3,3" VerticalAlignment="Center">Gültig von</Label>
<Label Grid.Column="2" Grid.Row="0" Margin="3" VerticalAlignment="Center">Gültig bis</Label>
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" AllowNullInput="True" Grid.Column="1" Grid.Row="0" Margin="3" Width="125" Height="23" EditValue="{Binding Path=GueltigVon, UpdateSourceTrigger=PropertyChanged}" />
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" AllowNullInput="True" Grid.Column="3" Grid.Row="0" Margin="3" Width="125" Height="23" EditValue="{Binding Path=GueltigBis, UpdateSourceTrigger=PropertyChanged}" />
<Button Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Content="{markup:Translate Neuen Eintrag hinzufügen}" HorizontalAlignment="Left" Click="AddArbeitszeitToView_Click" Height="23" Margin="0,10,0,0" />
<controls:PopupNonTopmost Name="popup_newArbeitszeitEintrag" Placement="MousePoint" StaysOpen="True">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox Name="groupbox_newArbeistzeit" Header="Neuen Eintrag hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Tag</Label>
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center" Content="{markup:Translate Mitarbeiter/in}"/>
<Label Grid.Column="0" Grid.Row="2" Margin="3" VerticalAlignment="Center">Uhrzeit von</Label>
<Label Grid.Column="0" Grid.Row="3" Margin="3" VerticalAlignment="Center">Uhrzeit bis</Label>
<Label Grid.Column="0" Grid.Row="4" Margin="3" VerticalAlignment="Top">Bemerkungen</Label>
<controls1:PopUpEdit Cursor="Arrow"
IsReadOnly="True"
x:Name="popupedit_MitarbeiterSearch" Grid.Column="1" Margin="3" Height="23"
Grid.Row="1" DeleteButtonVisibility="Collapsed"
PopUpClick="Popupedit_MitarbeiterSearch_OnPopUpClick" />
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="0" VerticalContentAlignment="Center" Margin="3" Height="23" ItemsSource="{Binding Source={StaticResource AppointmentDayOfWeeks}}"
EditValue="{validation:ValidationBinding Path=ArbeitszeitEintraege.NewVM.Tag, UpdateSourceTrigger=PropertyChanged}"
Name="Tag" IsTextEditable="False"/>
<dxe:TextEdit Grid.Column="1" Grid.Row="2" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" Name="UhrzeitVon"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
EditValue="{validation:ValidationBinding Path=ArbeitszeitEintraege.NewVM.UhrzeitVon, UpdateSourceTrigger=PropertyChanged}"
Height="23"
Margin="3,3,3,3"/>
<dxe:TextEdit Grid.Column="1" Grid.Row="3" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" Name="UhrzeitBis"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
EditValue="{validation:ValidationBinding Path=ArbeitszeitEintraege.NewVM.UhrzeitBis, UpdateSourceTrigger=PropertyChanged}"
Height="23"
Margin="3,3,3,3"/>
<dxe:TextEdit Grid.Column="1" Grid.Row="4" Grid.RowSpan="2" Name="Notiz" Margin="3,3,3,3" TextWrapping="Wrap" AcceptsReturn="True" Width="250" Height="125" VerticalContentAlignment="Top" VerticalScrollBarVisibility="Auto"
EditValue="{validation:ValidationBinding Path=ArbeitszeitEintraege.NewVM.Notice, UpdateSourceTrigger=PropertyChanged}"/>
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="6" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Click="PopupNewArbeitszeit_Click" Content="Hinzufügen" Height="25"
FontWeight="Normal" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Right" />
<Button HorizontalAlignment="Right" VerticalAlignment="Center" Height="25"
Margin="3" Content="Abbrechen" Click="PopupArbeitszeitClose_Click" />
</StackPanel>
</Grid>
</GroupBox>
</Border>
</controls:PopupNonTopmost>
</Grid>
</Grid>
</GroupBox.Header>
<dxg:GridControl Name="grid_Arbeitszeiten" Tag="{Binding}" ItemsSource="{Binding Path=ArbeitszeitEintraege.VMList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" CustomColumnSort="GridControl_OnCustomColumnSort">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="x" Header="">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" FontFamily="Webdings" Click="RemoveArbeitszeit_OnClick" Width="18" Height="18" VerticalAlignment="Center" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn Header="Tag" FieldName="Tag" SortOrder="Ascending" SortMode="Custom">
<dxg:GridColumn.EditSettings>
<dxe:ComboBoxEditSettings ItemsSource="{Binding Source={StaticResource AppointmentDayOfWeeks}}" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="Uhrzeit von" FieldName="UhrzeitVon" >
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="Uhrzeit bis" FieldName="UhrzeitBis">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="{markup:Translate Mitarbeiter/in}" FieldName="Employee" ReadOnly="True">
<dxg:GridColumn.EditTemplate>
<ControlTemplate>
<controls1:PopUpEdit Cursor="Arrow" IsReadOnly="True" x:Name="popupedit_MitarbeiterColumn" Margin="3" Height="23" DeleteButtonVisibility="Visible"
Text="{Binding RowData.Row.Employee, Mode=OneWay}" DeleteClick="Popupedit_MitarbeiterColumn_OnDeleteClick" PopUpClick="Popupedit_MitarbeiterColumn_OnPopUpClick" />
</ControlTemplate>
</dxg:GridColumn.EditTemplate>
</dxg:GridColumn>
<dxg:GridColumn Header="Bemerkungen" FieldName="Notice" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView NavigationStyle="Cell" Margin="2,2,2,2" AllowBestFit="True" BestFitMode="AllRows" AutoWidth="True" ShowGroupPanel="False" ShowGroupedColumns="False" ShowTotalSummary="False" HorizontalContentAlignment="Left" ShowingEditor="GridViewBase_OnShowingEditor" />
</dxg:GridControl.View>
</dxg:GridControl>
</GroupBox>
</Grid>
</ScrollViewer>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</StackPanel>
</Grid>
</GroupBox>
</Grid>
<Popup Margin="10" x:Name="popup_Mitarbeiter" StaysOpen="False" Placement="MousePoint" Width="370" Height="250" Closed="popup_Closed" Opened="popup_Opened">
<search:EmployeeSearchView ItemSelected="EmployeeSearchView_ItemSelected" x:Name="MitarbeiterSearchView" />
</Popup>
<Popup Margin="10" x:Name="popup_MitarbeiterColumn" StaysOpen="False" Placement="MousePoint" Width="370" Height="250" Closed="popup_Closed" Opened="popup_Opened">
<search:EmployeeSearchView ItemSelected="EmployeeSearchViewColumn_ItemSelected" x:Name="MitarbeiterSearchViewColumn" />
</Popup>
</Grid>
</localView:BeWoView>