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 { /// /// Interaction logic for JobRunsView.xaml /// 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; } } }