diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-11-01 14:53:16 +0200 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-11-01 14:53:16 +0200 |
| commit | 20f49c625cd32b95154db138ed7eeebbadd04bf7 (patch) | |
| tree | 951627b53972a48e77f9c3d11e9de5295e15fa45 /Software | |
| parent | b1049c0822b76939215225a617e143274abe2e8b (diff) | |
| download | Tango-20f49c625cd32b95154db138ed7eeebbadd04bf7.tar.gz Tango-20f49c625cd32b95154db138ed7eeebbadd04bf7.zip | |
Color selection and Job sequence package. Redesign list control, move Color Selection View to dialogs, implement save.
Diffstat (limited to 'Software')
51 files changed, 3470 insertions, 3076 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ColorTabToVisibilityConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ColorTabToVisibilityConverter.cs index 9189d6172..6f9a95ccf 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ColorTabToVisibilityConverter.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ColorTabToVisibilityConverter.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; -using static Tango.PPC.Jobs.ViewModels.ColorSelectionToolViewVM; +using static Tango.PPC.Jobs.Dialogs.ColorSelectionViewVM; namespace Tango.PPC.Jobs.Converters { diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/ColorSelectionToolView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml index 9d48df2fb..a095ff7aa 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/ColorSelectionToolView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml @@ -1,19 +1,18 @@ -<UserControl x:Class="Tango.PPC.Jobs.Views.ColorSelectionToolView" +<UserControl x:Class="Tango.PPC.Jobs.Dialogs.ColorSelectionView" 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:vm="clr-namespace:Tango.PPC.Jobs.ViewModels" + xmlns:local="clr-namespace:Tango.PPC.Jobs.Dialogs" + xmlns:vm="clr-namespace:Tango.PPC.Jobs.Dialogs" xmlns:controls="clr-namespace:Tango.PPC.Jobs.Controls" xmlns:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" xmlns:converters="clr-namespace:Tango.PPC.Jobs.Converters" xmlns:global="clr-namespace:Tango.PPC.Jobs" - xmlns:local="clr-namespace:Tango.PPC.Jobs.Views" - mc:Ignorable="d" - d:DesignHeight="1280" d:DesignWidth="800" Background="{StaticResource TangoPrimaryBackgroundBrush}" - d:DataContext="{d:DesignInstance Type=vm:ColorSelectionToolViewVM, IsDesignTimeCreatable=False}" - DataContext="{x:Static global:ViewModelLocator.ColorSelectionToolViewVM}"> + mc:Ignorable="d" + d:DesignHeight="1280" d:DesignWidth="800" Width="750" Height="1200" Background="{StaticResource TangoPrimaryBackgroundBrush}" + d:DataContext="{d:DesignInstance Type=vm:ColorSelectionViewVM, IsDesignTimeCreatable=False}"> <UserControl.Resources> <ResourceDictionary> @@ -27,10 +26,10 @@ <sharedConverters:BooleanInverseConverter x:Key="BooleanInverseConverter"/> <DataTemplate x:Key="brushColorPanel"> - <Grid Height=" 180" Margin="93 10 0 0" HorizontalAlignment="Stretch"> + <Grid Height="180" Margin="93 10 0 0" HorizontalAlignment="Stretch"> <Grid.ColumnDefinitions> - <ColumnDefinition Width="3*"/> - <ColumnDefinition Width="2*"/> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="270"/> </Grid.ColumnDefinitions> <StackPanel Orientation="Vertical" Visibility="{Binding IsEditMode, Converter={StaticResource BooleanToVisibilityConverter}}"> <TextBlock FontSize="{StaticResource TangoDataGridHeaderFontSize}" > @@ -73,7 +72,7 @@ <TextBlock Margin="10 0" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Text="This color is not supported." ></TextBlock> </Border> </StackPanel> - <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding SelectedBrushStop.IsCMYKLiquidVolumesOutOfRange,Converter={StaticResource BooleanToVisibilityConverter}}"> + <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding SelectedBrushStop.IsLiquidVolumesOutOfRange,Converter={StaticResource BooleanToVisibilityConverter}}"> <Image Margin="30 0 24 0" Stretch="Fill" Width="37" Height="33" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Exclamation_black.png" HorizontalAlignment="Center"></Image> <Border Margin=" 0 10 0 0" MinWidth="115" Height="31" Background="{StaticResource TangoDarkForegroundBrush}" CornerRadius="2"> <TextBlock Margin="10 0" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Text="Maximum ink level is reached." ></TextBlock> @@ -93,15 +92,15 @@ <Image Margin="30 0 0 0" Stretch="Fill" VerticalAlignment="Center" Width="20" Height="13" RenderOptions.BitmapScalingMode="Fant" Source="../Images/ColorSelection/arrow-round-back.png"></Image> <StackPanel Grid.Column="1" Orientation="Vertical" HorizontalAlignment="Stretch" Margin="26 0 93 0" > - <TextBlock Text="Best match" FontSize="{StaticResource TangoDataGridHeaderFontSize}" HorizontalAlignment="Left"/> - <Border HorizontalAlignment="Stretch" VerticalAlignment="Center" Height="100" Margin="0 21 0 0" CornerRadius="20" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}"> + <TextBlock Text="Best Match" FontSize="{StaticResource TangoDataGridHeaderFontSize}" HorizontalAlignment="Left"/> + <Border HorizontalAlignment="Stretch" VerticalAlignment="Center" Height="100" Width="100" Margin="0 21 0 0" CornerRadius="20" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}"> <Border.Background> <SolidColorBrush Color="{Binding SelectedBrushStop.DisplayedColor}"/> </Border.Background> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding SelectedBrushStop.IsBusy,Converter={StaticResource BooleanToVisibilityConverter}}"> <touch:TouchBusyIndicator HorizontalAlignment="Center" Minimum="0" Maximum="100" IsIndeterminate="True" Foreground="White" Width="32" Height="32" /> - <TextBlock HorizontalAlignment="Center" Margin="0 10 0 0" Text="Color conversion"></TextBlock> + <TextBlock HorizontalAlignment="Center" Margin="0 10 0 0" Foreground="{StaticResource TangoLightForegroundBrush}" Text="Processing..."></TextBlock> </StackPanel> </Border> </StackPanel> @@ -139,38 +138,29 @@ <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center"> Job Palette</TextBlock> <Rectangle Margin="0 10 20 0" Stroke="{StaticResource TangoDarkForegroundBrush}" Height="1" VerticalAlignment="Bottom"/> </StackPanel> - <touch:TouchButton Grid.Row="2" CornerRadius="24" Width="180" Height="48" TextElement.Foreground="{StaticResource TangoLightForegroundBrush}" TextElement.FontSize="{StaticResource TangoExpanderHeaderFontSize}" Command="{Binding OKCommand}" IsEnabled="{Binding SelectedBrushStop.IsCMYKLiquidVolumesOutOfRange, Converter={StaticResource BooleanInverseConverter}}" Content="OK"> - <touch:TouchButton.Style> - <Style TargetType="touch:TouchButton"> - <Setter Property="Background" Value="{StaticResource TangoMidAccentBrush}"/> - <Style.Triggers> - <Trigger Property="IsEnabled" Value="False"> - <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> - <Setter Property="BorderBrush" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> - <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter> - </Trigger> - </Style.Triggers> - </Style> - </touch:TouchButton.Style> - </touch:TouchButton> + + <Grid DockPanel.Dock="Bottom" Grid.Row="2"> + <touch:TouchButton HorizontalAlignment="Left" CornerRadius="25" Command="{Binding CloseCommand}" Style="{StaticResource TangoHollowButton}" Width="200" Height="50" VerticalAlignment="Bottom">CANCEL</touch:TouchButton> + <touch:TouchButton HorizontalAlignment="Right" CornerRadius="25" Command="{Binding OKCommand}" Style="{StaticResource TangoHollowButton}" Width="200" Height="50" VerticalAlignment="Bottom">CONFIRM</touch:TouchButton> + </Grid> </Grid> </DataTemplate> </ResourceDictionary> </UserControl.Resources> <Grid> <Border Background="#E5E5E5"> - <Grid Margin="24" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> <Border Padding="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoDividerBrush}"> - <Border.Effect> - <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" /> - </Border.Effect> - <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Color Selection Tool</TextBlock> - </Border> + <Border.Effect> + <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" /> + </Border.Effect> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Color Selection Tool</TextBlock> + </Border> <Grid Grid.Row="1"> <Grid.RowDefinitions> <RowDefinition Height="100"/> @@ -201,45 +191,44 @@ <Grid Grid.Row="1" x:Name="HSBGrid"> - <touch:TouchLoadingPanel x:Name="hsbPanel" Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='HSB'}"> - <Grid Margin="0"> - <Grid.RowDefinitions> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> + + <Grid Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='HSB'}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> - <ContentControl Name="myColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> + <ContentControl Name="myColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> - <ContentControl Name="segmentContent" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> + <ContentControl Name="segmentContent" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> - <Grid Grid.Row="2" Margin="80 0 93 0"> + <Grid Grid.Row="2" Margin="80 0 93 0"> - <touch:TouchColorPickerHSBControl x:Name="HSBPicker" Visibility="Visible" ThumbHeight="30" ThumbHeightInside="28" ThumbColor="{StaticResource TangoPrimaryBackgroundColor}" + <touch:TouchColorPickerHSBControl x:Name="HSBPicker" Visibility="Visible" ThumbHeight="30" ThumbHeightInside="28" ThumbColor="{StaticResource TangoPrimaryBackgroundColor}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0 0 0 0" MinWidth="200" BorderBrush="{StaticResource TangoKeyboardKeyDarkTextBrush}" H="{Binding SelectedBrushStop.Hue, Mode=TwoWay}" S="{Binding SelectedBrushStop.Saturation, Mode=TwoWay}" B="{Binding SelectedBrushStop.Brightness, Mode=TwoWay}" /> - </Grid> - - <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> </Grid> - </touch:TouchLoadingPanel> - <touch:TouchLoadingPanel x:Name="labPanel" Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='CIELab'}"> - <Grid Margin="10"> - <Grid.RowDefinitions> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> - <ContentControl Name="myLabColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> + <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> + </Grid> + + <Grid Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='CIELab'}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> - <ContentControl Name="segmentContentLab" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> + <ContentControl Name="myLabColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> - <Grid Grid.Row="2" Margin="80 0 93 0"> - <touch:TouchColorPickerLABControl x:Name="LABPicker" Visibility="Visible" + <ContentControl Name="segmentContentLab" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> + + <Grid Grid.Row="2" Margin="80 0 93 0"> + <touch:TouchColorPickerLABControl x:Name="LABPicker" Visibility="Visible" ThumbHeight="30" ThumbHeightInside="28" ThumbColor="{StaticResource TangoPrimaryBackgroundColor}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" @@ -249,54 +238,52 @@ L="{Binding SelectedBrushStop.L, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" A="{Binding SelectedBrushStop.A, Mode=TwoWay}" B="{ Binding SelectedBrushStop.B, Mode=TwoWay}" /> - </Grid> + </Grid> - <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> + <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> - </Grid> - </touch:TouchLoadingPanel> - <touch:TouchLoadingPanel x:Name="rgbPanel" Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='RGB'}"> - <Grid Margin="10"> - <Grid.RowDefinitions> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> + </Grid> + + <Grid Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='RGB'}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> - <ContentControl Name="myRGBColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> + <ContentControl Name="myRGBColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> - <ContentControl Name="segmentRGBContent" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> + <ContentControl Name="segmentRGBContent" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> - <Grid Grid.Row="2" Margin="80 0 93 0" > - <touch:TouchColorPickerRGBControl x:Name="RGBPicker" Visibility="Visible" ThumbHeight="30" ThumbHeightInside="28" ThumbColor="{StaticResource TangoPrimaryBackgroundColor}" + <Grid Grid.Row="2" Margin="80 0 93 0" > + <touch:TouchColorPickerRGBControl x:Name="RGBPicker" Visibility="Visible" ThumbHeight="30" ThumbHeightInside="28" ThumbColor="{StaticResource TangoPrimaryBackgroundColor}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0 0 0 0" MinWidth="200" BorderBrush="{StaticResource TangoKeyboardKeyDarkTextBrush}" R="{Binding SelectedBrushStop.Red, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" G="{Binding SelectedBrushStop.Green, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" B="{ Binding SelectedBrushStop.Blue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> - </Grid> - - <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> - </Grid> - </touch:TouchLoadingPanel> - <touch:TouchLoadingPanel x:Name="CMYKPanel" Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='CMYK'}"> - <Grid Margin="10"> - <Grid.RowDefinitions> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="Auto" /> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> - <ContentControl Name="myCMYKColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> + <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> + + </Grid> - <ContentControl Name="segmentCMYKContent" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> + <Grid Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='Volume'}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> - <Grid Grid.Row="2" Margin="80 0 93 0"> - <touch:TouchColorPickerCMYKControl x:Name="CMYKPicker" Visibility="Visible" ThumbHeight="30" ThumbHeightInside="28" + <ContentControl Name="myCMYKColors" Grid.Row="0" ContentTemplate="{StaticResource myColorsBtn}" Content="{Binding}"/> + + <ContentControl Name="segmentCMYKContent" Grid.Row="1" ContentTemplate="{StaticResource brushColorPanel}" Content="{Binding}"/> + + <Grid Grid.Row="2" Margin="80 0 93 0"> + <touch:TouchColorPickerCMYKControl x:Name="CMYKPicker" Visibility="Visible" ThumbHeight="30" ThumbHeightInside="28" ThumbColor="{StaticResource TangoPrimaryBackgroundColor}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0 0 0 0" @@ -308,13 +295,13 @@ MaxYellowValue="{Binding MaxYellowValue, UpdateSourceTrigger=PropertyChanged}" MaxKeyValue="{Binding MaxBlackValue, UpdateSourceTrigger=PropertyChanged}" /> - </Grid> - - <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> </Grid> - </touch:TouchLoadingPanel> - <touch:TouchLoadingPanel Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='Catalogs'}"> - </touch:TouchLoadingPanel> + + <ContentControl Grid.Row="3" ContentTemplate="{StaticResource bottomPanel}" Content="{Binding}"/> + </Grid> + + <Grid Visibility="{Binding SelectedColorTab,Converter={StaticResource ColorTabToVisibilityConverter},ConverterParameter='Catalog'}"> + </Grid> </Grid> </Grid> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/ColorSelectionToolView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml.cs index dea4c2d61..550390f44 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/ColorSelectionToolView.xaml.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml.cs @@ -12,41 +12,36 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; -using Tango.PPC.Jobs.Converters; using Tango.PPC.Jobs.ViewModels; -using Tango.Touch.Controls; -using static Tango.SharedUI.Controls.NavigationControl; -using static Tango.PPC.Jobs.ViewModels.ColorSelectionToolViewVM; -namespace Tango.PPC.Jobs.Views +namespace Tango.PPC.Jobs.Dialogs { /// <summary> - /// Interaction logic for ColorSelectionToolView.xaml + /// Interaction logic for ColorSelectionView.xaml /// </summary> - public partial class ColorSelectionToolView : UserControl + public partial class ColorSelectionView : UserControl { - private ColorSelectionToolViewVM _vm; - public ColorSelectionToolView() + private ColorSelectionViewVM _vm; + + public ColorSelectionView() { InitializeComponent(); - + Loaded += (_, __) => { - _vm = DataContext as ColorSelectionToolViewVM; + _vm = DataContext as ColorSelectionViewVM; }; - } - private void TouchNavigationLinks_SelectionChanged(object sender, SelectionChangedEventArgs e) { - + } private void TouchNavigationLinks_OnPreviewMouseDown(object sender, MouseButtonEventArgs e) { - if (_vm != null && _vm.SelectedBrushStop != null && true == _vm.SelectedBrushStop.IsCMYKLiquidVolumesOutOfRange) + if (_vm != null && _vm.SelectedBrushStop != null && true == _vm.SelectedBrushStop.IsLiquidVolumesOutOfRange) { var item = ItemsControl.ContainerFromElement(sender as ListBox, e.OriginalSource as DependencyObject) as ListBoxItem; if (item != null) @@ -55,7 +50,5 @@ namespace Tango.PPC.Jobs.Views } } } - - } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/ColorSelectionToolViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs index aeb42f98b..83128a374 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/ColorSelectionToolViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -12,33 +13,51 @@ using Tango.PPC.Common.Navigation; using Tango.PPC.Jobs.Models; using Tango.PPC.Jobs.NavigationObjects; using Tango.PPC.Jobs.ViewContracts; +using Tango.SharedUI; -namespace Tango.PPC.Jobs.ViewModels +namespace Tango.PPC.Jobs.Dialogs { - public class ColorSelectionToolViewVM : PPCViewModel<IJobView>, INavigationResultProvider<BrushStopModel, ColorSelectionNavigationObject> + public class ColorSelectionViewVM : DialogViewVM { public enum ColorTab { - HSB, - CIELab, - RGB, - CMYK, - Catalogs + [Description("HSB")] + HSB = 5, + [Description("CIELab")] + CIELab = 3, + [Description("RGB")] + RGB = 1, + [Description("CMYK")] + Volume = 0, + [Description("Catalog")] + Catalog = 2 } + public class DialogObject + { + public SegmentModel SelectedSegment { get; set; } + public BrushStopModel BrushStopForEdit { get; set; } + /// <summary> + /// True when first brush is open for editing + /// </summary> + public bool IsEditingMode { get; set; } + } + + private ActionTimer _volumeConversionTimer; private IColorConverter _converter; #region Properties - private bool _confirmed; private bool _isEditMode; public bool IsEditMode { get { return _isEditMode; } - set { _isEditMode = value; + set + { + _isEditMode = value; RaisePropertyChangedAuto(); } } @@ -52,24 +71,88 @@ namespace Tango.PPC.Jobs.ViewModels get { return _selectedColorTabIndex; } set { - _selectedColorTabIndex = value; - RaisePropertyChangedAuto(); - RaisePropertyChanged(nameof(SelectedColorTab)); - OnSelectedtabChanged(); + if(_selectedColorTabIndex != value) + { + _selectedColorTabIndex = value; + RaisePropertyChangedAuto(); + switch (_selectedColorTabIndex) + { + case 0: + { + SelectedColorTab = ColorTab.HSB; + break; + } + case 1: + { + SelectedColorTab = ColorTab.CIELab; + break; + } + case 2: + { + SelectedColorTab = ColorTab.RGB; + break; + } + case 3: + { + SelectedColorTab = ColorTab.Volume; + break; + } + case 4: + { + SelectedColorTab = ColorTab.Catalog; + break; + } + } + } } } + private ColorTab _selectedColorTab; /// <summary> /// Gets or sets the selected category. /// </summary> + /// public ColorTab SelectedColorTab { - get { return (ColorTab)SelectedColorTabIndex; } + get { + return _selectedColorTab; + } set { - if (SelectedColorTabIndex != value.ToInt32()) + if (_selectedColorTab != value) { - SelectedColorTabIndex = value.ToInt32(); + _selectedColorTab = value; + switch (SelectedColorTab) + { + case ColorTab.HSB: + { + SelectedColorTabIndex = 0; + break; + } + case ColorTab.CIELab: + { + SelectedColorTabIndex = 1; + break; + } + case ColorTab.RGB: + { + SelectedColorTabIndex = 2; + break; + } + case ColorTab.Volume: + { + SelectedColorTabIndex = 3; + break; + } + case ColorTab.Catalog: + { + SelectedColorTabIndex = 4; + break; + } + } + + OnSelectedtabChanged(); + RaisePropertyChangedAuto(); } } } @@ -79,7 +162,9 @@ namespace Tango.PPC.Jobs.ViewModels public int SegmentIndex { get { return _segmentIndex; } - set { _segmentIndex = value; + set + { + _segmentIndex = value; RaisePropertyChangedAuto(); } } @@ -92,9 +177,11 @@ namespace Tango.PPC.Jobs.ViewModels public BrushStopModel InitialBrushStop { get { return _initialBrushStop; } - set { + set + { _initialBrushStop = value; - RaisePropertyChangedAuto(); } + RaisePropertyChangedAuto(); + } } private BrushStopModel _selectedBrushStop; @@ -110,12 +197,12 @@ namespace Tango.PPC.Jobs.ViewModels RaisePropertyChangedAuto(); } } - + public double MaxCyanValue { get { - return GetMaxCMYKValueOrDefault( LiquidTypes.Cyan); + return GetMaxCMYKValueOrDefault(LiquidTypes.Cyan); } } @@ -143,73 +230,37 @@ namespace Tango.PPC.Jobs.ViewModels } } - #endregion + public DialogObject DialogEditObject { get; set; } - #region Command - /// <summary> - /// Gets or sets the OK command. - /// </summary> - public RelayCommand OKCommand { get; set; } #endregion - public ColorSelectionToolViewVM() + public ColorSelectionViewVM() { - OKCommand = new RelayCommand(Confirm); + SelectedColorTab = ColorTab.RGB; _volumeConversionTimer = new ActionTimer(TimeSpan.FromMilliseconds(50)); _converter = new DefaultColorConverter(); } - #region Navigation - /// Confirms this instance. - /// </summary> - private void Confirm() + public override void OnShow() { - _confirmed = true; - - NavigationManager.NavigateBack(); - } + base.OnShow(); - public BrushStopModel GetNavigationResult() - { - if (_confirmed) - { - return SelectedBrushStop; - } - else + SegmentIndex = DialogEditObject.SelectedSegment.SegmentIndex; + IsEditMode = DialogEditObject.IsEditingMode; + if (DialogEditObject.IsEditingMode) { - return null; - } - } - - public void OnNavigationObjectReceived(ColorSelectionNavigationObject obj) - { - SegmentIndex = obj.SelectedSegment.SegmentIndex; - IsEditMode = obj.IsEditingMode; - if (obj.IsEditingMode) - { - InitialBrushStop = obj.BrushStopForEdit; - // InitialBrushStop.ConvertColorToRGB(); - // InitialBrushStop.InitColor(); + InitialBrushStop = DialogEditObject.BrushStopForEdit; SelectedBrushStop = InitialBrushStop.Clone(); SelectedBrushStop.ColorSpace = InitialBrushStop.ColorSpace; - if(SelectedBrushStop.ColorSpace == BL.Enumerations.ColorSpaces.RGB) - SelectedColorTab = ColorTab.RGB; - else if (SelectedBrushStop.ColorSpace == BL.Enumerations.ColorSpaces.LAB) - SelectedColorTab = ColorTab.CIELab; - else if (SelectedBrushStop.ColorSpace == BL.Enumerations.ColorSpaces.CMYK) - SelectedColorTab = ColorTab.CMYK; - else if (SelectedBrushStop.ColorSpace == BL.Enumerations.ColorSpaces.Catalog) - SelectedColorTab = ColorTab.Catalogs; - else SelectedColorTab = ColorTab.HSB; + SelectedColorTab = (ColorTab)SelectedBrushStop.ColorSpace; } else { - SelectedBrushStop = obj.BrushStopForEdit; + SelectedBrushStop = DialogEditObject.BrushStopForEdit; SelectedColorTab = ColorTab.RGB; } - UpdateCMYKMaxValues(); - _confirmed = false; + UpdateVolumesMaxValues(); } private void OnSelectedtabChanged() @@ -241,20 +292,17 @@ namespace Tango.PPC.Jobs.ViewModels } return; } - case ColorTab.CMYK: + case ColorTab.Volume: { - if (SelectedBrushStop != null) { - SelectedBrushStop.ConvertColorToCMYK(); + SelectedBrushStop.ConvertColorToVolume(); } return; } } } - #endregion - #region Methods private double GetMaxCMYKValueOrDefault(LiquidTypes type) @@ -265,21 +313,28 @@ namespace Tango.PPC.Jobs.ViewModels if (liquidTypesRml != null) { //var test = liquidTypesRml.GetMaxCalibrationValue(); - + return liquidTypesRml.GetMaxCalibrationValue(); } - + } return 100; } - private void UpdateCMYKMaxValues() + private void UpdateVolumesMaxValues() { RaisePropertyChanged(nameof(MaxCyanValue)); RaisePropertyChanged(nameof(MaxMagentaValue)); RaisePropertyChanged(nameof(MaxYellowValue)); RaisePropertyChanged(nameof(MaxBlackValue)); } + + protected override void Accept() + { + base.Accept(); + } + #endregion + } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml index 250e3959d..69bbbdb05 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml @@ -9,7 +9,7 @@ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" mc:Ignorable="d" - Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="861" d:DesignWidth="662" Width="662" Height="861" d:DataContext="{d:DesignInstance Type=local:JobCreationViewVM, IsDesignTimeCreatable=False}"> + Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="861" d:DesignWidth="662" Width="750" Height="1200" d:DataContext="{d:DesignInstance Type=local:JobCreationViewVM, IsDesignTimeCreatable=False}"> <UserControl.Resources> <converters:JobTypeToImageConverter x:Key="JobTypeToImageConverter" /> @@ -20,96 +20,85 @@ <Border CornerRadius="20" BorderThickness="0"> <Grid Margin="45 51 89 110"> <DockPanel> - <Grid DockPanel.Dock="Bottom"> - <touch:TouchButton HorizontalAlignment="Left" CornerRadius="25" Command="{Binding CloseCommand}" Style="{StaticResource TangoHollowButton}" Width="150" Height="50" VerticalAlignment="Bottom">CANCEL</touch:TouchButton> - <touch:TouchButton HorizontalAlignment="Right" CornerRadius="25" Command="{Binding OKCommand}" Width="180" Height="48" VerticalAlignment="Bottom" Background="{StaticResource TangoMidAccentBrush}" TextElement.Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoButtonFontSize}">OK</touch:TouchButton> - </Grid> + <Grid DockPanel.Dock="Bottom"> + <touch:TouchButton HorizontalAlignment="Left" CornerRadius="25" Command="{Binding CloseCommand}" Style="{StaticResource TangoHollowButton}" Width="200" Height="50" VerticalAlignment="Bottom">CANCEL</touch:TouchButton> + <touch:TouchButton HorizontalAlignment="Right" CornerRadius="25" Command="{Binding OKCommand}" Style="{StaticResource TangoHollowButton}" Width="200" Height="50" VerticalAlignment="Bottom">OK</touch:TouchButton> + <!--<touch:TouchButton HorizontalAlignment="Right" CornerRadius="25" Command="{Binding OKCommand}" Width="180" Height="48" VerticalAlignment="Bottom" Background="{StaticResource TangoMidAccentBrush}" TextElement.Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoButtonFontSize}">OK</touch:TouchButton>--> + </Grid> - <StackPanel DockPanel.Dock="Top" Orientation="Horizontal"> - <Image Source="../Images/JobView/job-details.png" Width="34" /> - <TextBlock HorizontalAlignment="Left" Margin="14 0 0 0" FontSize="{StaticResource TangoHeaderFontSize}">Job Details</TextBlock> - </StackPanel> - - <UniformGrid Rows="3" VerticalAlignment="Top" TextElement.FontWeight="Normal" Margin="0 80 0 0"> - <!--<touch:TouchStaticListBox Margin="20" VerticalAlignment="Center" Width="480" ItemsSource="{Binding SupportedJobTypes}" SelectedItem="{Binding SelectedJobType,Mode=TwoWay}"> - <touch:TouchStaticListBox.ItemsPanel> - <ItemsPanelTemplate> - <UniformGrid Rows="1" /> - </ItemsPanelTemplate> - </touch:TouchStaticListBox.ItemsPanel> - <touch:TouchStaticListBox.ItemContainerStyle> - <Style TargetType="touch:TouchStaticListBoxItem"> - <Setter Property="BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> - <Setter Property="BorderThickness" Value="0"></Setter> - <Setter Property="CornerRadius" Value="5"></Setter> - <Setter Property="Padding" Value="0 10"></Setter> - <Setter Property="Margin" Value="25"></Setter> - <Setter Property="Background" Value="Transparent"></Setter> - <Setter Property="Width" Value="110"></Setter> - <Style.Triggers> - <Trigger Property="IsSelected" Value="True"> - <Setter Property="BorderThickness" Value="2"></Setter> - </Trigger> - </Style.Triggers> - </Style> - </touch:TouchStaticListBox.ItemContainerStyle> - <touch:TouchStaticListBox.ItemTemplate> - <DataTemplate> - <StackPanel Orientation="Vertical" HorizontalAlignment="Center"> - <Image Stretch="Fill" Width="60" RenderOptions.BitmapScalingMode="Fant" Height="60" Source="{Binding Converter={StaticResource JobTypeToImageConverter}}"></Image> - <TextBlock HorizontalAlignment="Center" Margin="0 10 0 0" Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}" ></TextBlock> - </StackPanel> - </DataTemplate> - </touch:TouchStaticListBox.ItemTemplate> - </touch:TouchStaticListBox>--> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 50 0 0"> - <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Job Name" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Width="125"/> - <Border Margin="49 0 0 0" BorderThickness="1" Width="353" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> - <touch:TouchTextBox Margin="20 10 0 10" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding JobName}" IsEnabled="True" HorizontalAlignment="Left" MinWidth="250" VerticalAlignment="Center" ></touch:TouchTextBox> - </Border> - </StackPanel > - <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 50 0 0"> - <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Thread Type" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Width="125"/> - <Border Margin="49 0 0 0" BorderThickness="1" Width="353" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> - <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML,Mode=TwoWay}"> - <touch:TouchComboBox.ItemTemplate> - <DataTemplate> - <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoExpanderItemFontSize}" Text="{Binding Name}"> - - </TextBlock> - </DataTemplate> - </touch:TouchComboBox.ItemTemplate> - <touch:TouchComboBox.SelectedItemTemplate> - <DataTemplate> - <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoExpanderItemFontSize}" Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> - </DataTemplate> - </touch:TouchComboBox.SelectedItemTemplate> - </touch:TouchComboBox> - </Border> + <Grid DockPanel.Dock="Top"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/JobView/job-details.png" Width="34" /> + <TextBlock HorizontalAlignment="Left" Margin="14 0 0 0" FontSize="{StaticResource TangoHeaderFontSize}">Job Details</TextBlock> </StackPanel> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 50 0 0"> - <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Spool Type" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Width="125"/> - <Border Margin="49 0 0 0" BorderThickness="1" Width="353" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> - <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding SpoolTypes}" SelectedItem="{Binding SelectedSpoolType,Mode=TwoWay}" FontSize="{StaticResource TangoExpanderItemFontSize}"> - - <touch:TouchComboBox.ItemTemplate> - <DataTemplate> - <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoExpanderItemFontSize}"> + + <UniformGrid Grid.Row="1" Rows="4" VerticalAlignment="Top" TextElement.FontWeight="Normal" Margin="0 80 57 0" HorizontalAlignment="Stretch"> + <DockPanel Margin="0 50 0 0" HorizontalAlignment="Stretch"> + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Job Name" FontSize="{StaticResource TangoDialogFontSize}" Width="125"/> + <Border Margin="49 0 0 0" BorderThickness="1" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> + <touch:TouchTextBox Margin="20 10 0 10" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding JobName}" IsEnabled="True" HorizontalAlignment="Left" MinWidth="250" VerticalAlignment="Center" ></touch:TouchTextBox> + </Border> + </DockPanel > + <DockPanel HorizontalAlignment="Stretch" Margin="0 50 0 0"> + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Thread Type" FontSize="{StaticResource TangoDialogFontSize}" Width="125"/> + <Border Margin="49 0 0 0" BorderThickness="1" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> + <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML,Mode=TwoWay}"> + <touch:TouchComboBox.ItemTemplate> + <DataTemplate> + <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding Name}"> + + </TextBlock> + </DataTemplate> + </touch:TouchComboBox.ItemTemplate> + <touch:TouchComboBox.SelectedItemTemplate> + <DataTemplate> + <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> + </DataTemplate> + </touch:TouchComboBox.SelectedItemTemplate> + </touch:TouchComboBox> + </Border> + </DockPanel> + <DockPanel HorizontalAlignment="Stretch" Margin="0 50 0 0"> + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Spool Type" FontSize="{StaticResource TangoDialogFontSize}" Width="125"/> + <Border Margin="49 0 0 0" BorderThickness="1" HorizontalAlignment="Stretch" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> + <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding SpoolTypes}" SelectedItem="{Binding SelectedSpoolType,Mode=TwoWay}" FontSize="{StaticResource TangoDialogFontSize}"> + + <touch:TouchComboBox.ItemTemplate> + <DataTemplate> + <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDialogFontSize}"> <Run Text="{Binding Name}"></Run> <Run Foreground="{StaticResource TangoDarkForegroundBrush}" Text="{Binding Length,Mode=OneWay}"></Run> <Run Foreground="{StaticResource TangoDarkForegroundBrush}" Text="m"></Run> - </TextBlock> - </DataTemplate> - </touch:TouchComboBox.ItemTemplate> - <touch:TouchComboBox.SelectedItemTemplate> - <DataTemplate> - <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoExpanderItemFontSize}" Text="{Binding Name}"></TextBlock> - </DataTemplate> - </touch:TouchComboBox.SelectedItemTemplate> - </touch:TouchComboBox> - </Border> - </StackPanel> - </UniformGrid> + </TextBlock> + </DataTemplate> + </touch:TouchComboBox.ItemTemplate> + <touch:TouchComboBox.SelectedItemTemplate> + <DataTemplate> + <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding Name}"></TextBlock> + </DataTemplate> + </touch:TouchComboBox.SelectedItemTemplate> + </touch:TouchComboBox> + </Border> + </DockPanel> + <DockPanel Margin="0 50 0 0" HorizontalAlignment="Stretch"> + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="White Gap" FontSize="{StaticResource TangoDialogFontSize}" Width="125"/> + <Border Margin="49 0 0 0" BorderThickness="1" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> + <touch:TouchNumericTextBox Margin="20 0 0 10" FontSize="{StaticResource TangoComboBoxItemFontSize}" Value="{Binding WhiteGap, Mode=TwoWay}" IsEnabled="True" HorizontalAlignment="Left" MinWidth="250" VerticalAlignment="Center" ></touch:TouchNumericTextBox> + </Border> + </DockPanel > + </UniformGrid> + + <Grid Grid.Row="2" Margin="0 70 57 0" HorizontalAlignment="Stretch" > + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Duplicate Job As New" FontWeight="Normal" FontSize="{StaticResource TangoDialogFontSize}" Width="Auto"/> + <touch:TouchButton CornerRadius="25" Command="{Binding DuplicateCommand}" Width="180" Height="48" VerticalAlignment="Center" HorizontalAlignment="Right" Background="{StaticResource TangoPrimaryAccentBrush}" TextElement.Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoButtonFontSize}">Duplicate</touch:TouchButton> + + </Grid> + </Grid> </DockPanel> </Grid> </Border> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationViewVM.cs index f571cd519..66be7bd04 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationViewVM.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using Tango.BL.Enumerations; +using Tango.Core.Commands; using Tango.SharedUI; namespace Tango.PPC.Jobs.Dialogs @@ -67,17 +68,51 @@ namespace Tango.PPC.Jobs.Dialogs set { _selectedSpoolType = value; RaisePropertyChangedAuto(); } } - + + private double _whiteGap; + + public double WhiteGap + { + get { return _whiteGap; } + set { _whiteGap = value; + RaisePropertyChangedAuto(); + } + } + + + private bool _showDuplicate; + + public bool ShowDuplicate + { + get { return _showDuplicate; } + set { _showDuplicate = value; + RaisePropertyChangedAuto(); + + } + } + + public bool IsDuplicate { get; set; } + public RelayCommand DuplicateCommand { get; set; } /// <summary> /// Initializes a new instance of the <see cref="JobCreationViewVM"/> class. /// </summary> /// <param name="supportedJobTypes">The supported job types.</param> /// <param name="supportedColorSpaces">The supported color spaces</param> - public JobCreationViewVM(List<SpoolType> spoolTypes, List<Rml> rmls) : base() + public JobCreationViewVM(List<SpoolType> spoolTypes, List<Rml> rmls, double whitegap, bool showDuplicate) : base() { JobName = "Unnamed"; SpoolTypes = spoolTypes; - Rmls = rmls.OrderBy(x => x.Name).ToList(); + Rmls = rmls.OrderBy(x => x.Name).ToList(); + DuplicateCommand = new RelayCommand(Duplicate); + IsDuplicate = false; + ShowDuplicate = showDuplicate; + WhiteGap = whitegap; + } + + private void Duplicate(object obj) + { + IsDuplicate = true; + Accept(); } protected override bool CanOK() diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobView.xaml new file mode 100644 index 000000000..90c5b8b9f --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobView.xaml @@ -0,0 +1,32 @@ +<UserControl x:Class="Tango.PPC.Jobs.Dialogs.RepeatJobView" + 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:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:local="clr-namespace:Tango.PPC.Jobs.Dialogs" + mc:Ignorable="d" + Background="Transparent" d:DesignHeight="630" d:DesignWidth="560" MinWidth="380" Height="280" + d:DataContext="{d:DesignInstance Type=local:RepeatJobViewVM, IsDesignTimeCreatable=False}"> + <Border BorderBrush="{StaticResource TangoMidAccentBrush}" Margin="-24" CornerRadius="40" BorderThickness="2" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + + <Grid> + + <DockPanel Height="33" VerticalAlignment="Top" Margin="44 39 40 0" Grid.Row="0"> + <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" FontWeight="SemiBold" > Copy Job Summary</TextBlock> + <touch:TouchIconButton DockPanel.Dock="Right" VerticalAlignment="Center" Height="22" Command="{Binding CloseCommand}" Icon="Close" RippleBrush="{StaticResource TangoRippleDarkBrush}" Foreground="{StaticResource TangoDarkForegroundBrush}" HorizontalAlignment="Right" /> + </DockPanel> + + <Grid Margin="44 0 0 0" Grid.Row="1" Width="302" VerticalAlignment="Center" HorizontalAlignment="Left"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Top"> + <TextBlock HorizontalAlignment="Left" DockPanel.Dock="Left" FontSize="{StaticResource TangoButtonFontSize}" >Repeat:</TextBlock> + <touch:TouchNumericUpDownConrol Margin="30 0 30 0" Width="Auto" Value="{Binding Repeats, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" BorderThickness="0" MaxValue="{Binding MaxRepeations, Mode=OneWay}" MinValue="1" Style="{StaticResource TouchNumericMiddleUpDownControl}"/> + <TextBlock HorizontalAlignment="Right" FontSize="{StaticResource TangoButtonFontSize}">Units</TextBlock> + </StackPanel> + <Rectangle Margin="0 30 0 0" Width="382" Stroke="{StaticResource TangoDividerBrush}" Height="3" VerticalAlignment="Bottom"/> + + </Grid> + <touch:TouchButton Margin="0 0 0 60 " Command="{Binding OKCommand}" FontSize="{StaticResource TangoButtonFontSize}" Style="{StaticResource TangoFlatButton}" Width="100" Height="50" VerticalAlignment="Bottom">OK</touch:TouchButton> + </Grid> + </Border> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobView.xaml.cs new file mode 100644 index 000000000..dff1ced26 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobView.xaml.cs @@ -0,0 +1,28 @@ +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.PPC.Jobs.Dialogs +{ + /// <summary> + /// Interaction logic for RepeatJob.xaml + /// </summary> + public partial class RepeatJobView : UserControl + { + public RepeatJobView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobViewVM.cs new file mode 100644 index 000000000..4cf5d8c95 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/RepeatJobViewVM.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.PPC.Jobs.Dialogs +{ + public class RepeatJobViewVM : DialogViewVM + { + private int _repeats; + + public int Repeats + { + get { return _repeats; } + set { _repeats = value; + RaisePropertyChangedAuto(); + } + } + + private int _maxrepeations; + + public int MaxRepeations + { + get { + return _maxrepeations; } + set { _maxrepeations = value; + RaisePropertyChangedAuto(); + } + } + + + public RepeatJobViewVM() + { + Repeats = 1; + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Images/JobView/job_details.png b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Images/JobView/job_details.png Binary files differindex 1ccee4475..fa5a1f81f 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Images/JobView/job_details.png +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Images/JobView/job_details.png diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs index 78ce8f1a7..3447cec8e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs @@ -13,11 +13,21 @@ using Tango.ColorConversion; using System.Reflection; using Tango.BL.Dispensing; using Tango.BL; +using Tango.Core.ExtensionMethods; namespace Tango.PPC.Jobs.Models { public class BrushStopModel : ViewModel { + public enum PositionStatus + { + First = 1, + FirstColor = 2, + Middle = 3, + SecondColor = 4, + Last = 5 + } + private ActionTimer _volumeConversionTimer; private IColorConverter _converter; public const double MAX_INK_UPTAKE = 400; @@ -45,7 +55,7 @@ namespace Tango.PPC.Jobs.Models { _cyan = value; RaisePropertyChangedAuto(); - OnCMYKChanged(); + OnVolumeChanged(); } } } @@ -69,7 +79,7 @@ namespace Tango.PPC.Jobs.Models { _magenta = value; RaisePropertyChangedAuto(); - OnCMYKChanged(); + OnVolumeChanged(); } } } @@ -93,7 +103,7 @@ namespace Tango.PPC.Jobs.Models { _yellow = value; RaisePropertyChangedAuto(); - OnCMYKChanged(); + OnVolumeChanged(); } } } @@ -116,7 +126,7 @@ namespace Tango.PPC.Jobs.Models { _black = value; RaisePropertyChangedAuto(); - OnCMYKChanged(); + OnVolumeChanged(); } } } @@ -306,29 +316,6 @@ namespace Tango.PPC.Jobs.Models } } - - protected Boolean _istransparent; - - /// <summary> - /// Gets or sets the BrushStopModel is transparent. - /// </summary> - public Boolean IsTransparent - { - get - { - return _istransparent; - } - set - { - if (_istransparent != value) - { - _istransparent = value; - RaisePropertyChangedAuto(); - - } - } - } - protected Double _offsetpercent; /// <summary> @@ -399,37 +386,14 @@ namespace Tango.PPC.Jobs.Models } } - private bool _isFirst; - - public bool IsFirst - { - get { return _isFirst; } - set { _isFirst = value; } - } - private bool _isLast; - - public bool IsLast - { - get { return _isLast; } - set { _isLast = value; } - } - - private bool _isFirstColorBrush; - - public bool IsFirstColorBrush - { - get { return _isFirstColorBrush; } - set { _isFirstColorBrush = value; } - } - - private bool _isSecondColorBrush; + private PositionStatus _position; - public bool IsSecondColorBrush + public PositionStatus Position { - get { return _isSecondColorBrush; } - set { _isSecondColorBrush = value; } + get { return _position; } + set { _position = value; } } - + protected ColorSpaces _colorspace; public virtual ColorSpaces ColorSpace @@ -514,24 +478,7 @@ namespace Tango.PPC.Jobs.Models get { return _segmentmodel; } set { _segmentmodel = value; } } - - private BrushStop _dummyBrushStop; - - public BrushStop DummyBrushStop - { - get { return _dummyBrushStop; } - set { _dummyBrushStop = value; } - } - - private bool _isMiddle; - - public bool IsMiddle - { - get { return _isMiddle; } - set { _isMiddle = value; - RaisePropertyChangedAuto(); - } - } + private bool _outOfGamutChecked; /// <summary> @@ -556,11 +503,6 @@ namespace Tango.PPC.Jobs.Models { _isOutOfGamut = value; RaisePropertyChangedAuto(); - - //if (SegmentModel != null) - //{ - // Segment.RaiseHasOutOfGamutBrushStop(); - //} } } } @@ -576,7 +518,8 @@ namespace Tango.PPC.Jobs.Models _b = 0; _red = _green = _blue = 255; _cyan = _magenta = _yellow = _black = 0; - IsMiddle = IsFirstColorBrush = IsSecondColorBrush = false; + StopIndex = 1; + Position = PositionStatus.FirstColor; SegmentModel = segmentModel; IsOutOfGamut = false; _volumeConversionTimer = new ActionTimer(TimeSpan.FromMilliseconds(50)); @@ -686,17 +629,33 @@ namespace Tango.PPC.Jobs.Models public BrushStopModel Clone() { - var cloned = (BrushStopModel)Activator.CreateInstance(typeof(BrushStopModel), SegmentModel); + var cloned = new BrushStopModel(SegmentModel); + cloned.StopIndex = StopIndex; cloned.PreventPropertyUpdate = true; + cloned.Red = Red; + cloned.Green = Green; + cloned.Blue = Blue; + cloned.L = L; + cloned.A = A; + cloned.B = B; + cloned.Cyan = Cyan; + cloned.Magenta = Magenta; + cloned.Yellow = Yellow; + cloned.Black = Black; + cloned.Hue = Hue; + cloned.Saturation = Saturation; + cloned.Brightness = Brightness; + cloned.Color = Color; - foreach (var prop in typeof(BrushStopModel).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.SetMethod != null)) - { - if (!prop.PropertyType.IsGenericTypeAndNotNullable()) - { - prop.SetValue(cloned, prop.GetValue(this)); - } - } - cloned.SegmentModel = SegmentModel; + cloned.ColorCatalogsItem = ColorCatalogsItem; + cloned.ColorSpace = ColorSpace; + cloned.DisplayedColor = DisplayedColor; + cloned.OffsetMeters = OffsetMeters; + cloned.OffsetPercent = OffsetPercent; + cloned.Position = Position; + cloned.IsOutOfGamut = IsOutOfGamut; + cloned.OutOfGamutChecked = OutOfGamutChecked; + //this.MapPropertiesTo(cloned, MappingFlags.NoReferenceTypes); cloned.PreventPropertyUpdate = false; return cloned; } @@ -719,12 +678,12 @@ namespace Tango.PPC.Jobs.Models #region changes - private void OnCMYKChanged() + private void OnVolumeChanged() { if (PreventPropertyUpdate) return; - ColorSpace = ColorSpaces.CMYK; - RaisePropertyChanged(nameof(IsCMYKLiquidVolumesOutOfRange)); + ColorSpace = ColorSpaces.Volume; + RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); OnBrushStopFieldValueChanged(); } @@ -796,7 +755,7 @@ namespace Tango.PPC.Jobs.Models { Hsb hsb = null; - if (ColorSpace == ColorSpaces.CMYK) + if (ColorSpace == ColorSpaces.Volume) { BrushStop stop = CreateBrushStop(ColorSpaces.Volume); try @@ -806,7 +765,7 @@ namespace Tango.PPC.Jobs.Models _red = output.SingleCoordinates.Red; _green = output.SingleCoordinates.Green; _blue = output.SingleCoordinates.Blue; - IsOutOfGamut = _converter.IsOutOfGamut(stop, SegmentModel.Job.Machine.Configuration, SegmentModel.Job.Rml); + IsOutOfGamut = output.OutOfGamut; } catch (Exception ex) { @@ -845,7 +804,7 @@ namespace Tango.PPC.Jobs.Models { if (ColorSpace != ColorSpaces.RGB) { - if (ColorSpace == ColorSpaces.CMYK) + if (ColorSpace == ColorSpaces.Volume) { BrushStop stop = CreateBrushStop(ColorSpaces.Volume); try @@ -855,7 +814,7 @@ namespace Tango.PPC.Jobs.Models _red = output.SingleCoordinates.Red; _green = output.SingleCoordinates.Green; _blue = output.SingleCoordinates.Blue; - IsOutOfGamut = _converter.IsOutOfGamut(stop, SegmentModel.Job.Machine.Configuration, SegmentModel.Job.Rml); + IsOutOfGamut = output.OutOfGamut; } catch (Exception ex) { @@ -885,7 +844,7 @@ namespace Tango.PPC.Jobs.Models if (ColorSpace != ColorSpaces.LAB) { Lab lab = null; - if (ColorSpace == ColorSpaces.CMYK) + if (ColorSpace == ColorSpaces.Volume) { BrushStop stop = CreateBrushStop(ColorSpaces.Volume); try @@ -895,11 +854,11 @@ namespace Tango.PPC.Jobs.Models _l = output.SingleCoordinates.L; _a = output.SingleCoordinates.A; _b = output.SingleCoordinates.B; - IsOutOfGamut = _converter.IsOutOfGamut(stop, SegmentModel.Job.Machine.Configuration, SegmentModel.Job.Rml); + IsOutOfGamut = output.OutOfGamut; } catch (Exception ex) { - LogManager.Log(ex, "An error occurred while trying to get volume => RGB from conversion engine."); + LogManager.Log(ex, "An error occurred while trying to convert volume to LAB."); } finally { @@ -929,9 +888,9 @@ namespace Tango.PPC.Jobs.Models } } - public void ConvertColorToCMYK() + public void ConvertColorToVolume() { - if (ColorSpace != ColorSpaces.CMYK) + if (ColorSpace != ColorSpaces.Volume) { ColorSpaces colorSpace = ColorSpace; if (ColorSpace == ColorSpaces.HSB) @@ -944,16 +903,16 @@ namespace Tango.PPC.Jobs.Models IsBusy = true; var output = _converter.Convert(stop, SegmentModel.Job.Machine.Configuration, SegmentModel.Job.Rml, false, false, false); - _cyan = output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Cyan).Volume; - _yellow = output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Yellow).Volume; - _magenta = output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Magenta).Volume; - _black = output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Magenta).Volume; + _cyan = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Cyan).Volume) ; + _yellow = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Yellow).Volume); + _magenta = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Magenta).Volume); + _black = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Black).Volume); IsOutOfGamut = false; RaisePropertyChanged(nameof(Cyan)); RaisePropertyChanged(nameof(Yellow)); RaisePropertyChanged(nameof(Magenta)); RaisePropertyChanged(nameof(Black)); - RaisePropertyChanged(nameof(IsCMYKLiquidVolumesOutOfRange)); + RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); } catch (Exception ex) { @@ -1010,11 +969,11 @@ namespace Tango.PPC.Jobs.Models } return 0.0; } - public bool IsCMYKLiquidVolumesOutOfRange + public bool IsLiquidVolumesOutOfRange { get { - if (ColorSpace == BL.Enumerations.ColorSpaces.CMYK) + if (ColorSpace == BL.Enumerations.ColorSpaces.Volume) { var sum = GetColorNLPerCm(Cyan, LiquidTypes.Cyan) + GetColorNLPerCm(Magenta, LiquidTypes.Magenta) + GetColorNLPerCm(Yellow, LiquidTypes.Yellow) + GetColorNLPerCm(Black, LiquidTypes.Black); var maxLiq = GetTotalMaximumLiquidNlPerCMLimit(); @@ -1036,23 +995,16 @@ namespace Tango.PPC.Jobs.Models try { ColorSpaces colorSpace = ColorSpace; - if(ColorSpace == ColorSpaces.HSB) - { - colorSpace = ColorSpaces.RGB; - } - if (ColorSpace == ColorSpaces.CMYK) - { - colorSpace = ColorSpaces.Volume; - } + BrushStop stop = CreateBrushStop(colorSpace); Configuration configuration = SegmentModel.Job.Machine.Configuration; Rml rml = SegmentModel.Job.Rml; - RaisePropertyChanged(nameof(IsCMYKLiquidVolumesOutOfRange)); - if ( ColorSpace == BL.Enumerations.ColorSpaces.CMYK) + RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); + if ( ColorSpace == BL.Enumerations.ColorSpaces.Volume) { - if(IsCMYKLiquidVolumesOutOfRange) + if(IsLiquidVolumesOutOfRange) { IsBusy = false; return; @@ -1079,14 +1031,27 @@ namespace Tango.PPC.Jobs.Models Rgb rgb = new Rgb(lab.ToRgb()); DisplayedColor = Color.FromRgb((byte)rgb.R, (byte)rgb.G, (byte)rgb.B); //TODO ASK ROY - // DisplayedColor = Color.FromRgb((byte)output.SingleCoordinates.Red, (byte)output.SingleCoordinates.Green, (byte)output.SingleCoordinates.Blue); + //foreach (var outputLiquid in output.SingleCoordinates.OutputLiquids) + //{ + // var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack.LiquidType.Code == outputLiquid.LiquidType.ToInt32()); + + // if (liquidVolume == null) + // { + // throw new NullReferenceException("Liquid volume not found for color conversion output liquid '" + outputLiquid.LiquidType + "'."); + // } + // liquidVolume.Volume = outputLiquid.Volume; + //} } else if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.RGB) { IsOutOfGamut = _converter.IsOutOfGamut(stop, configuration, rml); DisplayedColor = Color.FromRgb((byte)output.SingleCoordinates.Red, (byte)output.SingleCoordinates.Green, (byte)output.SingleCoordinates.Blue); - + } + else if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.HSB) + { + IsOutOfGamut = _converter.IsOutOfGamut(stop, configuration, rml); + DisplayedColor = Color.FromRgb((byte)output.SingleCoordinates.Red, (byte)output.SingleCoordinates.Green, (byte)output.SingleCoordinates.Blue); } } catch (Exception ex) diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs index 349b9049b..3bb6188d9 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs @@ -118,6 +118,7 @@ namespace Tango.PPC.Jobs.Models { _numberofunits = value; RaisePropertyChangedAuto(); + RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits)); } } @@ -489,6 +490,11 @@ namespace Tango.PPC.Jobs.Models { RaisePropertyChanged(nameof(EffectiveSegments)); } + else if(e.PropertyName == nameof(SegmentModel.EnableInterSegment)) + { + OnLengthChanged(); + RaisePropertyChanged(nameof(EffectiveSegments)); + } else if(e.PropertyName == nameof(SegmentModel.IsSelected)) { if (_preventChange) return; @@ -532,6 +538,7 @@ namespace Tango.PPC.Jobs.Models public void CopySegments() { + SegmentsToCopy.Clear(); if (false == Segments.ToList().Any(x => x.IsSelected)) return; LogManager.Log("Copy selected segments."); @@ -552,14 +559,20 @@ namespace Tango.PPC.Jobs.Models } SegmentsToCopy.ForEach(x => x.RaiseSegmentBrushChanged()); - var selected = Segments.ToList().FindIndex(x => x.IsSelected); - if(selected != -1) + var selectedIndex = Segments.ToList().FindIndex(x => x.IsSelected); + if(selectedIndex == -1 || selectedIndex == (Segments.Count) - 1) { - Segments.ToList().InsertRange(selected, SegmentsToCopy); + foreach ( var newSegmentModel in SegmentsToCopy) + { + Segments.Add(newSegmentModel); + } } else { - Segments.ToList().AddRange(SegmentsToCopy); + foreach (var newSegmentModel in SegmentsToCopy) + { + Segments.Insert(selectedIndex++, newSegmentModel); + } } SegmentsToCopy.Clear(); } @@ -573,6 +586,17 @@ namespace Tango.PPC.Jobs.Models Segments.Where(i => i.IsSelected).ToList().ForEach(y => y.EnableInterSegment = true); } + public void SwapSegments(int index1, int index2) + { + if (index1 < 0 || index1 >= Segments.Count) + return; + if (index2 < 0 || index2 >= Segments.Count) + return; + var tmpIndex = Segments[index2].SegmentIndex; + Segments[index2].SegmentIndex = Segments[index1].SegmentIndex; + Segments[index1].SegmentIndex = tmpIndex; + } + #endregion } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs index c7edecd41..a03c56a46 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs @@ -24,9 +24,10 @@ namespace Tango.PPC.Jobs.Models private ActionTimer _brushStopCollectionChangedActionTimer; #region Properties - - protected String _name; + public string GUID { get; set; } + + protected String _name; /// <summary> /// Gets or sets the SegmentModel name. /// </summary> @@ -108,7 +109,6 @@ namespace Tango.PPC.Jobs.Models _enableintersegment = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(LengthWithInterSegment)); - Job.OnLengthChanged(); } } } @@ -178,54 +178,51 @@ namespace Tango.PPC.Jobs.Models } public bool IsOffsetChanged { get; set; } - - private double _leftOffset; - + public double LeftOffset { - get { return _leftOffset; } - set { _leftOffset = value; - RaisePropertyChangedAuto(); - if (FirstBrushStop != null) + get { return FirstBrushStop != null? FirstBrushStop.OffsetPercent : 0; } + set { + + if (FirstBrushStop != null && FirstBrushStop.OffsetPercent != value) { - FirstBrushStop.OffsetPercent = _leftOffset/2; + FirstBrushStop.OffsetPercent = value; + RaisePropertyChangedAuto(); IsOffsetChanged = true; - RaiseSegmentBrushChanged(); + RaisePropertyChanged(nameof(SegmentBrush)); IsOffsetChanged = false; } } } - private double _middleOffset; - + public double MiddleOffset { - get { return _middleOffset; } - set { _middleOffset = value; - RaisePropertyChangedAuto(); - if (MiddleBrushStop != null) + get { return (MiddleBrushStop != null) ? MiddleBrushStop.OffsetPercent : 0; } + set { + + if (MiddleBrushStop != null && MiddleBrushStop.OffsetPercent != value) { - MiddleBrushStop.OffsetPercent = _middleOffset; - + MiddleBrushStop.OffsetPercent = value; + RaisePropertyChangedAuto(); IsOffsetChanged = true; - RaiseSegmentBrushChanged(); + RaisePropertyChanged(nameof(SegmentBrush)); IsOffsetChanged = false; } } } - - private double _rightOffset; - + public double RightOffset { - get { return _rightOffset; } - set { _rightOffset = value; - RaisePropertyChangedAuto(); - if (SecondBrushStop != null) + get { return SecondBrushStop != null ? SecondBrushStop.OffsetPercent: 0; } + set { + + if (SecondBrushStop != null && SecondBrushStop.OffsetPercent != value) { - SecondBrushStop.OffsetPercent = _rightOffset; + SecondBrushStop.OffsetPercent = value; + RaisePropertyChangedAuto(); IsOffsetChanged = true; - RaiseSegmentBrushChanged(); + RaisePropertyChanged(nameof(SegmentBrush)); IsOffsetChanged = false; } } @@ -255,7 +252,7 @@ namespace Tango.PPC.Jobs.Models get { if (BrushStops.Count > 1) - return BrushStops.Where(x => x.IsSecondColorBrush).FirstOrDefault(); + return BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.SecondColor).FirstOrDefault(); return null; } @@ -268,11 +265,12 @@ namespace Tango.PPC.Jobs.Models { get { - if (BrushStops.Count == 1) - return BrushStops[0]; - if (BrushStops.Count > 1) - return BrushStops.Where(x => x.IsFirstColorBrush).FirstOrDefault(); - + if(BrushStops.Count > 0) + { + var brushStop = BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.FirstColor).FirstOrDefault(); + return brushStop; + } + return null; } @@ -286,7 +284,7 @@ namespace Tango.PPC.Jobs.Models get { if (BrushStops.Count > 1) - return BrushStops.Where(x => x.IsMiddle).FirstOrDefault(); + return BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.Middle).FirstOrDefault(); return null; } @@ -321,14 +319,16 @@ namespace Tango.PPC.Jobs.Models public RelayCommand DeleteGapCommand { get; set; } #endregion - public SegmentModel(JobModel jobModel) + public SegmentModel(JobModel jobModel, string guid) { InitnewSegment(); Job = jobModel; + GUID = guid; } public SegmentModel() { + GUID = ""; InitnewSegment(); } @@ -356,14 +356,12 @@ namespace Tango.PPC.Jobs.Models if (_brush == null || _brush.GradientStops.Count != BrushStops.Count || IsOffsetChanged) { GradientStopCollection stops = new GradientStopCollection(); - - foreach (var stop in BrushStops.ToList().OrderBy(x => x.StopIndex).ToList()) { //TODO test if displayed is valid stop.IsValid Color color = stop.DisplayedColor; - stops.Add(new GradientStop(stop.IsTransparent ? Colors.Transparent : color, stop.OffsetPercent / 100d)); + stops.Add(new GradientStop( color, stop.OffsetPercent / 100d)); } LinearGradientBrush brush = new LinearGradientBrush(); @@ -381,7 +379,7 @@ namespace Tango.PPC.Jobs.Models { //TODO test if displayed is valid stop.IsValid Color color = BrushStops[i].DisplayedColor; - _brush.GradientStops[i].Color = BrushStops[i].IsTransparent ? Colors.Transparent : color; + _brush.GradientStops[i].Color = color; _brush.GradientStops[i].Offset = BrushStops[i].OffsetPercent / 100d; } @@ -391,17 +389,19 @@ namespace Tango.PPC.Jobs.Models public SegmentModel Clone() { - var cloned = (SegmentModel)Activator.CreateInstance(typeof(SegmentModel), this.Job); + var cloned = new SegmentModel(Job, GUID);//(SegmentModel)Activator.CreateInstance(typeof(SegmentModel), this.Job); - foreach (var prop in typeof(SegmentModel).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.SetMethod != null)) - { - if (!prop.PropertyType.IsGenericTypeAndNotNullable()) - { - prop.SetValue(cloned, prop.GetValue(this)); - } - } + cloned.Name = Name; + cloned.LeftOffset = LeftOffset; + cloned.MiddleOffset = MiddleOffset; + cloned.RightOffset = RightOffset; + cloned.IsOffsetChanged = IsOffsetChanged; + cloned.Length = Length; + cloned.IsSelected = false; + cloned.IsInterSegment = IsInterSegment; + cloned.EnableInterSegment = EnableInterSegment; cloned.BrushStops = BrushStops.Select(x => x.Clone()).ToSynchronizedObservableCollection(); - cloned.Job = Job; + cloned.SegmentIndex = SegmentIndex + 1; return cloned; @@ -427,30 +427,18 @@ namespace Tango.PPC.Jobs.Models BrushStopModel brushStop = firstBrush.Clone(); brushStop.StopIndex = 1; brushStop.OffsetPercent = 0; - brushStop.IsFirst = true; - brushStop.IsFirstColorBrush = false; - brushStop.IsMiddle = false; - brushStop.IsSecondColorBrush = false; - brushStop.IsLast = false; + brushStop.Position = BrushStopModel.PositionStatus.First; BrushStops.Add(brushStop); BrushStopModel colorbrushStop = firstBrush.Clone(); - colorbrushStop.IsFirstColorBrush = true; - colorbrushStop.IsFirst = false; - colorbrushStop.IsMiddle = false; - colorbrushStop.IsSecondColorBrush = false; - colorbrushStop.IsLast = false; + colorbrushStop.Position = BrushStopModel.PositionStatus.FirstColor; colorbrushStop.StopIndex = 2; colorbrushStop.OffsetPercent = 0; BrushStops.Add(colorbrushStop); BrushStopModel middleBrushStop = firstBrush.Clone(); middleBrushStop.StopIndex = 3; - middleBrushStop.IsMiddle = true; - middleBrushStop.IsFirst = false; - middleBrushStop.IsFirstColorBrush = false; - middleBrushStop.IsSecondColorBrush = false; - middleBrushStop.IsLast = false; + middleBrushStop.Position = BrushStopModel.PositionStatus.Middle; middleBrushStop.OffsetPercent = 50; middleBrushStop.Color = BrushStopModel.GetRelativeRGB(firstBrush.Color, secondBrush.Color, 0, 1, 0.5); middleBrushStop.DisplayedColor = BrushStopModel.GetRelativeRGB(firstBrush.DisplayedColor, secondBrush.DisplayedColor, 0, 1, 0.5); @@ -465,22 +453,14 @@ namespace Tango.PPC.Jobs.Models BrushStopModel secondbrushStop = secondBrush.Clone(); secondbrushStop.StopIndex = 4; - secondbrushStop.IsSecondColorBrush = true; - secondbrushStop.IsFirst = false; - secondbrushStop.IsFirstColorBrush = false; - secondbrushStop.IsMiddle = false; - secondbrushStop.IsLast = false; + secondbrushStop.Position = BrushStopModel.PositionStatus.SecondColor; secondbrushStop.OffsetPercent = 100; BrushStops.Add(secondbrushStop); BrushStopModel lastSecondBrushStop = secondBrush.Clone(); lastSecondBrushStop.StopIndex = 5; lastSecondBrushStop.OffsetPercent = 100; - lastSecondBrushStop.IsLast = true; - lastSecondBrushStop.IsFirst = false; - lastSecondBrushStop.IsFirstColorBrush = false; - lastSecondBrushStop.IsMiddle = false; - lastSecondBrushStop.IsSecondColorBrush = false; + lastSecondBrushStop.Position = BrushStopModel.PositionStatus.Last; ; BrushStops.Add(lastSecondBrushStop); } @@ -488,18 +468,18 @@ namespace Tango.PPC.Jobs.Models { target.SetNewColor(source); target.IsOutOfGamut = source.IsOutOfGamut; - if (target.IsFirstColorBrush) + if (target.Position == BrushStopModel.PositionStatus.FirstColor) { - BrushStopModel first = BrushStops.Where(x => x.IsFirst).FirstOrDefault(); + BrushStopModel first = BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.First).FirstOrDefault(); if(first != null) { first.SetNewColor(source); first.IsOutOfGamut = source.IsOutOfGamut; } } - else if(target.IsSecondColorBrush) + else if(target.Position == BrushStopModel.PositionStatus.SecondColor) { - BrushStopModel last = BrushStops.Where(x => x.IsLast).FirstOrDefault(); + BrushStopModel last = BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.Last).FirstOrDefault(); if(last != null) { last.SetNewColor(source); diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/NavigationObjects/ColorSelectionNavigationObject.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/NavigationObjects/ColorSelectionNavigationObject.cs deleted file mode 100644 index f8c1e81a0..000000000 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/NavigationObjects/ColorSelectionNavigationObject.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.PPC.Jobs.Models; - -namespace Tango.PPC.Jobs.NavigationObjects -{ - public class ColorSelectionNavigationObject - { - public SegmentModel SelectedSegment { get; set; } - public BrushStopModel BrushStopForEdit { get; set; } - /// <summary> - /// True when first brush is open for editing - /// </summary> - public bool IsEditingMode { get; set; } - } - -} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj index d816fa42e..deb0e5cc9 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj @@ -92,6 +92,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Dialogs\ColorSelectionView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\ImportCsvJobView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> @@ -124,6 +128,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Dialogs\RepeatJobView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\SpoolChangeView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -136,10 +144,6 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> - <Page Include="Views\ColorSelectionToolView.xaml"> - <SubType>Designer</SubType> - <Generator>MSBuild:Compile</Generator> - </Page> <Page Include="Views\JobProgressView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -202,6 +206,9 @@ <DependentUpon>BasicColorCorrectionView.xaml</DependentUpon> </Compile> <Compile Include="Dialogs\BasicColorCorrectionViewVM.cs" /> + <Compile Include="Dialogs\ColorSelectionView.xaml.cs"> + <DependentUpon>ColorSelectionView.xaml</DependentUpon> + </Compile> <Compile Include="Dialogs\ImportCsvJobView.xaml.cs"> <DependentUpon>ImportCsvJobView.xaml</DependentUpon> </Compile> @@ -234,6 +241,10 @@ </Compile> <Compile Include="Dialogs\CatalogSelectionViewVM.cs" /> <Compile Include="Dialogs\JobCreationViewVM.cs" /> + <Compile Include="Dialogs\RepeatJobView.xaml.cs"> + <DependentUpon>RepeatJobView.xaml</DependentUpon> + </Compile> + <Compile Include="Dialogs\RepeatJobViewVM.cs" /> <Compile Include="Dialogs\SpoolChangeView.xaml.cs"> <DependentUpon>SpoolChangeView.xaml</DependentUpon> </Compile> @@ -245,7 +256,6 @@ <Compile Include="Models\BrushStopModel.cs" /> <Compile Include="Models\JobModel.cs" /> <Compile Include="Models\SegmentModel.cs" /> - <Compile Include="NavigationObjects\ColorSelectionNavigationObject.cs" /> <Compile Include="NavigationObjects\JobNavigationObject.cs" /> <Compile Include="NavigationObjects\JobSummeryNavigationObject.cs" /> <Compile Include="NavigationObjects\TwineCatalogNavigationObject.cs" /> @@ -269,16 +279,13 @@ <Compile Include="ViewContracts\IJobsView.cs" /> <Compile Include="ViewContracts\IJobView.cs" /> <Compile Include="ViewModelLocator.cs" /> - <Compile Include="ViewModels\ColorSelectionToolViewVM.cs" /> + <Compile Include="Dialogs\ColorSelectionViewVM.cs" /> <Compile Include="ViewModels\JobProgressViewVM.cs" /> <Compile Include="ViewModels\JobSummeryViewVM.cs" /> <Compile Include="ViewModels\JobsViewVM.cs" /> <Compile Include="ViewModels\JobViewVM.cs" /> <Compile Include="ViewModels\MainViewVM.cs" /> <Compile Include="ViewModels\TwineCatalogViewVM.cs" /> - <Compile Include="Views\ColorSelectionToolView.xaml.cs"> - <DependentUpon>ColorSelectionToolView.xaml</DependentUpon> - </Compile> <Compile Include="Views\JobProgressView.xaml.cs"> <DependentUpon>JobProgressView.xaml</DependentUpon> </Compile> @@ -593,7 +600,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs index 4f357be2c..5298cf096 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.DI; +using Tango.PPC.Jobs.Dialogs; using Tango.PPC.Jobs.ViewModels; namespace Tango.PPC.Jobs @@ -21,7 +22,7 @@ namespace Tango.PPC.Jobs TangoIOC.Default.Register<JobViewVM>(); TangoIOC.Default.Register<TwineCatalogViewVM>(); TangoIOC.Default.Register<JobProgressViewVM>(); - TangoIOC.Default.Register<ColorSelectionToolViewVM>(); + TangoIOC.Default.Register<ColorSelectionViewVM>(); } /// <summary> @@ -94,11 +95,11 @@ namespace Tango.PPC.Jobs /// <summary> /// Gets the twine catalog view VM. /// </summary> - public static ColorSelectionToolViewVM ColorSelectionToolViewVM + public static ColorSelectionViewVM ColorSelectionToolViewVM { get { - return TangoIOC.Default.GetInstance<ColorSelectionToolViewVM>(); + return TangoIOC.Default.GetInstance<ColorSelectionViewVM>(); } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs index 52c961876..990f210f4 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs @@ -48,11 +48,11 @@ namespace Tango.PPC.Jobs.ViewModels /// Represents the selected job view model. /// </summary> /// <seealso cref="Tango.PPC.Common.PPCViewModel" /> - public class JobViewVM : PPCViewModel<IJobView>, INavigationObjectReceiver<JobNavigationObject> + public class JobViewVM : PPCViewModel<IJobView>, INavigationObjectReceiver<JobNavigationObject>, INavigationBlocker { private ObservablesContext _db; private bool _can_navigate_back; - private Thread _check_gamut_thread; + //private Thread _check_gamut_thread; private Job _job_to_load; private JobNavigationIntent _job_to_load_intent; private static Dictionary<String, List<FineTuneItem>> _jobs_fine_tune_items; @@ -435,7 +435,7 @@ namespace Tango.PPC.Jobs.ViewModels // (e.Draggable as FrameworkElement).DataContext as Segment, // (e.Droppable as FrameworkElement).DataContext as Segment); //}); - + AddColorCommand = new RelayCommand<SegmentModel>(AddColor); EditColorCommand = new RelayCommand<BrushStopModel>(EditColor); @@ -453,8 +453,8 @@ namespace Tango.PPC.Jobs.ViewModels } }); - _check_gamut_thread = new Thread(CheckGamutThreadMethod); - _check_gamut_thread.IsBackground = true; + //_check_gamut_thread = new Thread(CheckGamutThreadMethod); + //_check_gamut_thread.IsBackground = true; StartSampleDyeCommand = new RelayCommand(StartSampleDye, CanStartJob); DyeCommand = new RelayCommand(StartJob, CanStartJob); @@ -479,8 +479,8 @@ namespace Tango.PPC.Jobs.ViewModels RepeateSegmentCommand = new RelayCommand(RepeateSegment); PasteCommand = new RelayCommand(Paste); CopyCommand = new RelayCommand(Copy); - UndoCommand = new RelayCommand(Undo); - RedoCommand = new RelayCommand(Redo); + UndoCommand = new RelayCommand(Undo,(x)=> { return false; }); + RedoCommand = new RelayCommand(Redo, (x) => { return false; }); IsFullMode = true; } @@ -498,10 +498,9 @@ namespace Tango.PPC.Jobs.ViewModels { if (!(_job_to_load == null || (_job_to_load != null && Job != null && _job_to_load.Guid == Job.Guid))) { - View.ScrollToTop(); + //View.ScrollToTop(); LogManager.Log($"Loading selected job '{_job_to_load.Name}'..."); - //NotificationProvider.SetGlobalBusyMessage("Loading job details..."); IsFree = false; @@ -541,9 +540,7 @@ namespace Tango.PPC.Jobs.ViewModels .WithSegments() .WithBrushStops() .BuildAsync(); - - //Job.RmlChanged += OnRmlChanged; Job.NameChanged -= Job_NameChanged; Job.NameChanged += Job_NameChanged; @@ -568,15 +565,7 @@ namespace Tango.PPC.Jobs.ViewModels await LoadRML(_selectedRML); - if (!_check_gamut_thread.IsAlive) - { - _check_gamut_thread.Start(); - } - - // SegmentsCollectionView = CollectionViewSource.GetDefaultView(Job.Segments); - // SegmentsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Segment.SegmentIndex), ListSortDirection.Ascending)); - - //ResetFineTuning(); + ///NEW CODE Save to MODEL var jobModel = new JobModel(ColorSpaces) { @@ -594,7 +583,7 @@ namespace Tango.PPC.Jobs.ViewModels foreach( var segm in Job.Segments) { - SegmentModel segmentModel = new SegmentModel(jobModel) + SegmentModel segmentModel = new SegmentModel(jobModel, segm.Guid) { Name = segm.Name, Length = segm.Length, @@ -607,6 +596,7 @@ namespace Tango.PPC.Jobs.ViewModels { BrushStopModel brushStopModel = new BrushStopModel(segmentModel) { + SegmentModel = segmentModel, Cyan = brushStop.Cyan, Magenta = brushStop.Magenta, Yellow = brushStop.Yellow, @@ -618,14 +608,16 @@ namespace Tango.PPC.Jobs.ViewModels A = brushStop.A, B = brushStop.B, OffsetPercent = brushStop.OffsetPercent, - IsTransparent = brushStop.IsTransparent, Color = brushStop.Color, DisplayedColor = brushStop.Color, ColorSpace = brushStop.ColorSpace.Space, - ColorCatalogsItem = brushStop.ColorCatalogsItem + ColorCatalogsItem = brushStop.ColorCatalogsItem, + StopIndex = brushStop.StopIndex }; - AddBrushStop(segmentModel, brushStopModel); + segmentModel.BrushStops.Add(brushStopModel); + // AddBrushStop(segmentModel, brushStopModel); } + ArrangeBrushStopsPosition(segmentModel); jobModel.Segments.Add(segmentModel); } JobModel = jobModel; @@ -691,7 +683,7 @@ namespace Tango.PPC.Jobs.ViewModels base.OnBeforeNavigatedFrom(); //Save... } - + /// <summary> /// Saves the job. /// </summary> @@ -801,43 +793,37 @@ namespace Tango.PPC.Jobs.ViewModels try { LogManager.Log("Editing the job details."); - JobCreationViewVM vm = new JobCreationViewVM( - _spoolTypes.ToList(), - _rmls.ToList() - ); + JobCreationViewVM vm = new JobCreationViewVM( _spoolTypes.ToList(),_rmls.ToList(), JobModel.InterSegmentLength, true ); vm.JobName = JobModel.Name; vm.SelectedRML = JobModel.Rml; vm.SelectedSpoolType = JobModel.SpoolType; vm = await NotificationProvider.ShowDialog<JobCreationViewVM>(vm); if (!vm.DialogResult) return; - Job.Name = vm.JobName; - JobModel.Name = vm.JobName; - bool updateVolumes = JobModel.Rml != vm.SelectedRML; - JobModel. Rml = vm.SelectedRML; - SelectedRML = vm.SelectedRML; - JobModel.Rml = vm.SelectedRML; - Job.SpoolType = vm.SelectedSpoolType; - JobModel.SpoolType = vm.SelectedSpoolType; + if(vm.IsDuplicate) + { + //Duplicate new job + /* + * int index = Jobs.Max(x => x.JobIndex); - if(updateVolumes) + List<Job> clonedJobs = new List<Job>(); + + foreach (var job in SelectedJobs) { - NotificationProvider.SetGlobalBusyMessage("Updating job liquid volumes..."); - foreach (var stop in JobModel.Segments.SelectMany(x => x.BrushStops).Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) - { - try - { - stop.OnBrushStopFieldValueChanged(); - //TODO ASK ROY!!!!!! - //output.ApplyOnBrushStopVolumesOnly(stop); - } - catch (Exception ex) - { - LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.SegmentModel.SegmentIndex}, stop {stop.StopIndex}."); - } - } - NotificationProvider.ReleaseGlobalBusyMessage(); + var cloned = job.Clone(); + cloned.JobIndex = ++index; + _db.Jobs.Add(cloned); + clonedJobs.Add(cloned); } + + await _db.SaveChangesAsync(); + * */ + } + Job.Name = vm.JobName; + JobModel.Name = vm.JobName; + Job.SpoolType = vm.SelectedSpoolType; + JobModel.SpoolType = vm.SelectedSpoolType;//update length!!!! + SelectedRML = vm.SelectedRML; } catch (Exception ex) { @@ -845,9 +831,22 @@ namespace Tango.PPC.Jobs.ViewModels } } - private void RepeatUnits() + private async void RepeatUnits() { - //open dialog + var maxLength = Job.SpoolType.Length; + var maxRep = (maxLength == 0 ? 999 : (maxLength / JobModel.Length)); + + + var vm = await NotificationProvider.ShowDialog<RepeatJobViewVM>(new RepeatJobViewVM() + { + MaxRepeations = (int)maxRep, + Repeats = JobModel.NumberOfUnits + }); + + if (vm.DialogResult) + { + JobModel.NumberOfUnits = vm.Repeats; + } } #endregion @@ -865,7 +864,7 @@ namespace Tango.PPC.Jobs.ViewModels { if (Job.Rml != rml || rml.Cct == null) { - bool updateVolumes = Job.Rml != rml; + bool updateRML = Job.Rml != rml; Job.Rml = await new RmlBuilder(_db) .Set(rml.Guid) @@ -875,32 +874,50 @@ namespace Tango.PPC.Jobs.ViewModels .WithLiquidFactors() .WithSpools() .BuildAsync(); - - //foreach (var segment in Job.Segments) - //{ - // SetSegmentLiquidVolumes(segment); - //} - + if(JobModel != null) + JobModel.Rml = Job.Rml; + GetLubricationLevel(); await SetSpoolTension(rml); - if (updateVolumes) + if (updateRML && JobModel != null) { - NotificationProvider.SetGlobalBusyMessage("Updating job liquid volumes..."); - foreach (var stop in Job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace == BL.Enumerations.ColorSpaces.RGB || x.BrushColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) + NotificationProvider.SetGlobalBusyMessage("Updating IsOutOfGammut due to the change RML..."); + foreach (var stop in JobModel.Segments.SelectMany(x => x.BrushStops).Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) { try { - var output = await _converter.ConvertAsync(stop, false, false); - output.ApplyOnBrushStopVolumesOnly(stop); + stop.OnBrushStopFieldValueChanged(); + //TODO ASK ROY!!!!!! + //output.ApplyOnBrushStopVolumesOnly(stop); } catch (Exception ex) { - LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.Segment.SegmentIndex}, stop {stop.StopIndex}."); + LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.SegmentModel.SegmentIndex}, stop {stop.StopIndex}."); } } + DyeCommand.RaiseCanExecuteChanged(); + StartSampleDyeCommand.RaiseCanExecuteChanged(); + StartFineTuningCommand.RaiseCanExecuteChanged(); NotificationProvider.ReleaseGlobalBusyMessage(); } + //if (updateVolumes) + //{ + // NotificationProvider.SetGlobalBusyMessage("Updating job liquid volumes..."); + // foreach (var stop in Job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace == BL.Enumerations.ColorSpaces.RGB || x.BrushColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) + // { + // try + // { + // var output = await _converter.ConvertAsync(stop, false, false); + // output.ApplyOnBrushStopVolumesOnly(stop); + // } + // catch (Exception ex) + // { + // LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.Segment.SegmentIndex}, stop {stop.StopIndex}."); + // } + // } + // NotificationProvider.ReleaseGlobalBusyMessage(); + //} } } } @@ -1022,204 +1039,6 @@ namespace Tango.PPC.Jobs.ViewModels #region Brush Stops Management - //private void Stop_ColorCatalogChanged(object sender, ColorCatalog catalog) - //{ - // BrushStop stop = sender as BrushStop; - - // if (stop.ColorSpace != null && stop.BrushColorSpace == BL.Enumerations.ColorSpaces.Catalog) - // { - // if (stop.ColorCatalogsItem != null) - // { - // try - // { - // if (catalog != null && catalog.AllItemsOrdered.Count > 0) - // { - // stop.ColorCatalogsItem = catalog.GetClosestItem(stop.ColorCatalogsItem.Color); - // } - // else - // { - // stop.ColorCatalogsItem = null; - // } - // } - // catch (Exception ex) - // { - // LogManager.Log(ex, "Error getting closest catalog color."); - // stop.ColorCatalogsItem = null; - // } - // } - // } - //} - - - /// <summary> - /// Invokes the color adjustment for the specified brush stop. - /// </summary> - /// <param name="brushStop">The brush stop.</param> - private async void InvokeColorAdjustmentForBrushStop(BrushStop brushStop) - { - try - { - LogManager.Log($"Invoking triplet color adjustment dialog for brush stop {brushStop.StopIndex} at segment {brushStop.Segment.SegmentIndex}."); - - LogManager.Log("Retrieving color conversion suggestions for brush stop..."); - PMR.ColorLab.ConversionOutput conversionOutput = null; - - if (brushStop.IsOutOfGamut) - { - conversionOutput = _converter.Convert(brushStop, false); - } - - BasicColorCorrectionViewVM vm = null; - List<ColorConversionSuggestion> suggestions = null; - - if (brushStop.IsOutOfGamut) - { - vm = await NotificationProvider.ShowDialog<BasicColorCorrectionViewVM>(new BasicColorCorrectionViewVM() - { - InvalidBrushStop = brushStop, - Suggestions = new List<ColorConversionSuggestion>() { new ColorConversionSuggestion(conversionOutput.SingleCoordinates, 0, 0) }, - }); - } - - if (vm == null || vm.Result == BasicColorCorrectionViewVM.ColorCorrectionDialogResult.MoreOptions) - { - NotificationProvider.SetGlobalBusyMessage("Generating color hive..."); - - await Task.Factory.StartNew(() => - { - conversionOutput = _converter.Convert(brushStop, true); - - suggestions = conversionOutput.CreateHiveSuggestions(); - - if (vm == null) - { - var center = suggestions.GetCenterSuggestion(); - center.Coordinates.Red = brushStop.Red; - center.Coordinates.Green = brushStop.Green; - center.Coordinates.Blue = brushStop.Blue; - - center.Coordinates.L = brushStop.L; - center.Coordinates.A = brushStop.A; - center.Coordinates.B = brushStop.B; - } - }); - - NotificationProvider.ReleaseGlobalBusyMessage(); - LogManager.Log("Invoking hive color conversion dialog..."); - vm = await NotificationProvider.ShowDialog<AdvancedColorCorrectionViewVM>(new AdvancedColorCorrectionViewVM() - { - InvalidBrushStop = brushStop, - Suggestions = suggestions, - IsOutOfGamut = brushStop.IsOutOfGamut, - }); - } - - if (vm.Result == BasicColorCorrectionViewVM.ColorCorrectionDialogResult.Confirmed) - { - LogManager.Log($"Color suggestion selected: {vm.SelectedSuggestion.Color.ToString()}."); - - if (brushStop.BrushColorSpace == BL.Enumerations.ColorSpaces.RGB) - { - brushStop.Red = vm.SelectedSuggestion.Coordinates.Red; - brushStop.Green = vm.SelectedSuggestion.Coordinates.Green; - brushStop.Blue = vm.SelectedSuggestion.Coordinates.Blue; - } - else if (brushStop.BrushColorSpace == BL.Enumerations.ColorSpaces.LAB) - { - brushStop.L = vm.SelectedSuggestion.Coordinates.L; - brushStop.A = vm.SelectedSuggestion.Coordinates.A; - brushStop.B = vm.SelectedSuggestion.Coordinates.B; - } - else if (brushStop.BrushColorSpace == BL.Enumerations.ColorSpaces.Volume) - { - vm.SelectedSuggestion.ApplyOnBrushStop(brushStop); - } - - brushStop.Corrected = true; - brushStop.IsOutOfGamut = false; - brushStop.OutOfGamutChecked = true; - } - } - catch (Exception ex) - { - LogManager.Log(ex, "Error while invoking color adjustment dialog."); - await NotificationProvider.ShowError("An error occurred while trying to convert the selected color."); - } - finally - { - NotificationProvider.ReleaseGlobalBusyMessage(); - DyeCommand.RaiseCanExecuteChanged(); - } - } - - /// <summary> - /// Called when the brush stop field value has been changed (This called from the view!). - /// </summary> - /// <param name="stop">The brush stop.</param> - [HandleProcessCorruptedStateExceptions] - public void OnBrushStopFieldValueChanged(BrushStop stop) - { - if (stop != null && stop.ColorSpace != null) - { - if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.Catalog) - { - DyeCommand.RaiseCanExecuteChanged(); - return; - } - - _volumeConversionTimer.ResetReplace(() => - { - - try - { - var output = _converter.Convert(stop, false); - - if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.Volume) - { - stop.Red = output.SingleCoordinates.Red; - stop.Green = output.SingleCoordinates.Green; - stop.Blue = output.SingleCoordinates.Blue; - stop.L = output.SingleCoordinates.L; - stop.A = output.SingleCoordinates.A; - stop.B = output.SingleCoordinates.B; - stop.Corrected = false; - stop.OutOfGamutChecked = false; - } - else if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.LAB) - { - output.ApplyOnBrushStopVolumesOnly(stop); - stop.Corrected = false; - stop.OutOfGamutChecked = false; - } - else if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.RGB) - { - output.ApplyOnBrushStopVolumesOnly(stop); - stop.Corrected = false; - stop.OutOfGamutChecked = false; - } - - try - { - var closestItem = AvailableCatalogs.SelectMany(x => x.AllItemsOrdered).GetClosestItem(stop.Color); - stop.ColorCatalog = closestItem.ColorCatalogsGroup.ColorCatalog; - stop.ColorCatalogsItem = closestItem; - } - catch { } - } - catch (Exception ex) - { - LogManager.Log(ex, "An error occurred while trying to get volume => RGB from conversion engine."); - } - finally - { - InvokeUI(() => DyeCommand.RaiseCanExecuteChanged()); - } - - }); - - } - } - /// <summary> /// Opens the twine catalog for the specified brush stop. /// </summary> @@ -1244,12 +1063,23 @@ namespace Tango.PPC.Jobs.ViewModels // } //} - private void ArrangeBrushStopsIndices(Segment segment) + private void ArrangeBrushStopsIndexes(SegmentModel segment) { for (int i = 0; i < segment.BrushStops.Count; i++) { segment.BrushStops[i].StopIndex = i + 1; } + ArrangeBrushStopsPosition(segment); + } + + private void ArrangeBrushStopsPosition(SegmentModel segment) + { + if(segment.BrushStops.Count == 1) + { + segment.BrushStops.FirstOrDefault().Position = BrushStopModel.PositionStatus.FirstColor; + } + else if (segment.BrushStops.Count > 1) + segment.BrushStops.ToList().ForEach(x => x.Position = (BrushStopModel.PositionStatus)x.StopIndex); } private bool ValidateBrushStops() @@ -1269,15 +1099,21 @@ namespace Tango.PPC.Jobs.ViewModels await NotificationProvider.ShowInfo("Color transitions are best visible with segment length of 5 meters and above."); } - var newBrushStop = await NavigationManager.NavigateForResult<JobsV2Module, ColorSelectionToolView, BrushStopModel, ColorSelectionNavigationObject>( - new ColorSelectionNavigationObject() + var vm = await NotificationProvider.ShowDialog<ColorSelectionViewVM>(new ColorSelectionViewVM() + { + DialogEditObject = new ColorSelectionViewVM.DialogObject() { SelectedSegment = segment, BrushStopForEdit = new BrushStopModel(segment), - IsEditingMode = false - }, true); - - AddBrushStop(segment, newBrushStop); + IsEditingMode = false, + } + }); + + if (vm.DialogResult) + { + AddBrushStop(segment, vm.SelectedBrushStop); + DyeCommand.RaiseCanExecuteChanged(); + } // SetSegmentLiquidVolumes(segment); //RegisterJobBrushStopsEvents(); } @@ -1289,18 +1125,22 @@ namespace Tango.PPC.Jobs.ViewModels { SegmentModel segment = brushStop.SegmentModel; LogManager.Log($"Edit brush stop."); - - var newBrushStop = await NavigationManager.NavigateForResult<JobsV2Module, ColorSelectionToolView, BrushStopModel, ColorSelectionNavigationObject>( - new ColorSelectionNavigationObject() + + var vm = await NotificationProvider.ShowDialog<ColorSelectionViewVM>(new ColorSelectionViewVM() + { + DialogEditObject = new ColorSelectionViewVM.DialogObject() { SelectedSegment = segment, BrushStopForEdit = brushStop, - IsEditingMode = true - }, true); + IsEditingMode = true, + } + }); - if(newBrushStop != null) + + if (vm.DialogResult) { - segment.SetNewColor(brushStop,newBrushStop); + segment.SetNewColor(brushStop, vm.SelectedBrushStop); + DyeCommand.RaiseCanExecuteChanged(); } } @@ -1310,29 +1150,23 @@ namespace Tango.PPC.Jobs.ViewModels public async void AddBrushStop(SegmentModel segment, BrushStopModel newBrushStop) { if (newBrushStop == null || segment == null) - return; - - JobModel job = segment.Job; - + return; + Segment s = new Segment(); //SolidColor - if(segment.BrushStops.Count == 0) + if (segment.BrushStops.Count == 0) { - newBrushStop.IsFirstColorBrush = true; + newBrushStop.Position = BrushStopModel.PositionStatus.FirstColor; segment.BrushStops.Add(newBrushStop); } - //Add SecondColor + //Add Second BrushStop else if(segment.BrushStops.Count == 1)// add gradient { BrushStopModel currentBrushStop = segment.BrushStops[0]; segment.CreateGradientBrushes(segment.BrushStops[0], newBrushStop); segment.RaiseSegmentBrushChanged(); } - else + else //Create new Segment and Add BrushStop { - if (segment.BrushStops.Count < 5) - { - return; - } await NotificationProvider.ShowInfo("Please note that gradient segment is now split into two gradients."); SegmentModel newSegmentModel = segment.Clone(); @@ -1347,12 +1181,14 @@ namespace Tango.PPC.Jobs.ViewModels segment.AddOrReplaceSecondBrush(newBrushStop); segment.UpdateMiddleColorBrush(); segment.RaiseSegmentBrushChanged(); + ArrangeBrushStopsIndexes(segment); + ArrangeBrushStopsIndexes(newSegmentModel); - if(job.Segments.Count == segment.SegmentIndex) - job.Segments.Add(newSegmentModel); + if (JobModel.Segments.Count == segment.SegmentIndex) + JobModel.Segments.Add(newSegmentModel); else { - job.Segments.Insert(segment.SegmentIndex, newSegmentModel); + JobModel.Segments.Insert(segment.SegmentIndex, newSegmentModel); } ArrangeSegmentsIndixes(); } @@ -1596,51 +1432,7 @@ namespace Tango.PPC.Jobs.ViewModels #region Out Of Gamut Check Thread - /// <summary> - /// Iterates over all brush stops and checks for out of gamut. - /// </summary> - [HandleProcessCorruptedStateExceptions] - private void CheckGamutThreadMethod() - { - while (true) - { - Thread.Sleep(500); - - if (Job != null && Job.Rml.Cct != null && IsVisible) - { - var brushStops = Job.Segments.SelectMany(x => x.BrushStops).Where(x => x.ColorSpace != null).Where(x => (x.BrushColorSpace == BL.Enumerations.ColorSpaces.LAB || x.BrushColorSpace == BL.Enumerations.ColorSpaces.RGB) && !x.Corrected && !x.OutOfGamutChecked).ToList(); - - foreach (var stop in brushStops) - { - try - { - stop.IsOutOfGamut = _converter.IsOutOfGamut(stop); - stop.OutOfGamutChecked = true; - } - catch (AccessViolationException) - { - LogManager.Log($"Out of gamut check failed for brush stop {stop.StopIndex} at segment {stop.Segment.SegmentIndex}.", LogCategory.Warning); - continue; - } - catch - { - LogManager.Log($"Out of gamut check failed for brush stop {stop.StopIndex} at segment {stop.Segment.SegmentIndex}.", LogCategory.Warning); - } - } - - if (brushStops.Count > 0) - { - InvokeUI(() => - { - DyeCommand.RaiseCanExecuteChanged(); - StartSampleDyeCommand.RaiseCanExecuteChanged(); - StartFineTuningCommand.RaiseCanExecuteChanged(); - }); - } - } - } - } - + #endregion #region Lubrication Level @@ -1755,6 +1547,11 @@ namespace Tango.PPC.Jobs.ViewModels _job_to_load_intent = JobNavigationIntent.Default; } + public override void OnNavigatedTo(PPCViewModel fromVM) + { + base.OnNavigatedTo(fromVM); + } + /// <summary> /// Called before the navigation system navigates back from this object. /// Return false to abort the navigation. @@ -1762,40 +1559,17 @@ namespace Tango.PPC.Jobs.ViewModels /// <returns></returns> public async override Task<bool> OnNavigateBackRequest() { - bool result = true; - - if (!IsFree) return false; - - if (!_can_navigate_back) + try { - bool jobChainged = false; - - if (Job != null) - { - string job_string = Job.ToJobFileWhenLoaded().ToString(); - jobChainged = job_string != _current_job_string; - } - - if (jobChainged) - { - if (await NotificationProvider.ShowQuestion("Are you sure you want to exit this job without saving changes?")) - { - Job = null; - SegmentsCollectionView = null; - } - else - { - result = false; - } - } - else - { - Job = null; - SegmentsCollectionView = null; - } + await Save(); + return true; + } + catch (Exception ex) + { + LogManager.Log(ex, "Error saving job to database."); + await NotificationProvider.ShowError("Error saving the current job."); + return false; } - - return result; } public override void OnApplicationReady() @@ -1832,16 +1606,21 @@ namespace Tango.PPC.Jobs.ViewModels { if (false == JobModel.Segments.ToList().Any(x => x.IsSelected)) return; - var firstIndex = JobModel.Segments.ToList().FindIndex(i => i.IsSelected == true); - var lastIndex = JobModel.Segments.ToList().FindLastIndex(i => i.IsSelected == true); - if(firstIndex < lastIndex) + + for (int firstIndex = 0, lastIndex = JobModel.Segments.Count - 1; firstIndex < lastIndex; firstIndex++) { - //TODO function! - //var copy = JobModel.Segments.ToList(); - //copy.Reverse(firstIndex, (lastIndex - firstIndex + 1)); - //JobModel.Segments = new SynchronizedObservableCollection<SegmentModel>(copy); - //ArrangeSegmentsIndixes(); + if (JobModel.Segments[firstIndex].IsSelected) + { + for (; lastIndex >= 0; lastIndex--) + { + if (JobModel.Segments[lastIndex].IsSelected) + { + JobModel.SwapSegments(firstIndex, lastIndex); + } + } + } } + ArrangeSegmentsIndixes(); } private async void DeleteSegment() @@ -1902,5 +1681,80 @@ namespace Tango.PPC.Jobs.ViewModels } #endregion + + private async Task Save() + { + if (JobModel == null) + return; + var colorSpaces = await _db.ColorSpaces.ToListAsync(); + + Job.ColorSpace = colorSpaces.FirstOrDefault(); + + var oldSegments = Job.Segments.ToList(); + + foreach (var segment in Job.Segments.ToList()) + { + foreach (var stop in segment.BrushStops.ToList()) + { + _db.BrushStops.Remove(stop); + } + + _db.Segments.Remove(segment); + } + + Job.Segments.Clear(); + + foreach (var segment in JobModel.Segments.OrderBy(x => x.SegmentIndex).ToList()) + { + var dbSegment = new Segment(); + dbSegment.Name = "Standard Segment"; + + dbSegment.Job = Job; + dbSegment.SegmentIndex = segment.SegmentIndex; + dbSegment.Length = segment.Length; + + _db.Segments.Add(dbSegment); + + foreach (var stop in segment.BrushStops.OrderBy(x => x.StopIndex).ToList()) + { + var dbStop = new BrushStop(); + dbStop.Segment = dbSegment; + _db.BrushStops.Add(dbStop); + + dbStop.ColorSpace = colorSpaces.FirstOrDefault(x => x.Code == (int)stop.ColorSpace); + dbStop.Red = stop.Red; + dbStop.Green = stop.Green; + dbStop.Blue = stop.Blue; + dbStop.L = stop.L; + dbStop.A = stop.A; + dbStop.B = stop.B; + dbStop.Cyan = stop.Cyan; + dbStop.Magenta = stop.Magenta; + dbStop.Yellow = stop.Yellow; + dbStop.Black = stop.Black; + dbStop.BestMatchR = stop.DisplayedColor.R; + dbStop.BestMatchG = stop.DisplayedColor.G; + dbStop.BestMatchB = stop.DisplayedColor.B; + + dbStop.OffsetPercent = stop.OffsetPercent; + dbStop.StopIndex = stop.StopIndex; + dbStop.IsOutOfGamut = stop.IsOutOfGamut; + + + dbStop.SetVolume(LiquidTypes.Cyan, stop.Cyan); + dbStop.SetVolume(LiquidTypes.Magenta, stop.Magenta); + dbStop.SetVolume(LiquidTypes.Yellow, stop.Yellow); + dbStop.SetVolume(LiquidTypes.Black, stop.Black); + } + } + Job.LastUpdated = DateTime.UtcNow; + Job.IsSynchronized = false; + Job.JobStatus = BL.Enumerations.JobStatuses.Draft; + //_current_job_string = Job.ToJobFileWhenLoaded().ToString(); + RaiseMessage(new JobSavedMessage() { Job = Job }); + + await _db.SaveChangesAsync(); + + } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs index 0a1ce7df7..1f7042b57 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs @@ -422,10 +422,7 @@ namespace Tango.PPC.Jobs.ViewModels { await Task.Delay(200); } - JobCreationViewVM vm = new JobCreationViewVM( - _spoolTypes.ToList(), - _rmls.ToList() - ); + JobCreationViewVM vm = new JobCreationViewVM( _spoolTypes.ToList(), _rmls.ToList(), 3, false ); string selectedRmlGuid = (Settings.DefaultRmlGuid != null && _rmls.Select(x => x.Guid).Contains(Settings.DefaultRmlGuid)) ? Settings.DefaultRmlGuid : _rmls.FirstOrDefault().Guid; string selectedSpoolTypeGuid = Settings.DefaultSpoolTypeGuid != null ? Settings.DefaultSpoolTypeGuid : Adapter.SpoolTypes.FirstOrDefault().Guid; ; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml index 982c534b9..65a880f4e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml @@ -145,7 +145,7 @@ </DataTemplate> <DataTemplate x:Key="Segment_Template" DataType="{x:Type entities:Segment}"> - <Grid Height="420" Margin="57 15 57 0"> + <Grid Height="430" Margin="57 15 57 0"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> @@ -241,7 +241,7 @@ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB"> <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" /> </DataTrigger> - <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="CMYK"> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume"> <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" /> </DataTrigger> <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="LAB"> @@ -269,7 +269,7 @@ <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB"> <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" /> </DataTrigger> - <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="CMYK"> + <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume"> <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" /> </DataTrigger> <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="LAB"> @@ -406,10 +406,8 @@ <RowDefinition Height="Auto"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> - <Border Grid.Row="0" x:Name="jobDetailsBorder" Background="{StaticResource TangoMidAccentBrush}" BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoMidAccentBrush}" Margin="10 20 10 15"> - <Border.Effect> - <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" /> - </Border.Effect> + <Border Grid.Row="0" x:Name="jobDetailsBorder" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoLightBorderBrush}" Margin="0 0 0 0"> + <Grid x:Name="job_details" HorizontalAlignment="Stretch" > <DockPanel Height="74" HorizontalAlignment="Stretch"> @@ -419,24 +417,29 @@ </Border> </touch:TouchButton> - <Grid DockPanel.Dock="Left" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="0 0 50 0" > + <Grid DockPanel.Dock="Left" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="0 0 30 0" > <Grid.ColumnDefinitions> - <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/> </Grid.ColumnDefinitions> - <TextBlock Margin="10 0 0 0" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}" FontWeight="SemiBold" Foreground="{StaticResource TangoLightSelectedBrush}" Text="{Binding JobModel.Name,FallbackValue='Job Name'}"/> + <TextBlock Margin="10 0 0 0" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoMenuItemFontSize}" Text="{Binding JobModel.Name,FallbackValue='Job Name'}" ToolTip="{Binding JobModel.Name}"/> - <StackPanel Margin="20 0 0 0" Grid.Column="1" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Center"> - <TextBlock Text="Thread Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" Foreground="{StaticResource TangoLightSelectedBrush}"></TextBlock> - <TextBlock Margin="10 0 0 0" Foreground="{StaticResource TangoLightSelectedBrush}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontWeight="Medium"> - <Run Text="{Binding JobModel.Rml.Name}"></Run> + <StackPanel Margin="10 0 0 0" Grid.Column="1" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Left"> + <StackPanel.ToolTip> + <ToolTip> + <TextBlock Text="{Binding JobModel.Rml.Name}" /> + </ToolTip> + </StackPanel.ToolTip> + <TextBlock Text="Thread Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" ></TextBlock> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontWeight="Medium" Text="{Binding JobModel.Rml.Name}"> + </TextBlock> </StackPanel> - <StackPanel Margin="20 0 0 0" Grid.Column="2" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Center"> - <TextBlock Text="Spool Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" Foreground="{StaticResource TangoLightSelectedBrush}"></TextBlock> - <TextBlock Text="{Binding JobModel.SpoolType.Name}" Margin="10 0 0 0" Foreground="{StaticResource TangoLightSelectedBrush}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontWeight="Medium"/> + <StackPanel Margin="10 0 0 0" Grid.Column="2" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Center"> + <TextBlock Text="Spool Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" ></TextBlock> + <TextBlock Text="{Binding JobModel.SpoolType.Name}" Margin="10 0 0 0" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontWeight="Medium"/> </StackPanel> </Grid> </DockPanel> @@ -559,11 +562,14 @@ <!--Border x:Name="borderDockFloat" Height="10" Margin="0 0 0 0" BorderBrush="Transparent" > <DockPanel x:Name="dockEdit" LastChildFill="False" Height="10" Width="50" HorizontalAlignment="Right" RenderTransformOrigin="0.58,2.08"/> </Border> --> - <ListBox x:Name="listSegments" Margin="10 0 10 0" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplate="{StaticResource Segment_Template}" Style="{StaticResource SegmentsListBox}" ScrollViewer.VerticalScrollBarVisibility="Visible" Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityConverter}}" Padding="0" - BorderThickness="0" BorderBrush="Transparent"/> + <ListBox x:Name="listSegments" Margin="10 0 10 0" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplate="{StaticResource Segment_Template}" Style="{StaticResource SegmentsListBox}" + ScrollViewer.VerticalScrollBarVisibility="Visible" + Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityConverter}}" /> - <ListBox x:Name="collapsedListSegments" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplate="{StaticResource CollapsedSegment_Template}" Style="{StaticResource SegmentsListBox}" ScrollViewer.VerticalScrollBarVisibility="Visible" Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}"/> + <ListBox x:Name="collapsedListSegments" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplate="{StaticResource CollapsedSegment_Template}" Style="{StaticResource SegmentsListBox}" + ScrollViewer.VerticalScrollBarVisibility="Visible" + Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}"/> <!--<StackPanel x:Name="stackOutput" Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"/>--> @@ -575,7 +581,7 @@ </Grid> <Grid Grid.Row="2"> - <Grid IsHitTestVisible="False"> + <!--<Grid IsHitTestVisible="False"> <Grid.Background> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Offset="0" Color="#AEFFFFFF" /> @@ -583,16 +589,16 @@ </LinearGradientBrush> </Grid.Background> <Rectangle Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" /> - </Grid> + </Grid>--> </Grid> - <touch:TouchDropShadowBorder Grid.Row="3" Margin="10 0 10 15" CornerRadius="40" BorderThickness="1" Padding="2" > - - <touch:TouchExpander IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Margin="10" BorderThickness="0"> + <!--<touch:TouchDropShadowBorder Grid.Row="3" Margin="10 0 10 15" CornerRadius="0" BorderThickness="0" Padding="0" >--> + <Border Grid.Row="3" Margin="10 0 10 15" BorderThickness="0"> + <touch:TouchExpander Grid.Row="3" Margin="15 0 15 0 " IsExpanded="True" FontSize="{StaticResource TangoTitleFontSize}" BorderThickness="0" Style="{StaticResource TouchRoundedExpander}"> <touch:TouchExpander.Header> <DockPanel > <touch:TouchButton DockPanel.Dock="Right" Margin="0 0 20 0" HorizontalAlignment="Right" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding RepeatUnitsCommand}" > - <Border CornerRadius="20" Width="130" Height="40" BorderThickness="1" BorderBrush="{StaticResource TangoDividerBrush}"> + <Border CornerRadius="20" Width="130" Height="40" BorderThickness="1" BorderBrush="{StaticResource TangoDarkForegroundBrush}"> <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" Foreground="{StaticResource TangoDarkForegroundBrush}">Repeat Job</TextBlock> </Border> </touch:TouchButton> @@ -603,21 +609,28 @@ </DockPanel> </touch:TouchExpander.Header> - <StackPanel Style="{StaticResource Level2ContainerExtraMargin}"> - <Grid> + <StackPanel Margin="40 0 40 0"> + <TextBlock VerticalAlignment="Top" DockPanel.Dock="Top" Foreground="{StaticResource TangoDarkForegroundBrush}"> + <Run Text="Unit: "></Run> + <Run Text="{Binding JobModel.Length,Mode=OneWay}"/> + <Run Text="m"></Run> + </TextBlock> + + <Grid Margin=" 0 10 0 0"> <!--<touch:TouchVirtualizedContentReplaceControl MinHeight="40"> <DataTemplate>--> - <localControls:JobSummeryViewer JobModel="{Binding JobModel}" Height="40" DisplayMarkers="False" /> + <localControls:JobSummeryViewer JobModel="{Binding JobModel}" Height="20" DisplayMarkers="False" /> <!--</DataTemplate> </touch:TouchVirtualizedContentReplaceControl>--> </Grid> - <DockPanel Margin="0 30 0 0" LastChildFill="False"> - + <DockPanel Margin="0 20 0 0" LastChildFill="False"> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Left" VerticalAlignment="Center"> <TextBlock> - <Run Text="Job length (m):"></Run> - <Run Text="{Binding JobModel.Length,Mode=OneWay}"></Run> + <Run Text="Total:"></Run> + <Run Text="{Binding JobModel.LengthIncludingNumberOfUnits,Mode=OneWay}"></Run> + <Run Text="m"></Run> </TextBlock> <TextBlock Foreground="{StaticResource TangoGrayTextBrush}"> <TextBlock.Style> @@ -642,14 +655,12 @@ <touch:TouchNumericTextBox Foreground="{StaticResource TangoGrayTextBrush}" Margin="5 0 0 0" Width="50" HorizontalContentAlignment="Center" Maximum="100" Minimum="0" Value="{Binding JobModel.LengthPercentageFactor}" KeyboardContainer="{Binding ElementName=Container}" StringFormat="0" FocusSelectionMode="SelectAll" /> <TextBlock VerticalAlignment="Bottom" Foreground="{StaticResource TangoGrayTextBrush}">%</TextBlock> - - <Image Margin="10 0 0 0" Source="../Images/JobView/settings.png" VerticalAlignment="Bottom" /> </StackPanel> </DockPanel> </StackPanel> - </touch:TouchExpander> - - </touch:TouchDropShadowBorder> + </touch:TouchExpander> + </Border> + <!--</touch:TouchDropShadowBorder>--> <!--<dragAndDrop:DraggingSurface x:Name="DraggingSurface" />--> </Grid> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs index 77c30bb30..66c497e29 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs @@ -28,7 +28,7 @@ namespace Tango.PPC.Jobs.Views public partial class JobView : UserControl, INavigationView, IJobView { private JobViewVM _vm; - private bool _is_edit_docked; + public JobView() { @@ -47,10 +47,10 @@ namespace Tango.PPC.Jobs.Views } - private void OnBrushStopFieldValueChanged(object sender, Touch.Controls.DoubleValueChangedEventArgs e) - { - _vm.OnBrushStopFieldValueChanged((sender as FrameworkElement).DataContext as BrushStop); - } + //private void OnBrushStopFieldValueChanged(object sender, Touch.Controls.DoubleValueChangedEventArgs e) + //{ + // _vm.OnBrushStopFieldValueChanged((sender as FrameworkElement).DataContext as BrushStop); + //} public void DisplaySampleDye() { @@ -116,18 +116,23 @@ namespace Tango.PPC.Jobs.Views // borderEditDock.Visibility = Visibility.Collapsed; //} - private void OnLiquidVolumeFieldValueChanged(object sender, Touch.Controls.DoubleValueChangedEventArgs e) - { - var liquidVolume = (sender as FrameworkElement).DataContext as LiquidVolume; + //private void OnLiquidVolumeFieldValueChanged(object sender, Touch.Controls.DoubleValueChangedEventArgs e) + //{ + // var liquidVolume = (sender as FrameworkElement).DataContext as LiquidVolume; - if (liquidVolume != null) - { - _vm.OnBrushStopFieldValueChanged(liquidVolume.BrushStop); - } - } + // if (liquidVolume != null) + // { + // _vm.OnBrushStopFieldValueChanged(liquidVolume.BrushStop); + // } + //} public void ScrollToTop() { + if(listSegments.IsVisible && listSegments.Items.Count > 0) + { + listSegments.ScrollIntoView(listSegments.Items[0]); + + } //FloatEditing(); //scrollViewer.ScrollToTop(); } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml index 77d2d200d..505ccc312 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml @@ -17,7 +17,6 @@ <views:JobView /> <views:TwineCatalogView /> <views:JobProgressView /> - <views:ColorSelectionToolView/> </controls:NavigationControl> </Grid> </UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml index c33e90e76..bb0a694cf 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml @@ -17,6 +17,10 @@ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchIconButton.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchListBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchCheckBox.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchExpander.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchNumericUpDownControl.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchExpander.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchNativeListBox.xaml" /> <!--PPC--> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Styles.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Styles.xaml index 593adc3f5..e7a6cd6c3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Styles.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Styles.xaml @@ -49,16 +49,14 @@ <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> - <VirtualizingStackPanel VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling" /> + <VirtualizingStackPanel IsVirtualizing="True" VirtualizationMode="Recycling" /> </ItemsPanelTemplate> </Setter.Value> </Setter> <Setter Property="Template"> <Setter.Value> - <ControlTemplate TargetType="ItemsControl"> - <Border BorderThickness="{TemplateBinding BorderThickness}" - BorderBrush="{TemplateBinding BorderBrush}" - Background="{TemplateBinding Background}"> + <ControlTemplate TargetType="{x:Type ListBox}"> + <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}"> <touch:TouchScrollViewer CanContentScroll="True" Padding="{TemplateBinding Padding}" Focusable="False" diff --git a/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs index 4b687488a..7730131d8 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs @@ -325,5 +325,29 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// best match r + /// </summary> + public Nullable<Int32> BestMatchR + { + get; set; + } + + /// <summary> + /// best match g + /// </summary> + public Nullable<Int32> BestMatchG + { + get; set; + } + + /// <summary> + /// best match b + /// </summary> + public Nullable<Int32> BestMatchB + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/MediaMaterialDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/MediaMaterialDTOBase.cs index 1364df830..427b19a2d 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/MediaMaterialDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/MediaMaterialDTOBase.cs @@ -37,5 +37,13 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// description + /// </summary> + public String Description + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs b/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs index adc7629b1..2081e7c14 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs @@ -185,12 +185,12 @@ namespace Tango.BL.Entities } else { - return Color.FromRgb((byte)_red, (byte)_green, (byte)_blue); + return Color.FromRgb((byte)_bestmatchr, (byte)_bestmatchg, (byte)_bestmatchb); } } else { - return Color.FromRgb((byte)_red, (byte)_green, (byte)_blue); + return Color.FromRgb((byte)_bestmatchr, (byte)_bestmatchg, (byte)_bestmatchb); } } set diff --git a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs index aa602bc77..23cb993be 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs @@ -95,6 +95,12 @@ namespace Tango.BL.Entities public event EventHandler<Boolean> IsTransparentChanged; + public event EventHandler<Nullable<Int32>> BestMatchRChanged; + + public event EventHandler<Nullable<Int32>> BestMatchGChanged; + + public event EventHandler<Nullable<Int32>> BestMatchBChanged; + public event EventHandler<ColorCatalog> ColorCatalogChanged; public event EventHandler<ColorCatalogsItem> ColorCatalogsItemChanged; @@ -1125,6 +1131,87 @@ namespace Tango.BL.Entities } } + protected Nullable<Int32> _bestmatchr; + + /// <summary> + /// Gets or sets the brushstopbase best match r. + /// </summary> + + [Column("BEST_MATCH_R")] + + public Nullable<Int32> BestMatchR + { + get + { + return _bestmatchr; + } + + set + { + if (_bestmatchr != value) + { + _bestmatchr = value; + + OnBestMatchRChanged(value); + + } + } + } + + protected Nullable<Int32> _bestmatchg; + + /// <summary> + /// Gets or sets the brushstopbase best match g. + /// </summary> + + [Column("BEST_MATCH_G")] + + public Nullable<Int32> BestMatchG + { + get + { + return _bestmatchg; + } + + set + { + if (_bestmatchg != value) + { + _bestmatchg = value; + + OnBestMatchGChanged(value); + + } + } + } + + protected Nullable<Int32> _bestmatchb; + + /// <summary> + /// Gets or sets the brushstopbase best match b. + /// </summary> + + [Column("BEST_MATCH_B")] + + public Nullable<Int32> BestMatchB + { + get + { + return _bestmatchb; + } + + set + { + if (_bestmatchb != value) + { + _bestmatchb = value; + + OnBestMatchBChanged(value); + + } + } + } + protected ColorCatalog _colorcatalog; /// <summary> @@ -1560,6 +1647,33 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the BestMatchR has changed. + /// </summary> + protected virtual void OnBestMatchRChanged(Nullable<Int32> bestmatchr) + { + BestMatchRChanged?.Invoke(this, bestmatchr); + RaisePropertyChanged(nameof(BestMatchR)); + } + + /// <summary> + /// Called when the BestMatchG has changed. + /// </summary> + protected virtual void OnBestMatchGChanged(Nullable<Int32> bestmatchg) + { + BestMatchGChanged?.Invoke(this, bestmatchg); + RaisePropertyChanged(nameof(BestMatchG)); + } + + /// <summary> + /// Called when the BestMatchB has changed. + /// </summary> + protected virtual void OnBestMatchBChanged(Nullable<Int32> bestmatchb) + { + BestMatchBChanged?.Invoke(this, bestmatchb); + RaisePropertyChanged(nameof(BestMatchB)); + } + + /// <summary> /// Called when the ColorCatalog has changed. /// </summary> protected virtual void OnColorCatalogChanged(ColorCatalog colorcatalog) diff --git a/Software/Visual_Studio/Tango.BL/Entities/MediaMaterialBase.cs b/Software/Visual_Studio/Tango.BL/Entities/MediaMaterialBase.cs index 860337fae..102906c9b 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/MediaMaterialBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/MediaMaterialBase.cs @@ -31,6 +31,8 @@ namespace Tango.BL.Entities public event EventHandler<Int32> CodeChanged; + public event EventHandler<String> DescriptionChanged; + public event EventHandler<SynchronizedObservableCollection<Rml>> RmlsChanged; protected String _name; @@ -87,6 +89,33 @@ namespace Tango.BL.Entities } } + protected String _description; + + /// <summary> + /// Gets or sets the mediamaterialbase description. + /// </summary> + + [Column("DESCRIPTION")] + + public String Description + { + get + { + return _description; + } + + set + { + if (_description != value) + { + _description = value; + + OnDescriptionChanged(value); + + } + } + } + protected SynchronizedObservableCollection<Rml> _rmls; /// <summary> @@ -131,6 +160,15 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the Description has changed. + /// </summary> + protected virtual void OnDescriptionChanged(String description) + { + DescriptionChanged?.Invoke(this, description); + RaisePropertyChanged(nameof(Description)); + } + + /// <summary> /// Called when the Rmls has changed. /// </summary> protected virtual void OnRmlsChanged(SynchronizedObservableCollection<Rml> rmls) diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/BitTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/BitTypes.cs index e0c35c0c5..3f8c9df0f 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/BitTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/BitTypes.cs @@ -20,1150 +20,1150 @@ namespace Tango.BL.Enumerations { /// <summary> - /// () + /// (Machine input voltage is not too high) /// </summary> - [Description("")] + [Description("Machine input voltage is not too high")] IncomingVoltageTooHigh = 1000, /// <summary> - /// () + /// (Machine input voltage is not too low) /// </summary> - [Description("")] + [Description("Machine input voltage is not too low")] IncomingVoltageTooLow = 1001, /// <summary> - /// () + /// (Flash file system exists) /// </summary> - [Description("")] + [Description("Flash file system exists")] FlashFileSystemMissing = 1002, /// <summary> - /// () + /// (Hardware version file exists) /// </summary> - [Description("")] + [Description("Hardware version file exists")] HWVersionFileMissing = 1003, /// <summary> - /// () + /// (Alarms file exists) /// </summary> - [Description("")] + [Description("Alarms file exists")] AlarmFileMissing = 1004, /// <summary> - /// () + /// (Communication with ink RFID reader ) /// </summary> - [Description("")] + [Description("Communication with ink RFID reader ")] InkRFIDReader = 2000, /// <summary> - /// () + /// (Communication with waste 1 RFID reader ) /// </summary> - [Description("")] + [Description("Communication with waste 1 RFID reader ")] Waste1RFIDReader = 2001, /// <summary> - /// () + /// (Communication with waste 2 RFID reader ) /// </summary> - [Description("")] + [Description("Communication with waste 2 RFID reader ")] Waste2RFIDReader = 2002, /// <summary> - /// () + /// (Communication with Black dispenser ) /// </summary> - [Description("")] - Dispenser1I2CComm = 3000, + [Description("Communication with Black dispenser ")] + DispenserKI2CComm = 3000, /// <summary> - /// () + /// (Communication with Cyan dispenser ) /// </summary> - [Description("")] - Dispenser2I2CComm = 3001, + [Description("Communication with Cyan dispenser ")] + DispenserCI2CComm = 3001, /// <summary> - /// () + /// (Communication with Magenta dispenser ) /// </summary> - [Description("")] - Dispenser3I2CComm = 3002, + [Description("Communication with Magenta dispenser ")] + DispenserMI2CComm = 3002, /// <summary> - /// () + /// (Communication with Yellow dispenser) /// </summary> - [Description("")] - Dispenser4I2CComm = 3003, + [Description("Communication with Yellow dispenser")] + DispenserYI2CComm = 3003, /// <summary> - /// () + /// (Communication with Transparent ink dispenser) /// </summary> - [Description("")] - Dispenser5I2CComm = 3004, + [Description("Communication with Transparent ink dispenser")] + DispenserTII2CComm = 3004, /// <summary> - /// () + /// (Communication with Light Cyan dispenser) /// </summary> - [Description("")] - Dispenser6I2CComm = 3005, + [Description("Communication with Light Cyan dispenser")] + DispenserLCI2CComm = 3005, /// <summary> - /// () + /// (Communication with Light Magenta dispenser) /// </summary> - [Description("")] - Dispenser7I2CComm = 3006, + [Description("Communication with Light Magenta dispenser")] + DispenserLMI2CComm = 3006, /// <summary> - /// () + /// (Communication with Light Yellow dispenser) /// </summary> - [Description("")] - Dispenser8I2CComm = 3007, + [Description("Communication with Light Yellow dispenser")] + DispenserLYI2CComm = 3007, /// <summary> - /// () + /// (Head type identification) /// </summary> - [Description("")] + [Description("Head type identification")] HeadTypeIdentified = 3008, /// <summary> - /// () + /// (WHS type identification) /// </summary> - [Description("")] + [Description("WHS type identification")] WHSTypeIdentified = 3009, /// <summary> - /// () + /// (Communication with Shinko controller) /// </summary> - [Description("")] + [Description("Communication with Shinko controller")] CommunicationWithShinko = 4000, /// <summary> - /// () + /// (Communication with BTSR) /// </summary> - [Description("")] + [Description("Communication with BTSR")] CommunicationWithBTSR = 4001, /// <summary> - /// () + /// (USB communication) /// </summary> - [Description("")] + [Description("USB communication")] USBCommunication = 5000, /// <summary> - /// () + /// (Read electrical cabinet big fan RPM) /// </summary> - [Description("")] - DrawerBigFan = 6000, + [Description("Read electrical cabinet big fan RPM")] + ECBigFan = 6000, /// <summary> - /// () + /// (Read electrical cabinet small fan RPM) /// </summary> - [Description("")] - DrawerSmall1Fan = 6001, + [Description("Read electrical cabinet small fan RPM")] + ECSmall1Fan = 6001, /// <summary> - /// () + /// (Read electrical cabinet small fan RPM) /// </summary> - [Description("")] - DrawerSmall2Fan = 6002, + [Description("Read electrical cabinet small fan RPM")] + ECSmall2Fan = 6002, /// <summary> - /// () + /// (Read electrical cabinet small fan RPM) /// </summary> - [Description("")] - DrawerSmall3Fan = 6003, + [Description("Read electrical cabinet small fan RPM")] + ECSmall3Fan = 6003, /// <summary> - /// () + /// (Read electrical cabinet small fan RPM) /// </summary> - [Description("")] - DrawerSmall4Fan = 6004, + [Description("Read electrical cabinet small fan RPM")] + ECSmall4Fan = 6004, /// <summary> - /// () + /// (Read system fan 1 RPM) /// </summary> - [Description("")] + [Description("Read system fan 1 RPM")] SystemFan1 = 6005, /// <summary> - /// () + /// (Read system fan 2 RPM) /// </summary> - [Description("")] + [Description("Read system fan 2 RPM")] SystemFan2 = 6006, /// <summary> - /// () + /// (Read system fan 3 RPM) /// </summary> - [Description("")] + [Description("Read system fan 3 RPM")] SystemFan3 = 6007, /// <summary> - /// () + /// (Read winder dancer status) /// </summary> - [Description("")] + [Description("Read winder dancer status")] WinderDancerStatusRead = 7000, /// <summary> - /// () + /// (Read puller dancer status) /// </summary> - [Description("")] + [Description("Read puller dancer status")] PullerDancerStatusRead = 7001, /// <summary> - /// () + /// (Read feeder dancer status) /// </summary> - [Description("")] + [Description("Read feeder dancer status")] FeederDancerStatusRead = 7002, /// <summary> - /// () + /// (Read dryer loading arm status) /// </summary> - [Description("")] + [Description("Read dryer loading arm status")] DryerEncoderStatusRead = 7003, /// <summary> - /// () + /// (Read dryer air temperature) /// </summary> - [Description("")] + [Description("Read dryer air temperature")] Pt100ReadDryerAir = 8000, /// <summary> - /// () + /// (Read dryer zone 1 temperature) /// </summary> - [Description("")] + [Description("Read dryer zone 1 temperature")] Pt100ReadDryer1 = 8001, /// <summary> - /// () + /// (Read dryer zone 2 temperature) /// </summary> - [Description("")] + [Description("Read dryer zone 2 temperature")] Pt100ReadDryer2 = 8002, /// <summary> - /// () + /// (Read head zone 1 temperature) /// </summary> - [Description("")] - Pt100ReadHead1 = 8003, + [Description("Read head zone 1 temperature")] + Pt100ReadHeadZone1 = 8003, /// <summary> - /// () + /// (Read head zone 2 temperature) /// </summary> - [Description("")] - Pt100ReadHead2 = 8004, + [Description("Read head zone 2 temperature")] + Pt100ReadHeadZone2 = 8004, /// <summary> - /// () + /// (Read head zone 3 temperature) /// </summary> - [Description("")] - Pt100ReadHead3 = 8005, + [Description("Read head zone 3 temperature")] + Pt100ReadHeadZone3 = 8005, /// <summary> - /// () + /// (Read head zone 4 temperature) /// </summary> - [Description("")] - Pt100ReadHead4 = 8006, + [Description("Read head zone 4 temperature")] + Pt100ReadHeadZone4 = 8006, /// <summary> - /// () + /// (Read head zone 5 temperature) /// </summary> - [Description("")] - Pt100ReadHead5 = 8007, + [Description("Read head zone 5 temperature")] + Pt100ReadHeadZone5 = 8007, /// <summary> - /// () + /// (Read head zone 6 temperature) /// </summary> - [Description("")] - Pt100ReadHead6 = 8008, + [Description("Read head zone 6 temperature")] + Pt100ReadHeadZone6 = 8008, /// <summary> - /// () + /// (Read mixer temperature) /// </summary> - [Description("")] + [Description("Read mixer temperature")] Pt100ReadMixer = 8009, /// <summary> - /// () + /// (Read head zone 7 temperature) /// </summary> - [Description("")] - Pt100ReadHead7 = 8010, + [Description("Read head zone 7 temperature")] + Pt100ReadHeadZone7 = 8010, /// <summary> - /// () + /// (Read head zone 8 temperature) /// </summary> - [Description("")] - Pt100ReadHead8 = 8011, + [Description("Read head zone 8 temperature")] + Pt100ReadHeadZone8 = 8011, /// <summary> - /// () + /// (Read head zone 9 temperature) /// </summary> - [Description("")] - Pt100ReadHead9 = 8012, + [Description("Read head zone 9 temperature")] + Pt100ReadHeadZone9 = 8012, /// <summary> - /// () + /// (Read head zone 10 temperature) /// </summary> - [Description("")] - Pt100ReadHead10 = 8013, + [Description("Read head zone 10 temperature")] + Pt100ReadHeadZone10 = 8013, /// <summary> - /// () + /// (Read head zone 11 temperature) /// </summary> - [Description("")] - Pt100ReadHead11 = 8014, + [Description("Read head zone 11 temperature")] + Pt100ReadHeadZone11 = 8014, /// <summary> - /// () + /// (Read head zone 12 temperature) /// </summary> - [Description("")] - Pt100ReadHead12 = 8015, + [Description("Read head zone 12 temperature")] + Pt100ReadHeadZone12 = 8015, /// <summary> - /// () + /// (Read head right blower temperature) /// </summary> - [Description("")] + [Description("Read head right blower temperature")] Pt100ReadHeadBlowerIn = 8016, /// <summary> - /// () + /// (Read head left blower temperature) /// </summary> - [Description("")] + [Description("Read head left blower temperature")] Pt100ReadHeadBlowerOut = 8017, /// <summary> - /// () + /// (Read WHS cooler temperature) /// </summary> - [Description("")] + [Description("Read WHS cooler temperature")] Pt100ReadWHS = 8018, /// <summary> - /// () + /// (Read electrical cabinet temperature) /// </summary> - [Description("")] + [Description("Read electrical cabinet temperature")] Pt100ReadElectricalCabinet = 8019, /// <summary> - /// () + /// (Read machine internal temperature) /// </summary> - [Description("")] + [Description("Read machine internal temperature")] Pt100ReadMachine = 8020, /// <summary> - /// () + /// (No current break in dryer zone 1) /// </summary> - [Description("")] + [Description("No current break in dryer zone 1")] CurrentBreakDryer1 = 8021, /// <summary> - /// () + /// (No current break in dryer zone 2) /// </summary> - [Description("")] + [Description("No current break in dryer zone 2")] CurrentBreakDryer2 = 8022, /// <summary> - /// () + /// (No current break in head zone 1) /// </summary> - [Description("")] - CurrentBreakHead1 = 8023, + [Description("No current break in head zone 1")] + CurrentBreakHeadZone1 = 8023, /// <summary> - /// () + /// (No current break in head zone 2) /// </summary> - [Description("")] - CurrentBreakHead2 = 8024, + [Description("No current break in head zone 2")] + CurrentBreakHeadZone2 = 8024, /// <summary> - /// () + /// (No current break in head zone 3) /// </summary> - [Description("")] - CurrentBreakHead3 = 8025, + [Description("No current break in head zone 3")] + CurrentBreakHeadZone3 = 8025, /// <summary> - /// () + /// (No current break in head zone 4) /// </summary> - [Description("")] - CurrentBreakHead4 = 8026, + [Description("No current break in head zone 4")] + CurrentBreakHeadZone4 = 8026, /// <summary> - /// () + /// (No current break in head zone 5) /// </summary> - [Description("")] - CurrentBreakHead5 = 8027, + [Description("No current break in head zone 5")] + CurrentBreakHeadZone5 = 8027, /// <summary> - /// () + /// (No current break in head zone 6) /// </summary> - [Description("")] - CurrentBreakHead6 = 8028, + [Description("No current break in head zone 6")] + CurrentBreakHeadZone6 = 8028, /// <summary> - /// () + /// (No current break in mixer) /// </summary> - [Description("")] + [Description("No current break in mixer")] CurrentBreakMixer = 8029, /// <summary> - /// () + /// (No current break in head zone 7) /// </summary> - [Description("")] - CurrentBreakHead7 = 8030, + [Description("No current break in head zone 7")] + CurrentBreakHeadZone7 = 8030, /// <summary> - /// () + /// (No current break in head zone 8) /// </summary> - [Description("")] - CurrentBreakHead8 = 8031, + [Description("No current break in head zone 8")] + CurrentBreakHeadZone8 = 8031, /// <summary> - /// () + /// (No current break in head zone 9) /// </summary> - [Description("")] - CurrentBreakHead9 = 8032, + [Description("No current break in head zone 9")] + CurrentBreakHeadZone9 = 8032, /// <summary> - /// () + /// (No current break in head zone 10) /// </summary> - [Description("")] - CurrentBreakHead10 = 8033, + [Description("No current break in head zone 10")] + CurrentBreakHeadZone10 = 8033, /// <summary> - /// () + /// (No current break in head zone 11) /// </summary> - [Description("")] - CurrentBreakHead11 = 8034, + [Description("No current break in head zone 11")] + CurrentBreakHeadZone11 = 8034, /// <summary> - /// () + /// (No current break in head zone 12) /// </summary> - [Description("")] - CurrentBreakHead12 = 8035, + [Description("No current break in head zone 12")] + CurrentBreakHeadZone12 = 8035, /// <summary> - /// () + /// (No current break in head right blower) /// </summary> - [Description("")] + [Description("No current break in head right blower")] CurrentBreakHeadBlowerIn = 8036, /// <summary> - /// () + /// (No current break in head left blower) /// </summary> - [Description("")] + [Description("No current break in head left blower")] CurrentBreakHeadBlowerOut = 8037, /// <summary> - /// () + /// (Read dryer zone 1 current) /// </summary> - [Description("")] + [Description("Read dryer zone 1 current")] CurrentDryer1 = 8038, /// <summary> - /// () + /// (Read dryer zone 2 current) /// </summary> - [Description("")] + [Description("Read dryer zone 2 current")] CurrentDryer2 = 8039, /// <summary> - /// () + /// (Read head zone 1 current) /// </summary> - [Description("")] - CurrentHead1 = 8040, + [Description("Read head zone 1 current")] + CurrentHeadZone1 = 8040, /// <summary> - /// () + /// (Read head zone 2 current) /// </summary> - [Description("")] - CurrentHead2 = 8041, + [Description("Read head zone 2 current")] + CurrentHeadZone2 = 8041, /// <summary> - /// () + /// (Read head zone 3 current) /// </summary> - [Description("")] - CurrentHead3 = 8042, + [Description("Read head zone 3 current")] + CurrentHeadZone3 = 8042, /// <summary> - /// () + /// (Read head zone 4 current) /// </summary> - [Description("")] - CurrentHead4 = 8043, + [Description("Read head zone 4 current")] + CurrentHeadZone4 = 8043, /// <summary> - /// () + /// (Read head zone 5 current) /// </summary> - [Description("")] - CurrentHead5 = 8044, + [Description("Read head zone 5 current")] + CurrentHeadZone5 = 8044, /// <summary> - /// () + /// (Read head zone 6 current) /// </summary> - [Description("")] - CurrentHead6 = 8045, + [Description("Read head zone 6 current")] + CurrentHeadZone6 = 8045, /// <summary> - /// () + /// (Read mixer current) /// </summary> - [Description("")] + [Description("Read mixer current")] CurrentMixer = 8046, /// <summary> - /// () + /// (Read head zone 7 current) /// </summary> - [Description("")] - CurrentHead7 = 8047, + [Description("Read head zone 7 current")] + CurrentHeadZone7 = 8047, /// <summary> - /// () + /// (Read head zone 8 current) /// </summary> - [Description("")] - CurrentHead8 = 8048, + [Description("Read head zone 8 current")] + CurrentHeadZone8 = 8048, /// <summary> - /// () + /// (Read head zone 9 current) /// </summary> - [Description("")] - CurrentHead9 = 8049, + [Description("Read head zone 9 current")] + CurrentHeadZone9 = 8049, /// <summary> - /// () + /// (Read head zone 10 current) /// </summary> - [Description("")] - CurrentHead10 = 8050, + [Description("Read head zone 10 current")] + CurrentHeadZone10 = 8050, /// <summary> - /// () + /// (Read head zone 11 current) /// </summary> - [Description("")] - CurrentHead11 = 8051, + [Description("Read head zone 11 current")] + CurrentHeadZone11 = 8051, /// <summary> - /// () + /// (Read head zone 12 current) /// </summary> - [Description("")] - CurrentHead12 = 8052, + [Description("Read head zone 12 current")] + CurrentHeadZone12 = 8052, /// <summary> - /// () + /// (Read head right blower current) /// </summary> - [Description("")] + [Description("Read head right blower current")] CurrentHeadBlowerIn = 8053, /// <summary> - /// () + /// (Read head left blower current ) /// </summary> - [Description("")] + [Description("Read head left blower current ")] CurrentHeadBlowerOut = 8054, /// <summary> - /// () + /// (Dryer zone 1 heat up) /// </summary> - [Description("")] + [Description("Dryer zone 1 heat up")] HeaterDryer1 = 8055, /// <summary> - /// () + /// (Dryer zone 2 heat up) /// </summary> - [Description("")] + [Description("Dryer zone 2 heat up")] HeaterDryer2 = 8056, /// <summary> - /// () + /// (Head zone 1 heat up) /// </summary> - [Description("")] - HeaterHead1 = 8057, + [Description("Head zone 1 heat up")] + HeaterHeadZone1 = 8057, /// <summary> - /// () + /// (Head zone 2 heat up) /// </summary> - [Description("")] - HeaterHead2 = 8058, + [Description("Head zone 2 heat up")] + HeaterHeadZone2 = 8058, /// <summary> - /// () + /// (Head zone 3 heat up) /// </summary> - [Description("")] - HeaterHead3 = 8059, + [Description("Head zone 3 heat up")] + HeaterHeadZone3 = 8059, /// <summary> - /// () + /// (Head zone 4 heat up) /// </summary> - [Description("")] - HeaterHead4 = 8060, + [Description("Head zone 4 heat up")] + HeaterHeadZone4 = 8060, /// <summary> - /// () + /// (Head zone 5 heat up) /// </summary> - [Description("")] - HeaterHead5 = 8061, + [Description("Head zone 5 heat up")] + HeaterHeadZone5 = 8061, /// <summary> - /// () + /// (Head zone 6 heat up) /// </summary> - [Description("")] - HeaterHead6 = 8062, + [Description("Head zone 6 heat up")] + HeaterHeadZone6 = 8062, /// <summary> - /// () + /// (Mixer heat up) /// </summary> - [Description("")] + [Description("Mixer heat up")] HeaterMixer = 8063, /// <summary> - /// () + /// (Head zone 7 heat up) /// </summary> - [Description("")] - HeaterHead7 = 8064, + [Description("Head zone 7 heat up")] + HeaterHeadZone7 = 8064, /// <summary> - /// () + /// (Head zone 8 heat up) /// </summary> - [Description("")] - HeaterHead8 = 8065, + [Description("Head zone 8 heat up")] + HeaterHeadZone8 = 8065, /// <summary> - /// () + /// (Head zone 9 heat up) /// </summary> - [Description("")] - HeaterHead9 = 8066, + [Description("Head zone 9 heat up")] + HeaterHeadZone9 = 8066, /// <summary> - /// () + /// (Head zone 10 heat up) /// </summary> - [Description("")] - HeaterHead10 = 8067, + [Description("Head zone 10 heat up")] + HeaterHeadZone10 = 8067, /// <summary> - /// () + /// (Head zone 11 heat up) /// </summary> - [Description("")] - HeaterHead11 = 8068, + [Description("Head zone 11 heat up")] + HeaterHeadZone11 = 8068, /// <summary> - /// () + /// (Head zone 12 heat up) /// </summary> - [Description("")] - HeaterHead12 = 8069, + [Description("Head zone 12 heat up")] + HeaterHeadZone12 = 8069, /// <summary> - /// () + /// (Head right blower heat up) /// </summary> - [Description("")] + [Description("Head right blower heat up")] HeaterHeadBlowerIn = 8070, /// <summary> - /// () + /// (Head left blower heat up) /// </summary> - [Description("")] + [Description("Head left blower heat up")] HeaterHeadBlowerOut = 8071, /// <summary> - /// () + /// (Communication with head cleaning motor driver) /// </summary> - [Description("")] + [Description("Communication with head cleaning motor driver")] PowerstepDhCleanHead = 9000, /// <summary> - /// () + /// (Communication with head cleaning mechanism motor driver) /// </summary> - [Description("")] + [Description("Communication with head cleaning mechanism motor driver")] PowerstepDhCleanMech = 9001, /// <summary> - /// () + /// (Communication with head lid motor driver) /// </summary> - [Description("")] + [Description("Communication with head lid motor driver")] PowerstepDyeingHeadLid = 9002, /// <summary> - /// () + /// (Communication with dryer driving motor driver) /// </summary> - [Description("")] + [Description("Communication with dryer driving motor driver")] PowerstepDryerDriving = 9003, /// <summary> - /// () + /// (Communication with dryer lid motor driver) /// </summary> - [Description("")] + [Description("Communication with dryer lid motor driver")] PowerstepDryerLid = 9004, /// <summary> - /// () + /// (Communication with dryer loading arm motor driver) /// </summary> - [Description("")] + [Description("Communication with dryer loading arm motor driver")] PowerstepDryerLoadarm = 9005, /// <summary> - /// () + /// (Communication with black dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser1 = 9006, + [Description("Communication with black dispenser motor driver")] + PowerstepDispenserK = 9006, /// <summary> - /// () + /// (Communication with cyan dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser2 = 9007, + [Description("Communication with cyan dispenser motor driver")] + PowerstepDispenserC = 9007, /// <summary> - /// () + /// (Communication with magenta dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser3 = 9008, + [Description("Communication with magenta dispenser motor driver")] + PowerstepDispenserM = 9008, /// <summary> - /// () + /// (Communication with yellow dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser4 = 9009, + [Description("Communication with yellow dispenser motor driver")] + PowerstepDispenserY = 9009, /// <summary> - /// () + /// (Communication with transparent ink dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser5 = 9010, + [Description("Communication with transparent ink dispenser motor driver")] + PowerstepDispenserTI = 9010, /// <summary> - /// () + /// (Communication with light cyan dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser6 = 9011, + [Description("Communication with light cyan dispenser motor driver")] + PowerstepDispenserLC = 9011, /// <summary> - /// () + /// (Communication with light magenta dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser7 = 9012, + [Description("Communication with light magenta dispenser motor driver")] + PowerstepDispenserLM = 9012, /// <summary> - /// () + /// (Communication with light yellow dispenser motor driver) /// </summary> - [Description("")] - PowerstepDispenser8 = 9013, + [Description("Communication with light yellow dispenser motor driver")] + PowerstepDispenserLY = 9013, /// <summary> - /// () + /// (Communication with screw motor driver) /// </summary> - [Description("")] + [Description("Communication with screw motor driver")] PowerstepScrew = 9014, /// <summary> - /// () + /// (Communication with winder motor driver) /// </summary> - [Description("")] + [Description("Communication with winder motor driver")] PowerstepWinder = 9015, /// <summary> - /// () + /// (Communication with winder dancer motor driver) /// </summary> - [Description("")] + [Description("Communication with winder dancer motor driver")] PowerstepLeftDancer = 9016, /// <summary> - /// () + /// (Communication with puller dancer motor driver) /// </summary> - [Description("")] + [Description("Communication with puller dancer motor driver")] PowerstepMiddleDancer = 9017, /// <summary> - /// () + /// (Communication with lubricant pump motor driver) /// </summary> - [Description("")] + [Description("Communication with lubricant pump motor driver")] PowerstepLeftDriving = 9018, /// <summary> - /// () + /// (Communication with left rockers motor driver) /// </summary> - [Description("")] + [Description("Communication with left rockers motor driver")] PowerstepLeftRockers = 9019, /// <summary> - /// () + /// (Communication with left pivot motor driver) /// </summary> - [Description("")] + [Description("Communication with left pivot motor driver")] PowerstepLeftPivot = 9020, /// <summary> - /// () + /// (Communication with feeder dancer motor driver) /// </summary> - [Description("")] + [Description("Communication with feeder dancer motor driver")] PowerstepRightDancer = 9021, /// <summary> - /// () + /// (Communication with right driving motor driver) /// </summary> - [Description("")] + [Description("Communication with right driving motor driver")] PowerstepRightDriving = 9022, /// <summary> - /// () + /// (Communication with right loadarm motor driver) /// </summary> - [Description("")] + [Description("Communication with right loadarm motor driver")] PowerstepRightLoadarm = 9023, /// <summary> - /// () + /// (Communication with cleaner motor driver) /// </summary> - [Description("")] + [Description("Communication with cleaner motor driver")] PowerstepRightRockers = 9024, /// <summary> - /// () + /// (Communication with spare motor driver) /// </summary> - [Description("")] + [Description("Communication with spare motor driver")] PowerstepSpare1_1 = 9025, /// <summary> - /// () + /// (Communication with spare motor driver) /// </summary> - [Description("")] + [Description("Communication with spare motor driver")] PowerstepSpare1_2 = 9026, /// <summary> - /// () + /// (Communication with spare motor driver) /// </summary> - [Description("")] + [Description("Communication with spare motor driver")] PowerstepSpare2_1 = 9027, /// <summary> - /// () + /// (Communication with spare motor driver) /// </summary> - [Description("")] + [Description("Communication with spare motor driver")] PowerstepSpare2_2 = 9028, /// <summary> - /// () + /// (Communication with spare motor driver) /// </summary> - [Description("")] + [Description("Communication with spare motor driver")] PowerstepSpare3_1 = 9029, /// <summary> - /// () + /// (Head cleaning motor function) /// </summary> - [Description("")] + [Description("Head cleaning motor function")] MotorWireReadDhCleanHead = 9030, /// <summary> - /// () + /// (Head cleaning mechanism motor function) /// </summary> - [Description("")] + [Description("Head cleaning mechanism motor function")] MotorWireReadDhCleanMech = 9031, /// <summary> - /// () + /// (Head lid motor function) /// </summary> - [Description("")] + [Description("Head lid motor function")] MotorWireReadDyeingHeadLid = 9032, /// <summary> - /// () + /// (Dryer driving motor mechanism function) /// </summary> - [Description("")] + [Description("Dryer driving motor mechanism function")] MotorWireReadDryerDriving = 9033, /// <summary> - /// () + /// (Dryer lid motor function) /// </summary> - [Description("")] + [Description("Dryer lid motor function")] MotorWireReadDryerLid = 9034, /// <summary> - /// () + /// (Dryer loading arm motor function) /// </summary> - [Description("")] + [Description("Dryer loading arm motor function")] MotorWireReadDryerLoadarm = 9035, /// <summary> - /// () + /// (Black dispenser motor function) /// </summary> - [Description("")] - MotorWireReadDispenser1 = 9036, + [Description("Black dispenser motor function")] + MotorWireReadDispenserK = 9036, /// <summary> - /// () + /// (Cyan dispesner motor function) /// </summary> - [Description("")] - MotorWireReadDispenser2 = 9037, + [Description("Cyan dispesner motor function")] + MotorWireReadDispenserC = 9037, /// <summary> - /// () + /// (Magenta dispenser motor function) /// </summary> - [Description("")] - MotorWireReadDispenser3 = 9038, + [Description("Magenta dispenser motor function")] + MotorWireReadDispenserM = 9038, /// <summary> - /// () + /// (Yellow dispenser motor function) /// </summary> - [Description("")] - MotorWireReadDispenser4 = 9039, + [Description("Yellow dispenser motor function")] + MotorWireReadDispenserY = 9039, /// <summary> - /// () + /// (Tranparent ink dispenser motor function) /// </summary> - [Description("")] - MotorWireReadDispenser5 = 9040, + [Description("Tranparent ink dispenser motor function")] + MotorWireReadDispenserTI = 9040, /// <summary> - /// () + /// (Light cyan dispenser motor function) /// </summary> - [Description("")] - MotorWireReadDispenser6 = 9041, + [Description("Light cyan dispenser motor function")] + MotorWireReadDispenserLC = 9041, /// <summary> - /// () + /// (Light magenta dispenser motor function) /// </summary> - [Description("")] - MotorWireReadDispenser7 = 9042, + [Description("Light magenta dispenser motor function")] + MotorWireReadDispenserLM = 9042, /// <summary> - /// () + /// (Light yellow dispenser motor function) /// </summary> - [Description("")] - MotorWireReadDispenser8 = 9043, + [Description("Light yellow dispenser motor function")] + MotorWireReadDispenserLY = 9043, /// <summary> - /// () + /// (Screw motor function) /// </summary> - [Description("")] + [Description("Screw motor function")] MotorWireReadScrew = 9044, /// <summary> - /// () + /// (Winder motor function) /// </summary> - [Description("")] + [Description("Winder motor function")] MotorWireReadWinder = 9045, /// <summary> - /// () + /// (Winder dancer motor function) /// </summary> - [Description("")] + [Description("Winder dancer motor function")] MotorWireReadLeftDancer = 9046, /// <summary> - /// () + /// (Puller dancer motor function) /// </summary> - [Description("")] + [Description("Puller dancer motor function")] MotorWireReadMiddleDancer = 9047, /// <summary> - /// () + /// (Lubricant pump motor function) /// </summary> - [Description("")] + [Description("Lubricant pump motor function")] MotorWireReadLeftDriving = 9048, /// <summary> - /// () + /// (Left rockers motor function) /// </summary> - [Description("")] + [Description("Left rockers motor function")] MotorWireReadLeftRockers = 9049, /// <summary> - /// () + /// (Left pivot motors function) /// </summary> - [Description("")] + [Description("Left pivot motors function")] MotorWireReadLeftPivot = 9050, /// <summary> - /// () + /// (Feeder dancer motor function) /// </summary> - [Description("")] + [Description("Feeder dancer motor function")] MotorWireReadRightDancer = 9051, /// <summary> - /// () + /// (Right driving motor function) /// </summary> - [Description("")] + [Description("Right driving motor function")] MotorWireReadRightDriving = 9052, /// <summary> - /// () + /// (Right load arm motor function) /// </summary> - [Description("")] + [Description("Right load arm motor function")] MotorWireReadRightLoadarm = 9053, /// <summary> - /// () + /// (Cleaner motor function) /// </summary> - [Description("")] + [Description("Cleaner motor function")] MotorWireReadRightRockers = 9054, /// <summary> - /// () + /// (Spare motor function) /// </summary> - [Description("")] + [Description("Spare motor function")] MotorWireReadSpare1_1 = 9055, /// <summary> - /// () + /// (Spare motor function) /// </summary> - [Description("")] + [Description("Spare motor function")] MotorWireReadSpare1_2 = 9056, /// <summary> - /// () + /// (Spare motor function) /// </summary> - [Description("")] + [Description("Spare motor function")] MotorWireReadSpare2_1 = 9057, /// <summary> - /// () + /// (Spare motor function) /// </summary> - [Description("")] + [Description("Spare motor function")] MotorWireReadSpare2_2 = 9058, /// <summary> - /// () + /// (Spare motor function) /// </summary> - [Description("")] + [Description("Spare motor function")] MotorWireReadSpare3_1 = 9059, /// <summary> - /// () + /// (Head right blower turn off) /// </summary> - [Description("")] + [Description("Head right blower turn off")] InBlowerTurnOff = 10000, /// <summary> - /// () + /// (Head left blower turn off) /// </summary> - [Description("")] + [Description("Head left blower turn off")] OutBlowerTurnOff = 10001, /// <summary> - /// () + /// (Head right blower turn on) /// </summary> - [Description("")] + [Description("Head right blower turn on")] InBlowerTurnOn = 10002, /// <summary> - /// () + /// (Head left blower turn on) /// </summary> - [Description("")] + [Description("Head left blower turn on")] OutBlowerTurnOn = 10003, /// <summary> - /// () + /// (Read head right blower fan RPM) /// </summary> - [Description("")] + [Description("Read head right blower fan RPM")] InBlowerPressure = 10004, /// <summary> - /// () + /// (Read head left blower fan RPM) /// </summary> - [Description("")] + [Description("Read head left blower fan RPM")] OutBlowerPressure = 10005, /// <summary> - /// () + /// (WHS blower function) /// </summary> - [Description("")] + [Description("WHS blower function")] WHSBlowerDoesNotBuildPressure = 10006, /// <summary> - /// () + /// (Read WHS dryer flow) /// </summary> - [Description("")] + [Description("Read WHS dryer flow")] WHSDryerSensorFailure = 10007, /// <summary> - /// () + /// (Read WHS head flow) /// </summary> - [Description("")] + [Description("Read WHS head flow")] WHSHeadSensorFailure = 10008, /// <summary> - /// () + /// (Read WHS others flow) /// </summary> - [Description("")] + [Description("Read WHS others flow")] WHSOtherSensorFailure = 10009, /// <summary> - /// () + /// (Black dispenser pressure build up) /// </summary> - [Description("")] - PressureBuildingUp1 = 11000, + [Description("Black dispenser pressure build up")] + PressureBuildingUpK = 11000, /// <summary> - /// () + /// (Cyan dispenser pressure build up) /// </summary> - [Description("")] - PressureBuildingUp2 = 11001, + [Description("Cyan dispenser pressure build up")] + PressureBuildingUpC = 11001, /// <summary> - /// () + /// (Magenta dispenser pressure build up) /// </summary> - [Description("")] - PressureBuildingUp3 = 11002, + [Description("Magenta dispenser pressure build up")] + PressureBuildingUpM = 11002, /// <summary> - /// () + /// (Yellow dispenser pressure build up) /// </summary> - [Description("")] - PressureBuildingUp4 = 11003, + [Description("Yellow dispenser pressure build up")] + PressureBuildingUpY = 11003, /// <summary> - /// () + /// (Transparent ink dispenser pressure build up) /// </summary> - [Description("")] - PressureBuildingUp5 = 11004, + [Description("Transparent ink dispenser pressure build up")] + PressureBuildingUpTI = 11004, /// <summary> - /// () + /// (Light cyan dispenser pressure build up) /// </summary> - [Description("")] - PressureBuildingUp6 = 11005, + [Description("Light cyan dispenser pressure build up")] + PressureBuildingUpLC = 11005, /// <summary> - /// () + /// (Light magenta dispenser pressure up) /// </summary> - [Description("")] - PressureBuildingUp7 = 11006, + [Description("Light magenta dispenser pressure up")] + PressureBuildingUpLM = 11006, /// <summary> - /// () + /// (Light yellow dispenser pressure build up) /// </summary> - [Description("")] - PressureBuildingUp8 = 11007, + [Description("Light yellow dispenser pressure build up")] + PressureBuildingUpLY = 11007, /// <summary> - /// () + /// (Black dispenser pressure release ) /// </summary> - [Description("")] - PressureReleased1 = 11008, + [Description("Black dispenser pressure release ")] + PressureReleasedK = 11008, /// <summary> - /// () + /// (Cyan dispenser pressure release ) /// </summary> - [Description("")] - PressureReleased2 = 11009, + [Description("Cyan dispenser pressure release ")] + PressureReleasedC = 11009, /// <summary> - /// () + /// (Magenta dispenser pressure release) /// </summary> - [Description("")] - PressureReleased3 = 11010, + [Description("Magenta dispenser pressure release")] + PressureReleasedM = 11010, /// <summary> - /// () + /// (Yellow dispenser pressure release) /// </summary> - [Description("")] - PressureReleased4 = 11011, + [Description("Yellow dispenser pressure release")] + PressureReleasedY = 11011, /// <summary> - /// () + /// (Transparent ink dispenser pressure release) /// </summary> - [Description("")] - PressureReleased5 = 11012, + [Description("Transparent ink dispenser pressure release")] + PressureReleasedTI = 11012, /// <summary> - /// () + /// (Light cyan dispenser pressure release) /// </summary> - [Description("")] - PressureReleased6 = 11013, + [Description("Light cyan dispenser pressure release")] + PressureReleasedLC = 11013, /// <summary> - /// () + /// (Light magenta dispenser pressure release) /// </summary> - [Description("")] - PressureReleased7 = 11014, + [Description("Light magenta dispenser pressure release")] + PressureReleasedLM = 11014, /// <summary> - /// () + /// (Light yellow dispenser pressure release) /// </summary> - [Description("")] - PressureReleased8 = 11015, + [Description("Light yellow dispenser pressure release")] + PressureReleasedLY = 11015, } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/ColorSpaces.cs b/Software/Visual_Studio/Tango.BL/Enumerations/ColorSpaces.cs index 1f1df04db..63970e879 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/ColorSpaces.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/ColorSpaces.cs @@ -49,9 +49,8 @@ namespace Tango.BL.Enumerations [Description("Catalog")] Catalog = 4, - /// <summary> - /// (Catalog) + /// (HSB) /// </summary> [Description("HSB")] HSB = 5, diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/FiberShapes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/FiberShapes.cs index 5580a9aeb..f62e2e4c2 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/FiberShapes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/FiberShapes.cs @@ -20,46 +20,10 @@ namespace Tango.BL.Enumerations { /// <summary> - /// (Trilobal) - /// </summary> - [Description("Trilobal")] - Trilobal = 3, - - /// <summary> /// (Triangle) /// </summary> [Description("Triangle")] Triangle = 1, - /// <summary> - /// (Hollow) - /// </summary> - [Description("Hollow")] - Hollow = 4, - - /// <summary> - /// (Irregular) - /// </summary> - [Description("Irregular")] - Irregular = 5, - - /// <summary> - /// (Pentagona) - /// </summary> - [Description("Pentagona")] - Pentagona = 6, - - /// <summary> - /// (Round) - /// </summary> - [Description("Round")] - Round = 2, - - /// <summary> - /// (Unknown) - /// </summary> - [Description("Unknown")] - Unknown = 7, - } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/MediaMaterials.cs b/Software/Visual_Studio/Tango.BL/Enumerations/MediaMaterials.cs index 8ad228267..c16bdc8ab 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/MediaMaterials.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/MediaMaterials.cs @@ -23,7 +23,7 @@ namespace Tango.BL.Enumerations /// (PET-CATIONIC) /// </summary> [Description("PET-CATIONIC")] - PETCATIONIC = 4, + PET_CATIONIC = 4, /// <summary> /// (LYCRA) @@ -35,7 +35,7 @@ namespace Tango.BL.Enumerations /// (PES-LYCRA) /// </summary> [Description("PES-LYCRA")] - PESLYCRA = 8, + PES_LYCRA = 8, /// <summary> /// (PE) @@ -59,7 +59,7 @@ namespace Tango.BL.Enumerations /// (CO-PET) /// </summary> [Description("CO-PET")] - COPET = 6, + CO_PET = 6, /// <summary> /// (PTT) @@ -71,7 +71,7 @@ namespace Tango.BL.Enumerations /// (PA 6.6) /// </summary> [Description("PA 6.6")] - PA66 = 3, + PA_66 = 3, } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/MediaPurposes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/MediaPurposes.cs index 1d5ea3533..b76cc6f4e 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/MediaPurposes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/MediaPurposes.cs @@ -61,5 +61,11 @@ namespace Tango.BL.Enumerations [Description("Circular Knitting")] CircularKnitting = 5, + /// <summary> + /// (Twine) + /// </summary> + [Description("Twine")] + Twine = 0, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/Rmls.cs b/Software/Visual_Studio/Tango.BL/Enumerations/Rmls.cs index 6e2bfa3e7..bd6d7e495 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/Rmls.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/Rmls.cs @@ -38,6 +38,18 @@ namespace Tango.BL.Enumerations RML2 = 0, /// <summary> + /// (vica_test) + /// </summary> + [Description("vica_test")] + vica_test = 3, + + /// <summary> + /// (Epic24_Gen2) + /// </summary> + [Description("Epic24_Gen2")] + Epic24_Gen2 = 4, + + /// <summary> /// (RML 1) /// </summary> [Description("RML 1")] diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs index d6bc73bd0..26d3d6f8b 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs @@ -31,6 +31,150 @@ namespace Tango.BL } /// <summary> + /// Gets or sets the ColorProcessData. + /// </summary> + public DbSet<ColorProcessData> ColorProcessData + { + get; set; + } + + /// <summary> + /// Gets or sets the ColorProcessFactors. + /// </summary> + public DbSet<ColorProcessFactor> ColorProcessFactors + { + get; set; + } + + /// <summary> + /// Gets or sets the ColorProcessParameters. + /// </summary> + public DbSet<ColorProcessParameter> ColorProcessParameters + { + get; set; + } + + /// <summary> + /// Gets or sets the RmlExtensionTestResults. + /// </summary> + public DbSet<RmlExtensionTestResult> RmlExtensionTestResults + { + get; set; + } + + /// <summary> + /// Gets or sets the RmlsExtensions. + /// </summary> + public DbSet<RmlsExtension> RmlsExtensions + { + get; set; + } + + /// <summary> + /// Gets or sets the RubbingResults. + /// </summary> + public DbSet<RubbingResult> RubbingResults + { + get; set; + } + + /// <summary> + /// Gets or sets the TensileResults. + /// </summary> + public DbSet<TensileResult> TensileResults + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnApplications. + /// </summary> + public DbSet<YarnApplication> YarnApplications + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnBrands. + /// </summary> + public DbSet<YarnBrand> YarnBrands + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnFamilies. + /// </summary> + public DbSet<YarnFamily> YarnFamilies + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnGlossLevels. + /// </summary> + public DbSet<YarnGlossLevel> YarnGlossLevels + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnGroups. + /// </summary> + public DbSet<YarnGroup> YarnGroups + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnIndustrysectors. + /// </summary> + public DbSet<YarnIndustrysector> YarnIndustrysectors + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnManufacturers. + /// </summary> + public DbSet<YarnManufacturer> YarnManufacturers + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnSubFamilies. + /// </summary> + public DbSet<YarnSubFamily> YarnSubFamilies + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnTexturings. + /// </summary> + public DbSet<YarnTexturing> YarnTexturings + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnTypes. + /// </summary> + public DbSet<YarnType> YarnTypes + { + get; set; + } + + /// <summary> + /// Gets or sets the YarnWhiteShades. + /// </summary> + public DbSet<YarnWhiteShade> YarnWhiteShades + { + get; set; + } + + /// <summary> /// Gets or sets the ActionLogs. /// </summary> public DbSet<ActionLog> ActionLogs @@ -159,30 +303,6 @@ namespace Tango.BL } /// <summary> - /// Gets or sets the ColorProcessData. - /// </summary> - public DbSet<ColorProcessData> ColorProcessData - { - get; set; - } - - /// <summary> - /// Gets or sets the ColorProcessFactors. - /// </summary> - public DbSet<ColorProcessFactor> ColorProcessFactors - { - get; set; - } - - /// <summary> - /// Gets or sets the ColorProcessParameters. - /// </summary> - public DbSet<ColorProcessParameter> ColorProcessParameters - { - get; set; - } - - /// <summary> /// Gets or sets the ColorSpaces. /// </summary> public DbSet<ColorSpace> ColorSpaces @@ -583,14 +703,6 @@ namespace Tango.BL } /// <summary> - /// Gets or sets the RmlExtensionTestResults. - /// </summary> - public DbSet<RmlExtensionTestResult> RmlExtensionTestResults - { - get; set; - } - - /// <summary> /// Gets or sets the Rmls. /// </summary> public DbSet<Rml> Rmls @@ -599,14 +711,6 @@ namespace Tango.BL } /// <summary> - /// Gets or sets the RmlsExtensions. - /// </summary> - public DbSet<RmlsExtension> RmlsExtensions - { - get; set; - } - - /// <summary> /// Gets or sets the RmlsSpools. /// </summary> public DbSet<RmlsSpool> RmlsSpools @@ -631,14 +735,6 @@ namespace Tango.BL } /// <summary> - /// Gets or sets the RubbingResults. - /// </summary> - public DbSet<RubbingResult> RubbingResults - { - get; set; - } - - /// <summary> /// Gets or sets the Segments. /// </summary> public DbSet<Segment> Segments @@ -759,14 +855,6 @@ namespace Tango.BL } /// <summary> - /// Gets or sets the TensileResults. - /// </summary> - public DbSet<TensileResult> TensileResults - { - get; set; - } - - /// <summary> /// Gets or sets the Users. /// </summary> public DbSet<User> Users @@ -790,93 +878,5 @@ namespace Tango.BL get; set; } - /// <summary> - /// Gets or sets the YarnApplications. - /// </summary> - public DbSet<YarnApplication> YarnApplications - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnBrands. - /// </summary> - public DbSet<YarnBrand> YarnBrands - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnFamilies. - /// </summary> - public DbSet<YarnFamily> YarnFamilies - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnGlossLevels. - /// </summary> - public DbSet<YarnGlossLevel> YarnGlossLevels - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnGroups. - /// </summary> - public DbSet<YarnGroup> YarnGroups - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnIndustrysectors. - /// </summary> - public DbSet<YarnIndustrysector> YarnIndustrysectors - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnManufacturers. - /// </summary> - public DbSet<YarnManufacturer> YarnManufacturers - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnSubFamilies. - /// </summary> - public DbSet<YarnSubFamily> YarnSubFamilies - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnTexturings. - /// </summary> - public DbSet<YarnTexturing> YarnTexturings - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnTypes. - /// </summary> - public DbSet<YarnType> YarnTypes - { - get; set; - } - - /// <summary> - /// Gets or sets the YarnWhiteShades. - /// </summary> - public DbSet<YarnWhiteShade> YarnWhiteShades - { - get; set; - } - } } diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs index ac276916f..973275408 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs @@ -53,6 +53,654 @@ namespace Tango.BL } + private ObservableCollection<ColorProcessData> _colorprocessdata; + /// <summary> + /// Gets or sets the ColorProcessData. + /// </summary> + public ObservableCollection<ColorProcessData> ColorProcessData + { + get + { + return _colorprocessdata; + } + + set + { + _colorprocessdata = value; RaisePropertyChanged(nameof(ColorProcessData)); + } + + } + + private ICollectionView _colorprocessdataViewSource; + /// <summary> + /// Gets or sets the ColorProcessData View Source. + ///</summary> + public ICollectionView ColorProcessDataViewSource + { + get + { + return _colorprocessdataViewSource; + } + + set + { + _colorprocessdataViewSource = value; RaisePropertyChanged(nameof(ColorProcessDataViewSource)); + } + + } + + private ObservableCollection<ColorProcessFactor> _colorprocessfactors; + /// <summary> + /// Gets or sets the ColorProcessFactors. + /// </summary> + public ObservableCollection<ColorProcessFactor> ColorProcessFactors + { + get + { + return _colorprocessfactors; + } + + set + { + _colorprocessfactors = value; RaisePropertyChanged(nameof(ColorProcessFactors)); + } + + } + + private ICollectionView _colorprocessfactorsViewSource; + /// <summary> + /// Gets or sets the ColorProcessFactors View Source. + ///</summary> + public ICollectionView ColorProcessFactorsViewSource + { + get + { + return _colorprocessfactorsViewSource; + } + + set + { + _colorprocessfactorsViewSource = value; RaisePropertyChanged(nameof(ColorProcessFactorsViewSource)); + } + + } + + private ObservableCollection<ColorProcessParameter> _colorprocessparameters; + /// <summary> + /// Gets or sets the ColorProcessParameters. + /// </summary> + public ObservableCollection<ColorProcessParameter> ColorProcessParameters + { + get + { + return _colorprocessparameters; + } + + set + { + _colorprocessparameters = value; RaisePropertyChanged(nameof(ColorProcessParameters)); + } + + } + + private ICollectionView _colorprocessparametersViewSource; + /// <summary> + /// Gets or sets the ColorProcessParameters View Source. + ///</summary> + public ICollectionView ColorProcessParametersViewSource + { + get + { + return _colorprocessparametersViewSource; + } + + set + { + _colorprocessparametersViewSource = value; RaisePropertyChanged(nameof(ColorProcessParametersViewSource)); + } + + } + + private ObservableCollection<RmlExtensionTestResult> _rmlextensiontestresults; + /// <summary> + /// Gets or sets the RmlExtensionTestResults. + /// </summary> + public ObservableCollection<RmlExtensionTestResult> RmlExtensionTestResults + { + get + { + return _rmlextensiontestresults; + } + + set + { + _rmlextensiontestresults = value; RaisePropertyChanged(nameof(RmlExtensionTestResults)); + } + + } + + private ICollectionView _rmlextensiontestresultsViewSource; + /// <summary> + /// Gets or sets the RmlExtensionTestResults View Source. + ///</summary> + public ICollectionView RmlExtensionTestResultsViewSource + { + get + { + return _rmlextensiontestresultsViewSource; + } + + set + { + _rmlextensiontestresultsViewSource = value; RaisePropertyChanged(nameof(RmlExtensionTestResultsViewSource)); + } + + } + + private ObservableCollection<RmlsExtension> _rmlsextensions; + /// <summary> + /// Gets or sets the RmlsExtensions. + /// </summary> + public ObservableCollection<RmlsExtension> RmlsExtensions + { + get + { + return _rmlsextensions; + } + + set + { + _rmlsextensions = value; RaisePropertyChanged(nameof(RmlsExtensions)); + } + + } + + private ICollectionView _rmlsextensionsViewSource; + /// <summary> + /// Gets or sets the RmlsExtensions View Source. + ///</summary> + public ICollectionView RmlsExtensionsViewSource + { + get + { + return _rmlsextensionsViewSource; + } + + set + { + _rmlsextensionsViewSource = value; RaisePropertyChanged(nameof(RmlsExtensionsViewSource)); + } + + } + + private ObservableCollection<RubbingResult> _rubbingresults; + /// <summary> + /// Gets or sets the RubbingResults. + /// </summary> + public ObservableCollection<RubbingResult> RubbingResults + { + get + { + return _rubbingresults; + } + + set + { + _rubbingresults = value; RaisePropertyChanged(nameof(RubbingResults)); + } + + } + + private ICollectionView _rubbingresultsViewSource; + /// <summary> + /// Gets or sets the RubbingResults View Source. + ///</summary> + public ICollectionView RubbingResultsViewSource + { + get + { + return _rubbingresultsViewSource; + } + + set + { + _rubbingresultsViewSource = value; RaisePropertyChanged(nameof(RubbingResultsViewSource)); + } + + } + + private ObservableCollection<TensileResult> _tensileresults; + /// <summary> + /// Gets or sets the TensileResults. + /// </summary> + public ObservableCollection<TensileResult> TensileResults + { + get + { + return _tensileresults; + } + + set + { + _tensileresults = value; RaisePropertyChanged(nameof(TensileResults)); + } + + } + + private ICollectionView _tensileresultsViewSource; + /// <summary> + /// Gets or sets the TensileResults View Source. + ///</summary> + public ICollectionView TensileResultsViewSource + { + get + { + return _tensileresultsViewSource; + } + + set + { + _tensileresultsViewSource = value; RaisePropertyChanged(nameof(TensileResultsViewSource)); + } + + } + + private ObservableCollection<YarnApplication> _yarnapplications; + /// <summary> + /// Gets or sets the YarnApplications. + /// </summary> + public ObservableCollection<YarnApplication> YarnApplications + { + get + { + return _yarnapplications; + } + + set + { + _yarnapplications = value; RaisePropertyChanged(nameof(YarnApplications)); + } + + } + + private ICollectionView _yarnapplicationsViewSource; + /// <summary> + /// Gets or sets the YarnApplications View Source. + ///</summary> + public ICollectionView YarnApplicationsViewSource + { + get + { + return _yarnapplicationsViewSource; + } + + set + { + _yarnapplicationsViewSource = value; RaisePropertyChanged(nameof(YarnApplicationsViewSource)); + } + + } + + private ObservableCollection<YarnBrand> _yarnbrands; + /// <summary> + /// Gets or sets the YarnBrands. + /// </summary> + public ObservableCollection<YarnBrand> YarnBrands + { + get + { + return _yarnbrands; + } + + set + { + _yarnbrands = value; RaisePropertyChanged(nameof(YarnBrands)); + } + + } + + private ICollectionView _yarnbrandsViewSource; + /// <summary> + /// Gets or sets the YarnBrands View Source. + ///</summary> + public ICollectionView YarnBrandsViewSource + { + get + { + return _yarnbrandsViewSource; + } + + set + { + _yarnbrandsViewSource = value; RaisePropertyChanged(nameof(YarnBrandsViewSource)); + } + + } + + private ObservableCollection<YarnFamily> _yarnfamilies; + /// <summary> + /// Gets or sets the YarnFamilies. + /// </summary> + public ObservableCollection<YarnFamily> YarnFamilies + { + get + { + return _yarnfamilies; + } + + set + { + _yarnfamilies = value; RaisePropertyChanged(nameof(YarnFamilies)); + } + + } + + private ICollectionView _yarnfamiliesViewSource; + /// <summary> + /// Gets or sets the YarnFamilies View Source. + ///</summary> + public ICollectionView YarnFamiliesViewSource + { + get + { + return _yarnfamiliesViewSource; + } + + set + { + _yarnfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnFamiliesViewSource)); + } + + } + + private ObservableCollection<YarnGlossLevel> _yarnglosslevels; + /// <summary> + /// Gets or sets the YarnGlossLevels. + /// </summary> + public ObservableCollection<YarnGlossLevel> YarnGlossLevels + { + get + { + return _yarnglosslevels; + } + + set + { + _yarnglosslevels = value; RaisePropertyChanged(nameof(YarnGlossLevels)); + } + + } + + private ICollectionView _yarnglosslevelsViewSource; + /// <summary> + /// Gets or sets the YarnGlossLevels View Source. + ///</summary> + public ICollectionView YarnGlossLevelsViewSource + { + get + { + return _yarnglosslevelsViewSource; + } + + set + { + _yarnglosslevelsViewSource = value; RaisePropertyChanged(nameof(YarnGlossLevelsViewSource)); + } + + } + + private ObservableCollection<YarnGroup> _yarngroups; + /// <summary> + /// Gets or sets the YarnGroups. + /// </summary> + public ObservableCollection<YarnGroup> YarnGroups + { + get + { + return _yarngroups; + } + + set + { + _yarngroups = value; RaisePropertyChanged(nameof(YarnGroups)); + } + + } + + private ICollectionView _yarngroupsViewSource; + /// <summary> + /// Gets or sets the YarnGroups View Source. + ///</summary> + public ICollectionView YarnGroupsViewSource + { + get + { + return _yarngroupsViewSource; + } + + set + { + _yarngroupsViewSource = value; RaisePropertyChanged(nameof(YarnGroupsViewSource)); + } + + } + + private ObservableCollection<YarnIndustrysector> _yarnindustrysectors; + /// <summary> + /// Gets or sets the YarnIndustrysectors. + /// </summary> + public ObservableCollection<YarnIndustrysector> YarnIndustrysectors + { + get + { + return _yarnindustrysectors; + } + + set + { + _yarnindustrysectors = value; RaisePropertyChanged(nameof(YarnIndustrysectors)); + } + + } + + private ICollectionView _yarnindustrysectorsViewSource; + /// <summary> + /// Gets or sets the YarnIndustrysectors View Source. + ///</summary> + public ICollectionView YarnIndustrysectorsViewSource + { + get + { + return _yarnindustrysectorsViewSource; + } + + set + { + _yarnindustrysectorsViewSource = value; RaisePropertyChanged(nameof(YarnIndustrysectorsViewSource)); + } + + } + + private ObservableCollection<YarnManufacturer> _yarnmanufacturers; + /// <summary> + /// Gets or sets the YarnManufacturers. + /// </summary> + public ObservableCollection<YarnManufacturer> YarnManufacturers + { + get + { + return _yarnmanufacturers; + } + + set + { + _yarnmanufacturers = value; RaisePropertyChanged(nameof(YarnManufacturers)); + } + + } + + private ICollectionView _yarnmanufacturersViewSource; + /// <summary> + /// Gets or sets the YarnManufacturers View Source. + ///</summary> + public ICollectionView YarnManufacturersViewSource + { + get + { + return _yarnmanufacturersViewSource; + } + + set + { + _yarnmanufacturersViewSource = value; RaisePropertyChanged(nameof(YarnManufacturersViewSource)); + } + + } + + private ObservableCollection<YarnSubFamily> _yarnsubfamilies; + /// <summary> + /// Gets or sets the YarnSubFamilies. + /// </summary> + public ObservableCollection<YarnSubFamily> YarnSubFamilies + { + get + { + return _yarnsubfamilies; + } + + set + { + _yarnsubfamilies = value; RaisePropertyChanged(nameof(YarnSubFamilies)); + } + + } + + private ICollectionView _yarnsubfamiliesViewSource; + /// <summary> + /// Gets or sets the YarnSubFamilies View Source. + ///</summary> + public ICollectionView YarnSubFamiliesViewSource + { + get + { + return _yarnsubfamiliesViewSource; + } + + set + { + _yarnsubfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnSubFamiliesViewSource)); + } + + } + + private ObservableCollection<YarnTexturing> _yarntexturings; + /// <summary> + /// Gets or sets the YarnTexturings. + /// </summary> + public ObservableCollection<YarnTexturing> YarnTexturings + { + get + { + return _yarntexturings; + } + + set + { + _yarntexturings = value; RaisePropertyChanged(nameof(YarnTexturings)); + } + + } + + private ICollectionView _yarntexturingsViewSource; + /// <summary> + /// Gets or sets the YarnTexturings View Source. + ///</summary> + public ICollectionView YarnTexturingsViewSource + { + get + { + return _yarntexturingsViewSource; + } + + set + { + _yarntexturingsViewSource = value; RaisePropertyChanged(nameof(YarnTexturingsViewSource)); + } + + } + + private ObservableCollection<YarnType> _yarntypes; + /// <summary> + /// Gets or sets the YarnTypes. + /// </summary> + public ObservableCollection<YarnType> YarnTypes + { + get + { + return _yarntypes; + } + + set + { + _yarntypes = value; RaisePropertyChanged(nameof(YarnTypes)); + } + + } + + private ICollectionView _yarntypesViewSource; + /// <summary> + /// Gets or sets the YarnTypes View Source. + ///</summary> + public ICollectionView YarnTypesViewSource + { + get + { + return _yarntypesViewSource; + } + + set + { + _yarntypesViewSource = value; RaisePropertyChanged(nameof(YarnTypesViewSource)); + } + + } + + private ObservableCollection<YarnWhiteShade> _yarnwhiteshades; + /// <summary> + /// Gets or sets the YarnWhiteShades. + /// </summary> + public ObservableCollection<YarnWhiteShade> YarnWhiteShades + { + get + { + return _yarnwhiteshades; + } + + set + { + _yarnwhiteshades = value; RaisePropertyChanged(nameof(YarnWhiteShades)); + } + + } + + private ICollectionView _yarnwhiteshadesViewSource; + /// <summary> + /// Gets or sets the YarnWhiteShades View Source. + ///</summary> + public ICollectionView YarnWhiteShadesViewSource + { + get + { + return _yarnwhiteshadesViewSource; + } + + set + { + _yarnwhiteshadesViewSource = value; RaisePropertyChanged(nameof(YarnWhiteShadesViewSource)); + } + + } + private ObservableCollection<ActionLog> _actionlogs; /// <summary> /// Gets or sets the ActionLogs. @@ -629,114 +1277,6 @@ namespace Tango.BL } - private ObservableCollection<ColorProcessData> _colorprocessdata; - /// <summary> - /// Gets or sets the ColorProcessData. - /// </summary> - public ObservableCollection<ColorProcessData> ColorProcessData - { - get - { - return _colorprocessdata; - } - - set - { - _colorprocessdata = value; RaisePropertyChanged(nameof(ColorProcessData)); - } - - } - - private ICollectionView _colorprocessdataViewSource; - /// <summary> - /// Gets or sets the ColorProcessData View Source. - ///</summary> - public ICollectionView ColorProcessDataViewSource - { - get - { - return _colorprocessdataViewSource; - } - - set - { - _colorprocessdataViewSource = value; RaisePropertyChanged(nameof(ColorProcessDataViewSource)); - } - - } - - private ObservableCollection<ColorProcessFactor> _colorprocessfactors; - /// <summary> - /// Gets or sets the ColorProcessFactors. - /// </summary> - public ObservableCollection<ColorProcessFactor> ColorProcessFactors - { - get - { - return _colorprocessfactors; - } - - set - { - _colorprocessfactors = value; RaisePropertyChanged(nameof(ColorProcessFactors)); - } - - } - - private ICollectionView _colorprocessfactorsViewSource; - /// <summary> - /// Gets or sets the ColorProcessFactors View Source. - ///</summary> - public ICollectionView ColorProcessFactorsViewSource - { - get - { - return _colorprocessfactorsViewSource; - } - - set - { - _colorprocessfactorsViewSource = value; RaisePropertyChanged(nameof(ColorProcessFactorsViewSource)); - } - - } - - private ObservableCollection<ColorProcessParameter> _colorprocessparameters; - /// <summary> - /// Gets or sets the ColorProcessParameters. - /// </summary> - public ObservableCollection<ColorProcessParameter> ColorProcessParameters - { - get - { - return _colorprocessparameters; - } - - set - { - _colorprocessparameters = value; RaisePropertyChanged(nameof(ColorProcessParameters)); - } - - } - - private ICollectionView _colorprocessparametersViewSource; - /// <summary> - /// Gets or sets the ColorProcessParameters View Source. - ///</summary> - public ICollectionView ColorProcessParametersViewSource - { - get - { - return _colorprocessparametersViewSource; - } - - set - { - _colorprocessparametersViewSource = value; RaisePropertyChanged(nameof(ColorProcessParametersViewSource)); - } - - } - private ObservableCollection<ColorSpace> _colorspaces; /// <summary> /// Gets or sets the ColorSpaces. @@ -2537,42 +3077,6 @@ namespace Tango.BL } - private ObservableCollection<RmlExtensionTestResult> _rmlextensiontestresults; - /// <summary> - /// Gets or sets the RmlExtensionTestResults. - /// </summary> - public ObservableCollection<RmlExtensionTestResult> RmlExtensionTestResults - { - get - { - return _rmlextensiontestresults; - } - - set - { - _rmlextensiontestresults = value; RaisePropertyChanged(nameof(RmlExtensionTestResults)); - } - - } - - private ICollectionView _rmlextensiontestresultsViewSource; - /// <summary> - /// Gets or sets the RmlExtensionTestResults View Source. - ///</summary> - public ICollectionView RmlExtensionTestResultsViewSource - { - get - { - return _rmlextensiontestresultsViewSource; - } - - set - { - _rmlextensiontestresultsViewSource = value; RaisePropertyChanged(nameof(RmlExtensionTestResultsViewSource)); - } - - } - private ObservableCollection<Rml> _rmls; /// <summary> /// Gets or sets the Rmls. @@ -2609,42 +3113,6 @@ namespace Tango.BL } - private ObservableCollection<RmlsExtension> _rmlsextensions; - /// <summary> - /// Gets or sets the RmlsExtensions. - /// </summary> - public ObservableCollection<RmlsExtension> RmlsExtensions - { - get - { - return _rmlsextensions; - } - - set - { - _rmlsextensions = value; RaisePropertyChanged(nameof(RmlsExtensions)); - } - - } - - private ICollectionView _rmlsextensionsViewSource; - /// <summary> - /// Gets or sets the RmlsExtensions View Source. - ///</summary> - public ICollectionView RmlsExtensionsViewSource - { - get - { - return _rmlsextensionsViewSource; - } - - set - { - _rmlsextensionsViewSource = value; RaisePropertyChanged(nameof(RmlsExtensionsViewSource)); - } - - } - private ObservableCollection<RmlsSpool> _rmlsspools; /// <summary> /// Gets or sets the RmlsSpools. @@ -2753,42 +3221,6 @@ namespace Tango.BL } - private ObservableCollection<RubbingResult> _rubbingresults; - /// <summary> - /// Gets or sets the RubbingResults. - /// </summary> - public ObservableCollection<RubbingResult> RubbingResults - { - get - { - return _rubbingresults; - } - - set - { - _rubbingresults = value; RaisePropertyChanged(nameof(RubbingResults)); - } - - } - - private ICollectionView _rubbingresultsViewSource; - /// <summary> - /// Gets or sets the RubbingResults View Source. - ///</summary> - public ICollectionView RubbingResultsViewSource - { - get - { - return _rubbingresultsViewSource; - } - - set - { - _rubbingresultsViewSource = value; RaisePropertyChanged(nameof(RubbingResultsViewSource)); - } - - } - private ObservableCollection<Segment> _segments; /// <summary> /// Gets or sets the Segments. @@ -3329,42 +3761,6 @@ namespace Tango.BL } - private ObservableCollection<TensileResult> _tensileresults; - /// <summary> - /// Gets or sets the TensileResults. - /// </summary> - public ObservableCollection<TensileResult> TensileResults - { - get - { - return _tensileresults; - } - - set - { - _tensileresults = value; RaisePropertyChanged(nameof(TensileResults)); - } - - } - - private ICollectionView _tensileresultsViewSource; - /// <summary> - /// Gets or sets the TensileResults View Source. - ///</summary> - public ICollectionView TensileResultsViewSource - { - get - { - return _tensileresultsViewSource; - } - - set - { - _tensileresultsViewSource = value; RaisePropertyChanged(nameof(TensileResultsViewSource)); - } - - } - private ObservableCollection<User> _users; /// <summary> /// Gets or sets the Users. @@ -3473,409 +3869,49 @@ namespace Tango.BL } - private ObservableCollection<YarnApplication> _yarnapplications; /// <summary> - /// Gets or sets the YarnApplications. - /// </summary> - public ObservableCollection<YarnApplication> YarnApplications - { - get - { - return _yarnapplications; - } - - set - { - _yarnapplications = value; RaisePropertyChanged(nameof(YarnApplications)); - } - - } - - private ICollectionView _yarnapplicationsViewSource; - /// <summary> - /// Gets or sets the YarnApplications View Source. - ///</summary> - public ICollectionView YarnApplicationsViewSource - { - get - { - return _yarnapplicationsViewSource; - } - - set - { - _yarnapplicationsViewSource = value; RaisePropertyChanged(nameof(YarnApplicationsViewSource)); - } - - } - - private ObservableCollection<YarnBrand> _yarnbrands; - /// <summary> - /// Gets or sets the YarnBrands. - /// </summary> - public ObservableCollection<YarnBrand> YarnBrands - { - get - { - return _yarnbrands; - } - - set - { - _yarnbrands = value; RaisePropertyChanged(nameof(YarnBrands)); - } - - } - - private ICollectionView _yarnbrandsViewSource; - /// <summary> - /// Gets or sets the YarnBrands View Source. - ///</summary> - public ICollectionView YarnBrandsViewSource - { - get - { - return _yarnbrandsViewSource; - } - - set - { - _yarnbrandsViewSource = value; RaisePropertyChanged(nameof(YarnBrandsViewSource)); - } - - } - - private ObservableCollection<YarnFamily> _yarnfamilies; - /// <summary> - /// Gets or sets the YarnFamilies. - /// </summary> - public ObservableCollection<YarnFamily> YarnFamilies - { - get - { - return _yarnfamilies; - } - - set - { - _yarnfamilies = value; RaisePropertyChanged(nameof(YarnFamilies)); - } - - } - - private ICollectionView _yarnfamiliesViewSource; - /// <summary> - /// Gets or sets the YarnFamilies View Source. - ///</summary> - public ICollectionView YarnFamiliesViewSource - { - get - { - return _yarnfamiliesViewSource; - } - - set - { - _yarnfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnFamiliesViewSource)); - } - - } - - private ObservableCollection<YarnGlossLevel> _yarnglosslevels; - /// <summary> - /// Gets or sets the YarnGlossLevels. - /// </summary> - public ObservableCollection<YarnGlossLevel> YarnGlossLevels - { - get - { - return _yarnglosslevels; - } - - set - { - _yarnglosslevels = value; RaisePropertyChanged(nameof(YarnGlossLevels)); - } - - } - - private ICollectionView _yarnglosslevelsViewSource; - /// <summary> - /// Gets or sets the YarnGlossLevels View Source. - ///</summary> - public ICollectionView YarnGlossLevelsViewSource - { - get - { - return _yarnglosslevelsViewSource; - } - - set - { - _yarnglosslevelsViewSource = value; RaisePropertyChanged(nameof(YarnGlossLevelsViewSource)); - } - - } - - private ObservableCollection<YarnGroup> _yarngroups; - /// <summary> - /// Gets or sets the YarnGroups. - /// </summary> - public ObservableCollection<YarnGroup> YarnGroups - { - get - { - return _yarngroups; - } - - set - { - _yarngroups = value; RaisePropertyChanged(nameof(YarnGroups)); - } - - } - - private ICollectionView _yarngroupsViewSource; - /// <summary> - /// Gets or sets the YarnGroups View Source. - ///</summary> - public ICollectionView YarnGroupsViewSource - { - get - { - return _yarngroupsViewSource; - } - - set - { - _yarngroupsViewSource = value; RaisePropertyChanged(nameof(YarnGroupsViewSource)); - } - - } - - private ObservableCollection<YarnIndustrysector> _yarnindustrysectors; - /// <summary> - /// Gets or sets the YarnIndustrysectors. - /// </summary> - public ObservableCollection<YarnIndustrysector> YarnIndustrysectors - { - get - { - return _yarnindustrysectors; - } - - set - { - _yarnindustrysectors = value; RaisePropertyChanged(nameof(YarnIndustrysectors)); - } - - } - - private ICollectionView _yarnindustrysectorsViewSource; - /// <summary> - /// Gets or sets the YarnIndustrysectors View Source. - ///</summary> - public ICollectionView YarnIndustrysectorsViewSource - { - get - { - return _yarnindustrysectorsViewSource; - } - - set - { - _yarnindustrysectorsViewSource = value; RaisePropertyChanged(nameof(YarnIndustrysectorsViewSource)); - } - - } - - private ObservableCollection<YarnManufacturer> _yarnmanufacturers; - /// <summary> - /// Gets or sets the YarnManufacturers. - /// </summary> - public ObservableCollection<YarnManufacturer> YarnManufacturers - { - get - { - return _yarnmanufacturers; - } - - set - { - _yarnmanufacturers = value; RaisePropertyChanged(nameof(YarnManufacturers)); - } - - } - - private ICollectionView _yarnmanufacturersViewSource; - /// <summary> - /// Gets or sets the YarnManufacturers View Source. - ///</summary> - public ICollectionView YarnManufacturersViewSource - { - get - { - return _yarnmanufacturersViewSource; - } - - set - { - _yarnmanufacturersViewSource = value; RaisePropertyChanged(nameof(YarnManufacturersViewSource)); - } - - } - - private ObservableCollection<YarnSubFamily> _yarnsubfamilies; - /// <summary> - /// Gets or sets the YarnSubFamilies. - /// </summary> - public ObservableCollection<YarnSubFamily> YarnSubFamilies - { - get - { - return _yarnsubfamilies; - } - - set - { - _yarnsubfamilies = value; RaisePropertyChanged(nameof(YarnSubFamilies)); - } - - } - - private ICollectionView _yarnsubfamiliesViewSource; - /// <summary> - /// Gets or sets the YarnSubFamilies View Source. - ///</summary> - public ICollectionView YarnSubFamiliesViewSource - { - get - { - return _yarnsubfamiliesViewSource; - } - - set - { - _yarnsubfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnSubFamiliesViewSource)); - } - - } - - private ObservableCollection<YarnTexturing> _yarntexturings; - /// <summary> - /// Gets or sets the YarnTexturings. + /// Initialize collection sources. /// </summary> - public ObservableCollection<YarnTexturing> YarnTexturings + private void InitCollectionSources() { - get - { - return _yarntexturings; - } - set - { - _yarntexturings = value; RaisePropertyChanged(nameof(YarnTexturings)); - } + SyncConfigurationsViewSource = CreateCollectionView(SyncConfigurations); - } + ColorProcessDataViewSource = CreateCollectionView(ColorProcessData); - private ICollectionView _yarntexturingsViewSource; - /// <summary> - /// Gets or sets the YarnTexturings View Source. - ///</summary> - public ICollectionView YarnTexturingsViewSource - { - get - { - return _yarntexturingsViewSource; - } + ColorProcessFactorsViewSource = CreateCollectionView(ColorProcessFactors); - set - { - _yarntexturingsViewSource = value; RaisePropertyChanged(nameof(YarnTexturingsViewSource)); - } + ColorProcessParametersViewSource = CreateCollectionView(ColorProcessParameters); - } + RmlExtensionTestResultsViewSource = CreateCollectionView(RmlExtensionTestResults); - private ObservableCollection<YarnType> _yarntypes; - /// <summary> - /// Gets or sets the YarnTypes. - /// </summary> - public ObservableCollection<YarnType> YarnTypes - { - get - { - return _yarntypes; - } + RmlsExtensionsViewSource = CreateCollectionView(RmlsExtensions); - set - { - _yarntypes = value; RaisePropertyChanged(nameof(YarnTypes)); - } + RubbingResultsViewSource = CreateCollectionView(RubbingResults); - } + TensileResultsViewSource = CreateCollectionView(TensileResults); - private ICollectionView _yarntypesViewSource; - /// <summary> - /// Gets or sets the YarnTypes View Source. - ///</summary> - public ICollectionView YarnTypesViewSource - { - get - { - return _yarntypesViewSource; - } + YarnApplicationsViewSource = CreateCollectionView(YarnApplications); - set - { - _yarntypesViewSource = value; RaisePropertyChanged(nameof(YarnTypesViewSource)); - } + YarnBrandsViewSource = CreateCollectionView(YarnBrands); - } + YarnFamiliesViewSource = CreateCollectionView(YarnFamilies); - private ObservableCollection<YarnWhiteShade> _yarnwhiteshades; - /// <summary> - /// Gets or sets the YarnWhiteShades. - /// </summary> - public ObservableCollection<YarnWhiteShade> YarnWhiteShades - { - get - { - return _yarnwhiteshades; - } + YarnGlossLevelsViewSource = CreateCollectionView(YarnGlossLevels); - set - { - _yarnwhiteshades = value; RaisePropertyChanged(nameof(YarnWhiteShades)); - } + YarnGroupsViewSource = CreateCollectionView(YarnGroups); - } + YarnIndustrysectorsViewSource = CreateCollectionView(YarnIndustrysectors); - private ICollectionView _yarnwhiteshadesViewSource; - /// <summary> - /// Gets or sets the YarnWhiteShades View Source. - ///</summary> - public ICollectionView YarnWhiteShadesViewSource - { - get - { - return _yarnwhiteshadesViewSource; - } + YarnManufacturersViewSource = CreateCollectionView(YarnManufacturers); - set - { - _yarnwhiteshadesViewSource = value; RaisePropertyChanged(nameof(YarnWhiteShadesViewSource)); - } + YarnSubFamiliesViewSource = CreateCollectionView(YarnSubFamilies); - } + YarnTexturingsViewSource = CreateCollectionView(YarnTexturings); - /// <summary> - /// Initialize collection sources. - /// </summary> - private void InitCollectionSources() - { + YarnTypesViewSource = CreateCollectionView(YarnTypes); - SyncConfigurationsViewSource = CreateCollectionView(SyncConfigurations); + YarnWhiteShadesViewSource = CreateCollectionView(YarnWhiteShades); ActionLogsViewSource = CreateCollectionView(ActionLogs); @@ -3909,12 +3945,6 @@ namespace Tango.BL ColorCatalogsItemsRecipesViewSource = CreateCollectionView(ColorCatalogsItemsRecipes); - ColorProcessDataViewSource = CreateCollectionView(ColorProcessData); - - ColorProcessFactorsViewSource = CreateCollectionView(ColorProcessFactors); - - ColorProcessParametersViewSource = CreateCollectionView(ColorProcessParameters); - ColorSpacesViewSource = CreateCollectionView(ColorSpaces); ConfigurationsViewSource = CreateCollectionView(Configurations); @@ -4015,20 +4045,14 @@ namespace Tango.BL PublishedProcedureProjectsVersionsViewSource = CreateCollectionView(PublishedProcedureProjectsVersions); - RmlExtensionTestResultsViewSource = CreateCollectionView(RmlExtensionTestResults); - RmlsViewSource = CreateCollectionView(Rmls); - RmlsExtensionsViewSource = CreateCollectionView(RmlsExtensions); - RmlsSpoolsViewSource = CreateCollectionView(RmlsSpools); RolesViewSource = CreateCollectionView(Roles); RolesPermissionsViewSource = CreateCollectionView(RolesPermissions); - RubbingResultsViewSource = CreateCollectionView(RubbingResults); - SegmentsViewSource = CreateCollectionView(Segments); SitesViewSource = CreateCollectionView(Sites); @@ -4059,36 +4083,12 @@ namespace Tango.BL TechValvesViewSource = CreateCollectionView(TechValves); - TensileResultsViewSource = CreateCollectionView(TensileResults); - UsersViewSource = CreateCollectionView(Users); UsersRolesViewSource = CreateCollectionView(UsersRoles); WindingMethodsViewSource = CreateCollectionView(WindingMethods); - YarnApplicationsViewSource = CreateCollectionView(YarnApplications); - - YarnBrandsViewSource = CreateCollectionView(YarnBrands); - - YarnFamiliesViewSource = CreateCollectionView(YarnFamilies); - - YarnGlossLevelsViewSource = CreateCollectionView(YarnGlossLevels); - - YarnGroupsViewSource = CreateCollectionView(YarnGroups); - - YarnIndustrysectorsViewSource = CreateCollectionView(YarnIndustrysectors); - - YarnManufacturersViewSource = CreateCollectionView(YarnManufacturers); - - YarnSubFamiliesViewSource = CreateCollectionView(YarnSubFamilies); - - YarnTexturingsViewSource = CreateCollectionView(YarnTexturings); - - YarnTypesViewSource = CreateCollectionView(YarnTypes); - - YarnWhiteShadesViewSource = CreateCollectionView(YarnWhiteShades); - } } } diff --git a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs index 080a6fa92..0ad663bc6 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs @@ -53,6 +53,654 @@ namespace Tango.BL } + private ObservableCollection<ColorProcessData> _colorprocessdata; + /// <summary> + /// Gets or sets the ColorProcessData. + /// </summary> + public ObservableCollection<ColorProcessData> ColorProcessData + { + get + { + return _colorprocessdata; + } + + set + { + _colorprocessdata = value; RaisePropertyChanged(nameof(ColorProcessData)); + } + + } + + private ICollectionView _colorprocessdataViewSource; + /// <summary> + /// Gets or sets the ColorProcessData View Source. + ///</summary> + public ICollectionView ColorProcessDataViewSource + { + get + { + return _colorprocessdataViewSource; + } + + set + { + _colorprocessdataViewSource = value; RaisePropertyChanged(nameof(ColorProcessDataViewSource)); + } + + } + + private ObservableCollection<ColorProcessFactor> _colorprocessfactors; + /// <summary> + /// Gets or sets the ColorProcessFactors. + /// </summary> + public ObservableCollection<ColorProcessFactor> ColorProcessFactors + { + get + { + return _colorprocessfactors; + } + + set + { + _colorprocessfactors = value; RaisePropertyChanged(nameof(ColorProcessFactors)); + } + + } + + private ICollectionView _colorprocessfactorsViewSource; + /// <summary> + /// Gets or sets the ColorProcessFactors View Source. + ///</summary> + public ICollectionView ColorProcessFactorsViewSource + { + get + { + return _colorprocessfactorsViewSource; + } + + set + { + _colorprocessfactorsViewSource = value; RaisePropertyChanged(nameof(ColorProcessFactorsViewSource)); + } + + } + + private ObservableCollection<ColorProcessParameter> _colorprocessparameters; + /// <summary> + /// Gets or sets the ColorProcessParameters. + /// </summary> + public ObservableCollection<ColorProcessParameter> ColorProcessParameters + { + get + { + return _colorprocessparameters; + } + + set + { + _colorprocessparameters = value; RaisePropertyChanged(nameof(ColorProcessParameters)); + } + + } + + private ICollectionView _colorprocessparametersViewSource; + /// <summary> + /// Gets or sets the ColorProcessParameters View Source. + ///</summary> + public ICollectionView ColorProcessParametersViewSource + { + get + { + return _colorprocessparametersViewSource; + } + + set + { + _colorprocessparametersViewSource = value; RaisePropertyChanged(nameof(ColorProcessParametersViewSource)); + } + + } + + private ObservableCollection<RmlExtensionTestResult> _rmlextensiontestresults; + /// <summary> + /// Gets or sets the RmlExtensionTestResults. + /// </summary> + public ObservableCollection<RmlExtensionTestResult> RmlExtensionTestResults + { + get + { + return _rmlextensiontestresults; + } + + set + { + _rmlextensiontestresults = value; RaisePropertyChanged(nameof(RmlExtensionTestResults)); + } + + } + + private ICollectionView _rmlextensiontestresultsViewSource; + /// <summary> + /// Gets or sets the RmlExtensionTestResults View Source. + ///</summary> + public ICollectionView RmlExtensionTestResultsViewSource + { + get + { + return _rmlextensiontestresultsViewSource; + } + + set + { + _rmlextensiontestresultsViewSource = value; RaisePropertyChanged(nameof(RmlExtensionTestResultsViewSource)); + } + + } + + private ObservableCollection<RmlsExtension> _rmlsextensions; + /// <summary> + /// Gets or sets the RmlsExtensions. + /// </summary> + public ObservableCollection<RmlsExtension> RmlsExtensions + { + get + { + return _rmlsextensions; + } + + set + { + _rmlsextensions = value; RaisePropertyChanged(nameof(RmlsExtensions)); + } + + } + + private ICollectionView _rmlsextensionsViewSource; + /// <summary> + /// Gets or sets the RmlsExtensions View Source. + ///</summary> + public ICollectionView RmlsExtensionsViewSource + { + get + { + return _rmlsextensionsViewSource; + } + + set + { + _rmlsextensionsViewSource = value; RaisePropertyChanged(nameof(RmlsExtensionsViewSource)); + } + + } + + private ObservableCollection<RubbingResult> _rubbingresults; + /// <summary> + /// Gets or sets the RubbingResults. + /// </summary> + public ObservableCollection<RubbingResult> RubbingResults + { + get + { + return _rubbingresults; + } + + set + { + _rubbingresults = value; RaisePropertyChanged(nameof(RubbingResults)); + } + + } + + private ICollectionView _rubbingresultsViewSource; + /// <summary> + /// Gets or sets the RubbingResults View Source. + ///</summary> + public ICollectionView RubbingResultsViewSource + { + get + { + return _rubbingresultsViewSource; + } + + set + { + _rubbingresultsViewSource = value; RaisePropertyChanged(nameof(RubbingResultsViewSource)); + } + + } + + private ObservableCollection<TensileResult> _tensileresults; + /// <summary> + /// Gets or sets the TensileResults. + /// </summary> + public ObservableCollection<TensileResult> TensileResults + { + get + { + return _tensileresults; + } + + set + { + _tensileresults = value; RaisePropertyChanged(nameof(TensileResults)); + } + + } + + private ICollectionView _tensileresultsViewSource; + /// <summary> + /// Gets or sets the TensileResults View Source. + ///</summary> + public ICollectionView TensileResultsViewSource + { + get + { + return _tensileresultsViewSource; + } + + set + { + _tensileresultsViewSource = value; RaisePropertyChanged(nameof(TensileResultsViewSource)); + } + + } + + private ObservableCollection<YarnApplication> _yarnapplications; + /// <summary> + /// Gets or sets the YarnApplications. + /// </summary> + public ObservableCollection<YarnApplication> YarnApplications + { + get + { + return _yarnapplications; + } + + set + { + _yarnapplications = value; RaisePropertyChanged(nameof(YarnApplications)); + } + + } + + private ICollectionView _yarnapplicationsViewSource; + /// <summary> + /// Gets or sets the YarnApplications View Source. + ///</summary> + public ICollectionView YarnApplicationsViewSource + { + get + { + return _yarnapplicationsViewSource; + } + + set + { + _yarnapplicationsViewSource = value; RaisePropertyChanged(nameof(YarnApplicationsViewSource)); + } + + } + + private ObservableCollection<YarnBrand> _yarnbrands; + /// <summary> + /// Gets or sets the YarnBrands. + /// </summary> + public ObservableCollection<YarnBrand> YarnBrands + { + get + { + return _yarnbrands; + } + + set + { + _yarnbrands = value; RaisePropertyChanged(nameof(YarnBrands)); + } + + } + + private ICollectionView _yarnbrandsViewSource; + /// <summary> + /// Gets or sets the YarnBrands View Source. + ///</summary> + public ICollectionView YarnBrandsViewSource + { + get + { + return _yarnbrandsViewSource; + } + + set + { + _yarnbrandsViewSource = value; RaisePropertyChanged(nameof(YarnBrandsViewSource)); + } + + } + + private ObservableCollection<YarnFamily> _yarnfamilies; + /// <summary> + /// Gets or sets the YarnFamilies. + /// </summary> + public ObservableCollection<YarnFamily> YarnFamilies + { + get + { + return _yarnfamilies; + } + + set + { + _yarnfamilies = value; RaisePropertyChanged(nameof(YarnFamilies)); + } + + } + + private ICollectionView _yarnfamiliesViewSource; + /// <summary> + /// Gets or sets the YarnFamilies View Source. + ///</summary> + public ICollectionView YarnFamiliesViewSource + { + get + { + return _yarnfamiliesViewSource; + } + + set + { + _yarnfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnFamiliesViewSource)); + } + + } + + private ObservableCollection<YarnGlossLevel> _yarnglosslevels; + /// <summary> + /// Gets or sets the YarnGlossLevels. + /// </summary> + public ObservableCollection<YarnGlossLevel> YarnGlossLevels + { + get + { + return _yarnglosslevels; + } + + set + { + _yarnglosslevels = value; RaisePropertyChanged(nameof(YarnGlossLevels)); + } + + } + + private ICollectionView _yarnglosslevelsViewSource; + /// <summary> + /// Gets or sets the YarnGlossLevels View Source. + ///</summary> + public ICollectionView YarnGlossLevelsViewSource + { + get + { + return _yarnglosslevelsViewSource; + } + + set + { + _yarnglosslevelsViewSource = value; RaisePropertyChanged(nameof(YarnGlossLevelsViewSource)); + } + + } + + private ObservableCollection<YarnGroup> _yarngroups; + /// <summary> + /// Gets or sets the YarnGroups. + /// </summary> + public ObservableCollection<YarnGroup> YarnGroups + { + get + { + return _yarngroups; + } + + set + { + _yarngroups = value; RaisePropertyChanged(nameof(YarnGroups)); + } + + } + + private ICollectionView _yarngroupsViewSource; + /// <summary> + /// Gets or sets the YarnGroups View Source. + ///</summary> + public ICollectionView YarnGroupsViewSource + { + get + { + return _yarngroupsViewSource; + } + + set + { + _yarngroupsViewSource = value; RaisePropertyChanged(nameof(YarnGroupsViewSource)); + } + + } + + private ObservableCollection<YarnIndustrysector> _yarnindustrysectors; + /// <summary> + /// Gets or sets the YarnIndustrysectors. + /// </summary> + public ObservableCollection<YarnIndustrysector> YarnIndustrysectors + { + get + { + return _yarnindustrysectors; + } + + set + { + _yarnindustrysectors = value; RaisePropertyChanged(nameof(YarnIndustrysectors)); + } + + } + + private ICollectionView _yarnindustrysectorsViewSource; + /// <summary> + /// Gets or sets the YarnIndustrysectors View Source. + ///</summary> + public ICollectionView YarnIndustrysectorsViewSource + { + get + { + return _yarnindustrysectorsViewSource; + } + + set + { + _yarnindustrysectorsViewSource = value; RaisePropertyChanged(nameof(YarnIndustrysectorsViewSource)); + } + + } + + private ObservableCollection<YarnManufacturer> _yarnmanufacturers; + /// <summary> + /// Gets or sets the YarnManufacturers. + /// </summary> + public ObservableCollection<YarnManufacturer> YarnManufacturers + { + get + { + return _yarnmanufacturers; + } + + set + { + _yarnmanufacturers = value; RaisePropertyChanged(nameof(YarnManufacturers)); + } + + } + + private ICollectionView _yarnmanufacturersViewSource; + /// <summary> + /// Gets or sets the YarnManufacturers View Source. + ///</summary> + public ICollectionView YarnManufacturersViewSource + { + get + { + return _yarnmanufacturersViewSource; + } + + set + { + _yarnmanufacturersViewSource = value; RaisePropertyChanged(nameof(YarnManufacturersViewSource)); + } + + } + + private ObservableCollection<YarnSubFamily> _yarnsubfamilies; + /// <summary> + /// Gets or sets the YarnSubFamilies. + /// </summary> + public ObservableCollection<YarnSubFamily> YarnSubFamilies + { + get + { + return _yarnsubfamilies; + } + + set + { + _yarnsubfamilies = value; RaisePropertyChanged(nameof(YarnSubFamilies)); + } + + } + + private ICollectionView _yarnsubfamiliesViewSource; + /// <summary> + /// Gets or sets the YarnSubFamilies View Source. + ///</summary> + public ICollectionView YarnSubFamiliesViewSource + { + get + { + return _yarnsubfamiliesViewSource; + } + + set + { + _yarnsubfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnSubFamiliesViewSource)); + } + + } + + private ObservableCollection<YarnTexturing> _yarntexturings; + /// <summary> + /// Gets or sets the YarnTexturings. + /// </summary> + public ObservableCollection<YarnTexturing> YarnTexturings + { + get + { + return _yarntexturings; + } + + set + { + _yarntexturings = value; RaisePropertyChanged(nameof(YarnTexturings)); + } + + } + + private ICollectionView _yarntexturingsViewSource; + /// <summary> + /// Gets or sets the YarnTexturings View Source. + ///</summary> + public ICollectionView YarnTexturingsViewSource + { + get + { + return _yarntexturingsViewSource; + } + + set + { + _yarntexturingsViewSource = value; RaisePropertyChanged(nameof(YarnTexturingsViewSource)); + } + + } + + private ObservableCollection<YarnType> _yarntypes; + /// <summary> + /// Gets or sets the YarnTypes. + /// </summary> + public ObservableCollection<YarnType> YarnTypes + { + get + { + return _yarntypes; + } + + set + { + _yarntypes = value; RaisePropertyChanged(nameof(YarnTypes)); + } + + } + + private ICollectionView _yarntypesViewSource; + /// <summary> + /// Gets or sets the YarnTypes View Source. + ///</summary> + public ICollectionView YarnTypesViewSource + { + get + { + return _yarntypesViewSource; + } + + set + { + _yarntypesViewSource = value; RaisePropertyChanged(nameof(YarnTypesViewSource)); + } + + } + + private ObservableCollection<YarnWhiteShade> _yarnwhiteshades; + /// <summary> + /// Gets or sets the YarnWhiteShades. + /// </summary> + public ObservableCollection<YarnWhiteShade> YarnWhiteShades + { + get + { + return _yarnwhiteshades; + } + + set + { + _yarnwhiteshades = value; RaisePropertyChanged(nameof(YarnWhiteShades)); + } + + } + + private ICollectionView _yarnwhiteshadesViewSource; + /// <summary> + /// Gets or sets the YarnWhiteShades View Source. + ///</summary> + public ICollectionView YarnWhiteShadesViewSource + { + get + { + return _yarnwhiteshadesViewSource; + } + + set + { + _yarnwhiteshadesViewSource = value; RaisePropertyChanged(nameof(YarnWhiteShadesViewSource)); + } + + } + private ObservableCollection<ActionLog> _actionlogs; /// <summary> /// Gets or sets the ActionLogs. @@ -629,114 +1277,6 @@ namespace Tango.BL } - private ObservableCollection<ColorProcessData> _colorprocessdata; - /// <summary> - /// Gets or sets the ColorProcessData. - /// </summary> - public ObservableCollection<ColorProcessData> ColorProcessData - { - get - { - return _colorprocessdata; - } - - set - { - _colorprocessdata = value; RaisePropertyChanged(nameof(ColorProcessData)); - } - - } - - private ICollectionView _colorprocessdataViewSource; - /// <summary> - /// Gets or sets the ColorProcessData View Source. - ///</summary> - public ICollectionView ColorProcessDataViewSource - { - get - { - return _colorprocessdataViewSource; - } - - set - { - _colorprocessdataViewSource = value; RaisePropertyChanged(nameof(ColorProcessDataViewSource)); - } - - } - - private ObservableCollection<ColorProcessFactor> _colorprocessfactors; - /// <summary> - /// Gets or sets the ColorProcessFactors. - /// </summary> - public ObservableCollection<ColorProcessFactor> ColorProcessFactors - { - get - { - return _colorprocessfactors; - } - - set - { - _colorprocessfactors = value; RaisePropertyChanged(nameof(ColorProcessFactors)); - } - - } - - private ICollectionView _colorprocessfactorsViewSource; - /// <summary> - /// Gets or sets the ColorProcessFactors View Source. - ///</summary> - public ICollectionView ColorProcessFactorsViewSource - { - get - { - return _colorprocessfactorsViewSource; - } - - set - { - _colorprocessfactorsViewSource = value; RaisePropertyChanged(nameof(ColorProcessFactorsViewSource)); - } - - } - - private ObservableCollection<ColorProcessParameter> _colorprocessparameters; - /// <summary> - /// Gets or sets the ColorProcessParameters. - /// </summary> - public ObservableCollection<ColorProcessParameter> ColorProcessParameters - { - get - { - return _colorprocessparameters; - } - - set - { - _colorprocessparameters = value; RaisePropertyChanged(nameof(ColorProcessParameters)); - } - - } - - private ICollectionView _colorprocessparametersViewSource; - /// <summary> - /// Gets or sets the ColorProcessParameters View Source. - ///</summary> - public ICollectionView ColorProcessParametersViewSource - { - get - { - return _colorprocessparametersViewSource; - } - - set - { - _colorprocessparametersViewSource = value; RaisePropertyChanged(nameof(ColorProcessParametersViewSource)); - } - - } - private ObservableCollection<ColorSpace> _colorspaces; /// <summary> /// Gets or sets the ColorSpaces. @@ -2537,42 +3077,6 @@ namespace Tango.BL } - private ObservableCollection<RmlExtensionTestResult> _rmlextensiontestresults; - /// <summary> - /// Gets or sets the RmlExtensionTestResults. - /// </summary> - public ObservableCollection<RmlExtensionTestResult> RmlExtensionTestResults - { - get - { - return _rmlextensiontestresults; - } - - set - { - _rmlextensiontestresults = value; RaisePropertyChanged(nameof(RmlExtensionTestResults)); - } - - } - - private ICollectionView _rmlextensiontestresultsViewSource; - /// <summary> - /// Gets or sets the RmlExtensionTestResults View Source. - ///</summary> - public ICollectionView RmlExtensionTestResultsViewSource - { - get - { - return _rmlextensiontestresultsViewSource; - } - - set - { - _rmlextensiontestresultsViewSource = value; RaisePropertyChanged(nameof(RmlExtensionTestResultsViewSource)); - } - - } - private ObservableCollection<Rml> _rmls; /// <summary> /// Gets or sets the Rmls. @@ -2609,42 +3113,6 @@ namespace Tango.BL } - private ObservableCollection<RmlsExtension> _rmlsextensions; - /// <summary> - /// Gets or sets the RmlsExtensions. - /// </summary> - public ObservableCollection<RmlsExtension> RmlsExtensions - { - get - { - return _rmlsextensions; - } - - set - { - _rmlsextensions = value; RaisePropertyChanged(nameof(RmlsExtensions)); - } - - } - - private ICollectionView _rmlsextensionsViewSource; - /// <summary> - /// Gets or sets the RmlsExtensions View Source. - ///</summary> - public ICollectionView RmlsExtensionsViewSource - { - get - { - return _rmlsextensionsViewSource; - } - - set - { - _rmlsextensionsViewSource = value; RaisePropertyChanged(nameof(RmlsExtensionsViewSource)); - } - - } - private ObservableCollection<RmlsSpool> _rmlsspools; /// <summary> /// Gets or sets the RmlsSpools. @@ -2753,42 +3221,6 @@ namespace Tango.BL } - private ObservableCollection<RubbingResult> _rubbingresults; - /// <summary> - /// Gets or sets the RubbingResults. - /// </summary> - public ObservableCollection<RubbingResult> RubbingResults - { - get - { - return _rubbingresults; - } - - set - { - _rubbingresults = value; RaisePropertyChanged(nameof(RubbingResults)); - } - - } - - private ICollectionView _rubbingresultsViewSource; - /// <summary> - /// Gets or sets the RubbingResults View Source. - ///</summary> - public ICollectionView RubbingResultsViewSource - { - get - { - return _rubbingresultsViewSource; - } - - set - { - _rubbingresultsViewSource = value; RaisePropertyChanged(nameof(RubbingResultsViewSource)); - } - - } - private ObservableCollection<Segment> _segments; /// <summary> /// Gets or sets the Segments. @@ -3329,42 +3761,6 @@ namespace Tango.BL } - private ObservableCollection<TensileResult> _tensileresults; - /// <summary> - /// Gets or sets the TensileResults. - /// </summary> - public ObservableCollection<TensileResult> TensileResults - { - get - { - return _tensileresults; - } - - set - { - _tensileresults = value; RaisePropertyChanged(nameof(TensileResults)); - } - - } - - private ICollectionView _tensileresultsViewSource; - /// <summary> - /// Gets or sets the TensileResults View Source. - ///</summary> - public ICollectionView TensileResultsViewSource - { - get - { - return _tensileresultsViewSource; - } - - set - { - _tensileresultsViewSource = value; RaisePropertyChanged(nameof(TensileResultsViewSource)); - } - - } - private ObservableCollection<User> _users; /// <summary> /// Gets or sets the Users. @@ -3473,409 +3869,49 @@ namespace Tango.BL } - private ObservableCollection<YarnApplication> _yarnapplications; /// <summary> - /// Gets or sets the YarnApplications. - /// </summary> - public ObservableCollection<YarnApplication> YarnApplications - { - get - { - return _yarnapplications; - } - - set - { - _yarnapplications = value; RaisePropertyChanged(nameof(YarnApplications)); - } - - } - - private ICollectionView _yarnapplicationsViewSource; - /// <summary> - /// Gets or sets the YarnApplications View Source. - ///</summary> - public ICollectionView YarnApplicationsViewSource - { - get - { - return _yarnapplicationsViewSource; - } - - set - { - _yarnapplicationsViewSource = value; RaisePropertyChanged(nameof(YarnApplicationsViewSource)); - } - - } - - private ObservableCollection<YarnBrand> _yarnbrands; - /// <summary> - /// Gets or sets the YarnBrands. - /// </summary> - public ObservableCollection<YarnBrand> YarnBrands - { - get - { - return _yarnbrands; - } - - set - { - _yarnbrands = value; RaisePropertyChanged(nameof(YarnBrands)); - } - - } - - private ICollectionView _yarnbrandsViewSource; - /// <summary> - /// Gets or sets the YarnBrands View Source. - ///</summary> - public ICollectionView YarnBrandsViewSource - { - get - { - return _yarnbrandsViewSource; - } - - set - { - _yarnbrandsViewSource = value; RaisePropertyChanged(nameof(YarnBrandsViewSource)); - } - - } - - private ObservableCollection<YarnFamily> _yarnfamilies; - /// <summary> - /// Gets or sets the YarnFamilies. - /// </summary> - public ObservableCollection<YarnFamily> YarnFamilies - { - get - { - return _yarnfamilies; - } - - set - { - _yarnfamilies = value; RaisePropertyChanged(nameof(YarnFamilies)); - } - - } - - private ICollectionView _yarnfamiliesViewSource; - /// <summary> - /// Gets or sets the YarnFamilies View Source. - ///</summary> - public ICollectionView YarnFamiliesViewSource - { - get - { - return _yarnfamiliesViewSource; - } - - set - { - _yarnfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnFamiliesViewSource)); - } - - } - - private ObservableCollection<YarnGlossLevel> _yarnglosslevels; - /// <summary> - /// Gets or sets the YarnGlossLevels. - /// </summary> - public ObservableCollection<YarnGlossLevel> YarnGlossLevels - { - get - { - return _yarnglosslevels; - } - - set - { - _yarnglosslevels = value; RaisePropertyChanged(nameof(YarnGlossLevels)); - } - - } - - private ICollectionView _yarnglosslevelsViewSource; - /// <summary> - /// Gets or sets the YarnGlossLevels View Source. - ///</summary> - public ICollectionView YarnGlossLevelsViewSource - { - get - { - return _yarnglosslevelsViewSource; - } - - set - { - _yarnglosslevelsViewSource = value; RaisePropertyChanged(nameof(YarnGlossLevelsViewSource)); - } - - } - - private ObservableCollection<YarnGroup> _yarngroups; - /// <summary> - /// Gets or sets the YarnGroups. - /// </summary> - public ObservableCollection<YarnGroup> YarnGroups - { - get - { - return _yarngroups; - } - - set - { - _yarngroups = value; RaisePropertyChanged(nameof(YarnGroups)); - } - - } - - private ICollectionView _yarngroupsViewSource; - /// <summary> - /// Gets or sets the YarnGroups View Source. - ///</summary> - public ICollectionView YarnGroupsViewSource - { - get - { - return _yarngroupsViewSource; - } - - set - { - _yarngroupsViewSource = value; RaisePropertyChanged(nameof(YarnGroupsViewSource)); - } - - } - - private ObservableCollection<YarnIndustrysector> _yarnindustrysectors; - /// <summary> - /// Gets or sets the YarnIndustrysectors. - /// </summary> - public ObservableCollection<YarnIndustrysector> YarnIndustrysectors - { - get - { - return _yarnindustrysectors; - } - - set - { - _yarnindustrysectors = value; RaisePropertyChanged(nameof(YarnIndustrysectors)); - } - - } - - private ICollectionView _yarnindustrysectorsViewSource; - /// <summary> - /// Gets or sets the YarnIndustrysectors View Source. - ///</summary> - public ICollectionView YarnIndustrysectorsViewSource - { - get - { - return _yarnindustrysectorsViewSource; - } - - set - { - _yarnindustrysectorsViewSource = value; RaisePropertyChanged(nameof(YarnIndustrysectorsViewSource)); - } - - } - - private ObservableCollection<YarnManufacturer> _yarnmanufacturers; - /// <summary> - /// Gets or sets the YarnManufacturers. - /// </summary> - public ObservableCollection<YarnManufacturer> YarnManufacturers - { - get - { - return _yarnmanufacturers; - } - - set - { - _yarnmanufacturers = value; RaisePropertyChanged(nameof(YarnManufacturers)); - } - - } - - private ICollectionView _yarnmanufacturersViewSource; - /// <summary> - /// Gets or sets the YarnManufacturers View Source. - ///</summary> - public ICollectionView YarnManufacturersViewSource - { - get - { - return _yarnmanufacturersViewSource; - } - - set - { - _yarnmanufacturersViewSource = value; RaisePropertyChanged(nameof(YarnManufacturersViewSource)); - } - - } - - private ObservableCollection<YarnSubFamily> _yarnsubfamilies; - /// <summary> - /// Gets or sets the YarnSubFamilies. - /// </summary> - public ObservableCollection<YarnSubFamily> YarnSubFamilies - { - get - { - return _yarnsubfamilies; - } - - set - { - _yarnsubfamilies = value; RaisePropertyChanged(nameof(YarnSubFamilies)); - } - - } - - private ICollectionView _yarnsubfamiliesViewSource; - /// <summary> - /// Gets or sets the YarnSubFamilies View Source. - ///</summary> - public ICollectionView YarnSubFamiliesViewSource - { - get - { - return _yarnsubfamiliesViewSource; - } - - set - { - _yarnsubfamiliesViewSource = value; RaisePropertyChanged(nameof(YarnSubFamiliesViewSource)); - } - - } - - private ObservableCollection<YarnTexturing> _yarntexturings; - /// <summary> - /// Gets or sets the YarnTexturings. + /// Initialize collection sources. /// </summary> - public ObservableCollection<YarnTexturing> YarnTexturings + public void InitCollectionSources() { - get - { - return _yarntexturings; - } - set - { - _yarntexturings = value; RaisePropertyChanged(nameof(YarnTexturings)); - } + SyncConfigurationsViewSource = CreateCollectionView(SyncConfigurations); - } + ColorProcessDataViewSource = CreateCollectionView(ColorProcessData); - private ICollectionView _yarntexturingsViewSource; - /// <summary> - /// Gets or sets the YarnTexturings View Source. - ///</summary> - public ICollectionView YarnTexturingsViewSource - { - get - { - return _yarntexturingsViewSource; - } + ColorProcessFactorsViewSource = CreateCollectionView(ColorProcessFactors); - set - { - _yarntexturingsViewSource = value; RaisePropertyChanged(nameof(YarnTexturingsViewSource)); - } + ColorProcessParametersViewSource = CreateCollectionView(ColorProcessParameters); - } + RmlExtensionTestResultsViewSource = CreateCollectionView(RmlExtensionTestResults); - private ObservableCollection<YarnType> _yarntypes; - /// <summary> - /// Gets or sets the YarnTypes. - /// </summary> - public ObservableCollection<YarnType> YarnTypes - { - get - { - return _yarntypes; - } + RmlsExtensionsViewSource = CreateCollectionView(RmlsExtensions); - set - { - _yarntypes = value; RaisePropertyChanged(nameof(YarnTypes)); - } + RubbingResultsViewSource = CreateCollectionView(RubbingResults); - } + TensileResultsViewSource = CreateCollectionView(TensileResults); - private ICollectionView _yarntypesViewSource; - /// <summary> - /// Gets or sets the YarnTypes View Source. - ///</summary> - public ICollectionView YarnTypesViewSource - { - get - { - return _yarntypesViewSource; - } + YarnApplicationsViewSource = CreateCollectionView(YarnApplications); - set - { - _yarntypesViewSource = value; RaisePropertyChanged(nameof(YarnTypesViewSource)); - } + YarnBrandsViewSource = CreateCollectionView(YarnBrands); - } + YarnFamiliesViewSource = CreateCollectionView(YarnFamilies); - private ObservableCollection<YarnWhiteShade> _yarnwhiteshades; - /// <summary> - /// Gets or sets the YarnWhiteShades. - /// </summary> - public ObservableCollection<YarnWhiteShade> YarnWhiteShades - { - get - { - return _yarnwhiteshades; - } + YarnGlossLevelsViewSource = CreateCollectionView(YarnGlossLevels); - set - { - _yarnwhiteshades = value; RaisePropertyChanged(nameof(YarnWhiteShades)); - } + YarnGroupsViewSource = CreateCollectionView(YarnGroups); - } + YarnIndustrysectorsViewSource = CreateCollectionView(YarnIndustrysectors); - private ICollectionView _yarnwhiteshadesViewSource; - /// <summary> - /// Gets or sets the YarnWhiteShades View Source. - ///</summary> - public ICollectionView YarnWhiteShadesViewSource - { - get - { - return _yarnwhiteshadesViewSource; - } + YarnManufacturersViewSource = CreateCollectionView(YarnManufacturers); - set - { - _yarnwhiteshadesViewSource = value; RaisePropertyChanged(nameof(YarnWhiteShadesViewSource)); - } + YarnSubFamiliesViewSource = CreateCollectionView(YarnSubFamilies); - } + YarnTexturingsViewSource = CreateCollectionView(YarnTexturings); - /// <summary> - /// Initialize collection sources. - /// </summary> - public void InitCollectionSources() - { + YarnTypesViewSource = CreateCollectionView(YarnTypes); - SyncConfigurationsViewSource = CreateCollectionView(SyncConfigurations); + YarnWhiteShadesViewSource = CreateCollectionView(YarnWhiteShades); ActionLogsViewSource = CreateCollectionView(ActionLogs); @@ -3909,12 +3945,6 @@ namespace Tango.BL ColorCatalogsItemsRecipesViewSource = CreateCollectionView(ColorCatalogsItemsRecipes); - ColorProcessDataViewSource = CreateCollectionView(ColorProcessData); - - ColorProcessFactorsViewSource = CreateCollectionView(ColorProcessFactors); - - ColorProcessParametersViewSource = CreateCollectionView(ColorProcessParameters); - ColorSpacesViewSource = CreateCollectionView(ColorSpaces); ConfigurationsViewSource = CreateCollectionView(Configurations); @@ -4015,20 +4045,14 @@ namespace Tango.BL PublishedProcedureProjectsVersionsViewSource = CreateCollectionView(PublishedProcedureProjectsVersions); - RmlExtensionTestResultsViewSource = CreateCollectionView(RmlExtensionTestResults); - RmlsViewSource = CreateCollectionView(Rmls); - RmlsExtensionsViewSource = CreateCollectionView(RmlsExtensions); - RmlsSpoolsViewSource = CreateCollectionView(RmlsSpools); RolesViewSource = CreateCollectionView(Roles); RolesPermissionsViewSource = CreateCollectionView(RolesPermissions); - RubbingResultsViewSource = CreateCollectionView(RubbingResults); - SegmentsViewSource = CreateCollectionView(Segments); SitesViewSource = CreateCollectionView(Sites); @@ -4059,36 +4083,12 @@ namespace Tango.BL TechValvesViewSource = CreateCollectionView(TechValves); - TensileResultsViewSource = CreateCollectionView(TensileResults); - UsersViewSource = CreateCollectionView(Users); UsersRolesViewSource = CreateCollectionView(UsersRoles); WindingMethodsViewSource = CreateCollectionView(WindingMethods); - YarnApplicationsViewSource = CreateCollectionView(YarnApplications); - - YarnBrandsViewSource = CreateCollectionView(YarnBrands); - - YarnFamiliesViewSource = CreateCollectionView(YarnFamilies); - - YarnGlossLevelsViewSource = CreateCollectionView(YarnGlossLevels); - - YarnGroupsViewSource = CreateCollectionView(YarnGroups); - - YarnIndustrysectorsViewSource = CreateCollectionView(YarnIndustrysectors); - - YarnManufacturersViewSource = CreateCollectionView(YarnManufacturers); - - YarnSubFamiliesViewSource = CreateCollectionView(YarnSubFamilies); - - YarnTexturingsViewSource = CreateCollectionView(YarnTexturings); - - YarnTypesViewSource = CreateCollectionView(YarnTypes); - - YarnWhiteShadesViewSource = CreateCollectionView(YarnWhiteShades); - } } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs index 34384cb8f..5671e17a3 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs @@ -55,6 +55,9 @@ namespace Tango.DAL.Remote.DB public string COLOR_CATALOG_GUID { get; set; } public string COLOR_CATALOGS_ITEM_GUID { get; set; } public bool IS_TRANSPARENT { get; set; } + public Nullable<int> BEST_MATCH_R { get; set; } + public Nullable<int> BEST_MATCH_G { get; set; } + public Nullable<int> BEST_MATCH_B { get; set; } public virtual COLOR_CATALOGS COLOR_CATALOGS { get; set; } public virtual COLOR_CATALOGS_ITEMS COLOR_CATALOGS_ITEMS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_MATERIALS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_MATERIALS.cs index 9f08788ac..d54051db5 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_MATERIALS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_MATERIALS.cs @@ -25,6 +25,7 @@ namespace Tango.DAL.Remote.DB public System.DateTime LAST_UPDATED { get; set; } public string NAME { get; set; } public int CODE { get; set; } + public string DESCRIPTION { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<RML> RMLS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index 78b7b3fdf..ac31bd2b9 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -123,6 +123,9 @@ <Property Name="COLOR_CATALOG_GUID" Type="varchar" MaxLength="36" /> <Property Name="COLOR_CATALOGS_ITEM_GUID" Type="varchar" MaxLength="36" /> <Property Name="IS_TRANSPARENT" Type="bit" Nullable="false" /> + <Property Name="BEST_MATCH_R" Type="int" /> + <Property Name="BEST_MATCH_G" Type="int" /> + <Property Name="BEST_MATCH_B" Type="int" /> </EntityType> <EntityType Name="BTSR_APPLICATION_TYPES"> <Key> @@ -950,6 +953,7 @@ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" /> <Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" /> <Property Name="CODE" Type="int" Nullable="false" /> + <Property Name="DESCRIPTION" Type="nvarchar" MaxLength="100" /> </EntityType> <EntityType Name="MEDIA_PURPOSES"> <Key> @@ -4787,6 +4791,9 @@ <Property Name="COLOR_CATALOG_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="COLOR_CATALOGS_ITEM_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="IS_TRANSPARENT" Type="Boolean" Nullable="false" /> + <Property Name="BEST_MATCH_R" Type="Int32" /> + <Property Name="BEST_MATCH_G" Type="Int32" /> + <Property Name="BEST_MATCH_B" Type="Int32" /> <NavigationProperty Name="COLOR_CATALOGS" Relationship="RemoteModel.FK_BRUSH_STOPS_COLOR_CATALOGS" FromRole="BRUSH_STOPS" ToRole="COLOR_CATALOGS" /> <NavigationProperty Name="COLOR_CATALOGS_ITEMS" Relationship="RemoteModel.FK_BRUSH_STOPS_COLOR_CATALOGS_ITEMS" FromRole="BRUSH_STOPS" ToRole="COLOR_CATALOGS_ITEMS" /> <NavigationProperty Name="COLOR_SPACES" Relationship="RemoteModel.FK_BRUSH_STOPS_COLOR_SPACES" FromRole="BRUSH_STOPS" ToRole="COLOR_SPACES" /> @@ -5684,6 +5691,7 @@ <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" /> <Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" /> <Property Name="CODE" Type="Int32" Nullable="false" /> + <Property Name="DESCRIPTION" Type="String" MaxLength="100" FixedLength="false" Unicode="true" /> <NavigationProperty Name="RMLS" Relationship="RemoteModel.FK_RML_MEDIA_MATERIALS" FromRole="MEDIA_MATERIALS" ToRole="RML" /> </EntityType> <EntityType Name="MEDIA_PURPOSES"> @@ -7810,6 +7818,9 @@ <EntitySetMapping Name="BRUSH_STOPS"> <EntityTypeMapping TypeName="RemoteModel.BRUSH_STOPS"> <MappingFragment StoreEntitySet="BRUSH_STOPS"> + <ScalarProperty Name="BEST_MATCH_B" ColumnName="BEST_MATCH_B" /> + <ScalarProperty Name="BEST_MATCH_G" ColumnName="BEST_MATCH_G" /> + <ScalarProperty Name="BEST_MATCH_R" ColumnName="BEST_MATCH_R" /> <ScalarProperty Name="IS_TRANSPARENT" ColumnName="IS_TRANSPARENT" /> <ScalarProperty Name="COLOR_CATALOGS_ITEM_GUID" ColumnName="COLOR_CATALOGS_ITEM_GUID" /> <ScalarProperty Name="COLOR_CATALOG_GUID" ColumnName="COLOR_CATALOG_GUID" /> @@ -8682,6 +8693,7 @@ <EntitySetMapping Name="MEDIA_MATERIALS"> <EntityTypeMapping TypeName="RemoteModel.MEDIA_MATERIALS"> <MappingFragment StoreEntitySet="MEDIA_MATERIALS"> + <ScalarProperty Name="DESCRIPTION" ColumnName="DESCRIPTION" /> <ScalarProperty Name="CODE" ColumnName="CODE" /> <ScalarProperty Name="NAME" ColumnName="NAME" /> <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index 10bd85a35..b2979ab7f 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,94 +5,94 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="87"> - <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="40.25" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="4.5" PointY="70" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="61.25" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="4.5" PointY="64.125" /> - <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="15.75" PointY="17" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="33.25" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="13.375" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="6.75" PointY="37" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="24.25" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="10.125" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="55" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="49.5" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="48.25" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="20.125" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="27.5" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="6.75" PointY="62.5" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="44.25" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="24.375" /> - <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="11.25" PointY="73" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="4.5" PointY="33.375" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="6.75" PointY="32.75" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="67" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="31.5" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="27.375" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="24.5" /> - <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="8.25" /> - <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="5.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="10.5" PointY="47.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="12.75" PointY="50.125" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="44.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="6.75" PointY="57.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="7.5" PointY="76.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="9.75" PointY="55.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="10.5" PointY="77.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="12.75" PointY="54.125" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="13.5" PointY="46.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="15.75" PointY="55.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="43.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="9.75" PointY="51.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="57" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="9.5" PointY="81.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="11.75" PointY="64.375" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="6.75" PointY="40" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="9" PointY="37.125" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="13.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="16.75" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="20.75" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="12" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="16.5" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="2.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="28.5" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="6.75" PointY="72.875" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="9" PointY="61.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="35" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="30.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="16.5" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="36.375" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="6.75" PointY="29.25" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="3.125" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="9" PointY="85.5" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="46.875" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="49.875" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="2.75" PointY="8" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="5" PointY="8.125" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="14.625" /> - <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="20.125" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="9" PointY="72.375" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="11.25" PointY="69.5" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="13.5" PointY="20.5" /> - <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="3.5" /> - <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="14.25" PointY="29.875" /> - <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="16.625" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="8" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="40" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="13.75" PointY="9.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="13.75" PointY="12.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="37" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="15.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="15.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="15.75" PointY="7.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="15.75" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="17.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="17.75" PointY="5.75" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="2.125" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="11.25" PointY="3.5" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="13.25" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="14.375" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="58.5" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="76.625" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="69.375" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="79.5" /> + <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="9.375" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="15.75" PointY="18.375" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="37.75" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="28.75" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="9" PointY="9.125" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="18" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="22.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="7.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="6" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="17.875" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="37.75" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="72" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="62.625" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="34.625" /> + <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="8.25" PointY="78.5" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="6.75" PointY="84.625" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="9" PointY="84.125" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="66.5" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="89.125" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="25.875" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="14.875" /> + <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="29.25" /> + <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="2.75" PointY="12.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="9.5" PointY="60.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="11.75" PointY="65.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="82.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="3.75" PointY="77.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="6.5" PointY="62.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="8.75" PointY="64.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="9.5" PointY="94.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="11.75" PointY="69.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="6.5" PointY="58.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="8.75" PointY="71" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="8.5" PointY="98.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="10.75" PointY="79.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="72.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="1.5" PointY="54.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="3.75" PointY="67.75" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="9" PointY="44.875" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="11.25" PointY="37.875" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="15.75" PointY="2.375" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="18.5" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="34.875" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="4" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="14.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="32.75" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="82.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="66.75" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="49.5" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="31.875" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="17.75" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="11.875" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="9" PointY="41.5" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="60.5" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="7.125" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="48.625" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="51.625" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="10.75" PointY="2.5" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="13" PointY="2.75" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="16.375" /> + <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="25.875" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="11" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="11.125" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="13.5" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="6" PointY="14.125" /> + <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="8.25" PointY="5.625" /> + <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="8.25" PointY="22.375" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="12.5" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="43" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="14.375" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="17.75" PointY="2.375" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="11.25" PointY="54.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="17.75" PointY="7.375" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="11.375" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="17.75" PointY="14.375" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="17.75" PointY="17.375" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="19.75" PointY="2.375" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="19.75" PointY="7.375" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="25.75" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="30.125" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="31.5" /> <AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs index cefdbbfd6..29c260563 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs @@ -282,7 +282,10 @@ namespace Tango.SharedUI.Controls private void OnSelectedIndexChanged() { - SelectedElement = Elements[SelectedIndex > Elements.Count - 1 ? 0 : SelectedIndex]; + if (Elements.Count > 0 && SelectedIndex > -1) + { + SelectedElement = Elements[SelectedIndex > Elements.Count - 1 ? 0 : SelectedIndex]; + } } #endregion diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs index 18fb0726f..ad185f1a3 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs @@ -117,7 +117,14 @@ namespace Tango.Touch.Controls public static readonly DependencyProperty UpdateBindingOnlyWhenFocusedProperty = DependencyProperty.Register("UpdateBindingOnlyWhenFocused", typeof(bool), typeof(TouchNumericTextBox), new PropertyMetadata(false)); - + public virtual bool HasError + { + get + { + return Validation.GetHasError(this); + } + } + public override void OnApplyTemplate() { @@ -161,13 +168,16 @@ namespace Tango.Touch.Controls value = Math.Round(value, 0); } - if (value < Minimum) - { - value = Minimum; - } - else if (value > Maximum) + if (Maximum > Minimum) { - value = Maximum; + if (value < Minimum) + { + value = Minimum; + } + else if (value > Maximum) + { + value = Maximum; + } } } diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml index d347480d6..f26e53e73 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml @@ -8,8 +8,8 @@ xmlns:local="clr-namespace:Tango.Touch.Controls"> <ResourceDictionary.MergedDictionaries> - <!--<ResourceDictionary Source="../Resources/Colors.xaml" />--> - <components:SharedResourceDictionary Source="../Resources/Colors.xaml" /> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + <!--<components:SharedResourceDictionary Source="../Resources/Colors.xaml" />--> <components:SharedResourceDictionary Source="../Resources/Fonts.xaml" /> </ResourceDictionary.MergedDictionaries> @@ -40,8 +40,8 @@ BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" keyboard:KeyboardView.Container="{TemplateBinding KeyboardContainer}"> <DockPanel> - <Canvas DockPanel.Dock="Bottom" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=(Validation.HasError),Converter={StaticResource BooleanToVisibilityConverter}}"> - <TextBlock FontSize="12" Foreground="{StaticResource TangoValidationErrorBrush}" Margin="0 5 0 0" Text="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=(Validation.Errors).CurrentItem.ErrorContent}"></TextBlock> + <Canvas DockPanel.Dock="Bottom" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=HasError,Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock FontSize="12" Foreground="{StaticResource TangoValidationErrorBrush}" Margin="0 5 0 0" Text="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=(Validation.Errors)/ErrorContent}"></TextBlock> </Canvas> <DockPanel> <Grid DockPanel.Dock="Bottom" Height="2"> @@ -72,7 +72,7 @@ </BeginStoryboard> </DataTrigger.ExitActions> </DataTrigger> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=(Validation.HasError)}" Value="True"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=HasError}" Value="True"> <Setter Property="Fill" Value="{StaticResource TangoValidationErrorBrush}"></Setter> <Setter Property="RenderTransform"> <Setter.Value> diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchTextBox.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchTextBox.xaml index dcb52859e..c95c87782 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchTextBox.xaml +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchTextBox.xaml @@ -8,7 +8,8 @@ xmlns:local="clr-namespace:Tango.Touch.Controls"> <ResourceDictionary.MergedDictionaries> - <components:SharedResourceDictionary Source="../Resources/Colors.xaml" /> + <!--<components:SharedResourceDictionary Source="../Resources/Colors.xaml" />--> + <ResourceDictionary Source="../Resources/Colors.xaml" /> <ResourceDictionary> <converters:StringNullOrEmptyToBooleanConverter x:Key="StringNullOrEmptyToBooleanConverter" /> @@ -39,7 +40,7 @@ <DockPanel> <Border DockPanel.Dock="Bottom" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchTextBox},Path=(Validation.HasError),Converter={StaticResource BooleanToVisibilityConverter}}"> <Canvas> - <TextBlock FontSize="12" Width="{Binding RelativeSource={RelativeSource AncestorType=Border},Path=ActualWidth}" Foreground="{StaticResource TangoValidationErrorBrush}" Margin="0 5 0 0" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource AncestorType=local:TouchTextBox},Path=(Validation.Errors).CurrentItem.ErrorContent}"></TextBlock> + <TextBlock FontSize="12" Width="{Binding RelativeSource={RelativeSource AncestorType=Border},Path=ActualWidth}" Foreground="{StaticResource TangoValidationErrorBrush}" Margin="0 5 0 0" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource AncestorType=local:TouchTextBox},Path=(Validation.Errors)/ErrorContent}"></TextBlock> </Canvas> </Border> <DockPanel> diff --git a/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml b/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml index df917b20e..f8db0094f 100644 --- a/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml +++ b/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml @@ -21,6 +21,7 @@ <sys:Double x:Key="TangoMessageBoxButtonFontSize">22</sys:Double> <sys:Double x:Key="TangoExpanderHeaderFontSize">23</sys:Double> + <sys:Double x:Key="TangoDialogFontSize">23</sys:Double> <sys:Double x:Key="TangoExpanderItemFontSize">21</sys:Double> <sys:Double x:Key="TangoComboBoxTitleFontSize">26</sys:Double> diff --git a/Software/Visual_Studio/Tango.Touch/Styles/TouchExpander.xaml b/Software/Visual_Studio/Tango.Touch/Styles/TouchExpander.xaml new file mode 100644 index 000000000..d61203e3b --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Styles/TouchExpander.xaml @@ -0,0 +1,107 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:controls="clr-namespace:Tango.Touch.Controls" + xmlns:local="clr-namespace:Tango.Touch.Styles"> + + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + </ResourceDictionary.MergedDictionaries> + + <Style x:Key="TouchRoundedExpander" TargetType="{x:Type controls:TouchExpander}"> + <Setter Property="Padding" Value="10"></Setter> + <Setter Property="CornerRadius" Value="20"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type controls:TouchExpander}"> + <controls:TouchDropShadowBorder Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" CornerRadius="{TemplateBinding CornerRadius}"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + </Grid.RowDefinitions> + + <DockPanel Grid.Row="0"> + <controls:TouchToggleButton CornerRadius="50" RenderTransformOrigin="0.5,0.5" Background="Transparent" EnableDropShadow="False" Width="60" Height="60" DockPanel.Dock="Right" IsChecked="{Binding RelativeSource={RelativeSource AncestorType=controls:TouchExpander},Path=IsExpanded,Mode=TwoWay}"> + <controls:TouchToggleButton.RenderTransform> + <RotateTransform x:Name="Rotate" /> + </controls:TouchToggleButton.RenderTransform> + <controls:TouchToggleButton.Triggers> + <EventTrigger RoutedEvent="ToggleButton.Checked"> + <EventTrigger.Actions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetName="Rotate" Storyboard.TargetProperty="Angle" Duration="00:00:0.2" To="360" /> + </Storyboard> + </BeginStoryboard> + </EventTrigger.Actions> + </EventTrigger> + <EventTrigger RoutedEvent="ToggleButton.Unchecked"> + <EventTrigger.Actions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetName="Rotate" Storyboard.TargetProperty="Angle" Duration="00:00:0.2" To="0" /> + </Storyboard> + </BeginStoryboard> + </EventTrigger.Actions> + </EventTrigger> + </controls:TouchToggleButton.Triggers> + <controls:TouchToggleButton.CheckedContent> + <Grid> + <controls:TouchIcon Icon="ChevronDown" Foreground="{StaticResource TangoExpanderIconForegroundBrush}" Width="12" Height="12" Background="Transparent" /> + </Grid> + </controls:TouchToggleButton.CheckedContent> + <Grid> + <controls:TouchIcon Icon="ChevronUpSolid" Foreground="{StaticResource TangoExpanderIconForegroundBrush}" Width="12" Height="12" /> + </Grid> + </controls:TouchToggleButton> + + <ToggleButton IsChecked="{Binding RelativeSource={RelativeSource AncestorType=controls:TouchExpander},Path=IsExpanded,Mode=TwoWay}"> + <ToggleButton.Template> + <ControlTemplate TargetType="ToggleButton"> + <ContentPresenter/> + </ControlTemplate> + </ToggleButton.Template> + <Border Background="Transparent"> + <ContentPresenter Content="{TemplateBinding Header}" /> + </Border> + </ToggleButton> + </DockPanel> + + <Grid Grid.Row="1"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="LayoutTransform"> + <Setter.Value> + <ScaleTransform x:Name="scaleTransform" ScaleX="1" ScaleY="0" /> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=controls:TouchExpander},Path=IsExpanded}" Value="True"> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="(Grid.LayoutTransform).(ScaleTransform.ScaleY)" Duration="00:00:0.2" To="1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="(Grid.LayoutTransform).(ScaleTransform.ScaleY)" Duration="00:00:0.2" To="0" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <ContentPresenter Content="{TemplateBinding Content}" /> + </Grid> + </Grid> + </controls:TouchDropShadowBorder> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Styles/TouchNumericUpDownControl.xaml b/Software/Visual_Studio/Tango.Touch/Styles/TouchNumericUpDownControl.xaml new file mode 100644 index 000000000..f50e04742 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Styles/TouchNumericUpDownControl.xaml @@ -0,0 +1,98 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:controls="clr-namespace:Tango.Touch.Controls" + xmlns:local="clr-namespace:Tango.Touch.Styles"> + + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + <ResourceDictionary Source="../Resources/Fonts.xaml" /> + <ResourceDictionary Source="../Styles/TouchButton.xaml" /> + <ResourceDictionary Source="../Styles/TouchIconButton.xaml" /> + + <ResourceDictionary> + <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> + <converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" /> + </ResourceDictionary> + </ResourceDictionary.MergedDictionaries> + + <SolidColorBrush x:Key="TransparentBrush" Color="Transparent" /> + + <Style x:Key="TouchNumericMiddleUpDownControl" TargetType="{x:Type controls:TouchNumericUpDownConrol}"> + <Setter Property="Background" Value="{StaticResource TangoNotificationBarMaskBrush}"/> + <Setter Property="Height" Value="32"/> + <Setter Property="BorderBrush" Value="Transparent"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="controls:TouchNumericUpDownConrol"> + <StackPanel Orientation="Horizontal"> + <StackPanel.Resources> + <Style x:Key="emptyButton" TargetType="RepeatButton" > + <Setter Property="Background" Value="Transparent" /> + <Setter Property="Focusable" Value="False"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoMidAccentBrush}" /> + <Setter Property="Stylus.IsPressAndHoldEnabled" Value="False"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="RepeatButton"> + <Border Margin="{TemplateBinding Padding}" Background="{TemplateBinding Background}"> + <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" /> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <Trigger Property="RepeatButton.IsPressed" Value="True"> + <Setter Property="Background" Value="Transparent" /> + <Setter Property="Foreground" Value="{StaticResource TangoKeyboardKeyLightBrush}" /> + </Trigger> + <EventTrigger RoutedEvent="RepeatButton.TouchDown"> + <EventTrigger.Actions> + <BeginStoryboard> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TransparentBrush}"></DiscreteObjectKeyFrame> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyLightTextBrush}"></DiscreteObjectKeyFrame> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </BeginStoryboard> + </EventTrigger.Actions> + </EventTrigger> + <EventTrigger RoutedEvent="RepeatButton.TouchLeave"> + <EventTrigger.Actions> + <BeginStoryboard> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TransparentBrush}"></DiscreteObjectKeyFrame> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyDarkTextBrush}"></DiscreteObjectKeyFrame> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </BeginStoryboard> + </EventTrigger.Actions> + </EventTrigger> + </Style.Triggers> + </Style> + </StackPanel.Resources> + <RepeatButton Background="Transparent" Padding="2" Style="{StaticResource emptyButton}" Command="{Binding Path=DecrementCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=controls:TouchNumericUpDownConrol}, Mode=TwoWay}" VerticalAlignment="Center"> + <controls:TouchIcon Icon="Minus" Width="16" Height="3" VerticalAlignment="Center"/> + </RepeatButton> + + <controls:TouchNumericTextBox x:Name="Number_PART" Margin="16 4 0 0" FontSize="20" HorizontalContentAlignment="Center" VerticalAlignment="Center" BorderBrush="{TemplateBinding BorderBrush}" VerticalContentAlignment="Center" UpdateBindingOnlyWhenFocused="True" + Value="{Binding Value,RelativeSource={RelativeSource AncestorType=controls:TouchNumericUpDownConrol}, Mode=TwoWay}" Minimum="{Binding MinValue,RelativeSource={RelativeSource AncestorType=controls:TouchNumericUpDownConrol}}" Maximum="{Binding MaxValue,RelativeSource={RelativeSource AncestorType=controls:TouchNumericUpDownConrol}, Mode=TwoWay}"/> + + + <RepeatButton Background="Transparent" Margin="16 0 0 0" Padding="4" Style="{StaticResource emptyButton}" Command="{Binding Path=IncrementCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=controls:TouchNumericUpDownConrol}, Mode=TwoWay}" VerticalAlignment="Center"> + <controls:TouchIcon Icon="Plus" Width="16" VerticalAlignment="Center"/> + </RepeatButton> + + </StackPanel> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj index d7a25aeff..ae5ac91e3 100644 --- a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj +++ b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj @@ -147,6 +147,14 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Styles\TouchExpander.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Styles\TouchNumericUpDownControl.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="TouchColorPickerControls\MultiRangeSlider.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -480,7 +488,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml index 132082d81..c2c6c0bc9 100644 --- a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml +++ b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml @@ -60,6 +60,8 @@ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchIconButton.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchListBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchCheckBox.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchExpander.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchNumericUpDownControl.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanel.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerSlider.xaml"/> diff --git a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/TouchColorPickerCMYKControl.cs b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/TouchColorPickerCMYKControl.cs index c32310897..39eab1984 100644 --- a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/TouchColorPickerCMYKControl.cs +++ b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/TouchColorPickerCMYKControl.cs @@ -283,7 +283,7 @@ namespace Tango.Touch.Controls TouchColorPickerCMYKControl TouchColorPickerCMYKControl = (TouchColorPickerCMYKControl)d; if (TouchColorPickerCMYKControl != null) { - TouchColorPickerCMYKControl.OnCyanPropertyChanged((double)e.OldValue, (double)e.NewValue); + TouchColorPickerCMYKControl.OnCyanPropertyChanged((double)e.OldValue, Math.Round((double)e.NewValue, 2, MidpointRounding.AwayFromZero)); } } @@ -300,7 +300,7 @@ namespace Tango.Touch.Controls TouchColorPickerCMYKControl TouchColorPickerCMYKControl = (TouchColorPickerCMYKControl)d; if (TouchColorPickerCMYKControl != null) { - TouchColorPickerCMYKControl.OnMagentaLabPropertyChanged((double)e.OldValue, (double)e.NewValue); + TouchColorPickerCMYKControl.OnMagentaLabPropertyChanged((double)e.OldValue, Math.Round((double)e.NewValue, 2, MidpointRounding.AwayFromZero)); } } @@ -317,7 +317,7 @@ namespace Tango.Touch.Controls TouchColorPickerCMYKControl TouchColorPickerCMYKControl = (TouchColorPickerCMYKControl)d; if (TouchColorPickerCMYKControl != null) { - TouchColorPickerCMYKControl.OnYellowPropertyChanged((double)e.OldValue, (double)e.NewValue); + TouchColorPickerCMYKControl.OnYellowPropertyChanged((double)e.OldValue, Math.Round((double)e.NewValue, 2, MidpointRounding.AwayFromZero)); } } private void OnYellowPropertyChanged(double oldValue, double newValue) @@ -333,7 +333,7 @@ namespace Tango.Touch.Controls TouchColorPickerCMYKControl TouchColorPickerCMYKControl = (TouchColorPickerCMYKControl)d; if (TouchColorPickerCMYKControl != null) { - TouchColorPickerCMYKControl.OnKeyPropertyChanged((double)e.OldValue, (double)e.NewValue); + TouchColorPickerCMYKControl.OnKeyPropertyChanged((double)e.OldValue, Math.Round((double)e.NewValue, 2, MidpointRounding.AwayFromZero)); } } private void OnKeyPropertyChanged(double oldValue, double newValue) @@ -401,7 +401,7 @@ namespace Tango.Touch.Controls { SelectedColor = ConvertCMYKToRGBColor(e.NewValue / 100, _magentaColorSlider.ColorValue / 100, _yellowColorSlider.ColorValue / 100, _keyColorSlider.ColorValue / 100); //_cyanColorSlider.SelectedColor = SelectedColor; - Cyan = Math.Round(e.NewValue, 2, MidpointRounding.AwayFromZero); + Cyan = e.NewValue; _cyanColorSlider.SelectedColor = GetRelativeColor(_cyanColorSlider.PickerBrush.GradientStops, GetOffset(e.NewValue, _cyanColorSlider.MinValue, _cyanColorSlider.MaxValue)); @@ -423,7 +423,7 @@ namespace Tango.Touch.Controls { SelectedColor = ConvertCMYKToRGBColor(_cyanColorSlider.ColorValue / 100, e.NewValue / 100, _yellowColorSlider.ColorValue / 100, _keyColorSlider.ColorValue / 100); //_magentaColorSlider.SelectedColor = SelectedColor; - Magenta = Math.Round(e.NewValue, 2, MidpointRounding.AwayFromZero); + Magenta = e.NewValue; _magentaColorSlider.SelectedColor = GetRelativeColor(_magentaColorSlider.PickerBrush.GradientStops, GetOffset(e.NewValue, _magentaColorSlider.MinValue, _magentaColorSlider.MaxValue)); @@ -445,7 +445,7 @@ namespace Tango.Touch.Controls { SelectedColor = ConvertCMYKToRGBColor(_cyanColorSlider.ColorValue / 100, _magentaColorSlider.ColorValue / 100, e.NewValue / 100, _keyColorSlider.ColorValue / 100); //_yellowColorSlider.SelectedColor = SelectedColor; - Yellow = Math.Round(e.NewValue, 2, MidpointRounding.AwayFromZero); + Yellow = e.NewValue; _yellowColorSlider.SelectedColor = GetRelativeColor(_yellowColorSlider.PickerBrush.GradientStops, GetOffset(e.NewValue, _yellowColorSlider.MinValue, _yellowColorSlider.MaxValue)); @@ -467,7 +467,7 @@ namespace Tango.Touch.Controls { SelectedColor = ConvertCMYKToRGBColor(_cyanColorSlider.ColorValue / 100, _magentaColorSlider.ColorValue / 100, _yellowColorSlider.ColorValue / 100, e.NewValue / 100); //_keyColorSlider.SelectedColor = SelectedColor; - Key = Math.Round(e.NewValue, 2, MidpointRounding.AwayFromZero); + Key = e.NewValue; _keyColorSlider.SelectedColor = GetRelativeColor(_keyColorSlider.PickerBrush.GradientStops, GetOffset(e.NewValue, _keyColorSlider.MinValue, _keyColorSlider.MaxValue)); |
