private void HandleIncreaseMaximum(IParameterViewModel parameterViewModel) { var maximum = parameterViewModel.Maximum; var nextOOM = maximum.GetNextOrderOfMagnitude(); parameterViewModel.Maximum = nextOOM; }
private void HandleDecreaseMinimum(IParameterViewModel parameterViewModel) { var minimum = parameterViewModel.Minimum; var previousOOM = minimum.GetPreviousOrderOfMagnitude(); parameterViewModel.Minimum = previousOOM; }
private void HandleDecreaseMaximum(IParameterViewModel parameterViewModel) { var maximum = parameterViewModel.Maximum; var previousOOM = maximum.GetPreviousOrderOfMagnitude(); if (!parameterViewModel.NValue.HasValue || previousOOM > parameterViewModel.NValue) { parameterViewModel.Maximum = previousOOM; } }
private void HandleIncreaseMinimum(IParameterViewModel parameterViewModel) { var minimum = parameterViewModel.Minimum; var nextOOM = minimum.GetNextOrderOfMagnitude(); if (!parameterViewModel.NValue.HasValue || nextOOM < parameterViewModel.NValue) { parameterViewModel.Minimum = nextOOM; } }
private void HandleResetValue(IParameterViewModel parameterViewModel) { RequireTrue(parameterViewModel.IsSelected); if (parameterViewModel.NValue.HasValue) { // have value so request is for slider reset var value = parameterViewModel.NValue.Value; var minimum = value.GetPreviousOrderOfMagnitude(); var maximum = value.GetNextOrderOfMagnitude(); parameterViewModel.Set(value, minimum, maximum); } else { // non-numerical text, or no text at all... var currentTValue = parameterViewModel.TValue; if (currentTValue.IsAString()) { // handle one specific non-numeric case var valid = false; // want "min < val < max" var parts = currentTValue.Split('<'); if (parts.Length == 3) { var validMinimum = TryParse(parts[0], out double minimum); var validValue = TryParse(parts[1], out double value); var validMaximum = TryParse(parts[2], out double maximum); valid = validMinimum && validValue && validMaximum && minimum < value && value < maximum; if (valid) { parameterViewModel.Set(value, minimum, maximum); } } if (!valid) { _appService.Notify( NotificationType.Error, nameof(ParameterViewModel), nameof(HandleResetValue), "Invalid interval. Format is min < val < max." ); } } else { // no entry so user wants original back parameterViewModel.TValue = parameterViewModel.DefaultValue; } } }
private void HandleToggleSelect(IParameterViewModel parameterViewModel) { parameterViewModel.IsSelected = !parameterViewModel.IsSelected; }