diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2022-02-22 14:41:25 +0200 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2022-02-22 14:41:25 +0200 |
| commit | 28fa1ab91b3fb7970d9968c5cb1d018c2b44fd69 (patch) | |
| tree | 040ebb961e0e991436571f11d8a189c92326e4b3 /Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models | |
| parent | 3681ab681f02bbb7cda89de4044fd69bc9d61ab8 (diff) | |
| download | Tango-28fa1ab91b3fb7970d9968c5cb1d018c2b44fd69.tar.gz Tango-28fa1ab91b3fb7970d9968c5cb1d018c2b44fd69.zip | |
Implement grouping of segments. Changes in GUI and database. Not in Dying process.
Related Work Items: #4558
Diffstat (limited to 'Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models')
6 files changed, 292 insertions, 84 deletions
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 8a071f126..12add3d2f 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 @@ -585,6 +585,8 @@ namespace Tango.PPC.Jobs.Models } } } + + protected bool RequiredMaxLiquidTest { get; set; } #endregion public BrushStopModel(SegmentModel segmentModel) @@ -611,6 +613,7 @@ namespace Tango.PPC.Jobs.Models ColorCatalogsItem = null; PreventPropertyUpdate = false; LiquidVolumesOutOfRange = false; + RequiredMaxLiquidTest = false; } public BrushStopModel(BrushStop brushStop, SegmentModel segmentModel, int version) @@ -777,6 +780,7 @@ namespace Tango.PPC.Jobs.Models cloned.LiquidVolumesOutOfRange = LiquidVolumesOutOfRange; //this.MapPropertiesTo(cloned, MappingFlags.NoReferenceTypes); cloned.PreventPropertyUpdate = false; + cloned.RequiredMaxLiquidTest = false; return cloned; } @@ -830,6 +834,7 @@ namespace Tango.PPC.Jobs.Models if (PreventPropertyUpdate) return; ColorSpace = ColorSpaces.Volume; + RequiredMaxLiquidTest = true; RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); OnBrushStopFieldValueChanged(); @@ -972,6 +977,8 @@ namespace Tango.PPC.Jobs.Models RaisePropertyChanged(nameof(Saturation)); RaisePropertyChanged(nameof(Brightness)); } + RequiredMaxLiquidTest = false; + RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); } } @@ -1011,6 +1018,8 @@ namespace Tango.PPC.Jobs.Models RaisePropertyChanged(nameof(Red)); RaisePropertyChanged(nameof(Green)); RaisePropertyChanged(nameof(Blue)); + RequiredMaxLiquidTest = false; + RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); } } @@ -1064,11 +1073,14 @@ namespace Tango.PPC.Jobs.Models RaisePropertyChanged(nameof(L)); RaisePropertyChanged(nameof(A)); RaisePropertyChanged(nameof(B)); + RequiredMaxLiquidTest = false; + RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); } } public void ConvertColorToVolume() { + RequiredMaxLiquidTest = true; if (ColorSpace != ColorSpaces.Volume) { if (ColorSpace == ColorSpaces.Catalog) @@ -1209,19 +1221,20 @@ namespace Tango.PPC.Jobs.Models return 0.0; } + public bool IsLiquidVolumesOutOfRange { get { - //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(); - LiquidVolumesOutOfRange = sum > GetTotalMaximumLiquidNlPerCMLimit(); - - return LiquidVolumesOutOfRange; - // } - // else return false; + if (RequiredMaxLiquidTest ) + { + var sum = GetColorNLPerCm(Cyan, LiquidTypes.Cyan) + GetColorNLPerCm(Magenta, LiquidTypes.Magenta) + GetColorNLPerCm(Yellow, LiquidTypes.Yellow) + GetColorNLPerCm(Black, LiquidTypes.Black); + var maxLiq = GetTotalMaximumLiquidNlPerCMLimit(); + LiquidVolumesOutOfRange = sum > GetTotalMaximumLiquidNlPerCMLimit(); + + return LiquidVolumesOutOfRange; + } + else return false; } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ColorLibrary.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ColorLibrary.cs index 511a90e15..502e19dfc 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ColorLibrary.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ColorLibrary.cs @@ -27,7 +27,8 @@ namespace Tango.PPC.Jobs.Models public string Name { get { return _name; } - set { _name = value; } + set { _name = value; + RaisePropertyChangedAuto(); } } private bool _editColorsGroupMode; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ISegmentModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ISegmentModel.cs index 9bed7e849..37a8fc33b 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ISegmentModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/ISegmentModel.cs @@ -9,11 +9,13 @@ namespace Tango.PPC.Jobs.Models public interface ISegmentModel { String Name { get; set; } - double Length { get; set; } + double Length { get; } + double LengthWithInterSegment { get; } bool IsGroupSegment { get; } bool IsSelected { get; set; } bool IsLast { get; set; } Int32 SegmentIndex { get; set; } double InterSegmentLength { get; } - } + bool EnableInterSegment { get; set; } +} } 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 3379149f6..dd8c88971 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 @@ -69,7 +69,8 @@ namespace Tango.PPC.Jobs.Models { if (Segments != null) { - return Segments.Sum(x => x.LengthWithInterSegment); + return GroupingSegments.Sum(x => x.LengthWithInterSegment); + //return Segments.Sum(x => x.LengthWithInterSegment); // return Segments.Sum(x => x.LengthWithFactor) + ((EnableInterSegment && IsAllSegmentsPerSpool) ? (InterSegmentLength * (Segments.Count > 0 ? Segments.Count - 1 : Segments.Count)) : 0); } else @@ -142,8 +143,8 @@ namespace Tango.PPC.Jobs.Models if (_intersegmentlength != value) { _intersegmentlength = value; - OnInterSegmentlengthChanged(); RaisePropertyChangedAuto(); + OnInterSegmentlengthChanged(); } } } @@ -314,6 +315,7 @@ namespace Tango.PPC.Jobs.Models } } } + public JobTypes JobType { get; set; } protected SynchronizedObservableCollection<SegmentModel> _segments; @@ -338,41 +340,39 @@ namespace Tango.PPC.Jobs.Models } } - public ObservableCollection<SegmentModel> EffectiveSegments + private bool _enableintersegment; + public bool EnableInterSegment { get { - //if (EnableInterSegment && IsAllSegmentsPerSpool) - if( IsAllSegmentsPerSpool) - { - int max = Segments.Max(x => x.SegmentIndex); - - ObservableCollection<SegmentModel> effectiveSegments = new ObservableCollection<SegmentModel>(); - - foreach (var s in Segments.ToList().OrderBy(x => x.SegmentIndex)) - { - effectiveSegments.Add(s); - - if (s.SegmentIndex != max && s.EnableInterSegment) - { - effectiveSegments.Add(CreateInterSegment(InterSegmentLength)); - } - } + return _enableintersegment; + } - return effectiveSegments; - } - else + set + { + if (_enableintersegment != value) { - return Segments.OrderBy(x => x.SegmentIndex).ToObservableCollection(); + _enableintersegment = value; + RaisePropertyChangedAuto(); + OnEnableInterSegmentChanged(); } } } + + private ObservableCollection<SegmentModel> _effectiveSegments; + public ObservableCollection<SegmentModel> EffectiveSegments + { + get + { + return _effectiveSegments; + } + } - protected ObservableCollection<ISegmentModel> _groupingSegments; + protected SynchronizedObservableCollection<ISegmentModel> _groupingSegments; /// <summary> /// Gets or sets the display segments. /// </summary> - public ObservableCollection<ISegmentModel> GroupingSegments + public SynchronizedObservableCollection<ISegmentModel> GroupingSegments { get { @@ -424,22 +424,32 @@ namespace Tango.PPC.Jobs.Models } } - public int LastNewGroupID { get; set; } - + public int LastGroupID + { + get + { + var groups = GroupingSegments.ToList().OfType<SegmentsGroupModel>().ToList(); + return groups.Count() == 0 ? 0 : groups.Max(x => x.SegmentIndex); + } + } + #endregion public JobModel(List<ColorSpace> list) { ColorSpacesList = list; _segments = new SynchronizedObservableCollection<SegmentModel>(); - _groupingSegments = new ObservableCollection<ISegmentModel>(); + _groupingSegments = new SynchronizedObservableCollection<ISegmentModel>(); SegmentsToCopy = new List<SegmentModel>(); + _effectiveSegments = new ObservableCollection<SegmentModel>(); Segments.CollectionChanged -= Segments_CollectionChanged; Segments.CollectionChanged += Segments_CollectionChanged; + + GroupingSegments.CollectionChanged -= SegmentsGroup_CollectionChanged; + GroupingSegments.CollectionChanged += SegmentsGroup_CollectionChanged; SelectAllSegments = false; NumberOfUnits = 1; - LastNewGroupID = 1; } #region modifications @@ -453,16 +463,21 @@ namespace Tango.PPC.Jobs.Models { GroupingSegments.Clear(); var groupedList = Segments.Where(x => x.GroupID >0).Select(grp => grp.SegmentsGroupModel).Distinct().ToList();//List<SegmentsGroupModel> + int ID = 1; + groupedList.ForEach(x => x.SegmentIndex = ID++); + Dictionary<int, SegmentsGroupModel> groupIDToSegmentsGroup = new Dictionary<int, SegmentsGroupModel>(); foreach (var group in groupedList) { - var groupID = group.GroupID; + var groupID = group.SegmentIndex; groupIDToSegmentsGroup[groupID] = group; }; + int currentIndex = 1; foreach (var segment in Segments) { if (!segment.IsGroupSegment) { + segment.SegmentIndex = currentIndex; GroupingSegments.Add(segment); } else @@ -471,10 +486,14 @@ namespace Tango.PPC.Jobs.Models if (groupIDToSegmentsGroup.TryGetValue(segment.GroupID, out segmentsGroup)) { GroupingSegments.Add(segmentsGroup); + segmentsGroup.SegmentIndex = currentIndex; groupIDToSegmentsGroup.Remove(segment.GroupID); } } + currentIndex++; } + if(GroupingSegments.Count > 0) + GroupingSegments.Last().IsLast = true; RaisePropertyChanged(nameof(GroupingSegments)); } public static SegmentModel CreateInterSegment(double length) @@ -518,19 +537,102 @@ namespace Tango.PPC.Jobs.Models #endregion #region changes + + private void OnEnableInterSegmentChanged() + { + GroupingSegments.ToList().ForEach(x => x.EnableInterSegment = EnableInterSegment); + UpdateEffectiveSegments(); + } + + private void UpdateEffectiveSegments() + { + if (IsAllSegmentsPerSpool) + { + int max = GroupingSegments.Count > 0 ? GroupingSegments.Max(x => x.SegmentIndex) : 0; + + ObservableCollection<SegmentModel> effectiveSegments = new ObservableCollection<SegmentModel>(); + + foreach (var s in GroupingSegments.OrderBy(x => x.SegmentIndex)) + { + if (s is SegmentModel) + { + SegmentModel segment = s as SegmentModel; + effectiveSegments.Add(segment); + if (segment.SegmentIndex != max && segment.EnableInterSegment) + { + effectiveSegments.Add(CreateInterSegment(InterSegmentLength)); + } + } + else if (s is SegmentsGroupModel) + { + SegmentsGroupModel segmentsGroup = s as SegmentsGroupModel; + List<SegmentModel> segments = segmentsGroup.Segments.ToList(); + for (int repeats = 0; repeats < segmentsGroup.Repeats; repeats++) + { + for (int i = 0; i < segments.Count; i++) + { + if (repeats > 0) + { + effectiveSegments.Add(segments[i].Clone()); + } + else + effectiveSegments.Add(segments[i]); + + } + } + if (EnableInterSegment && + !(segmentsGroup.SegmentIndex == max && segmentsGroup.SegmentIndex != max)) + { + effectiveSegments.Add(CreateInterSegment(InterSegmentLength)); + } + } + } + _effectiveSegments = effectiveSegments; + } + else + { + foreach (var s in GroupingSegments.OrderBy(x => x.SegmentIndex)) + { + if (s is SegmentModel) + { + SegmentModel segment = s as SegmentModel; + _effectiveSegments.Add(segment); + } + else if (s is SegmentsGroupModel) + { + SegmentsGroupModel segmentsGroup = s as SegmentsGroupModel; + List<SegmentModel> segments = segmentsGroup.Segments.ToList(); + for (int repeats = 0; repeats < segmentsGroup.Repeats; repeats++) + { + for (int i = 0; i < segments.Count; i++) + { + if (repeats > 0) + { + _effectiveSegments.Add(segments[i].Clone()); + } + else + _effectiveSegments.Add(segments[i]); + } + } + } + } + } + RaisePropertyChanged(nameof(EffectiveSegments)); + } + /// <summary> /// Handles the CollectionChanged event of the Segments collection. /// </summary> - private void Segments_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + private void Segments_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { foreach (var segment in Segments.ToList()) { segment.PropertyChanged -= Segment_PropertyChanged; segment.PropertyChanged += Segment_PropertyChanged; } - - OnLengthChanged(); - RaisePropertyChanged(nameof(EffectiveSegments)); + + //OnLengthChanged(); + //UpdateEffectiveSegments(); } /// <summary> @@ -544,13 +646,13 @@ namespace Tango.PPC.Jobs.Models } else if (e.PropertyName == nameof(SegmentModel.SegmentIndex)) { - RaisePropertyChanged(nameof(EffectiveSegments)); - } - else if(e.PropertyName == nameof(SegmentModel.EnableInterSegment)) - { - OnLengthChanged(); - RaisePropertyChanged(nameof(EffectiveSegments)); + UpdateEffectiveSegments(); } + //else if(e.PropertyName == nameof(SegmentModel.EnableInterSegment)) + //{ + // OnLengthChanged(); + // RaisePropertyChanged(nameof(EffectiveSegments)); + //} else if(e.PropertyName == nameof(SegmentModel.IsSelected)) { if (_preventChange) return; @@ -566,7 +668,43 @@ namespace Tango.PPC.Jobs.Models RaisePropertyChanged(nameof(HasSelectedItems)); } } - + + private void SegmentsGroup_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + foreach (var group in GroupingSegments.ToList()) + { + if (group is SegmentsGroupModel) + { + (group as SegmentsGroupModel).PropertyChanged -= SegmentsGroup_PropertyChanged; + (group as SegmentsGroupModel).PropertyChanged += SegmentsGroup_PropertyChanged; + } + } + OnLengthChanged(); + UpdateEffectiveSegments(); + } + + private void SegmentsGroup_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName == nameof(SegmentsGroupModel.Repeats)) + { + OnLengthChanged(); + UpdateEffectiveSegments(); + } + else if (e.PropertyName == nameof(SegmentModel.IsSelected)) + { + //if (_preventChange) return; + //if (Segments.ToList().TrueForAll(x => x.IsSelected)) + //{ + // _selectAllSegments = true; + //} + //else + //{ + // _selectAllSegments = false; + //} + //RaisePropertyChanged(nameof(SelectAllSegments)); + //RaisePropertyChanged(nameof(HasSelectedItems)); + } + } /// <summary> /// Called when the <see cref="Length"/> property has been changed @@ -586,7 +724,7 @@ namespace Tango.PPC.Jobs.Models if (Segments != null ) { _preventChange = true; - Segments.ToList().ForEach(x => x.IsSelected = SelectAllSegments); + GroupingSegments.ToList().ForEach(x => x.IsSelected = SelectAllSegments); _preventChange = false; RaisePropertyChanged(nameof(HasSelectedItems)); } @@ -595,10 +733,10 @@ namespace Tango.PPC.Jobs.Models private void OnInterSegmentlengthChanged() { _preventChange = true; - if (Segments.Count > 0) + if (GroupingSegments.Count > 0) { - int max = Segments.Max(x => x.SegmentIndex); - Segments.Where(i => i.SegmentIndex != max).ToList().ForEach(x => x.EnableInterSegment = InterSegmentLength > 0); + int max = GroupingSegments.Max(x => x.SegmentIndex); + GroupingSegments.Where(i => i.SegmentIndex != max).ToList().ForEach(x => x.EnableInterSegment = InterSegmentLength > 0); } _preventChange = false; } @@ -612,19 +750,19 @@ namespace Tango.PPC.Jobs.Models if (false == Segments.ToList().Any(x => x.IsSelected)) return; LogManager.Log("Copy selected segments."); - int max = Segments.Max(x => x.SegmentIndex); - Segments.Where(i => i.IsSelected && i.SegmentIndex != max).ToList().ForEach(y => y.EnableInterSegment = true); + int max = GroupingSegments.Max(x => x.SegmentIndex); + GroupingSegments.Where(i => i.IsSelected && i.SegmentIndex != max).ToList().ForEach(y => y.EnableInterSegment = true); } public void SwapSegments(int index1, int index2) { - if (index1 < 0 || index1 >= Segments.Count) + if (index1 < 0 || index1 >= GroupingSegments.Count) return; - if (index2 < 0 || index2 >= Segments.Count) + if (index2 < 0 || index2 >= GroupingSegments.Count) return; - var tmpIndex = Segments[index2]; - Segments[index2] = Segments[index1]; - Segments[index1] = tmpIndex; + var tmpIndex = GroupingSegments[index2]; + GroupingSegments[index2] = GroupingSegments[index1]; + GroupingSegments[index1] = 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 0773abf19..e7282bf8d 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 @@ -31,7 +31,7 @@ namespace Tango.PPC.Jobs.Models public int GroupID { get { - return SegmentsGroupModel == null ? -1 : SegmentsGroupModel.GroupID; + return SegmentsGroupModel == null ? -1 : SegmentsGroupModel.SegmentIndex; } } @@ -136,8 +136,9 @@ namespace Tango.PPC.Jobs.Models _enableintersegment = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(LengthWithInterSegment)); - RaisePropertyChanged(nameof(InterSegmentLength)); + } + RaisePropertyChanged(nameof(InterSegmentLength)); } } @@ -450,7 +451,7 @@ namespace Tango.PPC.Jobs.Models Job = jobModel; GUID = guid; IsLast = false; - EnableInterSegment = jobModel.InterSegmentLength > 0; + EnableInterSegment = jobModel.EnableInterSegment; } public SegmentModel() diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentsGroupModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentsGroupModel.cs index 0c3863f78..7a2850684 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentsGroupModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentsGroupModel.cs @@ -12,9 +12,24 @@ namespace Tango.PPC.Jobs.Models { #region Properties - public ObservableCollection<SegmentModel> Segments { get; set; } - - public int GroupID{ get; set; } + public SynchronizedObservableCollection<SegmentModel> Segments { get; set; } + + private Int32 _segnmentIndex; + public Int32 SegmentIndex + { + get + { + return _segnmentIndex; + } + set + { + if(_segnmentIndex != value) + { + _segnmentIndex = value; + RaisePropertyChangedAuto(); + } + } + } private int _repeats; @@ -23,6 +38,7 @@ namespace Tango.PPC.Jobs.Models get { return _repeats; } set { _repeats = value; RaisePropertyChangedAuto(); + RaisePropertyChanged(nameof(Length)); } } @@ -34,6 +50,8 @@ namespace Tango.PPC.Jobs.Models RaisePropertyChangedAuto(); } } + public JobModel Job { get; set; } + protected Double _length; /// <summary> /// Gets or sets the length. @@ -44,13 +62,19 @@ namespace Tango.PPC.Jobs.Models { return Segments.Count == 0 ? 0 : Segments.ToList().Sum(x=>x.Length); } - set + + } + + public Double LengthWithInterSegment + { + get { - if (_length != value) + if (Job != null ) { - _length = value; - RaisePropertyChangedAuto(); + return EnableInterSegment ? (Length + Job.InterSegmentLength) * Repeats : Length * Repeats; } + return Length; + //return Segments.Count == 0 ? 0 : Segments.ToList().Sum(x => x.LengthWithInterSegment) * Repeats; } } @@ -75,13 +99,19 @@ namespace Tango.PPC.Jobs.Models } } - public bool IsLast { get; set; } - public Int32 SegmentIndex { - get { - return Segments.Count == 0 ? 0 : Segments.ToList().OrderBy(x => x.SegmentIndex).Select(x => x.SegmentIndex).FirstOrDefault(); + private bool _isLast; + + public bool IsLast + { + get { return _isLast; } + set + { + _isLast = value; + RaisePropertyChangedAuto(); } - set { } } + + public int FirstSegmentIndex { get { @@ -108,22 +138,45 @@ namespace Tango.PPC.Jobs.Models { get { - return Segments.Count == 0 ? 0 : Segments.ToList().Select(x => x.InterSegmentLength).FirstOrDefault(); + return Job == null ? 0 : Job.InterSegmentLength; + // return Segments.Count == 0 ? 0 : Segments.ToList().Select(x => x.InterSegmentLength).FirstOrDefault(); } } + protected Boolean _enableintersegment; + public Boolean EnableInterSegment + { + get { return _enableintersegment; } + set + { + if (_enableintersegment != value) + { + _enableintersegment = value; + RaisePropertyChangedAuto(); + RaisePropertyChanged(nameof(LengthWithInterSegment)); + RaisePropertyChanged(nameof(InterSegmentLength)); + + } + + } + } + #endregion - public SegmentsGroupModel(List<SegmentModel> selectedSegments) + public SegmentsGroupModel(JobModel jobModel, List<SegmentModel> selectedSegments) { - Segments = selectedSegments.ToObservableCollection(); + Job = jobModel; + Segments = selectedSegments.ToSynchronizedObservableCollection(); Repeats = 1; + EnableInterSegment = jobModel.EnableInterSegment; } - public SegmentsGroupModel() + public SegmentsGroupModel(JobModel jobModel) { - Segments = new ObservableCollection<SegmentModel>(); + Job = jobModel; + Segments = new SynchronizedObservableCollection<SegmentModel>(); Repeats = 1; + EnableInterSegment = jobModel.EnableInterSegment; } } } |
