aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml484
1 files changed, 344 insertions, 140 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml
index fe04cead7..cff53ea8d 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml
@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:localConverters="clr-namespace:Tango.MachineStudio.Developer.Converters"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:vm="clr-namespace:Tango.MachineStudio.Developer.ViewModels"
xmlns:global="clr-namespace:Tango.MachineStudio.Developer"
@@ -13,130 +14,40 @@
<UserControl.Resources>
<converters:DateTimeUTCToStringConverter x:Key="DateTimeUTCToStringConverter" />
+ <localConverters:ObjectToPropertiesConverter x:Key="ObjectToPropertiesConverter" />
+ <converters:MathOperatorConverter x:Key="MathOperatorConverter" />
</UserControl.Resources>
- <Grid Margin="40">
- <Grid.RowDefinitions>
- <RowDefinition Height="900*" MinHeight="50" />
- <RowDefinition Height="5"/>
- <RowDefinition Height="743*" MinHeight="170"/>
- </Grid.RowDefinitions>
+ <Grid>
+ <Grid Margin="40">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="900*" MinHeight="50" />
+ <RowDefinition Height="5"/>
+ <RowDefinition Height="743*" MinHeight="170"/>
+ </Grid.RowDefinitions>
- <Grid>
- <DockPanel>
- <StackPanel Margin="0 0 0 0" Orientation="Horizontal" DockPanel.Dock="Top">
- <materialDesign:PackIcon Kind="Settings" Width="40" Height="40" />
- <TextBlock FontSize="30" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0">Status</TextBlock>
- </StackPanel>
- <DataGrid x:Name="gridSegments" SelectionMode="Single" SelectionChanged="DataGrid_SelectionChanged" SelectionUnit="FullRow" RowHeight="40" GridLinesVisibility="None" ItemsSource="{Binding RunningJobStatus.Segments}" IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding RunningJobStatus.CurrentSegment}" Background="Transparent" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" IsReadOnly="True" AutoGenerateColumns="False">
- <DataGrid.RowStyle>
- <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Foreground" Value="White"></Setter>
- <Setter Property="Background">
- <Setter.Value>
- <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
- <GradientStop Color="#FFFF7A7A"/>
- <GradientStop Color="Transparent" Offset="1"/>
- </LinearGradientBrush>
- </Setter.Value>
- </Setter>
- <Setter Property="BorderThickness" Value="1"></Setter>
- <Setter Property="BorderBrush" Value="White"></Setter>
- </Trigger>
- </Style.Triggers>
- </Style>
- </DataGrid.RowStyle>
- <DataGrid.CellStyle>
- <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
- <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="White"></Setter>
- </Trigger>
- </Style.Triggers>
- </Style>
- </DataGrid.CellStyle>
- <DataGrid.Columns>
- <DataGridTextColumn Width="Auto" Header="#" Binding="{Binding SegmentIndex}" />
- <DataGridTemplateColumn Header="Status">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <materialDesign:PackIcon VerticalAlignment="Center" HorizontalAlignment="Center">
- <materialDesign:PackIcon.Style>
- <Style TargetType="materialDesign:PackIcon">
- <Setter Property="Kind" Value="PauseCircle"></Setter>
- <Setter Property="Foreground" Value="Gray"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding Started}" Value="True">
- <Setter Property="Kind" Value="ClockFast"></Setter>
- <Setter Property="Foreground" Value="White"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Completed}" Value="True">
- <Setter Property="Kind" Value="CheckCircle"></Setter>
- <Setter Property="Foreground" Value="#29B31D"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </materialDesign:PackIcon.Style>
- </materialDesign:PackIcon>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTemplateColumn>
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <Rectangle Width="80" Fill="{Binding SegmentBrush}" Stroke="Gray"></Rectangle>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
- <DataGridTextColumn Header="Length" Binding="{Binding Length,StringFormat={}{0:F2} m}" />
- <DataGridTextColumn Header="Progress" Binding="{Binding Progress,StringFormat={}{0:F2} m}" />
- <DataGridTextColumn Header="Estimated Duration" Binding="{Binding EstimatedDuration,StringFormat='hh\\:mm\\:ss'}" />
- <DataGridTextColumn Header="Remaining Time" Binding="{Binding RemainingTime,StringFormat='hh\\:mm\\:ss'}" />
- </DataGrid.Columns>
- </DataGrid>
- </DockPanel>
- </Grid>
-
- <GridSplitter Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="5" Background="Black" />
- <Grid Grid.Row="2" Margin="0 40 0 0">
- <DockPanel>
- <StackPanel Margin="0 0 0 0" Orientation="Horizontal" DockPanel.Dock="Top">
- <materialDesign:PackIcon Kind="Settings" Width="40" Height="40" />
- <TextBlock FontSize="30" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0">Events</TextBlock>
- </StackPanel>
- <Grid DockPanel.Dock="Bottom" Height="40">
- <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 0 0 0">
- <Button Command="{Binding BackToJobCommand}" Style="{StaticResource MaterialDesignFlatButton}" FontSize="16">
- <StackPanel Orientation="Horizontal">
- <materialDesign:PackIcon VerticalAlignment="Center" Kind="KeyboardBackspace" Width="24" Height="24"></materialDesign:PackIcon>
- <TextBlock Margin="10 0 0 0">BACK TO JOB</TextBlock>
- </StackPanel>
- </Button>
+ <Grid>
+ <DockPanel>
+ <StackPanel Margin="0 0 0 0" Orientation="Horizontal" DockPanel.Dock="Top">
+ <materialDesign:PackIcon Kind="Settings" Width="40" Height="40" />
+ <TextBlock FontSize="30" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0">Status</TextBlock>
</StackPanel>
- </Grid>
-
- <Grid>
- <DataGrid Background="Transparent" AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding JobEvents}" SelectedItem="{Binding SelectedJobEvent}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" IsReadOnly="True">
+ <DataGrid x:Name="gridSegments" SelectionMode="Single" SelectionChanged="DataGrid_SelectionChanged" SelectionUnit="FullRow" RowHeight="40" GridLinesVisibility="None" ItemsSource="{Binding RunningJobStatus.Segments}" IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding RunningJobStatus.CurrentSegment}" Background="Transparent" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" IsReadOnly="True" AutoGenerateColumns="False">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
<Style.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
- <Setter Property="Cursor" Value="Hand"></Setter>
- </Trigger>
<Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- </Trigger>
- <Trigger Property="IsFocused" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
+ <Setter Property="Foreground" Value="White"></Setter>
+ <Setter Property="Background">
+ <Setter.Value>
+ <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
+ <GradientStop Color="#FFFF7A7A"/>
+ <GradientStop Color="Transparent" Offset="1"/>
+ </LinearGradientBrush>
+ </Setter.Value>
+ </Setter>
+ <Setter Property="BorderThickness" Value="1"></Setter>
+ <Setter Property="BorderBrush" Value="White"></Setter>
</Trigger>
</Style.Triggers>
</Style>
@@ -149,34 +60,29 @@
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Transparent"></Setter>
+ <Setter Property="Foreground" Value="White"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
- <DataGridTemplateColumn Header="#">
+ <DataGridTextColumn Width="Auto" Header="#" Binding="{Binding SegmentIndex}" />
+ <DataGridTemplateColumn Header="Status">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
- <materialDesign:PackIcon Width="16" Height="16">
+ <materialDesign:PackIcon VerticalAlignment="Center" HorizontalAlignment="Center">
<materialDesign:PackIcon.Style>
<Style TargetType="materialDesign:PackIcon">
- <Setter Property="Kind" Value="Alert"></Setter>
+ <Setter Property="Kind" Value="PauseCircle"></Setter>
+ <Setter Property="Foreground" Value="Gray"></Setter>
<Style.Triggers>
- <DataTrigger Binding="{Binding Category}" Value="Info">
- <Setter Property="Kind" Value="Information"></Setter>
- <Setter Property="Foreground" Value="DimGray"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Category}" Value="Warning">
- <Setter Property="Kind" Value="Alert"></Setter>
- <Setter Property="Foreground" Value="#FFA300"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Category}" Value="Error">
- <Setter Property="Kind" Value="AlertOctagon"></Setter>
- <Setter Property="Foreground" Value="#FF5C5C"></Setter>
+ <DataTrigger Binding="{Binding Started}" Value="True">
+ <Setter Property="Kind" Value="ClockFast"></Setter>
+ <Setter Property="Foreground" Value="White"></Setter>
</DataTrigger>
- <DataTrigger Binding="{Binding Category}" Value="Critical">
- <Setter Property="Kind" Value="BellPlus"></Setter>
- <Setter Property="Foreground" Value="Red"></Setter>
+ <DataTrigger Binding="{Binding Completed}" Value="True">
+ <Setter Property="Kind" Value="CheckCircle"></Setter>
+ <Setter Property="Foreground" Value="#29B31D"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
@@ -185,20 +91,318 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
- <DataGridTextColumn SortDirection="Descending" Header="DATE TIME" Binding="{Binding DateTime,Converter={StaticResource DateTimeUTCToStringConverter},ConverterParameter='MM/dd/yyyy HH:mm:ss.fff'}" />
- <DataGridTextColumn Header="GROUP" Binding="{Binding EventType.EventTypesGroup.Name}" />
- <DataGridTextColumn Header="EVENT" Binding="{Binding EventType.Name}" />
- <DataGridTemplateColumn Header="MESSAGE" Width="1*">
+ <DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
- <TextBlock Text="{Binding Description}" TextTrimming="CharacterEllipsis"></TextBlock>
+ <Rectangle Width="80" Fill="{Binding SegmentBrush}" Stroke="Gray"></Rectangle>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
+ <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
+ <DataGridTextColumn Header="Length" Binding="{Binding Length,StringFormat={}{0:F2} m}" />
+ <DataGridTextColumn Header="Progress" Binding="{Binding Progress,StringFormat={}{0:F2} m}" />
+ <DataGridTextColumn Header="Estimated Duration" Binding="{Binding EstimatedDuration,StringFormat='hh\\:mm\\:ss'}" />
+ <DataGridTextColumn Header="Remaining Time" Binding="{Binding RemainingTime,StringFormat='hh\\:mm\\:ss'}" />
</DataGrid.Columns>
</DataGrid>
- </Grid>
- </DockPanel>
+ </DockPanel>
+ </Grid>
+
+ <GridSplitter Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="5" Background="Black" />
+ <Grid Grid.Row="2" Margin="0 40 0 0">
+ <DockPanel>
+ <StackPanel Margin="0 0 0 0" Orientation="Horizontal" DockPanel.Dock="Top">
+ <materialDesign:PackIcon Kind="Settings" Width="40" Height="40" />
+ <TextBlock FontSize="30" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0">Events</TextBlock>
+ </StackPanel>
+ <Grid DockPanel.Dock="Bottom" Height="40">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 0 0 0">
+ <Button Command="{Binding BackToJobCommand}" Style="{StaticResource MaterialDesignFlatButton}" FontSize="16">
+ <StackPanel Orientation="Horizontal">
+ <materialDesign:PackIcon VerticalAlignment="Center" Kind="KeyboardBackspace" Width="24" Height="24"></materialDesign:PackIcon>
+ <TextBlock Margin="10 0 0 0">BACK TO JOB</TextBlock>
+ </StackPanel>
+ </Button>
+ </StackPanel>
+ </Grid>
+
+ <Grid>
+ <DataGrid Background="Transparent" AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding JobEvents}" SelectedItem="{Binding SelectedJobEvent}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" IsReadOnly="True">
+ <DataGrid.RowStyle>
+ <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
+ <Style.Triggers>
+ <Trigger Property="IsMouseOver" Value="True">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
+ <Setter Property="Cursor" Value="Hand"></Setter>
+ </Trigger>
+ <Trigger Property="IsSelected" Value="True">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ </Trigger>
+ <Trigger Property="IsFocused" Value="True">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </DataGrid.RowStyle>
+ <DataGrid.CellStyle>
+ <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
+ <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
+ <Style.Triggers>
+ <Trigger Property="IsSelected" Value="True">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </DataGrid.CellStyle>
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="#">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <materialDesign:PackIcon Width="16" Height="16">
+ <materialDesign:PackIcon.Style>
+ <Style TargetType="materialDesign:PackIcon">
+ <Setter Property="Kind" Value="Alert"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Category}" Value="Info">
+ <Setter Property="Kind" Value="Information"></Setter>
+ <Setter Property="Foreground" Value="DimGray"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Category}" Value="Warning">
+ <Setter Property="Kind" Value="Alert"></Setter>
+ <Setter Property="Foreground" Value="#FFA300"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Category}" Value="Error">
+ <Setter Property="Kind" Value="AlertOctagon"></Setter>
+ <Setter Property="Foreground" Value="#FF5C5C"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Category}" Value="Critical">
+ <Setter Property="Kind" Value="BellPlus"></Setter>
+ <Setter Property="Foreground" Value="Red"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </materialDesign:PackIcon.Style>
+ </materialDesign:PackIcon>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn SortDirection="Descending" Header="DATE TIME" Binding="{Binding DateTime,Converter={StaticResource DateTimeUTCToStringConverter},ConverterParameter='MM/dd/yyyy HH:mm:ss.fff'}" />
+ <DataGridTextColumn Header="GROUP" Binding="{Binding EventType.EventTypesGroup.Name}" />
+ <DataGridTextColumn Header="EVENT" Binding="{Binding EventType.Name}" />
+ <DataGridTemplateColumn Header="MESSAGE" Width="1*">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Description}" TextTrimming="CharacterEllipsis"></TextBlock>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </Grid>
+ </DockPanel>
+ </Grid>
+ </Grid>
+
+ <Grid HorizontalAlignment="Right">
+ <Grid RenderTransformOrigin="1,0.5">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="LayoutTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleY="1" ScaleX="0" />
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ElementName=toggleOutline,Path=IsChecked}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Duration="00:00:0.2" Storyboard.TargetProperty="LayoutTransform.ScaleX" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="0" Duration="00:00:0.2" Storyboard.TargetProperty="LayoutTransform.ScaleX" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ <Border BorderBrush="Gray" BorderThickness="1 0 0 0" Background="White">
+ <Grid>
+ <ScrollViewer Padding="20" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
+ <StackPanel>
+ <TextBlock Text="JOB OUTLINE" HorizontalAlignment="Center" Margin="0 10 0 0" FontSize="30"></TextBlock>
+
+ <TextBlock FontSize="17" FontWeight="SemiBold" Margin="0 20 0 0">BASIC</TextBlock>
+ <ItemsControl Margin="10 0 0 0" ItemsSource="{Binding JobHandler.JobTicket,Converter={StaticResource ObjectToPropertiesConverter}}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <materialDesign:PackIcon Kind="Pencil" Width="12" Height="12" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
+ <Run Text="{Binding Name,Mode=OneWay}"></Run><Run>:</Run>
+ <Run Text="{Binding Value,Mode=OneWay}" FontWeight="SemiBold"></Run>
+ </TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <TextBlock FontSize="17" FontWeight="SemiBold" Margin="0 20 0 0">SPOOL</TextBlock>
+ <ItemsControl Margin="10 0 0 0" ItemsSource="{Binding JobHandler.JobTicket.Spool,Converter={StaticResource ObjectToPropertiesConverter}}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <materialDesign:PackIcon Kind="Pencil" Width="12" Height="12" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
+ <Run Text="{Binding Name,Mode=OneWay}"></Run><Run>:</Run>
+ <Run Text="{Binding Value,Mode=OneWay}" FontWeight="SemiBold"></Run>
+ </TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <TextBlock FontSize="17" FontWeight="SemiBold" Margin="0 20 0 0">PROCESS PARAMETERS</TextBlock>
+ <ItemsControl Margin="10 0 0 0" ItemsSource="{Binding JobHandler.JobTicket.ProcessParameters,Converter={StaticResource ObjectToPropertiesConverter}}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <materialDesign:PackIcon Kind="Settings" Width="12" Height="12" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
+ <Run Text="{Binding Name,Mode=OneWay}"></Run><Run>:</Run>
+ <Run Text="{Binding Value,Mode=OneWay}" FontWeight="SemiBold"></Run>
+ </TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <TextBlock FontSize="17" FontWeight="SemiBold" Margin="0 20 0 0">SEGMENTS</TextBlock>
+ <ItemsControl Margin="10 0 0 0" ItemsSource="{Binding JobHandler.JobTicket.Segments}" AlternationCount="10000">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel>
+ <TextBlock FontSize="14" FontWeight="SemiBold" Margin="0 10 0 0">
+ <Run>#</Run><Run Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=(ItemsControl.AlternationIndex),Mode=OneWay,Converter={StaticResource MathOperatorConverter},ConverterParameter='+1'}"></Run>
+ <Run Text="SEGMENT"></Run>
+ </TextBlock>
+
+ <ItemsControl Margin="10 0 0 0" ItemsSource="{Binding Converter={StaticResource ObjectToPropertiesConverter}}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <materialDesign:PackIcon Kind="Pencil" Width="12" Height="12" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
+ <Run Text="{Binding Name,Mode=OneWay}"></Run><Run>:</Run>
+ <Run Text="{Binding Value,Mode=OneWay}" FontWeight="SemiBold"></Run>
+ </TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <TextBlock FontSize="12" FontWeight="SemiBold" Margin="27 10 0 0">BRUSH STOPS</TextBlock>
+ <ItemsControl Margin="40 0 0 0" ItemsSource="{Binding BrushStops}" AlternationCount="10000">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel>
+ <TextBlock FontSize="11" FontWeight="SemiBold" Margin="0 5 0 0">
+ <Run>#</Run><Run Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=(ItemsControl.AlternationIndex),Mode=OneWay,Converter={StaticResource MathOperatorConverter},ConverterParameter='+1'}"></Run>
+ <Run Text="STOP"></Run>
+ </TextBlock>
+
+ <ItemsControl Margin="10 0 0 0" ItemsSource="{Binding Converter={StaticResource ObjectToPropertiesConverter}}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <materialDesign:PackIcon Kind="Pencil" Width="12" Height="12" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
+ <Run Text="{Binding Name,Mode=OneWay}"></Run><Run>:</Run>
+ <Run Text="{Binding Value,Mode=OneWay}" FontWeight="SemiBold"></Run>
+ </TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <TextBlock FontSize="12" FontWeight="SemiBold" Margin="27 10 0 0">DISPENSERS</TextBlock>
+ <ItemsControl Margin="40 0 0 0" ItemsSource="{Binding Dispensers}" AlternationCount="10000">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel>
+ <TextBlock FontSize="11" FontWeight="SemiBold" Margin="0 5 0 0">
+ <Run>#</Run><Run Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=(ItemsControl.AlternationIndex),Mode=OneWay,Converter={StaticResource MathOperatorConverter},ConverterParameter='+1'}"></Run>
+ <Run Text="DISPENSER"></Run>
+ </TextBlock>
+
+ <ItemsControl Margin="10 0 0 0" ItemsSource="{Binding Converter={StaticResource ObjectToPropertiesConverter}}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <materialDesign:PackIcon Kind="ArrowRightBoldCircle" Width="12" Height="12" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
+ <Run Text="{Binding Name,Mode=OneWay}"></Run><Run>:</Run>
+ <Run Text="{Binding Value,Mode=OneWay}" FontWeight="SemiBold"></Run>
+ </TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </StackPanel>
+ </ScrollViewer>
+ </Grid>
+ </Border>
+ </Grid>
+
+ <Border VerticalAlignment="Center" HorizontalAlignment="Left" Background="White" Width="30" Height="120" CornerRadius="10 0 0 10" Margin="-28 0 0 0" BorderBrush="Gray" BorderThickness="1 1 0 1">
+ <ToggleButton x:Name="toggleOutline" BorderThickness="0" Cursor="Hand" Background="Transparent">
+ <ToggleButton.Style>
+ <Style TargetType="ToggleButton">
+ <Setter Property="Opacity" Value="1"></Setter>
+ </Style>
+ </ToggleButton.Style>
+ <ToggleButton.Template>
+ <ControlTemplate TargetType="ToggleButton">
+ <Border Background="Transparent">
+ <ContentPresenter></ContentPresenter>
+ </Border>
+
+ <ControlTemplate.Triggers>
+ <Trigger Property="IsPressed" Value="True">
+ <Setter Property="Opacity" Value="0.5"></Setter>
+ </Trigger>
+ </ControlTemplate.Triggers>
+ </ControlTemplate>
+ </ToggleButton.Template>
+ <TextBlock Text="OUTLINE" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" Foreground="#FF5151">
+ <TextBlock.LayoutTransform>
+ <RotateTransform Angle="270" />
+ </TextBlock.LayoutTransform>
+ </TextBlock>
+ </ToggleButton>
+ </Border>
+
</Grid>
</Grid>
</UserControl>