DigitalFormsDock.xaml.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Linq;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Media;
  6. using InABox.Core;
  7. using InABox.WPF;
  8. namespace PRSDesktop;
  9. public partial class DigitalFormsDock : UserControl, IDockPanel
  10. {
  11. private static readonly SolidColorBrush EnabledBrush = new SolidColorBrush(Colors.LightYellow);
  12. private static readonly SolidColorBrush DisabledBrush = new SolidColorBrush(Colors.LightGray);
  13. public DigitalFormsDock()
  14. {
  15. InitializeComponent();
  16. //RefreshButton.Content = new Image() { Source = PRSDesktop.Resources.refresh.AsBitmapImage() };
  17. foreach (var (type, image) in DigitalFormDockGrid.Images)
  18. {
  19. var button = new Button();
  20. button.Background = EnabledBrush;
  21. button.Content = new Image() { Source = image.AsBitmapImage() };
  22. button.BorderBrush = new SolidColorBrush(Colors.Gray);
  23. button.BorderThickness = new Thickness(0.75);
  24. button.Margin = new Thickness(2, 0, 0, 0);
  25. button.Width = 25D;
  26. button.Padding = new Thickness(2);
  27. button.ToolTip = type.EntityName().Split('.').Last().SplitCamelCase();
  28. button.Click += TypeFilterClick;
  29. button.Tag = type;
  30. TypeStack.Children.Add(button);
  31. }
  32. }
  33. private void TypeFilterClick(object sender, RoutedEventArgs e)
  34. {
  35. var button = (sender as Button)!;
  36. var type = (button.Tag as Type)!;
  37. if (Items.ExcludedTypes.Contains(type))
  38. Items.ExcludedTypes.Remove(type);
  39. else
  40. Items.ExcludedTypes.Add(type);
  41. button.Background = Items.ExcludedTypes.Contains(type)
  42. ? DisabledBrush
  43. : EnabledBrush;
  44. Refresh();
  45. }
  46. private void RefreshButton_OnClick(object sender, RoutedEventArgs e)
  47. {
  48. Refresh();
  49. }
  50. public void Setup()
  51. {
  52. Items.Refresh(true, false);
  53. }
  54. public void Refresh()
  55. {
  56. Items.Refresh(false, true);
  57. }
  58. private void AgeCombo_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
  59. {
  60. var startdate = AgeCombo.SelectedIndex == 2
  61. ? DateTime.Today.AddDays(-30)
  62. : AgeCombo.SelectedIndex == 1
  63. ? DateTime.Today.AddDays(-7)
  64. : DateTime.Today;
  65. if ((Items != null) && (startdate != Items.StartDate))
  66. {
  67. Items.StartDate = startdate;
  68. Refresh();
  69. }
  70. }
  71. }