diff options
Diffstat (limited to 'src')
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(); } - }); - } + });*/ + } } |