Files

109 lines
3.3 KiB
C#
Raw Permalink Normal View History

using MainShell.Recipe.Models;
using Stylet;
namespace MainShell.Recipe.ViewModel
{
public class ProcessCompensationViewModel : PropertyChangedBase
{
private ProcessRecipe _processRecipe;
public ProcessRecipe ProcessRecipe
{
get { return _processRecipe; }
set
{
if (SetAndNotify(ref _processRecipe, value))
{
NotifyCompensationPropertiesChanged();
}
}
}
public double PhsX1Compensation
{
get { return GetCompensationParameter().PhsX1Compensation; }
set
{
ProcessAxisCompensationParameter parameter = GetCompensationParameter();
if (parameter.PhsX1Compensation == value)
{
return;
}
parameter.PhsX1Compensation = value;
NotifyOfPropertyChange(nameof(PhsX1Compensation));
}
}
public double PhsY1Compensation
{
get { return GetCompensationParameter().PhsY1Compensation; }
set
{
ProcessAxisCompensationParameter parameter = GetCompensationParameter();
if (parameter.PhsY1Compensation == value)
{
return;
}
parameter.PhsY1Compensation = value;
NotifyOfPropertyChange(nameof(PhsY1Compensation));
}
}
public double WsXCompensation
{
get { return GetCompensationParameter().WsXCompensation; }
set
{
ProcessAxisCompensationParameter parameter = GetCompensationParameter();
if (parameter.WsXCompensation == value)
{
return;
}
parameter.WsXCompensation = value;
NotifyOfPropertyChange(nameof(WsXCompensation));
}
}
public double StageYCompensation
{
get { return GetCompensationParameter().StageYCompensation; }
set
{
ProcessAxisCompensationParameter parameter = GetCompensationParameter();
if (parameter.StageYCompensation == value)
{
return;
}
parameter.StageYCompensation = value;
NotifyOfPropertyChange(nameof(StageYCompensation));
}
}
private ProcessAxisCompensationParameter GetCompensationParameter()
{
if (ProcessRecipe == null)
{
return new ProcessAxisCompensationParameter();
}
if (ProcessRecipe.ProcessAxisCompensationParameter == null)
{
ProcessRecipe.ProcessAxisCompensationParameter = new ProcessAxisCompensationParameter();
}
return ProcessRecipe.ProcessAxisCompensationParameter;
}
private void NotifyCompensationPropertiesChanged()
{
NotifyOfPropertyChange(nameof(PhsX1Compensation));
NotifyOfPropertyChange(nameof(PhsY1Compensation));
NotifyOfPropertyChange(nameof(WsXCompensation));
NotifyOfPropertyChange(nameof(StageYCompensation));
}
}
}