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
<UserControl x:Class="Tango.MachineStudio.Logging.Views.HomeView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:global="clr-namespace:Tango.MachineStudio.Logging"
             xmlns:vm="clr-namespace:Tango.MachineStudio.Logging.ViewModels"
             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:local="clr-namespace:Tango.MachineStudio.Logging.Views"
             mc:Ignorable="d" 
             d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:HomeViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.HomeViewVM}">

    <UserControl.Resources>
        <Style TargetType="Border" x:Key="LogBorder">
            <Setter Property="Padding" Value="50"></Setter>
            <Setter Property="Background" Value="{DynamicResource LogBorder.Background}"/>
            <Setter Property="CornerRadius" Value="20"></Setter>
            <Setter Property="Width" Value="450"></Setter>
            <Setter Property="Height" Value="400"></Setter>
            <Setter Property="TextElement.Foreground" Value="{DynamicResource DarkGrayBrush}"></Setter>
            <Setter Property="TextElement.FontSize" Value="25"></Setter>
            <Setter Property="BorderThickness" Value="1"></Setter>
            <Setter Property="BorderBrush" Value="{DynamicResource LightGrayBrush200}"></Setter>
            <Setter Property="Cursor" Value="Hand"></Setter>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="TextElement.Foreground" Value="DodgerBlue"></Setter>
                    <Setter Property="BorderBrush" Value="DodgerBlue"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </UserControl.Resources>

    <Grid>

        <TextBlock Margin="80 50" FontSize="16">
            <Run FontSize="20">Machine Studio logs information from multiple source.</Run>
            <LineBreak/>
            <LineBreak/>
            <LineBreak/>
            <Run FontWeight="SemiBold">• Machine Events</Run> <Run>are predefined events that occurs only when a set of predefined actions have occurred (e.g 'Job executed', 'Thread Break').</Run>
            <LineBreak/>
            <LineBreak/>
            <Run FontWeight="SemiBold">• Application Logs</Run> <Run>are the standard machine studio logs which can be used to trace issues in code.</Run>
            <LineBreak/>
            <LineBreak/>
            <Run FontWeight="SemiBold">• Embedded Logs</Run> <Run>are logs transmitted from the machine's embedded device software.</Run>
        </TextBlock>
        
        <UniformGrid Columns="3" Rows="1" VerticalAlignment="Center" Margin="50 150 50 0">
            <Button Style="{StaticResource emptyButton}" Margin="70" Padding="0" Height="Auto" Command="{Binding NavigateToCommand}" CommandParameter="EventsView">
                <Border Style="{StaticResource LogBorder}">
                    <DockPanel>
                        <TextBlock HorizontalAlignment="Center" Margin="0 20 0 0" DockPanel.Dock="Bottom">MACHINE EVENTS</TextBlock>
                        <Image Source="../Images/events.png"></Image>
                    </DockPanel>
                </Border>
            </Button>

            <Button Style="{StaticResource emptyButton}" Margin="70" Padding="0" Height="Auto" Command="{Binding NavigateToCommand}" CommandParameter="ApplicationLogsView">
                <Border Style="{StaticResource LogBorder}">
                    <DockPanel>
                        <TextBlock HorizontalAlignment="Center" Margin="0 20 0 0" DockPanel.Dock="Bottom">APPLICATION LOGS</TextBlock>
                        <Image Source="../Images/application-logs.png"></Image>
                    </DockPanel>
                </Border>
            </Button>

            <Button Style="{StaticResource emptyButton}" Margin="70" Padding="0" Height="Auto" Command="{Binding NavigateToCommand}" CommandParameter="EmbeddedLogsView">
                <Border Style="{StaticResource LogBorder}">
                    <DockPanel>
                        <TextBlock HorizontalAlignment="Center" Margin="0 20 0 0" DockPanel.Dock="Bottom">EMBEDDED LOGS</TextBlock>
                        <Image Source="../Images/embedded-logs.png"></Image>
                    </DockPanel>
                </Border>
            </Button>
        </UniformGrid>
    </Grid>
</UserControl>
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; } } }