X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fdata%2FField.java;h=6d877049e295515a7a6e895207b114f4c35b458c;hb=649c5da6ee1bbc590699e11a92316ece2ea8512d;hp=118fae3bab9d161c2ee8989a6bfbe261d5576018;hpb=312fec956e43f5d0a38617da5d0add9c62563e2c;p=GpsPrune.git diff --git a/tim/prune/data/Field.java b/tim/prune/data/Field.java index 118fae3..6d87704 100644 --- a/tim/prune/data/Field.java +++ b/tim/prune/data/Field.java @@ -4,39 +4,45 @@ import tim.prune.I18nManager; /** * Class to represent a field of a data point - * including its type */ public class Field { private String _labelKey = null; private String _customLabel = null; - private FieldType _type = null; private boolean _builtin = false; - public static final Field LATITUDE = new Field("fieldname.latitude", FieldType.COORD); - public static final Field LONGITUDE = new Field("fieldname.longitude", FieldType.COORD); - public static final Field ALTITUDE = new Field("fieldname.altitude", FieldType.INT); - public static final Field TIMESTAMP = new Field("fieldname.timestamp", FieldType.TIME); - public static final Field WAYPT_NAME = new Field("fieldname.waypointname", FieldType.NONE); - public static final Field WAYPT_TYPE = new Field("fieldname.waypointtype", FieldType.NONE); - public static final Field NEW_SEGMENT = new Field("fieldname.newsegment", FieldType.BOOL); + public static final Field LATITUDE = new Field("fieldname.latitude", true); + public static final Field LONGITUDE = new Field("fieldname.longitude", true); + public static final Field ALTITUDE = new Field("fieldname.altitude", true); + public static final Field TIMESTAMP = new Field("fieldname.timestamp", true); + public static final Field WAYPT_NAME = new Field("fieldname.waypointname", true); + public static final Field WAYPT_TYPE = new Field("fieldname.waypointtype", true); + public static final Field DESCRIPTION = new Field("fieldname.description", true); + public static final Field NEW_SEGMENT = new Field("fieldname.newsegment", true); - public static final Field[] ALL_AVAILABLE_FIELDS = { - LATITUDE, LONGITUDE, ALTITUDE, TIMESTAMP, WAYPT_NAME, WAYPT_TYPE, NEW_SEGMENT, - new Field("fieldname.custom", FieldType.NONE) + // TODO: Field for photo filename, ability to load (from text) and save (to text) + + private static final Field[] ALL_AVAILABLE_FIELDS = { + LATITUDE, LONGITUDE, ALTITUDE, TIMESTAMP, WAYPT_NAME, WAYPT_TYPE, DESCRIPTION, NEW_SEGMENT, + new Field(I18nManager.getText("fieldname.custom")) }; /** * Private constructor * @param inLabelKey Key for label texts - * @param inType type of field + * @param inBuiltin true for built-in types, false for custom */ - private Field(String inLabelKey, FieldType inType) + private Field(String inLabelKey, boolean inBuiltin) { - _labelKey = inLabelKey; - _customLabel = null; - _type = inType; - _builtin = true; + if (inBuiltin) { + _labelKey = inLabelKey; + _customLabel = null; + } + else { + _labelKey = null; + _customLabel = inLabelKey; + } + _builtin = inBuiltin; } @@ -46,9 +52,7 @@ public class Field */ public Field(String inLabel) { - _labelKey = null; - _customLabel = inLabel; - _type = FieldType.NONE; + this(inLabel, false); } /** @@ -87,4 +91,34 @@ public class Field { return (isBuiltIn() == inOther.isBuiltIn() && getName().equals(inOther.getName())); } + + /** + * Get the field for the given field name + * @param inFieldName name of field to look for + * @return Field if found, or null otherwise + */ + public static Field getField(String inFieldName) + { + for (int i=0; i