JobResourcePlanner.xaml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  1. <UserControl
  2. x:Class="PRSDesktop.JobResourcePlanner"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:local="clr-namespace:PRSDesktop"
  8. xmlns:Syncfusion="http://schemas.syncfusion.com/wpf"
  9. xmlns:dynamicGrid="clr-namespace:InABox.DynamicGrid;assembly=InABox.Wpf"
  10. mc:Ignorable="d"
  11. d:DesignHeight="800"
  12. d:DesignWidth="600">
  13. <UserControl.Resources>
  14. <Style x:Key="DateHeaderStyle" TargetType="{x:Type Syncfusion:GridHeaderCellControl}">
  15. <Setter Property="Background" Value="LightSkyBlue" />
  16. <Setter Property="Foreground" Value="Black" />
  17. <Setter Property="BorderBrush" Value="Black" />
  18. <Setter Property="BorderThickness" Value="0,0,0.5,0.5" />
  19. <Setter Property="HorizontalContentAlignment" Value="Center" />
  20. <Setter Property="Padding" Value="5,3" />
  21. <Setter Property="IsTabStop" Value="False" />
  22. </Style>
  23. <Style x:Key="ContentHeaderStyle" TargetType="{x:Type Syncfusion:GridHeaderCellControl}">
  24. <Setter Property="Background" Value="LightSkyBlue" />
  25. <Setter Property="Foreground" Value="Black" />
  26. <Setter Property="BorderBrush" Value="Black" />
  27. <Setter Property="BorderThickness" Value="0,0,0.5,0.5" />
  28. <Setter Property="HorizontalContentAlignment" Value="Left" />
  29. <Setter Property="Padding" Value="5,3" />
  30. <Setter Property="IsTabStop" Value="False" />
  31. <Setter Property="VerticalContentAlignment" Value="Center" />
  32. <Setter Property="Template">
  33. <Setter.Value>
  34. <ControlTemplate TargetType="{x:Type Syncfusion:GridHeaderCellControl}">
  35. <Grid>
  36. <Border x:Name="PART_FooterCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
  37. Background="{TemplateBinding Background}" />
  38. <Border x:Name="PART_HeaderCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
  39. BorderThickness="{TemplateBinding BorderThickness}"
  40. Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
  41. <Grid Margin="{TemplateBinding Padding}" SnapsToDevicePixels="True">
  42. <Grid.ColumnDefinitions>
  43. <ColumnDefinition Width="*" />
  44. <ColumnDefinition Width="Auto" />
  45. <ColumnDefinition Width="Auto" />
  46. </Grid.ColumnDefinitions>
  47. <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}"
  48. Content="{TemplateBinding Content}"
  49. ContentStringFormat="{TemplateBinding ContentStringFormat}"
  50. Focusable="False" HorizontalAlignment="Left"
  51. VerticalAlignment="Center" />
  52. <Grid x:Name="PART_SortButtonPresenter" Grid.Column="1" SnapsToDevicePixels="True">
  53. <Grid.ColumnDefinitions>
  54. <ColumnDefinition Width="*">
  55. <ColumnDefinition.MinWidth>
  56. <Binding Mode="OneWay" Path="SortDirection"
  57. RelativeSource="{RelativeSource TemplatedParent}">
  58. <Binding.Converter>
  59. <Syncfusion:SortDirectionToWidthConverter />
  60. </Binding.Converter>
  61. </Binding>
  62. </ColumnDefinition.MinWidth>
  63. </ColumnDefinition>
  64. <ColumnDefinition Width="*" />
  65. </Grid.ColumnDefinitions>
  66. <TextBlock Grid.Column="1" Foreground="{TemplateBinding Foreground}"
  67. Margin="0,-4,0,0" SnapsToDevicePixels="True"
  68. Text="{TemplateBinding SortNumber}"
  69. Visibility="{TemplateBinding SortNumberVisibility}"
  70. VerticalAlignment="Bottom" />
  71. </Grid>
  72. <Syncfusion:FilterToggleButton x:Name="PART_FilterToggleButton" Grid.Column="2"
  73. HorizontalAlignment="Stretch"
  74. SnapsToDevicePixels="True"
  75. Visibility="{TemplateBinding FilterIconVisiblity}"
  76. VerticalAlignment="Stretch" />
  77. <Border x:Name="PART_FilterPopUpPresenter" />
  78. </Grid>
  79. </Border>
  80. </Grid>
  81. </ControlTemplate>
  82. </Setter.Value>
  83. </Setter>
  84. </Style>
  85. <Style x:Key="RotatedHeaderStyle" TargetType="{x:Type Syncfusion:GridHeaderCellControl}">
  86. <Setter Property="Background" Value="LightSkyBlue" />
  87. <Setter Property="Foreground" Value="Black" />
  88. <Setter Property="BorderBrush" Value="Black" />
  89. <Setter Property="BorderThickness" Value="0.5,0,0.5,0.5" />
  90. <Setter Property="HorizontalContentAlignment" Value="Left" />
  91. <Setter Property="Padding" Value="5,3" />
  92. <Setter Property="IsTabStop" Value="False" />
  93. <Setter Property="VerticalContentAlignment" Value="Center" />
  94. <Setter Property="Template">
  95. <Setter.Value>
  96. <ControlTemplate TargetType="{x:Type Syncfusion:GridHeaderCellControl}">
  97. <Grid>
  98. <Grid.LayoutTransform>
  99. <RotateTransform Angle="270" />
  100. </Grid.LayoutTransform>
  101. <Border x:Name="PART_FooterCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
  102. Background="{TemplateBinding Background}" />
  103. <Border x:Name="PART_HeaderCellBorder" BorderBrush="{TemplateBinding BorderBrush}"
  104. BorderThickness="{TemplateBinding BorderThickness}"
  105. Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
  106. <Grid Margin="{TemplateBinding Padding}" SnapsToDevicePixels="True">
  107. <Grid.ColumnDefinitions>
  108. <ColumnDefinition Width="*" />
  109. <ColumnDefinition Width="Auto" />
  110. <ColumnDefinition Width="Auto" />
  111. </Grid.ColumnDefinitions>
  112. <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}"
  113. Content="{TemplateBinding Content}"
  114. ContentStringFormat="{TemplateBinding ContentStringFormat}"
  115. Focusable="False" HorizontalAlignment="Left"
  116. VerticalAlignment="Center" />
  117. <Grid x:Name="PART_SortButtonPresenter" Grid.Column="1" SnapsToDevicePixels="True">
  118. <Grid.ColumnDefinitions>
  119. <ColumnDefinition Width="*">
  120. <ColumnDefinition.MinWidth>
  121. <Binding Mode="OneWay" Path="SortDirection"
  122. RelativeSource="{RelativeSource TemplatedParent}">
  123. <Binding.Converter>
  124. <Syncfusion:SortDirectionToWidthConverter />
  125. </Binding.Converter>
  126. </Binding>
  127. </ColumnDefinition.MinWidth>
  128. </ColumnDefinition>
  129. <ColumnDefinition Width="*" />
  130. </Grid.ColumnDefinitions>
  131. <TextBlock Grid.Column="1" Foreground="{TemplateBinding Foreground}"
  132. Margin="0,-4,0,0" SnapsToDevicePixels="True"
  133. Text="{TemplateBinding SortNumber}"
  134. Visibility="{TemplateBinding SortNumberVisibility}"
  135. VerticalAlignment="Bottom" />
  136. </Grid>
  137. <Syncfusion:FilterToggleButton x:Name="PART_FilterToggleButton" Grid.Column="2"
  138. HorizontalAlignment="Stretch"
  139. SnapsToDevicePixels="True"
  140. Visibility="{TemplateBinding FilterIconVisiblity}"
  141. VerticalAlignment="Stretch" />
  142. <Border x:Name="PART_FilterPopUpPresenter" />
  143. </Grid>
  144. </Border>
  145. </Grid>
  146. </ControlTemplate>
  147. </Setter.Value>
  148. </Setter>
  149. </Style>
  150. <ControlTemplate x:Key="HorizontalSplitter">
  151. <Grid Background="{TemplateBinding Background}" Height="4">
  152. <Grid.ColumnDefinitions>
  153. <ColumnDefinition Width="*" />
  154. <ColumnDefinition Width="Auto" />
  155. <ColumnDefinition Width="*" />
  156. </Grid.ColumnDefinitions>
  157. <Button Grid.Column="0" x:Name="PART_Left" Visibility="Collapsed" />
  158. <StackPanel Grid.Column="1" Margin="0" Orientation="Horizontal" HorizontalAlignment="Center"
  159. VerticalAlignment="Center">
  160. <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1"
  161. Margin="2,0,0,0" />
  162. <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1"
  163. Margin="2,0,0,0" />
  164. <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1"
  165. Margin="2,0,0,0" />
  166. <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1"
  167. Margin="2,0,0,0" />
  168. <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1"
  169. Margin="2,0,0,0" />
  170. <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1"
  171. Margin="2,0,0,0" />
  172. <Ellipse Fill="Silver" HorizontalAlignment="Center" Height="2" Width="2" Opacity="1"
  173. Margin="2,0,0,0" />
  174. </StackPanel>
  175. <Button Grid.Column="2" x:Name="PART_Right" Visibility="Collapsed" />
  176. </Grid>
  177. </ControlTemplate>
  178. </UserControl.Resources>
  179. <Grid>
  180. <Grid.ColumnDefinitions>
  181. <ColumnDefinition Width="*" />
  182. <ColumnDefinition Width="Auto" />
  183. </Grid.ColumnDefinitions>
  184. <Grid.RowDefinitions>
  185. <RowDefinition Height="*" />
  186. </Grid.RowDefinitions>
  187. <dynamicGrid:DynamicTabControl
  188. x:Name="Data"
  189. TabStripPlacement="Bottom"
  190. Grid.Column="0"
  191. Margin="5,0,0,0"
  192. SelectionChanged="Data_OnSelectionChanged">
  193. <dynamicGrid:DynamicTabItem x:Name="MonthView" Header="Month View">
  194. <Syncfusion:SfScheduler x:Name="Schedule"
  195. ViewType="Month"
  196. AppointmentEditorOpening="Schedule_AppointmentEditorOpening"
  197. SchedulerContextMenuOpening="Schedule_OnSchedulerContextMenuOpening"
  198. AppointmentDropping="Schedule_OnAppointmentDropping"
  199. QueryAppointments="Schedule_OnQueryAppointments">
  200. <Syncfusion:SfScheduler.CellContextMenu>
  201. <ContextMenu x:Name="CellContextMenu" />
  202. </Syncfusion:SfScheduler.CellContextMenu>
  203. <Syncfusion:SfScheduler.AppointmentContextMenu>
  204. <ContextMenu x:Name="AppointmentContextMenu" />
  205. </Syncfusion:SfScheduler.AppointmentContextMenu>
  206. <Syncfusion:SfScheduler.MonthViewSettings>
  207. <Syncfusion:MonthViewSettings
  208. AppointmentDisplayMode="Appointment"/>
  209. </Syncfusion:SfScheduler.MonthViewSettings>
  210. </Syncfusion:SfScheduler>
  211. </dynamicGrid:DynamicTabItem>
  212. <dynamicGrid:DynamicTabItem x:Name="JobView" Header="Job View">
  213. <Syncfusion:SfDataGrid
  214. x:Name="dataGrid"
  215. Grid.Row="0"
  216. Grid.Column="0"
  217. AutoGenerateColumns="True"
  218. AutoGeneratingColumn="DataGrid_AutoGeneratingColumn"
  219. RowHeight="30"
  220. AllowSorting="False"
  221. HeaderRowHeight="200"
  222. SelectionUnit="Cell"
  223. NavigationMode="Cell"
  224. FrozenColumnCount="2"
  225. CanMaintainScrollPosition="True"
  226. SelectionMode="Multiple"
  227. SelectionForegroundBrush="Yellow"
  228. RowSelectionBrush="Red"
  229. SelectionChanging="DataGrid_OnSelectionChanging"
  230. CurrentCellActivating="DataGrid_OnCurrentCellActivating"
  231. PreviewMouseDown="DataGrid_OnPreviewMouseDown"
  232. PreviewMouseUp="DataGrid_OnPreviewMouseUp"
  233. MouseUp="DataGrid_OnMouseUp">
  234. </Syncfusion:SfDataGrid>
  235. </dynamicGrid:DynamicTabItem>
  236. </dynamicGrid:DynamicTabControl>
  237. <dynamicGrid:DynamicTabControl
  238. x:Name="Settings"
  239. TabStripPlacement="Bottom"
  240. Grid.Column="1"
  241. Margin="5,0,0,0"
  242. Width="250">
  243. <dynamicGrid:DynamicTabItem Header="Assignments">
  244. <Grid Margin="0,0,0,2">
  245. <Grid.ColumnDefinitions>
  246. <ColumnDefinition Width="*" />
  247. </Grid.ColumnDefinitions>
  248. <Grid.RowDefinitions>
  249. <RowDefinition Height="*" x:Name="AvailableEmployeesRow" />
  250. <RowDefinition Height="Auto" />
  251. <RowDefinition Height="*" />
  252. <RowDefinition Height="Auto" />
  253. </Grid.RowDefinitions>
  254. <local:JobPlannerEmployeeGrid
  255. x:Name="AvailableEmployees"
  256. Action="Assign"
  257. Grid.Row="0"
  258. SizeChanged="AvailableEmployees_OnSizeChanged"
  259. OnAction="AvailableEmployees_OnOnAction"
  260. AfterRefresh="AvailableEmployees_OnAfterRefresh" />
  261. <Syncfusion:SfGridSplitter
  262. Grid.Row="1" Grid.Column="0"
  263. ResizeBehavior="PreviousAndNext"
  264. Height="4"
  265. HorizontalAlignment="Stretch"
  266. VerticalContentAlignment="Center"
  267. VerticalAlignment="Center"
  268. Background="Transparent"
  269. Template="{StaticResource HorizontalSplitter}">
  270. <Syncfusion:SfGridSplitter.PreviewStyle>
  271. <Style TargetType="Control">
  272. <Setter Property="Background" Value="Gray" />
  273. <Setter Property="Template">
  274. <Setter.Value>
  275. <ControlTemplate TargetType="Control">
  276. <Grid x:Name="Root" Opacity="0.5">
  277. <Rectangle Fill="{TemplateBinding Background}" />
  278. </Grid>
  279. </ControlTemplate>
  280. </Setter.Value>
  281. </Setter>
  282. </Style>
  283. </Syncfusion:SfGridSplitter.PreviewStyle>
  284. </Syncfusion:SfGridSplitter>
  285. <local:JobPlannerEmployeeGrid
  286. x:Name="AssignedEmployees"
  287. Action="Remove"
  288. Grid.Row="2"
  289. OnAction="AssignedEmployees_OnOnAction"
  290. AfterRefresh="AssignedEmployees_OnAfterRefresh" />
  291. <DockPanel Grid.Row="3" Margin="0,5,0,0">
  292. <Label Content="Activity" DockPanel.Dock="Left" VerticalContentAlignment="Center" />
  293. <ComboBox x:Name="ActivityType" DockPanel.Dock="Left" Margin="5,0,0,0"
  294. SelectionChanged="ActivityType_OnSelectionChanged" VerticalContentAlignment="Center"
  295. SelectedValuePath="ID" DisplayMemberPath="Name">
  296. </ComboBox>
  297. </DockPanel>
  298. </Grid>
  299. </dynamicGrid:DynamicTabItem>
  300. <dynamicGrid:DynamicTabItem Header="Settings">
  301. <Grid Margin="0,0,0,2">
  302. <Grid.ColumnDefinitions>
  303. <ColumnDefinition Width="Auto" />
  304. <ColumnDefinition Width="*" />
  305. </Grid.ColumnDefinitions>
  306. <Grid.RowDefinitions>
  307. <RowDefinition Height="300" x:Name="TeamSelectorRow" />
  308. <RowDefinition Height="Auto" />
  309. <RowDefinition Height="*" />
  310. <RowDefinition Height="Auto" />
  311. <RowDefinition Height="Auto" />
  312. <RowDefinition Height="Auto" />
  313. <RowDefinition Height="Auto" />
  314. </Grid.RowDefinitions>
  315. <DockPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
  316. <Border BorderBrush="Black" BorderThickness="0.75,0.75,0.75,0" DockPanel.Dock="Top"
  317. Background="Gainsboro" Padding="0">
  318. <Label Content="Employees" HorizontalAlignment="Center" Margin="-2" />
  319. </Border>
  320. <local:TeamSelector x:Name="TeamSelector" DockPanel.Dock="Top"
  321. SettingsChanged="TeamSelector_OnSettingsChanged"
  322. SelectionChanged="TeamSelector_OnSelectionChanged" />
  323. </DockPanel>
  324. <Syncfusion:SfGridSplitter
  325. Grid.Row="1"
  326. Grid.Column="0"
  327. Grid.ColumnSpan="2"
  328. ResizeBehavior="PreviousAndNext"
  329. Height="4"
  330. HorizontalAlignment="Stretch"
  331. VerticalContentAlignment="Center"
  332. VerticalAlignment="Center"
  333. Background="Transparent"
  334. Template="{StaticResource HorizontalSplitter}">
  335. <Syncfusion:SfGridSplitter.PreviewStyle>
  336. <Style TargetType="Control">
  337. <Setter Property="Background" Value="Gray" />
  338. <Setter Property="Template">
  339. <Setter.Value>
  340. <ControlTemplate TargetType="Control">
  341. <Grid x:Name="Root" Opacity="0.5">
  342. <Rectangle Fill="{TemplateBinding Background}" />
  343. </Grid>
  344. </ControlTemplate>
  345. </Setter.Value>
  346. </Setter>
  347. </Style>
  348. </Syncfusion:SfGridSplitter.PreviewStyle>
  349. </Syncfusion:SfGridSplitter>
  350. <local:JobSelector
  351. x:Name="JobSelector"
  352. Grid.Row="2"
  353. Grid.Column="0"
  354. Grid.ColumnSpan="2"
  355. SettingsChanged="JobSelector_OnSettingsChanged"
  356. SelectionChanged="JobSelector_OnSelectionChanged"
  357. SizeChanged="JobSelector_OnSizeChanged" />
  358. <Label Content="Window" Grid.Row="3" VerticalContentAlignment="Center" Margin="0,5,0,0" Height="25" />
  359. <ComboBox x:Name="ViewWindow" Grid.Row="3" Grid.Column="1" Margin="5,5,0,0"
  360. SelectionChanged="ViewWindow_OnSelectionChanged" VerticalContentAlignment="Center"
  361. SelectedValuePath="Key" DisplayMemberPath="Value">
  362. </ComboBox>
  363. <Label Content="Hrs / Day" Grid.Row="4" VerticalContentAlignment="Center" Margin="0,5,0,0"
  364. Height="25" />
  365. <DockPanel Grid.Row="4" Grid.Column="1" Margin="5,5,0,0">
  366. <Button DockPanel.Dock="Left" Padding="2" BorderThickness="0.75,0.75,0,0.75" Background="White"
  367. BorderBrush="Gray" Click="HoursSelector_Down_Click">
  368. <Image Source="pack://application:,,,/Resources/leftarrow.png" Height="20" Width="20" />
  369. </Button>
  370. <Button DockPanel.Dock="Right" Padding="2" BorderThickness="0,0.75,0.75,0.75"
  371. Background="White"
  372. BorderBrush="Gray" Click="HoursSelector_Up_Click">
  373. <Image Source="pack://application:,,,/Resources/rightarrow.png" Height="20" Width="20" />
  374. </Button>
  375. <TextBox x:Name="HoursSelector" IsReadOnly="True" DockPanel.Dock="Left"
  376. BorderThickness="0,0.75,0,0.75"
  377. BorderBrush="Gray" HorizontalContentAlignment="Center"
  378. VerticalContentAlignment="Center" />
  379. </DockPanel>
  380. <Label Content="Leave" Margin="0,5,0,0" VerticalContentAlignment="Center" Grid.Row="5" />
  381. <ComboBox x:Name="LeaveType" Margin="5,5,0,0" SelectionChanged="LeaveType_OnSelectionChanged"
  382. VerticalContentAlignment="Center" Grid.Row="5" Grid.Column="1">
  383. <ComboBoxItem Content="Approved Only" />
  384. <ComboBoxItem Content="Show All" />
  385. </ComboBox>
  386. <Label Content="Orientation" Margin="0,5,0,0" VerticalContentAlignment="Center" Grid.Row="6" />
  387. <ComboBox x:Name="Orientation" Margin="5,5,0,0" SelectionChanged="Orientation_OnSelectionChanged"
  388. VerticalContentAlignment="Center" Grid.Row="6" Grid.Column="1">
  389. <ComboBoxItem Content="Horizontal" />
  390. <ComboBoxItem Content="Vertical" />
  391. </ComboBox>
  392. </Grid>
  393. </dynamicGrid:DynamicTabItem>
  394. </dynamicGrid:DynamicTabControl>
  395. </Grid>
  396. </UserControl>