From 6d48729efb4bd1ac34bba003a8a4313a70a02cce Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 16 Feb 2013 16:55:44 +1300 Subject: Handle clicks on markers (fix #8) --- src/org/traccar/web/client/model/StateItem.java | 31 ++++++++++++++++ .../web/client/model/StateItemProperties.java | 17 +++++++++ src/org/traccar/web/client/model/StateReader.java | 43 ++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 src/org/traccar/web/client/model/StateItem.java create mode 100644 src/org/traccar/web/client/model/StateItemProperties.java create mode 100644 src/org/traccar/web/client/model/StateReader.java (limited to 'src/org/traccar/web/client/model') diff --git a/src/org/traccar/web/client/model/StateItem.java b/src/org/traccar/web/client/model/StateItem.java new file mode 100644 index 0000000..651d2a2 --- /dev/null +++ b/src/org/traccar/web/client/model/StateItem.java @@ -0,0 +1,31 @@ +package org.traccar.web.client.model; + + +public class StateItem { + + public StateItem(String name, String value) { + this.name = name; + this.value = value; + } + + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + private String value; + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + +} diff --git a/src/org/traccar/web/client/model/StateItemProperties.java b/src/org/traccar/web/client/model/StateItemProperties.java new file mode 100644 index 0000000..e3700a5 --- /dev/null +++ b/src/org/traccar/web/client/model/StateItemProperties.java @@ -0,0 +1,17 @@ +package org.traccar.web.client.model; + +import com.google.gwt.editor.client.Editor.Path; +import com.sencha.gxt.core.client.ValueProvider; +import com.sencha.gxt.data.shared.ModelKeyProvider; +import com.sencha.gxt.data.shared.PropertyAccess; + +public interface StateItemProperties extends PropertyAccess { + + @Path("name") + ModelKeyProvider id(); + + ValueProvider name(); + + ValueProvider value(); + +} diff --git a/src/org/traccar/web/client/model/StateReader.java b/src/org/traccar/web/client/model/StateReader.java new file mode 100644 index 0000000..a354917 --- /dev/null +++ b/src/org/traccar/web/client/model/StateReader.java @@ -0,0 +1,43 @@ +package org.traccar.web.client.model; + +import java.util.LinkedList; +import java.util.List; + +import org.traccar.web.shared.model.Position; +import org.traccar.web.shared.model.XmlParser; + +import com.google.gwt.i18n.client.DateTimeFormat; + +public class StateReader { + + private static String toString(Object object) { + if (object != null) { + return object.toString(); + } + return null; + } + + public static List getState(Position position) { + List state = new LinkedList(); + + state.add(new StateItem("valid", toString(position.getValid()))); + state.add(new StateItem("time", DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss").format(position.getTime()))); + state.add(new StateItem("latitude", toString(position.getLatitude()))); + state.add(new StateItem("longitude", toString(position.getLongitude()))); + state.add(new StateItem("altitude", toString(position.getAltitude()))); + state.add(new StateItem("speed", toString(position.getSpeed()))); + state.add(new StateItem("course", toString(position.getCourse()))); + state.add(new StateItem("power", toString(position.getPower()))); + state.add(new StateItem("address", position.getAddress())); + + String other = position.getOther(); + if (other != null) { + for (String key : XmlParser.enumerateElements(other)) { + state.add(new StateItem(key, XmlParser.getElement(other, key))); + } + } + + return state; + } + +} -- cgit v1.2.3