diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index f6ddc9d19..7afb099db 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -76,7 +76,8 @@ namespace Tango.MachineStudio.Developer.ViewModels public ProcessParametersTablesGroup RmlProcessParametersTableGroup { get { return _rmlProcessParametersTablesGroup; } - set { _rmlProcessParametersTablesGroup = value; RaisePropertyChangedAuto(); } + set + { _rmlProcessParametersTablesGroup = value; RaisePropertyChangedAuto(); OnProcessParametersTableGroupChanged(); } } private ObservableCollection<ProcessParametersTablesGroup> _groupsHistory; @@ -100,6 +101,16 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _selectedGroupHistory = value; RaisePropertyChangedAuto(); OnSelectedGroupHistoryChanged(); } } + private ProcessParametersTable _selectedProcessParametersTable; + /// <summary> + /// Gets or sets the selected process parameters table. + /// </summary> + public ProcessParametersTable SelectedProcessParametersTable + { + get { return _selectedProcessParametersTable; } + set { _selectedProcessParametersTable = value; RaisePropertyChangedAuto(); } + } + private Job _selectedJob; /// <summary> /// Gets or sets the selected machine job. @@ -181,6 +192,16 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _graphs = value; RaisePropertyChangedAuto(); } } + private TimeSpan _estimatedDuration; + /// <summary> + /// Gets or sets the estimated duration for the selected job. + /// </summary> + public TimeSpan EstimatedDuration + { + get { return _estimatedDuration; } + set { _estimatedDuration = value; RaisePropertyChangedAuto(); } + } + #endregion #region Commands @@ -297,11 +318,38 @@ namespace Tango.MachineStudio.Developer.ViewModels InvalidateLiquidFactorsAndProcessTables(); } + private void SelectedJob_LengthChanged(object sender, EventArgs e) + { + UpdateEstimatedDuration(); + } + + private void SelectedProcessParametersTable_DyeingSpeedChanged(object sender, EventArgs e) + { + UpdateEstimatedDuration(); + } + #endregion #region Virtual Methods /// <summary> + /// Called when the process parameters table group has been changed + /// </summary> + /// <exception cref="NotImplementedException"></exception> + private void OnProcessParametersTableGroupChanged() + { + if (RmlProcessParametersTableGroup != null && RmlProcessParametersTableGroup.ProcessParametersTables.Count > 0) + { + SelectedProcessParametersTable = RmlProcessParametersTableGroup.ProcessParametersTables.First(); + + SelectedProcessParametersTable.DyeingSpeedChanged -= SelectedProcessParametersTable_DyeingSpeedChanged; + SelectedProcessParametersTable.DyeingSpeedChanged += SelectedProcessParametersTable_DyeingSpeedChanged; + } + + UpdateEstimatedDuration(); + } + + /// <summary> /// Called when the selected segment has been changed /// </summary> protected virtual void OnSelectedSegmentChanged() @@ -321,6 +369,11 @@ namespace Tango.MachineStudio.Developer.ViewModels if (SelectedJob != null) { SelectedSegment = SelectedJob.Segments.FirstOrDefault(); + + SelectedJob.LengthChanged -= SelectedJob_LengthChanged; + SelectedJob.LengthChanged += SelectedJob_LengthChanged; + + UpdateEstimatedDuration(); } } @@ -347,6 +400,14 @@ namespace Tango.MachineStudio.Developer.ViewModels #region Private Methods + private void UpdateEstimatedDuration() + { + if (SelectedJob != null && SelectedProcessParametersTable != null) + { + EstimatedDuration = TimeSpan.FromSeconds(SelectedJob.Length / (SelectedProcessParametersTable.DyeingSpeed / 100d)); + } + } + private void SetSegmentBrushStopsLiquidVolumes(Segment segment) { if (!DesignMode) @@ -475,7 +536,10 @@ namespace Tango.MachineStudio.Developer.ViewModels { Segment seg = new Segment(); seg.Name = "Untitled Segment"; + seg.Length = 1; SelectedJob.Segments.Add(seg); + SelectedSegment = seg; + AddBrushStop(); } } @@ -526,6 +590,7 @@ namespace Tango.MachineStudio.Developer.ViewModels { var stop = new BrushStop(); stop.ColorSpace = Adapter.ColorSpaces.FirstOrDefault(); + stop.Color = Colors.Black; stop.SetLiquidVolumes(SelectedMachine.Configuration, SelectedRML); SelectedSegment.BrushStops.Add(stop); } |
