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/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs | |
| 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/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs | 140 |
1 files changed, 60 insertions, 80 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 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); |
