aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml.cs
blob: bd5d88c3b39e0108224b9099ae2ff15258a1ae46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
using LiveCharts;
using LiveCharts.Wpf;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Tango.MachineStudio.Statistics.Views
{
    /// <summary>
    /// Interaction logic for JobRunsView.xaml
    /// </summary>
    public partial class JobRunsView : UserControl
    {
        private int _lastSelectedGridItemIndex;
        public JobRunsView()
        {
            InitializeComponent();
            _lastSelectedGridItemIndex = -1;
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            selectMachineButton.IsChecked = true;
            e.Handled = true;
        }
        
        private void JobRunSourcesButton_Click(object sender, RoutedEventArgs e)
        {
            selectJobRunSources.IsChecked = true;
            e.Handled = true;
        }
        private void IsGradientButton_Click(object sender, RoutedEventArgs e)
        {
            selectIsGradient.IsChecked = true;
            e.Handled = true;
        }
        private void JobRunStatusButton_Click(object sender, RoutedEventArgs e)
        {
            selectJobRunStatus.IsChecked = true;
            e.Handled = true;
        }
        
        private async void TextBox_GotFocus(object sender, RoutedEventArgs e)
        {
            await Task.Delay(200);
            TextBox txtBox = sender as TextBox;
            txtBox.SelectAll();
        }

        private void TextBox_PreviewMouseUp(object sender, MouseButtonEventArgs e)
        {
            e.Handled = true;
        }

        private void SelectMachineButton_Click(object sender, RoutedEventArgs e)
        {
            selectThreadsButton.IsChecked = true;
            e.Handled = true;
        }

        private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            DataGrid dataGrid = sender as DataGrid;
            _lastSelectedGridItemIndex = -1;
            if (e.AddedItems != null && e.AddedItems.Count > 0)
            {
                DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromItem(e.AddedItems[0]);
                if (row != null)
                {
                    _lastSelectedGridItemIndex = row.GetIndex();
                }
            }
        }

        private void StartDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            DatePicker datePickerObj = sender as DatePicker;
            if(datePickerObj != null && datePickerObj.SelectedDate != null && endDatePicker.SelectedDate != null)
            {
                if(datePickerObj.SelectedDate> endDatePicker.SelectedDate)
                {
                    BindingExpression start_be = datePickerObj.GetBindingExpression(DatePicker.SelectedDateProperty);
                    ValidationError validationError = new ValidationError(StartDateExpiredRule, start_be);
                    validationError.ErrorContent = "The start time must be less than or equal to end time.";
                    Validation.MarkInvalid(start_be, validationError);
                }
                else if (Validation.GetHasError(endDatePicker))
                {
                     BindingExpression end_be = endDatePicker.GetBindingExpression(DatePicker.SelectedDateProperty);
                     Validation.ClearInvalid(end_be);
                }
            }
        }

        private void EndDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            DatePicker datePickerObj = sender as DatePicker;
            if (datePickerObj.SelectedDate != null && startdatePicker.SelectedDate != null )
            {
                if(datePickerObj != null && datePickerObj.SelectedDate < startdatePicker.SelectedDate)
                {
                    BindingExpression end_be = datePickerObj.GetBindingExpression(DatePicker.SelectedDateProperty);
                    ValidationError validationError = new ValidationError(EndDateExpiredRule, end_be);
                    validationError.ErrorContent = "The end time must be greater than or equal to the start time.";
                    Validation.MarkInvalid(end_be, validationError);
                }
                else if (Validation.GetHasError(startdatePicker))
                {
                    BindingExpression start_be = startdatePicker.GetBindingExpression(DatePicker.SelectedDateProperty);
                    Validation.ClearInvalid(start_be);
                }
            }
        }
    }
}