]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/data/PointCreateOptions.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / data / PointCreateOptions.java
diff --git a/src/tim/prune/data/PointCreateOptions.java b/src/tim/prune/data/PointCreateOptions.java
new file mode 100644 (file)
index 0000000..2f61336
--- /dev/null
@@ -0,0 +1,72 @@
+package tim.prune.data;
+
+/**
+ * Class to hold the options when creating (or loading) a new point,
+ * such as units for altitudes, speeds and vertical speeds
+ */
+public class PointCreateOptions
+{
+       private Unit _altitudeUnit  = UnitSetLibrary.UNITS_METRES;
+       private Unit _speedUnit     = UnitSetLibrary.SPEED_UNITS_METRESPERSEC;
+       private Unit _vertSpeedUnit = UnitSetLibrary.SPEED_UNITS_METRESPERSEC;
+       private boolean _vertSpeedsUpwards = true;
+
+       /**
+        * @param inUnit altitude units (only metres or feet accepted)
+        */
+       public void setAltitudeUnits(Unit inUnit)
+       {
+               if (inUnit == UnitSetLibrary.UNITS_METRES || inUnit == UnitSetLibrary.UNITS_FEET) {
+                       _altitudeUnit = inUnit;
+               }
+       }
+
+       /** @return altitude units */
+       public Unit getAltitudeUnits() {return _altitudeUnit;}
+
+       /**
+        * @param inUnit speed units (only m/s, ft/s, km/h and mph accepted)
+        */
+       public void setSpeedUnits(Unit inUnit)
+       {
+               if (inUnit == UnitSetLibrary.SPEED_UNITS_METRESPERSEC
+                       || inUnit == UnitSetLibrary.SPEED_UNITS_FEETPERSEC
+                       || inUnit == UnitSetLibrary.SPEED_UNITS_KMPERHOUR
+                       || inUnit == UnitSetLibrary.SPEED_UNITS_MILESPERHOUR)
+               {
+                       _speedUnit = inUnit;
+               }
+       }
+
+       /** @return speed units */
+       public Unit getSpeedUnits() {return _speedUnit;}
+
+       /**
+        * @param inUnit speed units (only m/s, ft/s, km/h and mph accepted)
+        * @param inUpwards true if positive speeds are upwards, negative downwards
+        */
+       public void setVerticalSpeedUnits(Unit inUnit, boolean inUpwards)
+       {
+               if (inUnit == UnitSetLibrary.SPEED_UNITS_METRESPERSEC
+                       || inUnit == UnitSetLibrary.SPEED_UNITS_FEETPERSEC
+                       || inUnit == UnitSetLibrary.SPEED_UNITS_KMPERHOUR
+                       || inUnit == UnitSetLibrary.SPEED_UNITS_MILESPERHOUR)
+               {
+                       _vertSpeedUnit = inUnit;
+                       _vertSpeedsUpwards = inUpwards;
+               }
+       }
+
+       /** @return vertical speed units */
+       public Unit getVerticalSpeedUnits() {return _vertSpeedUnit;}
+
+       /** @return true if positive speeds are upwards, negative downwards */
+       public boolean getVerticalSpeedsUpwards() {return _vertSpeedsUpwards;}
+
+       /** for debug */
+       public String toString()
+       {
+               return "options: altitude " + _altitudeUnit.getNameKey() + ", speed " + _speedUnit.getNameKey() +
+                       ", vspeed " + _vertSpeedUnit.getNameKey() + (_vertSpeedsUpwards ? " (upwards)" : " (downwards)");
+       }
+}