aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/traccar/web/client/ArchivePanel.java64
-rw-r--r--src/main/java/org/traccar/web/client/DevicePanel.java54
-rw-r--r--src/main/java/org/traccar/web/client/MapPanel.java95
-rw-r--r--src/main/java/org/traccar/web/client/Traccar.java35
-rw-r--r--src/main/java/org/traccar/web/client/login/LoginController.java15
-rw-r--r--src/main/java/org/traccar/web/client/login/LoginDialog.java14
-rw-r--r--src/test/java/org/traccar/web/client/GwtTestTraccar.java55
7 files changed, 74 insertions, 258 deletions
diff --git a/src/main/java/org/traccar/web/client/ArchivePanel.java b/src/main/java/org/traccar/web/client/ArchivePanel.java
deleted file mode 100644
index d8f7ea77..00000000
--- a/src/main/java/org/traccar/web/client/ArchivePanel.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.traccar.web.client;
-
-import com.smartgwt.client.widgets.toolbar.ToolStrip;
-import com.smartgwt.client.widgets.grid.ListGrid;
-import com.smartgwt.client.widgets.grid.ListGridField;
-import com.smartgwt.client.widgets.layout.SectionStack;
-import com.smartgwt.client.widgets.layout.SectionStackSection;
-import com.smartgwt.client.widgets.form.fields.SelectItem;
-import com.smartgwt.client.widgets.form.fields.DateTimeItem;
-import com.smartgwt.client.widgets.toolbar.ToolStripButton;
-
-/**
- * Archive widget
- */
-public class ArchivePanel extends SectionStack {
-
- private ToolStrip toolbar;
- private ListGrid list;
-
- public ArchivePanel() {
- SectionStackSection section = new SectionStackSection("Archive");
- section.setCanCollapse(false);
- section.setExpanded(true);
-
- toolbar = new ToolStrip();
- toolbar.setWidth100();
-
- SelectItem deviceSelect = new SelectItem("device", "Device");
- //fontItem.setShowTitle(false);
- //fontItem.setWidth(120);
- toolbar.addFormItem(deviceSelect);
- toolbar.addSeparator();
-
- DateTimeItem from = new DateTimeItem("from", "From");
- toolbar.addFormItem(from);
- toolbar.addSeparator();
- DateTimeItem to = new DateTimeItem("to", "To");
- toolbar.addFormItem(to);
- toolbar.addSeparator();
-
- ToolStripButton button = new ToolStripButton();
- button.setTitle("Load");
- toolbar.addButton(button);
-
- list = new ListGrid();
- list.setFields(
- new ListGridField("deviceId", "Device Id"),
- new ListGridField("time", "Time"),
- new ListGridField("valid", "Valid"),
- new ListGridField("latitude", "Latitude"),
- new ListGridField("longitude", "Longitude"),
- new ListGridField("speed", "Speed"),
- new ListGridField("course", "Course"),
- new ListGridField("power", "Power"));
-
- list.setCanSort(false);
- list.setShowHeaderContextMenu(false);
- list.setShowHeaderMenuButton(false);
-
- section.setItems(toolbar, list);
- setSections(section);
- }
-
-}
diff --git a/src/main/java/org/traccar/web/client/DevicePanel.java b/src/main/java/org/traccar/web/client/DevicePanel.java
deleted file mode 100644
index ba30fefb..00000000
--- a/src/main/java/org/traccar/web/client/DevicePanel.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.traccar.web.client;
-
-import com.smartgwt.client.widgets.toolbar.ToolStrip;
-import com.smartgwt.client.widgets.grid.ListGrid;
-import com.smartgwt.client.widgets.grid.ListGridField;
-import com.smartgwt.client.widgets.layout.SectionStack;
-import com.smartgwt.client.widgets.layout.SectionStackSection;
-import com.smartgwt.client.widgets.toolbar.ToolStripButton;
-
-/**
- * Device list widget
- */
-public class DevicePanel extends SectionStack {
-
- private ToolStrip toolbar;
- private ListGrid list;
-
- public DevicePanel() {
- SectionStackSection section = new SectionStackSection("Devices");
- section.setCanCollapse(false);
- section.setExpanded(true);
-
- toolbar = new ToolStrip();
- toolbar.setWidth100();
-
- ToolStripButton button = new ToolStripButton();
- button.setTitle("Add");
- toolbar.addButton(button);
- button = new ToolStripButton();
- button.setTitle("Remove");
- toolbar.addButton(button);
- button = new ToolStripButton();
- button.setTitle("Edit");
- toolbar.addButton(button);
- toolbar.addFill();
- toolbar.addSeparator();
- button = new ToolStripButton();
- button.setTitle("Settings");
- toolbar.addButton(button);
-
- list = new ListGrid();
- list.setFields(
- new ListGridField("id", "Id"),
- new ListGridField("imei", "IMEI"));
-
- list.setCanSort(false);
- list.setShowHeaderContextMenu(false);
- list.setShowHeaderMenuButton(false);
-
- section.setItems(toolbar, list);
- setSections(section);
- }
-
-}
diff --git a/src/main/java/org/traccar/web/client/MapPanel.java b/src/main/java/org/traccar/web/client/MapPanel.java
deleted file mode 100644
index 81d842e7..00000000
--- a/src/main/java/org/traccar/web/client/MapPanel.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.traccar.web.client;
-
-import org.gwtopenmaps.openlayers.client.LonLat;
-import org.gwtopenmaps.openlayers.client.Map;
-import org.gwtopenmaps.openlayers.client.MapOptions;
-import org.gwtopenmaps.openlayers.client.MapWidget;
-import org.gwtopenmaps.openlayers.client.Projection;
-import org.gwtopenmaps.openlayers.client.control.ScaleLine;
-import org.gwtopenmaps.openlayers.client.layer.OSM;
-
-import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.Element;
-import com.smartgwt.client.widgets.WidgetCanvas;
-import com.smartgwt.client.widgets.events.DrawEvent;
-import com.smartgwt.client.widgets.events.DrawHandler;
-import com.smartgwt.client.widgets.events.ResizedEvent;
-import com.smartgwt.client.widgets.events.ResizedHandler;
-import com.smartgwt.client.widgets.layout.SectionStack;
-import com.smartgwt.client.widgets.layout.SectionStackSection;
-
-/**
- * Map panel widget
- */
-public class MapPanel extends SectionStack {
-
- private final static int BORDER_SIZE = 1;
-
- private MapWidget mapWidget;
- private WidgetCanvas mapWrapper;
-
- private MapWidget createMapWidget() {
- MapOptions defaultMapOptions = new MapOptions();
- defaultMapOptions.setNumZoomLevels(16);
-
- MapWidget mapWidget = new MapWidget("100%", "100%", defaultMapOptions);
-
- // Google layer
- /*GoogleV3Options layerOptiond = new GoogleV3Options();
- layerOptiond.setIsBaseLayer(true);
- layerOptiond.setType(GoogleV3MapType.G_NORMAL_MAP);
- GoogleV3 layer = new GoogleV3("Google", layerOptiond);*/
-
- // Open Street Map layer
- OSM layer = OSM.Mapnik("Mapnik");
- layer.setIsBaseLayer(true);
-
- Map map = mapWidget.getMap();
- map.addLayer(layer);
- map.addControl(new ScaleLine());
-
- // Default center
- LonLat lonLat = new LonLat(12.5, 41.9);
- lonLat.transform(new Projection("EPSG:4326").getProjectionCode(), map.getProjection());
- map.setCenter(lonLat, 1);
-
- return mapWidget;
- }
-
- public MapPanel() {
- SectionStackSection section = new SectionStackSection("Map");
- section.setCanCollapse(false);
- section.setExpanded(true);
-
- mapWidget = createMapWidget();
-
- mapWrapper = new WidgetCanvas(mapWidget);
- mapWrapper.setStyleName("defaultBorder");
- mapWrapper.setHeight100();
- mapWrapper.setWidth100();
-
- // Map widget size hack
- mapWrapper.addDrawHandler(new DrawHandler() {
- @Override
- public void onDraw(DrawEvent event) {
- Element e = DOM.getElementById(mapWrapper.getID() + "_widget");
- if (e.getParentNode() != null) {
- e.getParentElement().getStyle().setProperty("width", "100%");
- e.getParentElement().getStyle().setProperty("height", "100%");
- }
- }
- });
-
- // Map resize handler
- mapWrapper.addResizedHandler(new ResizedHandler() {
- @Override
- public void onResized(ResizedEvent event) {
- mapWidget.getMap().updateSize();
- }
- });
-
- section.setItems(mapWrapper);
- setSections(section);
- }
-
-}
diff --git a/src/main/java/org/traccar/web/client/Traccar.java b/src/main/java/org/traccar/web/client/Traccar.java
index ecb9cb5f..68f633cf 100644
--- a/src/main/java/org/traccar/web/client/Traccar.java
+++ b/src/main/java/org/traccar/web/client/Traccar.java
@@ -1,9 +1,15 @@
package org.traccar.web.client;
+import java.util.LinkedList;
+import java.util.List;
+
import org.traccar.web.client.login.LoginController;
+import org.traccar.web.client.view.ArchivePanel;
+import org.traccar.web.client.view.DevicePanel;
+import org.traccar.web.client.view.MapPanel;
+import org.traccar.web.shared.model.Device;
import com.google.gwt.core.client.EntryPoint;
-import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
@@ -22,6 +28,7 @@ public class Traccar implements EntryPoint, LoginController.LoginHandler {
@Override
public void onModuleLoad() {
//new LoginController().login(this);
+ onLogin(); // TODO: remove from production
/*try {
GlobalDatabaseService.getInstance().getPositions(
@@ -40,11 +47,32 @@ public class Traccar implements EntryPoint, LoginController.LoginHandler {
SC.warn(error.getMessage());
}*/
+ }
+
+ private List<Device> testDevices() {
+ List<Device> devices = new LinkedList<Device>();
+
+ Device device = new Device(1);
+ device.setName("test1");
+ device.setUniqueId("11111");
+ devices.add(device);
+
+ device = new Device(2);
+ device.setName("test2");
+ device.setUniqueId("22222");
+ devices.add(device);
+
+ return devices;
+ }
+ @Override
+ public void onLogin() {
devicePanel = new DevicePanel();
devicePanel.setWidth("20%");
devicePanel.setShowResizeBar(true);
+ devicePanel.updateDevices(testDevices()); // TODO: remove from production
+
mapPanel = new MapPanel();
mapPanel.setWidth("80%");
@@ -65,9 +93,4 @@ public class Traccar implements EntryPoint, LoginController.LoginHandler {
mainLayout.addMember(archivePanel);
mainLayout.draw();
}
-
- @Override
- public void onLogin() {
- SC.warn("Woooohooo");
- }
}
diff --git a/src/main/java/org/traccar/web/client/login/LoginController.java b/src/main/java/org/traccar/web/client/login/LoginController.java
index 42d68899..840bde5e 100644
--- a/src/main/java/org/traccar/web/client/login/LoginController.java
+++ b/src/main/java/org/traccar/web/client/login/LoginController.java
@@ -1,11 +1,16 @@
package org.traccar.web.client.login;
+import org.traccar.web.client.database.GlobalDatabaseService;
+import org.traccar.web.client.i18n.ApplicationConstants;
+
+import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.util.SC;
-import org.traccar.web.client.database.GlobalDatabaseService;
public class LoginController implements LoginDialog.LoginHandler {
+ private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class);
+
private LoginDialog dialog;
public interface LoginHandler {
@@ -25,7 +30,7 @@ public class LoginController implements LoginDialog.LoginHandler {
private boolean validate(String login, String password) {
if (login == null || login.isEmpty() || password == null || password.isEmpty()) {
- SC.warn("Login and password fields must not be blank");
+ SC.warn(constants.blankLoginPassword());
return false;
}
return true;
@@ -34,7 +39,7 @@ public class LoginController implements LoginDialog.LoginHandler {
private static abstract class AsyncCallbackHandler implements AsyncCallback<Boolean> {
@Override
public void onFailure(Throwable caught) {
- SC.warn("Remote procedure call error");
+ SC.warn(constants.remoteProcedureCallError());
}
}
@@ -47,7 +52,7 @@ public class LoginController implements LoginDialog.LoginHandler {
loginHandler.onLogin();
}
} else {
- SC.warn("Invalid login or password");
+ SC.warn(constants.invalidLoginPassword());
}
}
};
@@ -68,7 +73,7 @@ public class LoginController implements LoginDialog.LoginHandler {
loginHandler.onLogin();
}
} else {
- SC.warn("Registration failed");
+ SC.warn(constants.registrationError());
}
}
};
diff --git a/src/main/java/org/traccar/web/client/login/LoginDialog.java b/src/main/java/org/traccar/web/client/login/LoginDialog.java
index ba00cabc..4e40f699 100644
--- a/src/main/java/org/traccar/web/client/login/LoginDialog.java
+++ b/src/main/java/org/traccar/web/client/login/LoginDialog.java
@@ -1,7 +1,9 @@
package org.traccar.web.client.login;
import org.traccar.web.client.Style;
+import org.traccar.web.client.i18n.ApplicationConstants;
+import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
@@ -14,10 +16,12 @@ import com.smartgwt.client.widgets.layout.Layout;
public class LoginDialog extends Window {
+ private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class);
+
public LoginDialog() {
// Window properties
- setTitle("User Authentication");
+ setTitle(constants.userAuthentication());
setShowCloseButton(false);
setShowMinimizeButton(false);
setAutoSize(true);
@@ -27,13 +31,13 @@ public class LoginDialog extends Window {
form.setHeight100();
form.setWidth100();
final TextItem loginEdit = new TextItem();
- loginEdit.setTitle("Login");
+ loginEdit.setTitle(constants.login());
final PasswordItem passwordEdit = new PasswordItem();
- passwordEdit.setTitle("Password");
+ passwordEdit.setTitle(constants.password());
final ToolbarItem toolbarItem = new ToolbarItem();
toolbarItem.setButtons(
- new IButton("Login", new ClickHandler() {
+ new IButton(constants.login(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (loginHandler != null) {
@@ -42,7 +46,7 @@ public class LoginDialog extends Window {
}
}
}),
- new IButton("Register", new ClickHandler() {
+ new IButton(constants.register(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (loginHandler != null) {
diff --git a/src/test/java/org/traccar/web/client/GwtTestTraccar.java b/src/test/java/org/traccar/web/client/GwtTestTraccar.java
index 2c6a4454..5564ee72 100644
--- a/src/test/java/org/traccar/web/client/GwtTestTraccar.java
+++ b/src/test/java/org/traccar/web/client/GwtTestTraccar.java
@@ -1,49 +1,46 @@
package org.traccar.web.client;
-import org.traccar.web.shared.FieldVerifier;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.junit.client.GWTTestCase;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
/**
* GWT JUnit <b>integration</b> tests must extend GWTTestCase.
* Using <code>"GwtTest*"</code> naming pattern exclude them from running with
* surefire during the test phase.
*
- * If you run the tests using the Maven command line, you will have to
- * navigate with your browser to a specific url given by Maven.
- * See http://mojo.codehaus.org/gwt-maven-plugin/user-guide/testing.html
+ * If you run the tests using the Maven command line, you will have to
+ * navigate with your browser to a specific url given by Maven.
+ * See http://mojo.codehaus.org/gwt-maven-plugin/user-guide/testing.html
* for details.
*/
public class GwtTestTraccar extends GWTTestCase {
- /**
- * Must refer to a valid module that sources this class.
- */
- public String getModuleName() {
- return "org.traccar.web.TraccarJUnit";
- }
+ /**
+ * Must refer to a valid module that sources this class.
+ */
+ @Override
+ public String getModuleName() {
+ return "org.traccar.web.TraccarJUnit";
+ }
- /**
- * Tests the FieldVerifier.
- */
- public void testFieldVerifier() {
- assertFalse(FieldVerifier.isValidName(null));
+ /**
+ * Tests the FieldVerifier.
+ */
+ public void testFieldVerifier() {
+ /*assertFalse(FieldVerifier.isValidName(null));
assertFalse(FieldVerifier.isValidName(""));
assertFalse(FieldVerifier.isValidName("a"));
assertFalse(FieldVerifier.isValidName("ab"));
assertFalse(FieldVerifier.isValidName("abc"));
- assertTrue(FieldVerifier.isValidName("abcd"));
- }
+ assertTrue(FieldVerifier.isValidName("abcd"));*/
+ }
- /**
- * This test will send a request to the server using the greetServer method in
- * GreetingService and verify the response.
- */
- public void testGreetingService() {
- // Create the service that we will test.
- GreetingServiceAsync greetingService = GWT.create(GreetingService.class);
+ /**
+ * This test will send a request to the server using the greetServer method in
+ * GreetingService and verify the response.
+ */
+ public void testGreetingService() {
+ // Create the service that we will test.
+ /*GreetingServiceAsync greetingService = GWT.create(GreetingService.class);
ServiceDefTarget target = (ServiceDefTarget) greetingService;
target.setServiceEntryPoint(GWT.getModuleBaseURL() + "Traccar/greet");
@@ -68,8 +65,8 @@ public class GwtTestTraccar extends GWTTestCase {
// asynchronous test finishes successfully, or the test will time out.
finishTest();
}
- });
- }
+ });*/
+ }
}