diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs | 195 |
1 files changed, 105 insertions, 90 deletions
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 fb4932a2e..bfc7d2234 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 @@ -28,7 +28,7 @@ namespace Tango.PPC.Jobs.Models #region Properties public string GUID { get; set; } - + protected String _name; /// <summary> /// Gets or sets the SegmentModel name. @@ -85,7 +85,7 @@ namespace Tango.PPC.Jobs.Models return SegmentsGroupModel != null; } } - + public void LengthBeforeChange(double value) { _lastLength = Length; @@ -104,7 +104,7 @@ namespace Tango.PPC.Jobs.Models get { return _weight; } set { - if(_weight != value) + if (_weight != value) { _weight = value; OnWeightChanged(); @@ -139,8 +139,11 @@ namespace Tango.PPC.Jobs.Models public bool IsInterSegment { get { return _isInterSegment; } - set { _isInterSegment = value; - RaisePropertyChangedAuto(); } + set + { + _isInterSegment = value; + RaisePropertyChangedAuto(); + } } protected Boolean _enableintersegment; @@ -153,7 +156,7 @@ namespace Tango.PPC.Jobs.Models { _enableintersegment = value; RaisePropertyChangedAuto(); - + } RaisePropertyChanged(nameof(LengthWithInterSegment)); RaisePropertyChanged(nameof(InterSegmentLength)); @@ -200,7 +203,7 @@ namespace Tango.PPC.Jobs.Models /// Gets or sets the segmentbase brush stops. /// </summary> - public SynchronizedObservableCollection<BrushStopModel> BrushStops + public SynchronizedObservableCollection<BrushStopModel> BrushStops { get { @@ -247,11 +250,12 @@ namespace Tango.PPC.Jobs.Models [JsonIgnore] public bool IsOffsetChanged { get; set; } - + public double LeftOffset { - get { return FirstBrushStop != null? FirstBrushStop.OffsetPercent : 0; } - set { + get { return FirstBrushStop != null ? FirstBrushStop.OffsetPercent : 0; } + set + { if (FirstBrushStop != null && FirstBrushStop.OffsetPercent != value) { FirstBrushStop.OffsetPercent = value; @@ -270,13 +274,14 @@ namespace Tango.PPC.Jobs.Models public double LeftOffsetChangeComleted { get { return _leftOffsetChangeComleted; } - set { - if(_leftOffsetChangeComleted != value) + set + { + if (_leftOffsetChangeComleted != value) { _leftOffsetChangeComleted = value; RaisePropertyChangedAuto(); UndoRedoManager.Instance.InsertAndExecuteCommand(new ChangeOffsetCommand(this, LeftOffsetStartChanging, _leftOffsetChangeComleted, OffsetType.Left)); - + } } } @@ -297,12 +302,13 @@ namespace Tango.PPC.Jobs.Models public double MiddleOffset { get { return (MiddleBrushStop != null) ? MiddleBrushStop.OffsetPercent : 50; } - set { - + set + { + if (MiddleBrushStop != null && MiddleBrushStop.OffsetPercent != value) { MiddleBrushStop.OffsetPercent = value; - RaisePropertyChangedAuto(); + RaisePropertyChangedAuto(); IsOffsetChanged = true; RaisePropertyChanged(nameof(SegmentBrush)); RaisePropertyChanged(nameof(MiddleOffsetLabel)); @@ -324,7 +330,7 @@ namespace Tango.PPC.Jobs.Models _middleOffsetChangeComleted = value; RaisePropertyChangedAuto(); UndoRedoManager.Instance.InsertAndExecuteCommand(new ChangeOffsetCommand(this, MiddleOffsetStartChanging, _middleOffsetChangeComleted, OffsetType.Middle)); - + } } } @@ -344,9 +350,10 @@ namespace Tango.PPC.Jobs.Models public double RightOffset { - get { return SecondBrushStop != null ? SecondBrushStop.OffsetPercent: 100; } - set { - + get { return SecondBrushStop != null ? SecondBrushStop.OffsetPercent : 100; } + set + { + if (SecondBrushStop != null && SecondBrushStop.OffsetPercent != value) { SecondBrushStop.OffsetPercent = value; @@ -371,7 +378,7 @@ namespace Tango.PPC.Jobs.Models _rightOffsetChangeComleted = value; RaisePropertyChangedAuto(); UndoRedoManager.Instance.InsertAndExecuteCommand(new ChangeOffsetCommand(this, RightOffsetStartChanging, _rightOffsetChangeComleted, OffsetType.Right)); - + } } } @@ -393,8 +400,8 @@ namespace Tango.PPC.Jobs.Models { get { - double length = Math.Round( LeftOffset * Length / 100, 1); - return String.Format($"{Math.Round(LeftOffset,0)}%({length}m)" ); + double length = Math.Round(LeftOffset * Length / 100, 1); + return String.Format($"{Math.Round(LeftOffset, 0)}%({length}m)"); } } @@ -403,7 +410,7 @@ namespace Tango.PPC.Jobs.Models { get { - double length = Math.Round((100-RightOffset) * Length / 100, 1); + double length = Math.Round((100 - RightOffset) * Length / 100, 1); return String.Format($"{Math.Round(RightOffset, 0)}%({length}m)"); } } @@ -461,12 +468,12 @@ namespace Tango.PPC.Jobs.Models { get { - if(BrushStops.Count > 0) + if (BrushStops.Count > 0) { var brushStop = BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.FirstColor).FirstOrDefault(); return brushStop; } - + return null; } @@ -494,7 +501,7 @@ namespace Tango.PPC.Jobs.Models { bool hasError = (FirstBrushStop != null && FirstBrushStop.IsOutOfGamut) || (SecondBrushStop != null && SecondBrushStop.IsOutOfGamut); - + return hasError; } } @@ -504,7 +511,9 @@ namespace Tango.PPC.Jobs.Models public bool IsSelected { get { return _isSelected; } - set { _isSelected = value; + set + { + _isSelected = value; RaisePropertyChangedAuto(); } } @@ -585,9 +594,9 @@ namespace Tango.PPC.Jobs.Models foreach (var stop in BrushStops.ToList().OrderBy(x => x.StopIndex).ToList()) { //TODO test if displayed is valid stop.IsValid - + Color color = stop.BestMatchColor; - stops.Add(new GradientStop( color, stop.OffsetPercent / 100d)); + stops.Add(new GradientStop(color, stop.OffsetPercent / 100d)); } LinearGradientBrush brush = new LinearGradientBrush(); @@ -605,7 +614,7 @@ namespace Tango.PPC.Jobs.Models { //TODO test if displayed is valid stop.IsValid Color color = BrushStops[i].BestMatchColor; - _brush.GradientStops[i].Color = color; + _brush.GradientStops[i].Color = color; _brush.GradientStops[i].Offset = BrushStops[i].OffsetPercent / 100d; } @@ -632,7 +641,7 @@ namespace Tango.PPC.Jobs.Models cloned.EnableInterSegment = EnableInterSegment; cloned.BrushStops = BrushStops.Select(x => x.Clone()).ToSynchronizedObservableCollection(); cloned.BrushStops.ToList().ForEach(x => x.SegmentModel = cloned); - + cloned.SegmentIndex = SegmentIndex + 1; cloned.SegmentsGroupModel = SegmentsGroupModel; return cloned; @@ -651,7 +660,7 @@ namespace Tango.PPC.Jobs.Models Length = length, Name = "Inter Segment", BrushStops = new SynchronizedObservableCollection<BrushStopModel>() - + }; } /// <summary> @@ -672,7 +681,7 @@ namespace Tango.PPC.Jobs.Models colorbrushStop.StopIndex = 2; colorbrushStop.OffsetPercent = 0; BrushStops.Add(colorbrushStop); - + BrushStopModel middleBrushStop = firstBrush.Clone(); middleBrushStop.StopIndex = 3; middleBrushStop.Position = BrushStopModel.PositionStatus.Middle; @@ -703,23 +712,23 @@ namespace Tango.PPC.Jobs.Models BrushStops.Add(lastSecondBrushStop); } - public void SetNewColor(BrushStopModel target, BrushStopModel source ) + public void SetNewColor(BrushStopModel target, BrushStopModel source) { target.SetNewColor(source); target.IsOutOfGamut = source.IsOutOfGamut; if (target.Position == BrushStopModel.PositionStatus.FirstColor) { BrushStopModel first = BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.First).FirstOrDefault(); - if(first != null) + if (first != null) { first.SetNewColor(source); first.IsOutOfGamut = source.IsOutOfGamut; - } + } } - else if(target.Position == BrushStopModel.PositionStatus.SecondColor) + else if (target.Position == BrushStopModel.PositionStatus.SecondColor) { BrushStopModel last = BrushStops.Where(x => x.Position == BrushStopModel.PositionStatus.Last).FirstOrDefault(); - if(last != null) + if (last != null) { last.SetNewColor(source); last.IsOutOfGamut = source.IsOutOfGamut; @@ -728,7 +737,7 @@ namespace Tango.PPC.Jobs.Models UpdateMiddleColorBrush(); RaiseSegmentBrushChanged(); } - + public void UpdateMiddleColorBrush() { if (MiddleBrushStop != null && SecondBrushStop != null && FirstBrushStop != null) @@ -737,13 +746,13 @@ namespace Tango.PPC.Jobs.Models MiddleBrushStop.BestMatchColor = BrushStopModel.GetRelativeRGB(FirstBrushStop.BestMatchColor, SecondBrushStop.BestMatchColor, 0, 1, 0.5); } } - + public void RemoveSecondColorOfGradient() { if (BrushStops.Count < 5) - return ; - BrushStops.RemoveAt(4); - BrushStops.RemoveAt(3); + return; + BrushStops.RemoveAt(4); + BrushStops.RemoveAt(3); } public void ArrangeBrushStopsIndexes() @@ -764,7 +773,7 @@ namespace Tango.PPC.Jobs.Models else if (BrushStops.Count > 1) BrushStops.ToList().ForEach(x => x.Position = (BrushStopModel.PositionStatus)x.StopIndex); } - + public void SwapBrushStops() { if (BrushStops.Count > 1) @@ -776,7 +785,7 @@ namespace Tango.PPC.Jobs.Models var left_temp = BrushStops[index]; var right_stopIndex = BrushStops[lastIndex].StopIndex; var right_offsetPercent = BrushStops[lastIndex].OffsetPercent; - + BrushStops[index] = BrushStops[lastIndex]; BrushStops[index].StopIndex = left_temp.StopIndex; BrushStops[index].OffsetPercent = left_temp.OffsetPercent; @@ -834,7 +843,7 @@ namespace Tango.PPC.Jobs.Models if (Job != null && Job.Rml != null) { var gramPerlength = Job.Rml.GetGramPer1000mLength; - var weight = (Length * gramPerlength)/( 1000 );//(kg) + var weight = (Length * gramPerlength) / (1000);//(kg) _weight = weight; RaisePropertyChanged(nameof(Weight)); //if (_lastLength != length) @@ -858,7 +867,7 @@ namespace Tango.PPC.Jobs.Models if (Job != null && Job.Rml != null) { var gramPerlength = Job.Rml.GetGramPer1000mLength; - var length = (Weight * 1000 )/ gramPerlength;//(m) weight in gr + var length = (Weight * 1000) / gramPerlength;//(m) weight in gr _length = length; RaisePropertyChanged(nameof(Length)); @@ -867,7 +876,7 @@ namespace Tango.PPC.Jobs.Models RaisePropertyChanged(nameof(LeftOffsetLabel)); RaisePropertyChanged(nameof(MiddleOffsetLabel)); RaisePropertyChanged(nameof(RightOffsetLabel)); - + } } @@ -876,62 +885,68 @@ namespace Tango.PPC.Jobs.Models /// </summary> /// <param name="brushstops"></param> protected void OnBrushStopsChanged(SynchronizedObservableCollection<BrushStopModel> brushstops) + { + if (brushstops != null) { - if (brushstops != null) - { - brushstops.CollectionChanged -= BrushStops_CollectionChanged; - brushstops.CollectionChanged += BrushStops_CollectionChanged; + brushstops.CollectionChanged -= BrushStops_CollectionChanged; + brushstops.CollectionChanged += BrushStops_CollectionChanged; - foreach (var stop in brushstops.ToList()) - { - stop.RaiseOffsetChanged(); - } - - RaiseSegmentBrushChanged(); + foreach (var stop in brushstops.ToList()) + { + stop.RaiseOffsetChanged(); } - } - private void AddGap() - { - EnableInterSegment = true; + RaiseSegmentBrushChanged(); } + } - private void DeleteGap() - { - EnableInterSegment = false; - } + private void AddGap() + { + EnableInterSegment = true; + } - public void UpdateBrushStops() - { - foreach (var stop in BrushStops.Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) - { - try - { - stop.OnBrushStopFieldValueChanged(); - stop.InitColorsFromBestmatch(); - //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}."); - } - } - } + private void DeleteGap() + { + EnableInterSegment = false; + } - public void UpdateWeightOnRMLChange( bool isWeightView) + public void UpdateBrushStops() + { + foreach (var stop in BrushStops.Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) { - if(isWeightView) + try { - OnWeightChanged(); + stop.OnBrushStopFieldValueChanged(); + stop.InitColorsFromBestmatch(); + //TODO ASK ROY!!!!!! + //output.ApplyOnBrushStopVolumesOnly(stop); } - else + catch (Exception ex) { - OnLengthChanged(Length); + LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.SegmentModel.SegmentIndex}, stop {stop.StopIndex}."); } } + foreach (var stop in BrushStops.Where(x => x.ColorSpace == ColorSpaces.Volume)) + { + stop.InitLiquidVolumes(); + } - #endregion } + + public void UpdateWeightOnRMLChange(bool isWeightView) + { + if (isWeightView) + { + OnWeightChanged(); + } + else + { + OnLengthChanged(Length); + } + } + + + #endregion } +} |
