JobResourcePlanner.xaml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  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="250" />
  183. </Grid.ColumnDefinitions>
  184. <Grid.RowDefinitions>
  185. <RowDefinition Height="*" />
  186. </Grid.RowDefinitions>
  187. <Syncfusion:SfDataGrid
  188. x:Name="dataGrid"
  189. Grid.Row="0"
  190. Grid.Column="0"
  191. AutoGenerateColumns="True"
  192. AutoGeneratingColumn="DataGrid_AutoGeneratingColumn"
  193. RowHeight="30"
  194. AllowSorting="False"
  195. HeaderRowHeight="200"
  196. SelectionUnit="Cell"
  197. NavigationMode="Cell"
  198. FrozenColumnCount="2"
  199. CanMaintainScrollPosition="True"
  200. SelectionMode="Multiple"
  201. SelectionForegroundBrush="Yellow"
  202. RowSelectionBrush="Red"
  203. SelectionChanging="DataGrid_OnSelectionChanging"
  204. CurrentCellActivating="DataGrid_OnCurrentCellActivating"
  205. PreviewMouseDown="DataGrid_OnPreviewMouseDown"
  206. PreviewMouseUp="DataGrid_OnPreviewMouseUp"
  207. MouseUp="DataGrid_OnMouseUp">
  208. </Syncfusion:SfDataGrid>
  209. <dynamicGrid:DynamicTabControl TabStripPlacement="Bottom" Grid.Column="1" Margin="5,0,0,0">
  210. <dynamicGrid:DynamicTabItem Header="Assignments">
  211. <Grid Margin="0,0,0,2">
  212. <Grid.ColumnDefinitions>
  213. <ColumnDefinition Width="*" />
  214. </Grid.ColumnDefinitions>
  215. <Grid.RowDefinitions>
  216. <RowDefinition Height="*" x:Name="AvailableEmployeesRow" />
  217. <RowDefinition Height="Auto" />
  218. <RowDefinition Height="*" />
  219. <RowDefinition Height="Auto" />
  220. </Grid.RowDefinitions>
  221. <local:JobPlannerEmployeeGrid
  222. x:Name="AvailableEmployees"
  223. Action="Assign"
  224. Grid.Row="0"
  225. SizeChanged="AvailableEmployees_OnSizeChanged"
  226. OnAction="AvailableEmployees_OnOnAction"
  227. AfterRefresh="AvailableEmployees_OnAfterRefresh" />
  228. <Syncfusion:SfGridSplitter
  229. Grid.Row="1" Grid.Column="0"
  230. ResizeBehavior="PreviousAndNext"
  231. Height="4"
  232. HorizontalAlignment="Stretch"
  233. VerticalContentAlignment="Center"
  234. VerticalAlignment="Center"
  235. Background="Transparent"
  236. Template="{StaticResource HorizontalSplitter}">
  237. <Syncfusion:SfGridSplitter.PreviewStyle>
  238. <Style TargetType="Control">
  239. <Setter Property="Background" Value="Gray" />
  240. <Setter Property="Template">
  241. <Setter.Value>
  242. <ControlTemplate TargetType="Control">
  243. <Grid x:Name="Root" Opacity="0.5">
  244. <Rectangle Fill="{TemplateBinding Background}" />
  245. </Grid>
  246. </ControlTemplate>
  247. </Setter.Value>
  248. </Setter>
  249. </Style>
  250. </Syncfusion:SfGridSplitter.PreviewStyle>
  251. </Syncfusion:SfGridSplitter>
  252. <local:JobPlannerEmployeeGrid
  253. x:Name="AssignedEmployees"
  254. Action="Remove"
  255. Grid.Row="2"
  256. OnAction="AssignedEmployees_OnOnAction"
  257. AfterRefresh="AssignedEmployees_OnAfterRefresh" />
  258. <DockPanel Grid.Row="3" Margin="0,5,0,0">
  259. <Label Content="Activity" DockPanel.Dock="Left" VerticalContentAlignment="Center" />
  260. <ComboBox x:Name="ActivityType" DockPanel.Dock="Left" Margin="5,0,0,0"
  261. SelectionChanged="ActivityType_OnSelectionChanged" VerticalContentAlignment="Center"
  262. SelectedValuePath="ID" DisplayMemberPath="Name">
  263. </ComboBox>
  264. </DockPanel>
  265. </Grid>
  266. </dynamicGrid:DynamicTabItem>
  267. <dynamicGrid:DynamicTabItem Header="Settings">
  268. <Grid Margin="0,0,0,2">
  269. <Grid.ColumnDefinitions>
  270. <ColumnDefinition Width="Auto" />
  271. <ColumnDefinition Width="*" />
  272. </Grid.ColumnDefinitions>
  273. <Grid.RowDefinitions>
  274. <RowDefinition Height="300" x:Name="TeamSelectorRow" />
  275. <RowDefinition Height="Auto" />
  276. <RowDefinition Height="*" />
  277. <RowDefinition Height="Auto" />
  278. <RowDefinition Height="Auto" />
  279. <RowDefinition Height="Auto" />
  280. <RowDefinition Height="Auto" />
  281. </Grid.RowDefinitions>
  282. <DockPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
  283. <Border BorderBrush="Black" BorderThickness="0.75,0.75,0.75,0" DockPanel.Dock="Top"
  284. Background="Gainsboro" Padding="0">
  285. <Label Content="Employees" HorizontalAlignment="Center" Margin="-2" />
  286. </Border>
  287. <local:TeamSelector x:Name="TeamSelector" DockPanel.Dock="Top"
  288. SettingsChanged="TeamSelector_OnSettingsChanged"
  289. SelectionChanged="TeamSelector_OnSelectionChanged" />
  290. </DockPanel>
  291. <Syncfusion:SfGridSplitter
  292. Grid.Row="1"
  293. Grid.Column="0"
  294. Grid.ColumnSpan="2"
  295. ResizeBehavior="PreviousAndNext"
  296. Height="4"
  297. HorizontalAlignment="Stretch"
  298. VerticalContentAlignment="Center"
  299. VerticalAlignment="Center"
  300. Background="Transparent"
  301. Template="{StaticResource HorizontalSplitter}">
  302. <Syncfusion:SfGridSplitter.PreviewStyle>
  303. <Style TargetType="Control">
  304. <Setter Property="Background" Value="Gray" />
  305. <Setter Property="Template">
  306. <Setter.Value>
  307. <ControlTemplate TargetType="Control">
  308. <Grid x:Name="Root" Opacity="0.5">
  309. <Rectangle Fill="{TemplateBinding Background}" />
  310. </Grid>
  311. </ControlTemplate>
  312. </Setter.Value>
  313. </Setter>
  314. </Style>
  315. </Syncfusion:SfGridSplitter.PreviewStyle>
  316. </Syncfusion:SfGridSplitter>
  317. <local:JobSelector
  318. x:Name="JobSelector"
  319. Grid.Row="2"
  320. Grid.Column="0"
  321. Grid.ColumnSpan="2"
  322. SettingsChanged="JobSelector_OnSettingsChanged"
  323. SelectionChanged="JobSelector_OnSelectionChanged"
  324. SizeChanged="JobSelector_OnSizeChanged" />
  325. <Label Content="Window" Grid.Row="3" VerticalContentAlignment="Center" Margin="0,5,0,0" Height="25" />
  326. <ComboBox x:Name="ViewWindow" Grid.Row="3" Grid.Column="1" Margin="5,5,0,0"
  327. SelectionChanged="ViewWindow_OnSelectionChanged" VerticalContentAlignment="Center"
  328. SelectedValuePath="Key" DisplayMemberPath="Value">
  329. </ComboBox>
  330. <Label Content="Hrs / Day" Grid.Row="4" VerticalContentAlignment="Center" Margin="0,5,0,0"
  331. Height="25" />
  332. <DockPanel Grid.Row="4" Grid.Column="1" Margin="5,5,0,0">
  333. <Button DockPanel.Dock="Left" Padding="2" BorderThickness="0.75,0.75,0,0.75" Background="White"
  334. BorderBrush="Gray" Click="HoursSelector_Down_Click">
  335. <Image Source="pack://application:,,,/Resources/leftarrow.png" Height="20" Width="20" />
  336. </Button>
  337. <Button DockPanel.Dock="Right" Padding="2" BorderThickness="0,0.75,0.75,0.75"
  338. Background="White"
  339. BorderBrush="Gray" Click="HoursSelector_Up_Click">
  340. <Image Source="pack://application:,,,/Resources/rightarrow.png" Height="20" Width="20" />
  341. </Button>
  342. <TextBox x:Name="HoursSelector" IsReadOnly="True" DockPanel.Dock="Left"
  343. BorderThickness="0,0.75,0,0.75"
  344. BorderBrush="Gray" HorizontalContentAlignment="Center"
  345. VerticalContentAlignment="Center" />
  346. </DockPanel>
  347. <Label Content="Leave" Margin="0,5,0,0" VerticalContentAlignment="Center" Grid.Row="5" />
  348. <ComboBox x:Name="LeaveType" Margin="5,5,0,0" SelectionChanged="LeaveType_OnSelectionChanged"
  349. VerticalContentAlignment="Center" Grid.Row="5" Grid.Column="1">
  350. <ComboBoxItem Content="Approved Only" />
  351. <ComboBoxItem Content="Show All" />
  352. </ComboBox>
  353. <Label Content="Orientation" Margin="0,5,0,0" VerticalContentAlignment="Center" Grid.Row="6" />
  354. <ComboBox x:Name="Orientation" Margin="5,5,0,0" SelectionChanged="Orientation_OnSelectionChanged"
  355. VerticalContentAlignment="Center" Grid.Row="6" Grid.Column="1">
  356. <ComboBoxItem Content="Horizontal" />
  357. <ComboBoxItem Content="Vertical" />
  358. </ComboBox>
  359. </Grid>
  360. </dynamicGrid:DynamicTabItem>
  361. </dynamicGrid:DynamicTabControl>
  362. </Grid>
  363. </UserControl>