Files
BeWoPlaner/BeWo/Scheduling/View/SchedulingView.xaml
2025-05-07 09:52:40 +02:00

1610 lines
104 KiB
XML

<localView:BeWoView
x:Class="BeWo.Scheduling.View.SchedulingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:BeWo.Scheduling.Converter"
xmlns:converter1="clr-namespace:BeWo.Scheduler.Converter"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduling"
xmlns:dxschv="http://schemas.devexpress.com/winfx/2008/xaml/scheduling/visual"
xmlns:local="clr-namespace:BeWo.Scheduling.View"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:schedulingUtils="clr-namespace:BeWo.Scheduling.SchedulingUtils"
xmlns:view="clr-namespace:BeWo.Scheduler.View"
xmlns:viewModel="clr-namespace:BeWo.Scheduling.ViewModel"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="true"
mc:Ignorable="d">
<localView:BeWoView.Resources>
<ResourceDictionary>
<converter:SchedulingCheckBoxConverter x:Key="CheckBoxConverter" />
<converter1:NewCalendarBackgroundConverter x:Key="NewCalendarBackgroundConverter" />
<view:TextFromIDataContractConverter x:Key="TextFromIDataContractConverter" />
<converter:WidthAdditionMultiConverter x:Key="WidthAdditionMultiConverter" />
<converter:EmployeeBackgroundColorConverter x:Key="EmployeeBackgroundColorConverter" />
<converter:DayViewDayCountVisibilityConverter x:Key="DayViewDayCountVisibilityConverter" />
<converter:EmployeeListConfirmationToolTipConverter x:Key="EmployeeListConfirmationToolTipConverter" />
<converter:InfoButtonVisibilityConverter x:Key="InfoButtonVisibilityConverter" />
<converter:AppointmentBorderThicknessConverter x:Key="AppointmentBorderThicknessConverter" />
<Style x:Key="MultiElementSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border
MinHeight="25"
Background="{Binding Converter={StaticResource NewCalendarBackgroundConverter}}"
CornerRadius="5" />
<Border
x:Name="ItemBorder"
MinHeight="25"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border
x:Name="ItemContent"
MinHeight="25"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Column="0"
Margin="3,0,0,0"
VerticalAlignment="Center"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Converter={StaticResource TextFromIDataContractConverter}}" />
<Border
Grid.Column="1"
Width="15"
Height="15"
Background="{Binding Path=FilterableBrush}"
CornerRadius="3" />
<Button
x:Name="RemoveElementButton"
Grid.RowSpan="2"
Grid.Column="2"
Width="20"
Height="20"
Margin="3,0,0,0"
Click="RemoveElementButton_OnClick"
Style="{DynamicResource CloseButtonStyle}"
Tag="{Binding}"
ToolTip="Element aus der Liste entfernen" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MitarbeiterTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Margin="0">
<ContentPresenter
x:Name="ContentSite"
Margin="12,2,12,2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ContentSource="Header"
RecognizesAccessKey="True" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource EmployeeContentBrush}" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource EmployeeContentBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="KlientenTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Margin="0">
<ContentPresenter
x:Name="ContentSite"
Margin="12,2,12,2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ContentSource="Header"
RecognizesAccessKey="True" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource CustomerContentBrush}" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource CustomerContentBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="RessourcenTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Margin="0">
<ContentPresenter
x:Name="ContentSite"
Margin="12,2,12,2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ContentSource="Header"
RecognizesAccessKey="True" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource ResourceContentBrush}" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource ResourceContentBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="dxschv:DayAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:MonthAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:AgendaAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:TimelineAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:AllDayAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:AppointmentHorizontalControl">
<Setter Property="Padding" Value="0" />
</Style>
<DataTemplate x:Key="VerticalAppointmentControl.ContentTemplate">
<Border
BorderBrush="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush}"
BorderThickness="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush, Converter={StaticResource AppointmentBorderThicknessConverter}}"
CornerRadius="2">
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
</Grid.ColumnDefinitions>
<!-- Mitarbeiterfarbe -->
<Border Grid.Column="0">
<Border.Background>
<MultiBinding Converter="{StaticResource EmployeeBackgroundColorConverter}" Mode="OneWay">
<Binding
Mode="OneWay"
Path="DataContext.IsEmployeeBrushVisible"
RelativeSource="{RelativeSource FindAncestor,
AncestorType={x:Type localView:BeWoView}}"
UpdateSourceTrigger="PropertyChanged" />
<Binding Path="Appointment.CustomFields[VMForCustomField].AppointmentColors.EmployeeBackground" />
<Binding Path="Appointment.CustomFields[VMForCustomField].BackgroundColor" />
</MultiBinding>
</Border.Background>
</Border>
<!-- /Mitarbeiterfarbe -->
<!-- Hauptteil mit Betreff und (Ort) -->
<dxschv:AppointmentContentPanel Grid.Column="1" Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}">
<dxschv:AppointmentContentPanel.IntervalSubject>
<TextBlock
Margin="3,3,0,0"
FontWeight="Normal"
Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}"
Text="{Binding Appointment.Subject}" />
</dxschv:AppointmentContentPanel.IntervalSubject>
<dxschv:AppointmentContentPanel.Location>
<TextBlock
Margin="3,3,0,0"
FontWeight="Normal"
Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}"
Text="{Binding Appointment.Location, StringFormat={}({0})}"
Visibility="{Binding Appointment.Location, Converter={StaticResource ObjectVisibilityConverter}}" />
</dxschv:AppointmentContentPanel.Location>
<dxschv:AppointmentContentPanel.Images>
<dxschv:AppointmentImagesPanel
Margin="0,0,0,3"
VerticalAlignment="Stretch"
Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}" />
</dxschv:AppointmentContentPanel.Images>
</dxschv:AppointmentContentPanel>
<!-- /Hauptteil mit Betreff und (Ort) -->
<!-- Klientenfarbe & Ressourcenfarbe -->
<Border Grid.Column="2" Background="{Binding Appointment.CustomFields[VMForCustomField].AppointmentColors.ResourceAndCustomerBackground}" />
<!-- /Klientenfarbe & Ressourcenfarbe -->
</Grid>
</Border>
</DataTemplate>
<DataTemplate x:Key="HorizontalAppointmentControl.ContentTemplate">
<Border
Margin="-6,0,0,0"
BorderBrush="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush}"
BorderThickness="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush, Converter={StaticResource AppointmentBorderThicknessConverter}}"
CornerRadius="2">
<Grid Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
</Grid.ColumnDefinitions>
<!-- Mitarbeiterfarbe -->
<Border Grid.Column="0">
<Border.Background>
<MultiBinding Converter="{StaticResource EmployeeBackgroundColorConverter}" Mode="OneWay">
<Binding
Mode="OneWay"
Path="DataContext.IsEmployeeBrushVisible"
RelativeSource="{RelativeSource FindAncestor,
AncestorType={x:Type localView:BeWoView}}"
UpdateSourceTrigger="PropertyChanged" />
<Binding Path="Appointment.CustomFields[VMForCustomField].AppointmentColors.EmployeeBackground" />
<Binding Path="Appointment.CustomFields[VMForCustomField].BackgroundColor" />
</MultiBinding>
</Border.Background>
</Border>
<!-- /Mitarbeiterfarbe -->
<!-- Hauptteil mit Betreff und (Ort) -->
<dxschv:AppointmentContentPanel
Grid.Column="1"
VerticalAlignment="Center"
Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}">
<dxschv:AppointmentContentPanel.IntervalSubject>
<StackPanel Orientation="Horizontal">
<TextBlock Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}" Visibility="{Binding Appointment.AllDay, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}">
<Run Text="{Binding Appointment.Start, StringFormat={}{0:HH:mm}}" />
<Run Text="-" />
<Run Text="{Binding Appointment.End, StringFormat={}{0:HH:mm}}" />
</TextBlock>
<TextBlock
Margin="3,0,0,0"
VerticalAlignment="Center"
Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}"
Text="{Binding Appointment.Subject}" />
</StackPanel>
</dxschv:AppointmentContentPanel.IntervalSubject>
<dxschv:AppointmentContentPanel.Images>
<dxschv:AppointmentImagesPanel Margin="0,3,3,0" Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}" />
</dxschv:AppointmentContentPanel.Images>
</dxschv:AppointmentContentPanel>
<!-- /Hauptteil mit Betreff und (Ort) -->
<!-- Klientenfarbe & Ressourcenfarbe -->
<Border Grid.Column="2" Background="{Binding Appointment.CustomFields[VMForCustomField].AppointmentColors.ResourceAndCustomerBackground}" />
<!-- /Klientenfarbe & Ressourcenfarbe -->
</Grid>
</Border>
</DataTemplate>
<DataTemplate x:Key="MyImageBox">
<Image
Width="17"
Height="17"
SnapsToDevicePixels="True"
Source="/BeWoPlaner;component/Ressources/Icons/HistoryDisabled.png"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].HasServiceRecordEntry, Converter={StaticResource BoolVisibilityConverter}}" />
</DataTemplate>
<Style x:Key="AppointmentStyle" TargetType="dxschv:AppointmentControl">
<Setter Property="ShowInterval" Value="True" />
<Setter Property="Margin" Value="0" />
<Setter Property="Padding" Value="0" />
<Setter Property="ImageBoxTemplate" Value="{StaticResource MyImageBox}" />
</Style>
<DataTemplate x:Key="TooltipTemplate">
<dxlc:LayoutControl
Padding="0"
IsHitTestVisible="False"
Orientation="Vertical">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,0,3,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel
Grid.Column="0"
Orientation="Horizontal"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipTimeVisibility}">
<TextBlock Text="{Binding Path=Appointment.Start, StringFormat={}{0:HH:mm}}" />
<TextBlock Text=" - " />
<TextBlock Text="{Binding Path=Appointment.End, StringFormat={}{0:HH:mm}}" />
<TextBlock Margin="0,0,4,0" Text=" Uhr" />
</StackPanel>
<TextBlock
Grid.Column="1"
MaxWidth="{Binding ElementName=Scheduler, Path=ActualWidth}"
Text="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTip}"
TextWrapping="Wrap" />
</Grid>
<Separator
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Height="1"
Background="DimGray"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipTrennstrichVisibility}" />
<TextBlock
Grid.Row="2"
Grid.Column="0"
Margin="0,0,3,0"
Text="Ressourcen:"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipResourcesVisibility}" />
<TextBlock
Grid.Row="2"
Grid.Column="1"
Text="{Binding Path=Appointment.CustomFields[VMForCustomField].ResourcesToolTip}"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipResourcesVisibility}" />
<TextBlock
Grid.Row="3"
Grid.Column="0"
Margin="0,0,3,0"
Text="{markup:Translate Mitarbeiter:}"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipEmployeesVisibility}" />
<ListView
Name="ToolTipEmployeeList"
Grid.Row="3"
Grid.Column="1"
Margin="-6,-3,0,0"
Background="Transparent"
BorderThickness="0"
ItemsSource="{Binding Path=Appointment.CustomFields[VMForCustomField].EmployeeList}"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipEmployeesVisibility}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel
Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListView}}"
ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListView}}" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border
Grid.Column="0"
Width="5"
Margin="0,0,3,0"
Background="{Binding Converter={StaticResource EmployeeListConfirmationToolTipConverter}}"
BorderBrush="DimGray"
BorderThickness="1"
Visibility="{Binding Path=DataContext.Appointment.CustomFields[VMForCustomField].ToolTipZusageVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}" />
<TextBlock
Grid.Column="1"
Foreground="DimGray"
Text="{Binding Converter={StaticResource EmployeeListConfirmationToolTipConverter}, ConverterParameter=EmployeeName}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<TextBlock
Grid.Row="4"
Grid.Column="0"
Margin="0,0,3,0"
Text="{markup:Translate Klienten:}"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipCustomersVisibility}" />
<TextBlock
Grid.Row="4"
Grid.Column="1"
Text="{Binding Path=Appointment.CustomFields[VMForCustomField].CustomersToolTip}"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipCustomersVisibility}" />
<Separator
Grid.Row="5"
Grid.Column="0"
Grid.ColumnSpan="2"
Height="1"
Background="DimGray"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBlock
Grid.Row="6"
Grid.Column="0"
Margin="0,0,3,0"
Text="Angelegt von:"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBlock
Grid.Row="6"
Grid.Column="1"
Margin="0,0,3,0"
Text="{Binding Path=Appointment.CustomFields[VMForCustomField].Originator}"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
</Grid>
</dxlc:LayoutControl>
</DataTemplate>
</ResourceDictionary>
</localView:BeWoView.Resources>
<Grid
x:Name="RootGrid"
d:DataContext="{d:DesignInstance viewModel:SchedulingAppointmentListVM}"
Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid x:Name="TopBarGrid" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel
Grid.Row="0"
Grid.Column="0"
MinWidth="239"
VerticalAlignment="Bottom"
Orientation="Horizontal">
<StackPanel.Width>
<MultiBinding Converter="{StaticResource WidthAdditionMultiConverter}">
<Binding ElementName="AuswahlGrid" Path="ActualWidth" />
<Binding ElementName="LeftExpanderButton" Path="ActualWidth" />
</MultiBinding>
</StackPanel.Width>
<Button
Width="24"
Height="24"
Margin="0,1,1,1"
Click="DayViewButton_OnClick"
ToolTip="Tagesansicht">
<Image Source="../../Ressources/Icons/Calendar1Day24.png" />
</Button>
<Button
Width="24"
Height="24"
Margin="0,1,1,1"
Click="WorkWeekButton_OnClick"
ToolTip="Arbeitswoche anzeigen">
<Image Source="../../Ressources/Icons/Calendar5Day24.png" />
</Button>
<Button
Width="24"
Height="24"
Margin="0,1,1,1"
Click="WeekButton_OnClick"
ToolTip="Volle Woche anzeigen">
<Image Source="../../Ressources/Icons/Calendar7Day24.png" />
</Button>
<Button
Width="24"
Height="24"
Margin="0,1,1,1"
Click="MonthButton_OnClick"
ToolTip="Monat anzeigen">
<Image Source="../../Ressources/Icons/Calendar31Day24.png" />
</Button>
<Button
Width="24"
Height="24"
Margin="0,1,1,1"
Click="TimelineButton_OnClick"
ToolTip="Zeitleiste anzeigen">
<Image Source="../../Ressources/Icons/History24.png" />
</Button>
<Button
x:Name="DeleteAppointmentsButton"
Width="24"
Height="24"
Margin="0,1,1,1"
Click="DeleteAppointmentsInIntervalButton_OnClick"
ToolTip="Termine löschen"
Visibility="{Binding DeleteInInvervalButtonVisibility, UpdateSourceTrigger=PropertyChanged}">
<Image Source="../../Ressources/Icons/Delete24.png" />
</Button>
<StackPanel
x:Name="DayViewOptions"
Orientation="Horizontal"
Visibility="{Binding ElementName=SchedulerControl, Path=ActiveView.Type, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource DayViewDayCountVisibilityConverter}, ConverterParameter=DayCount}">
<Label VerticalAlignment="Center" Content="anz Tage:" />
<dxe:SpinEdit
x:Name="SpinEditDayViewDayCount"
Width="50"
Height="23"
VerticalAlignment="Center"
AllowNullInput="False"
EditValueChanged="SpinEditDayViewDayCount_EditValueChanged"
IsFloatValue="False"
LostFocus="SpinEditDayViewDayCount_OnLostFocus"
MaxValue="100"
MinValue="1" />
</StackPanel>
<StackPanel
x:Name="TimelineViewOptions"
Orientation="Horizontal"
Visibility="{Binding ElementName=SchedulerControl, Path=ActiveView.Type, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource DayViewDayCountVisibilityConverter}, ConverterParameter=IntervalCount}">
<Label VerticalAlignment="Center" Content="anz Tage:" />
<dxe:SpinEdit
x:Name="SpinEditTimelineViewDayCount"
Width="50"
Height="23"
VerticalAlignment="Center"
AllowNullInput="False"
EditValueChanged="SpinEditTimelineViewDayCount_EditValueChanged"
IsFloatValue="False"
LostFocus="SpinEditTimelineViewDayCount_OnLostFocus"
MaxValue="100"
MinValue="1" />
</StackPanel>
<Button
Width="24"
Height="24"
Margin="5,1,1,1"
Click="ReloadButton_OnClick"
ToolTip="Kalender aktualisieren">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Image x:Name="imgDisabled" Source="..\..\Ressources\Icons\SymbolRefresh32Disabled.png" />
<Image
x:Name="imgEnabled"
Opacity="0"
Source="..\..\Ressources\Icons\SymbolRefresh32.png" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="imgEnabled" Property="Opacity" Value="1" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
<Button
Width="24"
Height="24"
Margin="5,1,1,1"
Click="ExportButton_OnClick"
ToolTip="Exportieren"
Visibility="Collapsed" />
</StackPanel>
<Grid
Grid.Row="0"
Grid.Column="2"
Margin="6,0,0,0"
VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox
x:Name="MitarbeiterfarbenEinAusCheckBox"
Grid.Column="0"
Content="{markup:Translate Mitarbeiterfarben}"
IsChecked="{Binding Path=IsEmployeeBrushVisible}"
Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}" />
<CheckBox
x:Name="AbwesenheitenEinAusCheckBox"
Grid.Column="1"
Margin="10,0,0,0"
Checked="AbwesenheitenEinAusCheckBox_OnChecked"
Content="Abwesenheiten"
IsChecked="{Binding Path=IsAbsenceTimeVisible, Mode=TwoWay}"
Unchecked="AbwesenheitenEinAusCheckBox_OnChecked" />
<CheckBox
x:Name="ShowTasksCheckBox"
Grid.Column="2"
Margin="10,0,0,0"
VerticalAlignment="Center"
Click="ShowTasksCheckBox_OnClick"
Content="Aufgaben"
IsChecked="{Binding Path=IsTasksVisible, Mode=TwoWay}" />
<TextBlock
Grid.Column="3"
Margin="10,0,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsEnabled="{Binding Enabled, UpdateSourceTrigger=PropertyChanged}">
<Hyperlink
IsEnabled="{Binding Enabled, UpdateSourceTrigger=PropertyChanged}"
NavigateUri="#"
RequestNavigate="ShowAppointmentRequests">
<TextBlock Text="{Binding Requests, UpdateSourceTrigger=PropertyChanged}" />
</Hyperlink>
</TextBlock>
<CheckBox
x:Name="ShowPrivateAppointmentsCheckBox"
Grid.Column="4"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Click="ShowPrivateAppointmentsCheckBox_OnClick"
Content="Nur private Termine anzeigen"
IsChecked="{Binding OnlyPrivateAppointments, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
<Border
Grid.Row="0"
Grid.Column="3"
Width="{Binding ElementName=RightExpanderButton, Path=ActualWidth}" />
<Border
Grid.Row="0"
Grid.Column="4"
Width="{Binding ElementName=DateNavigator, Path=ActualWidth}">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Hyperlink NavigateUri="#" RequestNavigate="PrintCalendar">
<TextBlock>Drucken</TextBlock>
</Hyperlink>
</TextBlock>
</Border>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" SharedSizeGroup="A" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="A" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid x:Name="ObjectSelectionGrid" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- ToDo: Kann man weder Mitarbeiter, Klienten und Ressourcen sehen, "Nur meine Termine anzeigen", das AuswahlGrid, und den Togglebutton verschicken -->
<CheckBox
x:Name="ZeigeNurMeineTermineCheckBox"
Grid.Row="0"
Grid.Column="0"
Margin="3,3,3,3"
Checked="NurMeineTermineEinAusCheckBox_OnChecked"
Content="Nur meine Termine anzeigen"
IsChecked="{Binding Path=ZeigeNurMeineTermine, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Unchecked="NurMeineTermineEinAusCheckBox_OnChecked" />
<UniformGrid
x:Name="AuswahlGrid"
Grid.Row="1"
Grid.Column="0"
Width="270"
Columns="1"
Rows="2">
<TabControl
x:Name="TabControl"
SelectedIndex="{Binding SelectedTabItemIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectionChanged="Selector_OnSelectionChanged"
Visibility="{Binding SelectionControlVisibility, UpdateSourceTrigger=PropertyChanged}">
<!--#region Mitarbeiterauswahl-->
<TabItem
x:Name="MitarbeiterTabItem"
Header="{markup:Translate Mitarbeiter}"
Style="{StaticResource MitarbeiterTabItemStyle}"
Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<Grid x:Name="MitarbeiterTabGrid" Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox
x:Name="AlleMitarbeiterCB"
Grid.Column="0"
Margin="3"
Click="AllEmployeesCheckBox_OnClick"
Content="Alle auswählen"
Foreground="#FFD2D2D2" />
<ToggleButton
x:Name="EmployeeSearchToggleButton"
Grid.Row="0"
Grid.Column="1"
Width="36"
Height="17"
Margin="3"
Checked="EmployeeSearchToggleButton_OnCheckedUnchecked"
Style="{StaticResource LupenToggleButtonStyle}"
Unchecked="EmployeeSearchToggleButton_OnCheckedUnchecked" />
<Grid
x:Name="MitarbeiterSuchGrid"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,1,0,3"
Background="Black"
Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label
Grid.Column="0"
Content="Suche:"
Foreground="White" />
<TextBox
x:Name="MitarbeiterSuchTextBox"
Grid.Column="1"
Margin="3"
VerticalContentAlignment="Center"
TextChanged="TextBoxEmployees_OnTextChanged" />
<Button
Grid.Column="2"
Width="19"
Height="19"
Margin="0,3,3,3"
Click="ClearEmployeeSearchButton_OnClick"
Style="{DynamicResource CloseButtonStyle}"
ToolTip="Suchfeld leeren" />
</Grid>
<ListView
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0"
Background="Transparent"
BorderThickness="0"
ItemsSource="{Binding Path=FilteredEmployees, UpdateSourceTrigger=PropertyChanged}">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,2,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border
MinHeight="25"
Background="Transparent"
CornerRadius="5" />
<Border
x:Name="ItemBorder"
MinHeight="25"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border
x:Name="ItemContent"
MinHeight="25"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox
Checked="EmployeeListViewCheckBox_OnChecked"
Click="ListItem_OnClick"
Content="{Binding Path=Employee.DetailDescription}"
IsChecked="{Binding Path=(schedulingUtils:ListItemHelper.IsChecked), Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Unchecked="EmployeeListViewCheckBox_OnChecked">
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="#FFD2D2D2" />
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=(schedulingUtils:ListItemHelper.IsChecked)}" Value="False" />
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
<Border
Grid.Column="1"
Width="15"
Height="15"
Background="{Binding Path=Employee.FilterableBrush}"
CornerRadius="3" />
<Button
x:Name="btn_showEmployeeInformation"
Grid.Column="2"
Width="15"
Height="15"
Margin="5,0,5,0"
Click="EmployeeInformationButton_OnClick"
Content="i"
FontFamily="Microsoft Sans Serif"
Visibility="{Binding Converter={StaticResource InfoButtonVisibilityConverter}}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#70000000" />
<GradientStop Offset="1" Color="#BB000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#70000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
</TabItem>
<!--#endregion Mitarbeiterauswahl-->
<!--#region Klientenauswahl-->
<TabItem
Header="{markup:Translate Klienten}"
Style="{StaticResource KlientenTabItemStyle}"
Visibility="{Binding CustomerControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox
x:Name="SelectAllCustomersCheckBox"
Grid.Row="0"
Grid.Column="0"
Margin="3"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
Click="AllCustomersCheckBox_Checked"
Content="Alle auswählen"
Foreground="#FFD2D2D2" />
<CheckBox
Grid.Row="0"
Grid.Column="1"
Margin="3"
HorizontalAlignment="Right"
HorizontalContentAlignment="Center"
Click="OnlyMyCustomersCheckBox_Click"
Content="{markup:Translate Nur meine Klienten}"
Foreground="#FFD2D2D2"
IsThreeState="False" />
<ToggleButton
x:Name="CustomerSearchToggleButton"
Grid.Row="0"
Grid.Column="2"
Width="36"
Height="17"
Margin="3"
Checked="CustomerSearchToggleButton_OnCheckedUnchecked"
Style="{StaticResource LupenToggleButtonStyle}"
Unchecked="CustomerSearchToggleButton_OnCheckedUnchecked" />
<Grid
x:Name="KlientenSuchGrid"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="0,1,0,3"
Background="Black"
Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label
Grid.Column="0"
Content="Suche:"
Foreground="White" />
<TextBox
x:Name="KlientenSuchTextBox"
Grid.Column="1"
Margin="3"
VerticalContentAlignment="Center"
TextChanged="TextBoxCustomers_OnTextChanged" />
<Button
Grid.Column="2"
Width="19"
Height="19"
Margin="0,3,3,3"
Click="ClearCustomerSearchButton_OnClick"
Style="{DynamicResource CloseButtonStyle}"
ToolTip="Suchfeld leeren" />
</Grid>
</Grid>
<ListView
Grid.Row="1"
Margin="0"
Background="Transparent"
BorderThickness="0"
ItemsSource="{Binding Path=FilteredCustomers, UpdateSourceTrigger=PropertyChanged}">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,2,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border
MinHeight="25"
Background="Transparent"
CornerRadius="5" />
<Border
x:Name="ItemBorder"
MinHeight="25"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border
x:Name="ItemContent"
MinHeight="25"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox
VerticalAlignment="Center"
Click="ListItem_OnClick"
Content="{Binding Path=DetailDescription}"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFD2D2D2"
Tag="{Binding}">
<CheckBox.IsChecked>
<MultiBinding
Converter="{StaticResource CheckBoxConverter}"
ConverterParameter="Klienten"
Mode="OneWay">
<Binding Mode="OneWay" Path="CustomerOid" />
<Binding
Mode="OneWay"
Path="DataContext"
RelativeSource="{RelativeSource FindAncestor,
AncestorType={x:Type localView:BeWoView}}"
UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<Button
x:Name="btn_showCustomerInformation"
Grid.Column="1"
Width="15"
Height="15"
Margin="5,0,5,0"
Click="CustomerInformationButton_OnClick"
Content="i"
FontFamily="Microsoft Sans Serif"
Visibility="{Binding Converter={StaticResource InfoButtonVisibilityConverter}}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
</TabItem>
<!--#endregion Klientenauswahl-->
<!--#region Ressourcenauswahl-->
<TabItem
x:Name="RessourcenTabItem"
Header="Ressourcen"
Style="{StaticResource RessourcenTabItemStyle}"
Visibility="{Binding ResourceControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox
x:Name="SelectAllResourcesCheckBox"
Grid.Row="0"
Margin="3"
Click="AllResourcesCheckBox_OnClick"
Content="Alle auswählen" />
<TreeView
Grid.Row="1"
Background="Transparent"
BorderThickness="0"
ItemContainerStyle="{StaticResource ResourceTreeViewStyle}"
ItemsSource="{Binding Path=Categories2Resources, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
<Border Height="23" BorderBrush="{x:Null}">
<TextBlock
VerticalAlignment="Center"
FontWeight="Bold"
Text="{Binding Path=Key.ResourceCategory}" />
</Border>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<Border
Height="23"
Margin="1"
BorderBrush="{Binding DataContract.Color}"
BorderThickness="0,0,0,0"
Tag="{Binding}">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<CheckBox
Checked="ResourceTreeViewCheckBox_OnChecked"
Click="ListItem_OnClick"
IsChecked="{Binding Path=(schedulingUtils:TreeViewItemHelper.IsChecked), Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Unchecked="ResourceTreeViewCheckBox_OnChecked">
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=(schedulingUtils:TreeViewItemHelper.IsChecked)}" Value="False" />
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
<Rectangle
Width="10"
Height="10"
Margin="1,0,1,0"
VerticalAlignment="Center"
Fill="{Binding DataContract.Color, Converter={StaticResource StringBrushConverter}}"
Stroke="Black"
StrokeThickness="1" />
<TextBlock VerticalAlignment="Center" Text="{Binding Path=DataContract.Name}" />
</StackPanel>
</Border>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
</TabItem>
<!--#endregion Ressourcenauswahl-->
</TabControl>
<!--#region Liste aller ausgewählten Mitarbeiter, Klienten, und Ressourcen-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox
Grid.Row="0"
Margin="0,3,0,0"
Header="Ausgewählte Elemente"
Style="{StaticResource ObjectEditGroupBox}">
<ListBox
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Background="Transparent"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{DynamicResource MultiElementSelectionControlStyle}"
ItemsSource="{Binding Path=SelectedItems}">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
SnapsToDevicePixels="True">
<ScrollViewer
Padding="{TemplateBinding Padding}"
Focusable="False"
HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</ListBox.Template>
</ListBox>
</GroupBox>
<Button
Grid.Row="1"
Height="23"
Margin="30,0,5,0"
HorizontalAlignment="Stretch"
Click="AuswahlAufhebenClick"
Content="Auswahl aufheben" />
</Grid>
<!--#endregion /Liste aller ausgewählten Mitarbeiter, Klienten, und Ressourcen-->
</UniformGrid>
</Grid>
<!--#region Filter oben links-->
<StackPanel
x:Name="FilterCheckBoxenStackPanel"
Grid.Column="1"
HorizontalAlignment="Center"
Orientation="Vertical">
<CheckBox
x:Name="MitarbeiterEbenenCheckBox"
Margin="0,3,0,3"
Checked="ListItem_OnClick"
Content="{markup:Translate Nur Mitarbeiter}"
IsThreeState="False"
SnapsToDevicePixels="True"
Unchecked="ListItem_OnClick"
Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<CheckBox.LayoutTransform>
<RotateTransform Angle="270" CenterX="0.5" CenterY="0.5" />
</CheckBox.LayoutTransform>
</CheckBox>
<CheckBox
x:Name="KlientenEbenenCheckBox"
Margin="0,0,0,3"
Checked="ListItem_OnClick"
Content="{markup:Translate Nur Klienten}"
IsThreeState="False"
SnapsToDevicePixels="True"
Unchecked="ListItem_OnClick"
Visibility="{Binding CustomerControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<CheckBox.LayoutTransform>
<RotateTransform Angle="270" CenterX="0.5" CenterY="0.5" />
</CheckBox.LayoutTransform>
</CheckBox>
<CheckBox
x:Name="RessourcenEbenenCheckBox"
Margin="0,0,0,3"
Checked="ListItem_OnClick"
Content="Nur Ressourcen"
IsThreeState="False"
SnapsToDevicePixels="True"
Unchecked="ListItem_OnClick"
Visibility="{Binding ResourceControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<CheckBox.LayoutTransform>
<RotateTransform Angle="270" CenterX="0.5" CenterY="0.5" />
</CheckBox.LayoutTransform>
</CheckBox>
</StackPanel>
<!--#endregion Filter oben links-->
<ToggleButton
x:Name="LeftExpanderButton"
Grid.Column="1"
Width="23"
Height="23"
Margin="3"
Click="LeftExpanderClick"
Style="{StaticResource VerticalExpanderLookAlikeToggleBotton}" />
<!-- SchedulerControl -->
<dxsch:SchedulerControl
x:Name="SchedulerControl"
Grid.Column="2"
dx:ThemeManager.ThemeName="Office2010Black"
ActiveViewType="WorkWeekView"
AppointmentAdded="SchedulerControl_OnAppointmentAdded"
AppointmentRemoved="SchedulerControl_OnAppointmentRemoved"
AppointmentRemoving="SchedulerControl_OnAppointmentRemoving"
AppointmentWindowShowing="SchedulerControl_OnAppointmentWindowShowing"
CommitAppointmentResize="SchedulerControl_OnCommitAppointmentResize"
CustomAllowAppointmentCreate="SchedulerControl_CustomAllowAppointmentCreate"
CustomAllowAppointmentDrag="SchedulerControl_CustomAllowAppointmentDrag"
CustomAllowAppointmentDragBetweenResources="SchedulerControl_CustomAllowAppointmentDragBetweenResources"
CustomAllowAppointmentEdit="SchedulerControl_CustomAllowAppointmentEdit"
CustomAllowAppointmentResize="SchedulerControl_CustomAllowAppointmentResize"
DropAppointment="SchedulerControl_OnDropAppointment"
EditOccurrenceWindowShowing="SchedulerControl_OnEditOccurrenceWindowShowing"
FirstDayOfWeek="Monday"
PastingFromClipboard="SchedulerControl_OnPastingFromClipboard"
PopupMenuShowing="SchedulerControl_OnPopupMenuShowing"
RecurrenceWindowShowing="SchedulerControl_OnRecurrenceWindowShowing"
SelectedAppointmentsSource="{Binding SelectedAppointments}"
SelectedInterval="{Binding Interval, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ToolTipContentTemplate="{StaticResource TooltipTemplate}"
ToolTipMode="ToolTip">
<dxsch:SchedulerControl.OptionsContextMenu>
<dxsch:OptionsContextMenu>
<dxsch:OptionsContextMenu.CellContextMenuActions>
<!--
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_AppointmentDrop_Actions_CopyAppointmentsOnDrop}"/>
-->
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_NewRecurringEvent}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_NewAllDayEvent}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_Paste}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_NewRecurringAppointment}" />
<dxb:InsertAction>
<dxb:BarButtonItem Content="Verfügbare Mitarbeiter anzeigen" ItemClick="EmployeeAvailabilityBarItem_OnItemClick" />
</dxb:InsertAction>
</dxsch:OptionsContextMenu.CellContextMenuActions>
<dxsch:OptionsContextMenu.AppointmentContextMenuActions>
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Options_ShowTimeAs}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Options_LabelAs}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Actions_Cut}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Actions_Copy}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Actions_Paste}" />
<dxb:InsertAction>
<dxb:BarItemSeparator Name="ZusagenStackSeperatorTop" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Zusagen" ItemClick="ConfirmParticipationBarButtonItem_OnClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Mit Vorbehalt zusagen" ItemClick="AcceptWithReservationParticipationBarButtonItem_OnClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Absagen" ItemClick="DeclineParticipationBarButtonItem_OnClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarItemSeparator Name="ZusagenStackSeperatorBottom" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="{markup:Translate In Zeiterfassung übertragen}" ItemClick="ZeiterfassungButtonItem_OnItemClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Verfügbare Mitarbeiter anzeigen" ItemClick="EmployeeAvailabilityBarItem_OnItemClick" />
</dxb:InsertAction>
</dxsch:OptionsContextMenu.AppointmentContextMenuActions>
</dxsch:OptionsContextMenu>
</dxsch:SchedulerControl.OptionsContextMenu>
<dxsch:SchedulerControl.OptionsWindows>
<dxsch:OptionsWindows AppointmentWindowType="{x:Type local:AppointmentEditView}" RecurrenceWindowType="{x:Type local:AppointmentRecurrenceEditView}" />
</dxsch:SchedulerControl.OptionsWindows>
<dxsch:SchedulerControl.DataSource>
<dxsch:DataSource AppointmentsSource="{Binding VMList}">
<dxsch:DataSource.AppointmentMappings>
<dxsch:AppointmentMappings
AllDay="AllDay"
Description="Description"
End="End"
Id="Id"
LabelId="LabelKey"
Location="Location"
RecurrenceInfo="RecurrenceInfo"
Start="Start"
Subject="Subject"
Type="EventType">
<dxsch:CustomFieldMapping Name="VMForCustomField" Mapping="VMForCustomField" />
<dxsch:CustomFieldMapping Name="EmployeeList" Mapping="EmployeeList" />
<dxsch:CustomFieldMapping Name="CustomerList" Mapping="CustomerList" />
<dxsch:CustomFieldMapping Name="ResourceList" Mapping="ResourceList" />
<dxsch:CustomFieldMapping Name="Originator" Mapping="Originator" />
<dxsch:CustomFieldMapping Name="SupportConceptList" Mapping="SupportConceptList" />
<dxsch:CustomFieldMapping Name="IsPrivate" Mapping="IsPrivate" />
<dxsch:CustomFieldMapping Name="IsAbsenceTime" Mapping="IsAbsenceTime" />
<dxsch:CustomFieldMapping Name="IsTask" Mapping="IsTask" />
<dxsch:CustomFieldMapping Name="TaskDescription" Mapping="TaskDescription" />
<dxsch:CustomFieldMapping Name="CompletedNotice" Mapping="CompletedNotice" />
<dxsch:CustomFieldMapping Name="CompletedDate" Mapping="CompletedDate" />
<dxsch:CustomFieldMapping Name="DueDate" Mapping="DueDate" />
<dxsch:CustomFieldMapping Name="DueTime" Mapping="DueTime" />
<dxsch:CustomFieldMapping Name="AppointmentColors" Mapping="AppointmentColors" />
<dxsch:CustomFieldMapping Name="BackgroundColor" Mapping="BackgroundColor" />
<dxsch:CustomFieldMapping Name="ForegroundColor" Mapping="ForegroundColor" />
<dxsch:CustomFieldMapping Name="CanBeEdited" Mapping="CanBeEdited" />
<dxsch:CustomFieldMapping Name="ToolTip" Mapping="ToolTip" />
<dxsch:CustomFieldMapping Name="ToolTipTimeVisibility" Mapping="ToolTipTimeVisibility" />
<dxsch:CustomFieldMapping Name="ToolTipResourcesVisibility" Mapping="ToolTipResourcesVisibility" />
<dxsch:CustomFieldMapping Name="ToolTipEmployeesVisibility" Mapping="ToolTipEmployeesVisibility" />
<dxsch:CustomFieldMapping Name="ToolTipCustomersVisibility" Mapping="ToolTipCustomersVisibility" />
<dxsch:CustomFieldMapping Name="ToolTipTrennstrichVisibility" Mapping="ToolTipTrennstrichVisibility" />
<dxsch:CustomFieldMapping Name="ToolTipZusageVisibility" Mapping="ToolTipZusageVisibility" />
<dxsch:CustomFieldMapping Name="ResourcesToolTip" Mapping="ResourcesToolTip" />
<dxsch:CustomFieldMapping Name="EmployeesToolTip" Mapping="EmployeesToolTip" />
<dxsch:CustomFieldMapping Name="CustomersToolTip" Mapping="CustomersToolTip" />
</dxsch:AppointmentMappings>
</dxsch:DataSource.AppointmentMappings>
</dxsch:DataSource>
</dxsch:SchedulerControl.DataSource>
<dxsch:DayView
AllDayAppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}"
AppointmentContentTemplate="{StaticResource VerticalAppointmentControl.ContentTemplate}"
AppointmentStyle="{StaticResource AppointmentStyle}"
ResourcesPerPage="0"
ShowAllDayAppointmentRecurrenceImage="True"
ShowAllDayArea="True"
ShowAppointmentRecurrenceImage="True"
ShowAppointmentStatus="False" />
<dxsch:WeekView
AllDayAppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}"
AppointmentContentTemplate="{StaticResource VerticalAppointmentControl.ContentTemplate}"
AppointmentStyle="{StaticResource AppointmentStyle}"
ResourcesPerPage="0"
ShowAllDayAppointmentRecurrenceImage="True"
ShowAllDayArea="True"
ShowAppointmentRecurrenceImage="True"
ShowAppointmentStatus="False" />
<dxsch:WorkWeekView
AllDayAppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}"
AppointmentContentTemplate="{StaticResource VerticalAppointmentControl.ContentTemplate}"
AppointmentStyle="{StaticResource AppointmentStyle}"
ResourcesPerPage="0"
ShowAllDayAppointmentRecurrenceImage="True"
ShowAllDayArea="True"
ShowAppointmentRecurrenceImage="True"
ShowAppointmentStatus="False" />
<dxsch:MonthView
AppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}"
AppointmentStyle="{StaticResource AppointmentStyle}"
ResourcesPerPage="0"
ShowAppointmentRecurrenceImage="True"
ShowAppointmentStatus="False" />
<dxsch:AgendaView
AppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}"
AppointmentStyle="{StaticResource AppointmentStyle}"
ShowAppointmentRecurrenceImage="True"
ShowAppointmentStatus="False" />
<dxsch:TimelineView
AppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}"
AppointmentStyle="{StaticResource AppointmentStyle}"
ResourcesPerPage="0"
ShowAppointmentRecurrenceImage="True"
ShowAppointmentStatus="False"
ViewMode="Legacy" />
</dxsch:SchedulerControl>
<ToggleButton
x:Name="RightExpanderButton"
Grid.Column="3"
Width="23"
Height="23"
Margin="3"
Click="RightExpanderClick"
Style="{StaticResource VerticalRightExpanderLookAlikeToggleBotton}" />
<dxe:DateNavigator
x:Name="DateNavigator"
Grid.Column="4"
VerticalAlignment="Stretch"
dx:ThemeManager.ThemeName="Office2010Black"
CalendarView="Month"
FirstDayOfWeek="Monday"
HighlightSpecialDates="True"
SelectedDatesChanged="DateNavigator_OnSelectedDatesChanged">
<dxe:DateNavigator.StyleSettings>
<dxsch:SchedulerDateNavigatorStyleSettings Scheduler="{Binding ElementName=SchedulerControl}" />
</dxe:DateNavigator.StyleSettings>
</dxe:DateNavigator>
</Grid>
<Border
x:Name="PopupContent"
Grid.Row="0"
Grid.RowSpan="2" />
<Popup
x:Name="DeleteAppointmentsPopup"
Grid.Row="0"
Width="290"
Height="80"
Closed="popup_Closed"
Opened="popup_Opened"
Placement="MousePoint"
StaysOpen="True">
<Grid Margin="2,2,2,2" Background="{StaticResource ControlBackground}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Height="24"
Margin="0,0,0,0"
Content="Termine löschen bis: " />
<dxe:DateEdit
x:Name="DeleteForGoodIntervalEndDateEdit"
Grid.Row="0"
Grid.Column="1"
Width="150"
Height="24"
Margin="0,0,0,0"
VerticalAlignment="Center"
MaskType="DateTimeAdvancingCaret" />
<StackPanel
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,0,10,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button Click="DeleteAppointmentsForGood_Click" Content="OK" />
<Button
Margin="3,0,0,0"
Click="AbortDeletingAppointments_Click"
Content="Abbrechen" />
</StackPanel>
</Grid>
</Popup>
</Grid>
</localView:BeWoView>