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);
}
}
}
}
}