Commit 7441654b authored by Nico Mack's avatar Nico Mack

Added Bootstrapping capabilities to RotaryEncoder class

parent fb7319e9
......@@ -10,6 +10,7 @@ DISPLAY_MODE_NODE=displayMode
FACE_IS_TOUCHABLE_NODE=faceIsTouchable
FOREGROUND_NODE=foreground
ITEMS_VARIABLE_NODE=itemsVariable
INITIAL_VALUE_NODE=initialValue
HTML_TEMPLATE_NODE=htmlTemplate
LABEL_TRANSLATION_NODE=labelTranslation
LANDING_LINE_LENGTH_NODE=landingLineLength
......
......@@ -43,6 +43,7 @@ public class CpsNamespace extends NLS {
public static String HTML_TEMPLATE_NODE;
public static String INITIAL_VALUE_NODE;
public static String ITEMS_VARIABLE_NODE;
public static String LABEL_TRANSLATION_NODE;
......
......@@ -13,8 +13,15 @@
*/
package lu.list.itis.dkd.tui.utility;
import lu.list.itis.dkd.dbc.annotation.Nullable;
import lu.list.itis.dkd.tui.bootstrapping.BootstrapCallback;
import lu.list.itis.dkd.tui.bootstrapping.BootstrapContext;
import lu.list.itis.dkd.tui.bootstrapping.BootstrappingUtils;
import lu.list.itis.dkd.tui.exception.BuildException;
import lu.list.itis.dkd.tui.widget.state.StateManager.Direction;
import org.jdom2.Element;
/**
* @author Nico Mack [nico.mack@list.lu]
* @since 1.8
......@@ -76,12 +83,38 @@ public class RotaryEncoder {
this.buildFromProperties();
}
// ---------------------------------------------------------------------------
public RotaryEncoder(Element rootNode) throws BuildException {
this.buildFromBootstrap(rootNode, null, null);
this.buildFromProperties();
}
// ---------------------------------------------------------------------------
public RotaryEncoder(@Nullable Element rootNode, BootstrapContext context, BootstrapCallback callback) throws BuildException {
this.buildFromBootstrap(rootNode, context, callback);
this.buildFromProperties();
}
// ---------------------------------------------------------------------------
// ***************************************************************************
// * Primitive(s) *
// ***************************************************************************
// ---------------------------------------------------------------------------
private void buildFromBootstrap(@Nullable Element rootNode, BootstrapContext context, BootstrapCallback callback) throws BuildException {
this.initialValue = BootstrappingUtils.getContentAsDouble(rootNode, CpsNamespace.INITIAL_VALUE_NODE, BootstrappingUtils.OPTIONAL, 0d, context);
this.value = this.initialValue;
this.lowerBound = BootstrappingUtils.getContentAsDouble(rootNode, Externalization.LOWER_BOUND_NODE, BootstrappingUtils.OPTIONAL, 0d, context);
this.upperBound = BootstrappingUtils.getContentAsDouble(rootNode, Externalization.UPPER_BOUND_NODE, BootstrappingUtils.MANDATORY, null, context);;
this.lowerStopAngle = BootstrappingUtils.getContentAsRadians(rootNode, CpsNamespace.LOWER_STOP_ANGLE_NODE, BootstrappingUtils.OPTIONAL, Double.NaN, context);
this.upperStopAngle = BootstrappingUtils.getContentAsRadians(rootNode, CpsNamespace.UPPER_STOP_ANGLE_NODE, BootstrappingUtils.OPTIONAL, Double.NaN, context);
this.multiTurn = BootstrappingUtils.getContentAsBoolean(rootNode, CpsNamespace.MULTITURN_NODE, BootstrappingUtils.OPTIONAL, Boolean.FALSE, context);
}
// ---------------------------------------------------------------------------
private void buildFromProperties() {
lastAngle = Double.NaN;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment