From 516ee0b585d84bda4fcc3c31aa44d1e3b7da5e93 Mon Sep 17 00:00:00 2001 From: Victoria Plitt Date: Thu, 28 Jul 2022 18:33:11 +0300 Subject: MS. RML extension. Added table washing test results , GUI and database. Related Work Items: #6660 --- .../Models/WashingMaterialColorModel.cs | 255 +++++++++ .../Tango.MachineStudio.ThreadExtensions.csproj | 5 + .../ViewModels/TestResultViewVM.cs | 14 + .../ViewModels/TestResultsViewVM.cs | 64 ++- .../Views/TestResultsView.xaml | 602 ++++++++++++--------- .../Views/TestResultsView.xaml.cs | 13 + 6 files changed, 698 insertions(+), 255 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Models/WashingMaterialColorModel.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Models/WashingMaterialColorModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Models/WashingMaterialColorModel.cs new file mode 100644 index 000000000..868ce1d58 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Models/WashingMaterialColorModel.cs @@ -0,0 +1,255 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.MachineStudio.ThreadExtensions.Models +{ + public class WashingMaterialColorModel : ExtendedObject + { + public class MaterialColorValueModel: ExtendedObject + { + private string _materialName; + + public string MaterialName + { + get { return _materialName; } + set + { + _materialName = value; + RaisePropertyChangedAuto(); + } + } + + private double? _colorValue; + + public double? ColorValue + { + get { return _colorValue; } + set { + _colorValue= value; + RaisePropertyChangedAuto(); + } + } + + public string RmlExtensionTestWashingResultGUID { get; set; } + } + + private int _index; + + public int Index + { + get { return _index; } + set { _index = value; } + } + + private int _color; + + public int Color + { + get { return _color; } + set + { + _color = value; + RaisePropertyChangedAuto(); + } + } + + private List _colorValues; + + public List ColorValues + { + get { return _colorValues; } + set { _colorValues = value; + RaisePropertyChangedAuto(); } + } + + + public double? WashingValue1 + { + get { + if (ColorValues.Count >= 1) + return ColorValues[0].ColorValue; + return null; + } + set { + if (ColorValues.Count >= 1) + ColorValues[0].ColorValue = value; + RaisePropertyChangedAuto(); + } + } + + public double? WashingValue2 + { + get + { + if (ColorValues.Count > 1) + return ColorValues[1].ColorValue; + return null; + } + set + { + if (ColorValues.Count > 1) + ColorValues[1].ColorValue = value; + RaisePropertyChangedAuto(); + } + } + + public double? WashingValue3 + { + get + { + if (ColorValues.Count > 2) + return ColorValues[2].ColorValue; + return null; + } + set + { + if (ColorValues.Count > 2) + ColorValues[2].ColorValue = value; + RaisePropertyChangedAuto(); + } + } + + public double? WashingValue4 + { + get + { + if (ColorValues.Count > 3) + return ColorValues[3].ColorValue; + return null; + } + set + { + if (ColorValues.Count > 3) + ColorValues[3].ColorValue = value; + RaisePropertyChangedAuto(); + } + } + + public double? WashingValue5 + { + get + { + if (ColorValues.Count > 4) + return ColorValues[4].ColorValue; + return null; + } + set + { + if (ColorValues.Count > 4) + ColorValues[4].ColorValue = value; + RaisePropertyChangedAuto(); + } + } + + public double? WashingValue6 + { + get + { + if (ColorValues.Count > 5) + return ColorValues[5].ColorValue; + return null; + } + set + { + if (ColorValues.Count > 5) + ColorValues[5].ColorValue = value; + RaisePropertyChangedAuto(); + } + } + + public double? WashingValue7 + { + get + { + if (ColorValues.Count > 6) + return ColorValues[6].ColorValue; + return null; + } + set + { + if (ColorValues.Count > 6) + ColorValues[6].ColorValue = value; + RaisePropertyChangedAuto(); + } + } + + public string Header1 + { + get + { + if (ColorValues.Count >= 1) + return ColorValues[0].MaterialName; + return null; + } + } + public string Header2 + { + get + { + if (ColorValues.Count > 1) + return ColorValues[1].MaterialName; + return null; + } + } + public string Header3 + { + get + { + if (ColorValues.Count > 2) + return ColorValues[2].MaterialName; + return null; + } + } + public string Header4 + { + get + { + if (ColorValues.Count > 3) + return ColorValues[3].MaterialName; + return null; + } + } + public string Header5 + { + get + { + if (ColorValues.Count > 4) + return ColorValues[4].MaterialName; + return null; + } + } + public string Header6 + { + get + { + if (ColorValues.Count > 5) + return ColorValues[5].MaterialName; + return null; + } + } + public string Header7 + { + get + { + if (ColorValues.Count > 6) + return ColorValues[6].MaterialName; + return null; + } + } + + public WashingMaterialColorModel() + { + ColorValues = new List(); + } + + public void AddMaterial(string rmlExtensionTestWashingResultGuid, string materialName, double? colorValue) + { + ColorValues.Add(new MaterialColorValueModel(){ MaterialName = materialName, ColorValue = colorValue, RmlExtensionTestWashingResultGUID = rmlExtensionTestWashingResultGuid}); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Tango.MachineStudio.ThreadExtensions.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Tango.MachineStudio.ThreadExtensions.csproj index f8d6419f6..000ab221a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Tango.MachineStudio.ThreadExtensions.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Tango.MachineStudio.ThreadExtensions.csproj @@ -117,6 +117,7 @@ + @@ -258,6 +259,10 @@ {b60c695c-61e8-4091-b506-4c45349c04aa} Tango.ColorCalibration + + {a2f5af44-29ff-45d6-9d25-ecda5cce88b5} + Tango.ColorPicker + {a34ee0f0-649d-41c8-8489-b6f1cc6924ee} Tango.Core diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultViewVM.cs index 68a886f99..624ee7216 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultViewVM.cs @@ -18,6 +18,7 @@ using Tango.Core.Commands; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.ThreadExtensions.Models; using Tango.SharedUI; +using System.Collections.ObjectModel; namespace Tango.MachineStudio.ThreadExtensions.ViewModels { @@ -66,6 +67,18 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels RaisePropertyChanged(nameof(TestResultsFiles)); } } + + private ObservableCollection _colorsToMaterialCollection; + + public ObservableCollection ColorsToMaterialCollection + { + get { return _colorsToMaterialCollection; } + set { _colorsToMaterialCollection = value; + RaisePropertyChangedAuto(); + } + } + + public List TestResultsFiles { @@ -91,6 +104,7 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels DownLoadFileCommand = new RelayCommand(DownLoadFile); DeleteCommand = new RelayCommand(DeleteFile); DownLoadAllCommand = new RelayCommand(DownLoadAllFiles); + } #region TestResultsFiles diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultsViewVM.cs index cc1bba0e7..2dd444f0f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultsViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/TestResultsViewVM.cs @@ -275,7 +275,7 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels ResultTabs.Clear(); if(WashingTestMaterials == null) - WashingTestMaterials = _active_context.WashingTestMaterials.ToList(); + WashingTestMaterials = _active_context.WashingTestMaterials.OrderBy(x=> x.Name).ToList(); LogManager.Log("Loading selected test results..."); @@ -336,25 +336,54 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels CreateWashingResult(newtab); + return newtab; } private void CreateWashingResult(TestResultViewVM testresultViewVM) { - if(testresultViewVM.TestResult.RmlExtensionTestWashingResults != null) - return; - - var whashingresults = new SynchronizedObservableCollection(); - foreach (var material in WashingTestMaterials) + if(testresultViewVM.TestResult.RmlExtensionTestWashingResults != null && testresultViewVM.TestResult.RmlExtensionTestWashingResults.Count > 0 ) { - foreach (WashingResultColor color in Enum.GetValues(typeof(WashingResultColor))) + var collection = new ObservableCollection(); + Dictionary colorDictionary = new Dictionary(); + List< RmlExtensionTestWashingResult > washingResultsOrdersByColor = testresultViewVM.TestResult.RmlExtensionTestWashingResults.OrderBy(x=>x.IndexRow).ThenBy(c => c.WashingTestMaterials != null ? c.WashingTestMaterials.Name : c.WashingTestMaterialsGuid).ToList(); + foreach (var res in washingResultsOrdersByColor) { - whashingresults.Add(new RmlExtensionTestWashingResult() { RmlExtensionTestResultsGuid = testresultViewVM.TestResult.Guid, WashingTestMaterialsGuid = material.Guid, Color = (int)color }); + WashingMaterialColorModel wmodel = null; + if(false == colorDictionary.TryGetValue(res.IndexRow, out wmodel)) + { + wmodel = new WashingMaterialColorModel() { Color = res.Color }; + colorDictionary.Add(res.IndexRow, wmodel); + collection.Add(wmodel); + } + wmodel.AddMaterial(res.Guid, res.GetMaterialName, res.WashingValue); } + testresultViewVM.ColorsToMaterialCollection = collection; } - testresultViewVM.TestResult.RmlExtensionTestWashingResults = whashingresults; + else + { + var whashingresults = new SynchronizedObservableCollection(); + var collecction = new ObservableCollection(); + for (int index_row = 0; index_row < 6; index_row++) + { + var model = new WashingMaterialColorModel() { Color = -1 }; + + foreach (var material in WashingTestMaterials) + { + var rmlExtensionTestWashingResult = new RmlExtensionTestWashingResult() { RmlExtensionTestResultsGuid = testresultViewVM.TestResult.Guid, WashingTestMaterialsGuid = material.Guid, Color = -1, IndexRow = index_row }; + model.AddMaterial(rmlExtensionTestWashingResult.Guid, material.Name, null); + rmlExtensionTestWashingResult.WashingTestMaterials = material; + whashingresults.Add(rmlExtensionTestWashingResult); + + } + collecction.Add( model); + } + testresultViewVM.ColorsToMaterialCollection = collecction; + testresultViewVM.TestResult.RmlExtensionTestWashingResults = whashingresults; + } } + #endregion #region Save @@ -398,6 +427,22 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels } } + public void ApplyToWashingResults(TestResultViewVM testresultViewVM) + { + foreach ( var model in testresultViewVM.ColorsToMaterialCollection) + { + foreach( var colormodel in model.ColorValues) + { + var result = testresultViewVM.TestResult.RmlExtensionTestWashingResults.FirstOrDefault(x=> x.Guid == colormodel.RmlExtensionTestWashingResultGUID); + if( result != null) + { + result.Color = model.Color; + result.WashingValue = colormodel.ColorValue; + } + } + } + } + public async void Save() { if (String.IsNullOrEmpty(SelectedMachineGUID)) @@ -412,6 +457,7 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels { foreach (var tab in ResultTabs) { + ApplyToWashingResults(tab); tab.TestResult.LastUpdated = DateTime.UtcNow; } _active_context.SaveChanges(); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml index 0aceebc9a..77cac3648 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml @@ -12,10 +12,12 @@ xmlns:localconverters="clr-namespace:Tango.MachineStudio.ThreadExtensions.Converters" xmlns:global="clr-namespace:Tango.MachineStudio.ThreadExtensions" xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:colorPicker="clr-namespace:Tango;assembly=Tango.ColorPicker" + xmlns:components="clr-namespace:Tango.SharedUI.Components;assembly=Tango.SharedUI" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:fa="http://schemas.fontawesome.io/icons/" mc:Ignorable="d" - d:DesignHeight="950" d:DesignWidth="1200" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}" FontSize="16"> + d:DesignHeight="950" d:DesignWidth="1200" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}" FontSize="14"> @@ -23,7 +25,8 @@ - + + + + + + + + + + + @@ -416,68 +413,146 @@ - + - - - + + + + + + + + + + + + + COLOR + + + + + + + + + + COLOR + + + + + + + + - + + + + + + - + - + + + + + + - + - + + + + + + + + + + + + + + + + + + + + - + - + + + + + + - + - + + + + + + - + - + + + + + + - + @@ -486,93 +561,155 @@ - - - - Tension through the thread path - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tension through the thread path + - Tension in Zone + Tension in Zone - Tensiometer (gr) + Tensiometer (gr) - Tension in Zone + Tension in Zone - MS + MS - Head + Head - - + + - BTSR + BTSR - - + + - After dryer + After dryer - - + + - Puller tension + Puller tension - - + + - Winder + Winder - - + + - Winder Exit Tension + Winder Exit Tension - - + + - - Mechanical properties - + + Mechanical properties + - - + + @@ -607,12 +744,13 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml.cs index a75dc5d09..20be37970 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/Views/TestResultsView.xaml.cs @@ -52,5 +52,18 @@ namespace Tango.MachineStudio.ThreadExtensions.Views } } } + private void Popup_MouseDown(object sender, MouseButtonEventArgs e) + { + e.Handled = true; + } + private void ColorCanvas_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs e) + { + if (e.NewValue.HasValue) + { + //_vm.OnSelectedBrushColorChanged((Color)e.NewValue); + } + } + } } + -- cgit v1.3.1