1 package tim.prune.gui.profile;
3 import tim.prune.data.Field;
4 import tim.prune.data.Track;
5 import tim.prune.data.UnitSet;
8 * Class to provide a source of values for the profile chart
9 * using any arbitary (non-built-in) field, units unknown
11 public class ArbitraryData extends ProfileData
14 private Field _field = null;
18 * @param inTrack track object
19 * @param inField field to use
21 public ArbitraryData(Track inTrack, Field inField)
28 * Get the data and populate the instance arrays
30 public void init(UnitSet inUnitSet)
32 setUnitSet(inUnitSet);
35 _minValue = _maxValue = 0.0;
38 for (int i=0; i<_track.getNumPoints(); i++)
40 // Get the value of the given field
41 boolean hasValue = false;
42 String value = _track.getPoint(i).getFieldValue(_field);
45 double dValue = Double.parseDouble(value);
46 _pointValues[i] = dValue;
47 if (dValue < _minValue || _minValue == 0.0) {_minValue = dValue;}
48 if (dValue > _maxValue) {_maxValue = dValue;}
52 catch (Exception e) {} // ignore nulls and non-numbers
53 _pointHasData[i] = hasValue;
59 * @return name of field
61 public String getLabel()
63 return _field.getName();
67 * @return the field object
69 public Field getField() {
74 * @return key for message when no values present
76 public String getNoDataKey() {
77 return "display.novalues";