X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fdata%2FPointCreateOptions.java;fp=src%2Ftim%2Fprune%2Fdata%2FPointCreateOptions.java;h=2f61336041e270c0e0fb00be8e1276fabd4b6090;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/data/PointCreateOptions.java b/src/tim/prune/data/PointCreateOptions.java new file mode 100644 index 0000000..2f61336 --- /dev/null +++ b/src/tim/prune/data/PointCreateOptions.java @@ -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)"); + } +}