aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/HomeView.xaml
blob: 1059a06a7f449bdf16e1398d5dca9753d78bd51b (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
using LiveCharts;
using LiveCharts.Wpf;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
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;
using Tango.SharedUI.Components;

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 SelectOrganizationButton_Click(object sender, RoutedEventArgs e)
        {
            selectOrgButton.IsChecked = true;
            e.Handled = true;
        }

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

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

        private void IsHeadCleaningButton_Click(object sender, RoutedEventArgs e)
        {
            isHeadCleaningToggleButton.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);
                }
            }
        }

        private void CheckBox_PreventUndoCheck(object sender, RoutedEventArgs e)
        {
            if( sender is CheckBox)
            {
                CheckBox cb = sender as CheckBox;
                if (cb.IsChecked == false)
                {
                    cb.IsChecked = true;
                    e.Handled = true;
                    return;
                }
            }
            e.Handled = false;
        }
        private void CheckBox_StayChecked(object sender, RoutedEventArgs e)
        {
            if (sender is CheckBox)
            {
                CheckBox cb = sender as CheckBox;
                if (cb.IsChecked == false)
                {
                    var col = cb.Tag;
                    Type type = col.GetType();
                    if (col != null && col.GetType().GetGenericTypeDefinition() == typeof(SelectedObjectCollection<>))
                    {
                        dynamic dSynchedSource = type.GetProperty("SynchedSource").GetValue(col);
                        if(dSynchedSource != null && dSynchedSource.GetType().GetGenericTypeDefinition() == typeof(ObservableCollection<>) && dSynchedSource.Count == 0)
                        {
                                cb.IsChecked = true;
                                e.Handled = true;
                                return; 
                        }
                    }
                }
            }
            e.Handled = false;
        }
        
    }
}