aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/JobToColumnDefinitionsConverter.cs
blob: 2ce5886c66c5a9884f2a920f83b883bb1dfddad2 (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
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using Tango.BL.Entities;

namespace Tango.MachineStudio.Developer.Converters
{
    public class JobToColumnDefinitionsConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            Job job = value as Job;

            List<ColumnDefinition> columns = new List<ColumnDefinition>();

            double totalLength = job.Segments.Sum(x => x.Length);

            foreach (var segment in job.OrderedSegments)
            {
                columns.Add(new ColumnDefinition() { Width = new GridLength(segment.Length / totalLength, GridUnitType.Star) });
            }

            return columns;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
ot; xmlns:local="clr-namespace:Tango.MachineStudio.UI.Console" mc:Ignorable="d" Title="Developer Console" Height="800" Width="1280" BorderThickness="1" BorderBrush="#ADADAD" d:DataContext="{d:DesignInstance Type=console:ConsoleWindowVM, IsDesignTimeCreatable=False}" DataContext="{Binding ConsoleWindowVM, Source={StaticResource Locator}}" Foreground="Gainsboro"> <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/FlatButton.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Colors.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Styles.xaml" /> <ResourceDictionary> <converters:StringEllipsisConverter x:Key="StringEllipsisConverter" /> </ResourceDictionary> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Window.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="742*"/> </Grid.RowDefinitions> <Menu IsMainMenu="True" BorderThickness="0"> <MenuItem Header="File"> <MenuItem Header="New" Command="{Binding NewCommand}"> <MenuItem.Icon> <fa:ImageAwesome Icon="FileOutline" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> <Separator/> <MenuItem Header="Open" MinWidth="150" Command="{Binding OpenCommand}"> <MenuItem.Icon> <fa:ImageAwesome Icon="FolderOutline" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> <Separator/> <MenuItem Header="Save" Command="{Binding SaveCommand}"> <MenuItem.Icon> <fa:ImageAwesome Icon="Save" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="Save as" Command="{Binding SaveAsCommand}"> <MenuItem.Icon> <Grid> <fa:ImageAwesome Icon="Save" Width="10" Foreground="Gainsboro" Margin="2" /> <fa:ImageAwesome Icon="Save" Width="10" Foreground="Gainsboro" Margin="2 -5 -5 2" /> </Grid> </MenuItem.Icon> </MenuItem> </MenuItem> <MenuItem Header="Edit"> <MenuItem Header="Cut" MinWidth="150" Command="Cut"> <MenuItem.Icon> <fa:ImageAwesome Icon="Cut" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> <Separator/> <MenuItem Header="Copy" Command="Copy"> <MenuItem.Icon> <fa:ImageAwesome Icon="Copy" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="Paste" Command="Paste"> <MenuItem.Icon> <fa:ImageAwesome Icon="Paste" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> <Separator/> <MenuItem Header="Undo" Command="Undo"> <MenuItem.Icon> <fa:ImageAwesome Icon="Undo" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="Redo" Command="Redo"> <MenuItem.Icon> <fa:ImageAwesome Icon="Repeat" Width="12" Foreground="Gainsboro" Margin="2" /> </MenuItem.Icon> </MenuItem> </MenuItem> <MenuItem Header="Debug"> <MenuItem Header="Run (F5)" MinWidth="150" Command="{Binding RunCommand}" > <MenuItem.Icon> <fa:ImageAwesome Icon="Play" Width="12" Margin="2"> <fa:ImageAwesome.Style> <Style TargetType="fa:ImageAwesome"> <Setter Property="Foreground" Value="{StaticResource GreenMenuDebugBrush}"></Setter> <Style.Triggers> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Foreground" Value="Gray"></Setter> </Trigger> </Style.Triggers> </Style> </fa:ImageAwesome.Style> </fa:ImageAwesome> </MenuItem.Icon> </MenuItem> <MenuItem Header="Stop" Command="{Binding StopCommand}" IsEnabled="False"> <MenuItem.Icon> <fa:ImageAwesome Icon="Stop" Width="12" Margin="2"> <fa:ImageAwesome.Style> <Style TargetType="fa:ImageAwesome"> <Setter Property="Foreground" Value="{StaticResource OrangeBrush400}"/> <Style.Triggers> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Foreground" Value="Gray"></Setter> </Trigger> </Style.Triggers> </Style> </fa:ImageAwesome.Style> </fa:ImageAwesome> </MenuItem.Icon> </MenuItem> </MenuItem> </Menu> <DockPanel Grid.Row="1"> <materialDesign:ColorZone Background="{StaticResource GrayBrush300}" Padding="16" materialDesign:ShadowAssist.ShadowDepth="Depth2" Mode="PrimaryMid" DockPanel.Dock="Top"> <DockPanel> <Grid> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Height="60" HorizontalAlignment="Center"> <Image Source="/Images/machine-trans.png" RenderOptions.BitmapScalingMode="Fant"></Image> <TextBlock Text="Machine Studio" VerticalAlignment="Center" Margin="20 0 0 0" FontSize="36"/> </StackPanel> </Grid> </DockPanel> </materialDesign:ColorZone> <Grid> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> <Grid Grid.Row="1" x:Name="grid"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="467*"/> <RowDefinition Height="5"/> <RowDefinition Height="200*"/> </Grid.RowDefinitions> <controls:ScriptEditorControl BorderThickness="0 1 0 0" BorderBrush="#616161" Text="{Binding Code,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" RunCommand="{Binding RunCommand}" StopCommand="{Binding StopCommand}" IntellisenseTypes="{Binding IntellisenseTypes}" HighlightTypes="{Binding HighlightTypes}"/> <GridSplitter Grid.Row="1" Background="{StaticResource DarkGrayBrush100}" Foreground="{StaticResource DarkGrayBrush200}" BorderBrush="{StaticResource DarkGrayBrush200}" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center" /> <Grid Grid.Row="2" Background="{StaticResource DarkGrayBrush}"> <Grid.RowDefinitions> <RowDefinition Height="20"/> <RowDefinition Height="57*"/> </Grid.RowDefinitions> <Border BorderThickness="0 0 0 1" BorderBrush="{StaticResource GrayBrush250}"> <TextBlock Margin="2" HorizontalAlignment="Center">LOG</TextBlock> </Border> <TextBox x:Name="txtLog" TextChanged="TextBox_TextChanged" FontFamily="Lucida Console" Background="{StaticResource DarkGrayBrush200}" BorderThickness="0" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" Padding="5" IsReadOnly="True" TextWrapping="Wrap" FontSize="11" Foreground="Gainsboro" Grid.Row="2"></TextBox> </Grid> </Grid> </Grid> </Grid> <Border HorizontalAlignment="Right" Margin="0 -1 10 0" VerticalAlignment="Top" Width="300" Height="40" Padding="5" CornerRadius="0 0 30 30" BorderThickness="1 0 1 1" BorderBrush="DimGray"> <Border.Style> <Style TargetType="Border"> <Setter Property="Background" Value="{StaticResource BlueGradientBrush}"></Setter> <Setter Property="RenderTransform"> <Setter.Value> <ScaleTransform ScaleX="1" ScaleY="0"></ScaleTransform> </Setter.Value> </Setter> <Style.Triggers> <DataTrigger Binding="{Binding NotificationProvider.HasTaskItems}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard HandoffBehavior="Compose"> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" FillBehavior="HoldEnd" To="1" Duration="00:00:0.2"></DoubleAnimation> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <DataTrigger.ExitActions> <BeginStoryboard HandoffBehavior="Compose"> <Storyboard> <DoubleAnimation BeginTime="00:00:02" FillBehavior="HoldEnd" Storyboard.TargetProperty="RenderTransform.ScaleY" To="0" From="1" Duration="00:00:0.5"></DoubleAnimation> </Storyboard> </BeginStoryboard> </DataTrigger.ExitActions> </DataTrigger> </Style.Triggers> </Style> </Border.Style> <!--<Border.Background>--> <!--<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="#03A9F4"/> <GradientStop Color="#0081BB" Offset="1"/> </LinearGradientBrush>--> <!--</Border.Background>--> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="20 0 0 0"> <mahapps:ProgressRing Width="24" Height="24" Foreground="White"></mahapps:ProgressRing> <TextBlock Text="{Binding NotificationProvider.CurrentTaskItem.Message,Converter={StaticResource StringEllipsisConverter},ConverterParameter=35}" Foreground="White" VerticalAlignment="Center" Margin="10 0 0 0" TextWrapping="Wrap"></TextBlock> </StackPanel> </Border> </Grid> </DockPanel> </Grid> </mahapps:MetroWindow>