aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2021-11-01 14:53:16 +0200
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2021-11-01 14:53:16 +0200
commit20f49c625cd32b95154db138ed7eeebbadd04bf7 (patch)
tree951627b53972a48e77f9c3d11e9de5295e15fa45 /Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs
parentb1049c0822b76939215225a617e143274abe2e8b (diff)
downloadTango-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.cs140
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);