From fb7319e9f0d2545674825734feb8015e7e56dd84 Mon Sep 17 00:00:00 2001 From: Nico Mack Date: Wed, 26 Aug 2020 14:47:35 +0200 Subject: [PATCH] Added angularStepSize property --- CPS/config/CpsNamespace.properties | 1 + CPS/src/lu/list/itis/dkd/tui/utility/CpsNamespace.java | 2 ++ CPS/src/lu/list/itis/dkd/tui/widget/PositionWidget.java | 9 ++++++++- .../tui/widget/builder/BasePositionWidgetBuilder.java | 5 ++++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CPS/config/CpsNamespace.properties b/CPS/config/CpsNamespace.properties index 67cda0a..dd201af 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 51f9e32..3f109ad 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 8cfecf0..67f1d7c 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 72dc07f..60103ba 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