+++ /dev/null
-package tim.prune.gui.profile;
-
-import tim.prune.data.Field;
-import tim.prune.data.Track;
-import tim.prune.data.UnitSet;
-
-/**
- * Class to provide a source of values for the profile chart
- * using any arbitary (non-built-in) field, units unknown
- */
-public class ArbitraryData extends ProfileData
-{
- /** Field to use */
- private Field _field = null;
-
- /**
- * Constructor
- * @param inTrack track object
- * @param inField field to use
- */
- public ArbitraryData(Track inTrack, Field inField)
- {
- super(inTrack);
- _field = inField;
- }
-
- /**
- * Get the data and populate the instance arrays
- */
- public void init(UnitSet inUnitSet)
- {
- setUnitSet(inUnitSet);
- initArrays();
- _hasData = false;
- _minValue = _maxValue = 0.0;
- if (_track != null)
- {
- for (int i=0; i<_track.getNumPoints(); i++)
- {
- // Get the value of the given field
- boolean hasValue = false;
- String value = _track.getPoint(i).getFieldValue(_field);
- try
- {
- double dValue = Double.parseDouble(value);
- _pointValues[i] = dValue;
- if (dValue < _minValue || _minValue == 0.0) {_minValue = dValue;}
- if (dValue > _maxValue) {_maxValue = dValue;}
- hasValue = true;
- _hasData = true;
- }
- catch (Exception e) {} // ignore nulls and non-numbers
- _pointHasData[i] = hasValue;
- }
- }
- }
-
- /**
- * @return name of field
- */
- public String getLabel()
- {
- return _field.getName();
- }
-
- /**
- * @return the field object
- */
- public Field getField() {
- return _field;
- }
-
- /**
- * @return key for message when no values present
- */
- public String getNoDataKey() {
- return "display.novalues";
- }
-}