diff --git a/CPS/config/CpsNamespace.properties b/CPS/config/CpsNamespace.properties index 67cda0a33c1acd9e05f33575d08f2c1777e78b6e..dd201afaa39cca23420378226cba6207d4ed133a 100644 --- a/CPS/config/CpsNamespace.properties +++ b/CPS/config/CpsNamespace.properties @@ -1,4 +1,5 @@ ABOVE_ELEMENT=above +ANGULAR_STEP_SIZE_NODE=angularStepSize BACKGROUND_NODE=background BELOW_ELEMENT=below BLINK_ON_OUT_OF_RANGE_NODE=blinkOnOutOfRange diff --git a/CPS/src/lu/list/itis/dkd/tui/utility/CpsNamespace.java b/CPS/src/lu/list/itis/dkd/tui/utility/CpsNamespace.java index 51f9e322b047bf2cc263d36e2914e96dedf4c3eb..3f109ad81ca5690e81e37e389289d2d864196fab 100644 --- a/CPS/src/lu/list/itis/dkd/tui/utility/CpsNamespace.java +++ b/CPS/src/lu/list/itis/dkd/tui/utility/CpsNamespace.java @@ -27,6 +27,8 @@ public class CpsNamespace extends NLS { private static final String BUNDLE_NAME = "CpsNamespace"; //$NON-NLS-1$ public static String ABOVE_ELEMENT; + public static String ANGULAR_STEP_SIZE_NODE; + public static String BACKGROUND_NODE; public static String BELOW_ELEMENT; public static String BLINK_ON_OUT_OF_RANGE_NODE; diff --git a/CPS/src/lu/list/itis/dkd/tui/widget/PositionWidget.java b/CPS/src/lu/list/itis/dkd/tui/widget/PositionWidget.java index 8cfecf03d7aed7e1896ac54f75b8c5b3b7dd1a1b..67f1d7cbf7ef9e7a195aa21baf2653538004606f 100644 --- a/CPS/src/lu/list/itis/dkd/tui/widget/PositionWidget.java +++ b/CPS/src/lu/list/itis/dkd/tui/widget/PositionWidget.java @@ -50,6 +50,7 @@ public class PositionWidget extends PointingWidget implements InformationProvide protected boolean trackRotationContinuously; protected boolean trackTranslationContinuously; protected double stepSize; + protected double angularStepSize; // *************************************************************************** // * Constants * @@ -80,6 +81,7 @@ public class PositionWidget extends PointingWidget implements InformationProvide this.trackRotationContinuously = builder.trackRotationContinuously; this.trackTranslationContinuously = builder.trackTranslationContinuously; this.stepSize = builder.stepSize; + this.angularStepSize = builder.angularStepSize; } // --------------------------------------------------------------------------- @@ -114,7 +116,12 @@ public class PositionWidget extends PointingWidget implements InformationProvide if (modifyValueOnRotation && (!continuous || trackRotationContinuously)) { newPosition.setRotationDirection(convertDirection(direction)); - doUpdate |= true; + if (!Double.isNaN(this.angularStepSize)) { + double rotation = Math.abs(position.getAngle() - newPosition.getAngle()); + doUpdate |= (rotation >= this.angularStepSize); + } else { + doUpdate |= true; + } } if (modifyValueOnTranslation && (!continuous || trackTranslationContinuously)) { diff --git a/CPS/src/lu/list/itis/dkd/tui/widget/builder/BasePositionWidgetBuilder.java b/CPS/src/lu/list/itis/dkd/tui/widget/builder/BasePositionWidgetBuilder.java index 72dc07f6f0cf0837acb6a2020464dc96141dd9eb..60103bae9925d2092fd52a18b69785437033ff9f 100644 --- a/CPS/src/lu/list/itis/dkd/tui/widget/builder/BasePositionWidgetBuilder.java +++ b/CPS/src/lu/list/itis/dkd/tui/widget/builder/BasePositionWidgetBuilder.java @@ -33,6 +33,7 @@ public abstract class BasePositionWidgetBuilder