diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2013-01-09 20:37:55 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2013-01-09 20:37:55 +1300 |
commit | 49ea27fa064054d0bccb22b0ef6ed081f4835a92 (patch) | |
tree | 5a84cfcbc03103297f1f66415dd03533fc8e9aa0 /src/main/java/org/traccar | |
parent | f0b99fd68cb3b6b484d50c1f9ebc0e77997fd2dd (diff) | |
download | etbsa-traccar-web-49ea27fa064054d0bccb22b0ef6ed081f4835a92.tar.gz etbsa-traccar-web-49ea27fa064054d0bccb22b0ef6ed081f4835a92.tar.bz2 etbsa-traccar-web-49ea27fa064054d0bccb22b0ef6ed081f4835a92.zip |
Remove old stuff
Diffstat (limited to 'src/main/java/org/traccar')
20 files changed, 0 insertions, 1491 deletions
diff --git a/src/main/java/org/traccar/web/client/Style.java b/src/main/java/org/traccar/web/client/Style.java deleted file mode 100644 index 4f2c1fd..0000000 --- a/src/main/java/org/traccar/web/client/Style.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.traccar.web.client; - -public class Style { - - public static int getPadding() { - return 10; - } - - public static int getCellPadding() { - return 5; - } - - public static String getNoBorder() { - return "0px"; - } - -} diff --git a/src/main/java/org/traccar/web/client/Traccar.java b/src/main/java/org/traccar/web/client/Traccar.java deleted file mode 100644 index 5ea75cf..0000000 --- a/src/main/java/org/traccar/web/client/Traccar.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.traccar.web.client; - -import java.util.List; - -import org.traccar.web.client.controller.ArchiveController; -import org.traccar.web.client.controller.DeviceController; -import org.traccar.web.client.controller.LoginController; -import org.traccar.web.client.controller.MapController; -import org.traccar.web.client.database.DatabaseService; -import org.traccar.web.client.database.DatabaseServiceAsync; -import org.traccar.web.client.i18n.ApplicationConstants; -import org.traccar.web.shared.model.Device; - -import com.google.gwt.core.client.EntryPoint; -import com.google.gwt.core.client.GWT; -import com.smartgwt.client.util.SC; -import com.smartgwt.client.widgets.Canvas; -import com.smartgwt.client.widgets.events.ClickEvent; -import com.smartgwt.client.widgets.events.ClickHandler; -import com.smartgwt.client.widgets.layout.HLayout; -import com.smartgwt.client.widgets.layout.VLayout; - -/** - * Entry point class - */ -public class Traccar implements EntryPoint, LoginController.LoginHandler { - - private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class); - - public static ApplicationConstants getConstants() { - return constants; - } - - private static final DatabaseServiceAsync databaseService = GWT.create(DatabaseService.class); - - public static DatabaseServiceAsync getDatabaseService() { - return databaseService; - } - - /** - * Entry point method - */ - @Override - public void onModuleLoad() { - new LoginController().login(this); - } - - @Override - public void onLogin() { - createLayout(); - } - - private MapController mapController; - private DeviceController deviceController; - private ArchiveController archiveController; - - private void createLayout() { - mapController = new MapController(); - deviceController = new DeviceController(); - deviceController.setHandler(deviceHandler); - archiveController = new ArchiveController(); - - Canvas mainPanel = mapController.getView(); - mainPanel.setWidth("80%"); - - Canvas leftPanel = deviceController.getView(); - leftPanel.setWidth("20%"); - leftPanel.setShowResizeBar(true); - - Canvas bottomPanel = archiveController.getView(); - bottomPanel.setHeight("30%"); - - HLayout topLayout = new HLayout(); - topLayout.setHeight("70%"); - topLayout.addMember(leftPanel); - topLayout.addMember(mainPanel); - topLayout.setShowResizeBar(true); - topLayout.setResizeBarTarget("next"); - - VLayout mainLayout = new VLayout(); - mainLayout.setWidth100(); - mainLayout.setHeight100(); - mainLayout.addMember(topLayout); - mainLayout.addMember(bottomPanel); - - deviceController.setSettingsClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - SC.say("Coming soon..."); - } - }); - - mainLayout.draw(); - } - - DeviceController.DeviceHandler deviceHandler = new DeviceController.DeviceHandler() { - - @Override - public void onChanged(List<Device> devices) { - mapController.update(); - } - - @Override - public void onSelected(Device device) { - mapController.select(device); - } - - }; - -} diff --git a/src/main/java/org/traccar/web/client/controller/ArchiveController.java b/src/main/java/org/traccar/web/client/controller/ArchiveController.java deleted file mode 100644 index acd8252..0000000 --- a/src/main/java/org/traccar/web/client/controller/ArchiveController.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.traccar.web.client.controller; - -import org.traccar.web.client.view.ArchivePanel; - -import com.smartgwt.client.widgets.Canvas; - -public class ArchiveController implements PanelController { - - @Override - public Canvas getView() { - return new ArchivePanel(); - } - -} diff --git a/src/main/java/org/traccar/web/client/controller/DeviceController.java b/src/main/java/org/traccar/web/client/controller/DeviceController.java deleted file mode 100644 index 0c42e8a..0000000 --- a/src/main/java/org/traccar/web/client/controller/DeviceController.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.traccar.web.client.controller; - -import java.util.List; - -import org.traccar.web.client.Traccar; -import org.traccar.web.client.database.BaseAsyncCallback; -import org.traccar.web.client.view.DeviceDialog; -import org.traccar.web.client.view.DevicePanel; -import org.traccar.web.shared.model.Device; - -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.smartgwt.client.widgets.Canvas; -import com.smartgwt.client.widgets.events.ClickHandler; - -public class DeviceController implements PanelController, DevicePanel.DeviceHandler, DeviceDialog.SaveHandler { - - public interface DeviceHandler { - public void onChanged(List<Device> devices); - public void onSelected(Device device); - } - - private DeviceHandler deviceHandler; - - public void setHandler(DeviceHandler deviceHandler) { - this.deviceHandler = deviceHandler; - } - - private final DevicePanel devicePanel; - - public DeviceController() { - devicePanel = new DevicePanel(); - devicePanel.setDeviceHandler(this); - Traccar.getDatabaseService().getDevices(updateCallback); - } - - @Override - public Canvas getView() { - return devicePanel; - } - - public void setSettingsClickHandler(ClickHandler handler) { - if (devicePanel != null) { - devicePanel.setSettingsClickHandler(handler); - } - } - - DeviceDialog dialog; - - @Override - public void onAdd() { - onEdit(new Device()); - } - - @Override - public void onEdit(Device device) { - dialog = new DeviceDialog(); - dialog.setSaveHandler(this); - dialog.setDevice(device); - dialog.draw(); - dialog.centerInPage(); - } - - @Override - public void onRemove(Device device) { - Traccar.getDatabaseService().removeDevice(device, saveCallback); - } - - @Override - public void onSelected(Device device) { - if (deviceHandler != null) { - deviceHandler.onSelected(device); - } - } - - @Override - public void onSave(Device device) { - Traccar.getDatabaseService().storeDevice(device, saveCallback); - } - - private AsyncCallback<Boolean> saveCallback = new BaseAsyncCallback<Boolean>() { - @Override - public void onSuccess(Boolean result) { - if (result) { - if (dialog != null) { - dialog.destroy(); - dialog = null; - } - Traccar.getDatabaseService().getDevices(updateCallback); - } - } - }; - - private AsyncCallback<List<Device>> updateCallback = new BaseAsyncCallback<List<Device>>() { - @Override - public void onSuccess(List<Device> result) { - devicePanel.updateDevices(result); - if (deviceHandler != null) { - deviceHandler.onChanged(result); - } - } - }; -} diff --git a/src/main/java/org/traccar/web/client/controller/LoginController.java b/src/main/java/org/traccar/web/client/controller/LoginController.java deleted file mode 100644 index b3193a1..0000000 --- a/src/main/java/org/traccar/web/client/controller/LoginController.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.traccar.web.client.controller; - -import org.traccar.web.client.Traccar; -import org.traccar.web.client.database.BaseAsyncCallback; -import org.traccar.web.client.view.LoginDialog; - -import com.smartgwt.client.util.SC; - -public class LoginController implements LoginDialog.LoginHandler { - - private LoginDialog dialog; - - public interface LoginHandler { - public void onLogin(); - } - - private LoginHandler loginHandler; - - public void login(final LoginHandler loginHandler) { - this.loginHandler = loginHandler; - - Traccar.getDatabaseService().authenticated(new BaseAsyncCallback<Boolean>() { - @Override - public void onSuccess(Boolean result) { - - if (result) { - loginHandler.onLogin(); - } else { - dialog = new LoginDialog(); - dialog.setLoginHandler(LoginController.this); - dialog.draw(); - dialog.centerInPage(); - } - } - }); - } - - private boolean validate(String login, String password) { - if (login == null || login.isEmpty() || password == null || password.isEmpty()) { - SC.warn(Traccar.getConstants().blankLoginPassword()); - return false; - } - return true; - } - - @Override - public void onLogin(String login, String password) { - if (validate(login, password)) { - Traccar.getDatabaseService().authenticate(login, password, new BaseAsyncCallback<Boolean>() { - @Override - public void onSuccess(Boolean result) { - if (result) { - if (loginHandler != null) { - dialog.destroy(); - loginHandler.onLogin(); - } - } else { - SC.warn(Traccar.getConstants().invalidLoginPassword()); - } - } - }); - } - } - - @Override - public void onRegister(String login, String password) { - if (validate(login, password)) { - Traccar.getDatabaseService().register(login, password, new BaseAsyncCallback<Boolean>() { - @Override - public void onSuccess(Boolean result) { - if (result) { - if (loginHandler != null) { - dialog.destroy(); - loginHandler.onLogin(); - } - } else { - SC.warn(Traccar.getConstants().registrationError()); - } - } - }); - } - } - -} diff --git a/src/main/java/org/traccar/web/client/controller/MapController.java b/src/main/java/org/traccar/web/client/controller/MapController.java deleted file mode 100644 index 8932050..0000000 --- a/src/main/java/org/traccar/web/client/controller/MapController.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.traccar.web.client.controller; - -import java.util.List; - -import org.traccar.web.client.Traccar; -import org.traccar.web.client.view.MapPanel; -import org.traccar.web.shared.model.Device; -import org.traccar.web.shared.model.Position; - -import com.google.gwt.user.client.Timer; -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.smartgwt.client.widgets.Canvas; - -public class MapController implements PanelController { - - private static final int UPDATE_INTERVAL = 10000; - - private final MapPanel mapPanel; - - private final Timer updateTimer; - - public MapController() { - mapPanel = new MapPanel(); - updateTimer = new Timer() { - @Override - public void run() { - update(); - } - }; - update(); - } - - @Override - public Canvas getView() { - return mapPanel; - } - - public void select(Device device) { - mapPanel.select(device, true); - } - - public void update() { - updateTimer.cancel(); - Traccar.getDatabaseService().getLatestPositions(new AsyncCallback<List<Position>>() { - @Override - public void onSuccess(List<Position> result) { - mapPanel.showPositions(result); - updateTimer.schedule(UPDATE_INTERVAL); - } - @Override - public void onFailure(Throwable caught) { - updateTimer.schedule(UPDATE_INTERVAL); - } - }); - } - -} diff --git a/src/main/java/org/traccar/web/client/controller/PanelController.java b/src/main/java/org/traccar/web/client/controller/PanelController.java deleted file mode 100644 index 6f2492a..0000000 --- a/src/main/java/org/traccar/web/client/controller/PanelController.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.traccar.web.client.controller; - -import com.smartgwt.client.widgets.Canvas; - -public interface PanelController { - - Canvas getView(); - -} diff --git a/src/main/java/org/traccar/web/client/database/BaseAsyncCallback.java b/src/main/java/org/traccar/web/client/database/BaseAsyncCallback.java deleted file mode 100644 index bcc8c37..0000000 --- a/src/main/java/org/traccar/web/client/database/BaseAsyncCallback.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.traccar.web.client.database; - -import org.traccar.web.client.Traccar; - -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.smartgwt.client.util.SC; - -public class BaseAsyncCallback<T> implements AsyncCallback<T> { - - @Override - public void onFailure(Throwable caught) { - SC.warn(Traccar.getConstants().remoteProcedureCallError()); - } - - @Override - public void onSuccess(T result) { - } - -} diff --git a/src/main/java/org/traccar/web/client/database/DatabaseService.java b/src/main/java/org/traccar/web/client/database/DatabaseService.java deleted file mode 100644 index 4e68181..0000000 --- a/src/main/java/org/traccar/web/client/database/DatabaseService.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.traccar.web.client.database; - -import java.util.Date; -import java.util.List; - -import org.traccar.web.shared.model.Device; -import org.traccar.web.shared.model.Position; - -import com.google.gwt.user.client.rpc.RemoteService; -import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; - -@RemoteServiceRelativePath("databaseService") -public interface DatabaseService extends RemoteService { - - boolean authenticated(); - - boolean authenticate(String login, String password); - - boolean register(String login, String password); - - List<Device> getDevices(); - - boolean storeDevice(Device device); - - boolean removeDevice(Device device); - - List<Position> getPositions(Device device, Date from, Date to); - - List<Position> getLatestPositions(); - -} diff --git a/src/main/java/org/traccar/web/client/database/DatabaseServiceAsync.java b/src/main/java/org/traccar/web/client/database/DatabaseServiceAsync.java deleted file mode 100644 index 809574d..0000000 --- a/src/main/java/org/traccar/web/client/database/DatabaseServiceAsync.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.traccar.web.client.database; - -import java.util.Date; -import java.util.List; - -import org.traccar.web.shared.model.Device; -import org.traccar.web.shared.model.Position; - -import com.google.gwt.user.client.rpc.AsyncCallback; - -public interface DatabaseServiceAsync { - - void authenticated(AsyncCallback<Boolean> callback); - - void authenticate(String login, String password, AsyncCallback<Boolean> callback); - - void register(String login, String password, AsyncCallback<Boolean> callback); - - void getDevices(AsyncCallback<List<Device>> callback); - - void storeDevice(Device device, AsyncCallback<Boolean> callback); - - void removeDevice(Device device, AsyncCallback<Boolean> callback); - - void getPositions(Device device, Date from, Date to, AsyncCallback<List<Position>> callback); - - void getLatestPositions(AsyncCallback<List<Position>> callback); - -} diff --git a/src/main/java/org/traccar/web/client/i18n/ApplicationConstants.java b/src/main/java/org/traccar/web/client/i18n/ApplicationConstants.java deleted file mode 100644 index 41f3764..0000000 --- a/src/main/java/org/traccar/web/client/i18n/ApplicationConstants.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.traccar.web.client.i18n; - -import com.google.gwt.i18n.client.Constants; - -public interface ApplicationConstants extends Constants { - - @DefaultStringValue("User Authentication") - String userAuthentication(); - - @DefaultStringValue("Login") - String login(); - - @DefaultStringValue("Password") - String password(); - - @DefaultStringValue("Register") - String register(); - - @DefaultStringValue("Login and password fields must not be blank") - String blankLoginPassword(); - - @DefaultStringValue("Remote procedure call error") - String remoteProcedureCallError(); - - @DefaultStringValue("Invalid login or password") - String invalidLoginPassword(); - - @DefaultStringValue("Registration failed") - String registrationError(); - - @DefaultStringValue("Devices") - String devices(); - - @DefaultStringValue("Device") - String device(); - - @DefaultStringValue("Add") - String add(); - - @DefaultStringValue("Remove") - String remove(); - - @DefaultStringValue("Edit") - String edit(); - - @DefaultStringValue("Settings") - String settings(); - - @DefaultStringValue("Are you sure you want to remove selected device?") - String removeDeviceConfirmation(); - - @DefaultStringValue("Object") - String object(); - - @DefaultStringValue("Unique Identifier") - String uniqueId(); - - @DefaultStringValue("Name") - String name(); - - @DefaultStringValue("Save") - String save(); - - @DefaultStringValue("Cancel") - String cancel(); - - @DefaultStringValue("Mapnik") - String mapnik(); - - @DefaultStringValue("Markers") - String markers(); - - @DefaultStringValue("Map") - String map(); - -} diff --git a/src/main/java/org/traccar/web/client/view/ArchivePanel.java b/src/main/java/org/traccar/web/client/view/ArchivePanel.java deleted file mode 100644 index 3929be2..0000000 --- a/src/main/java/org/traccar/web/client/view/ArchivePanel.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.traccar.web.client.view; - -import com.smartgwt.client.widgets.form.fields.DateTimeItem; -import com.smartgwt.client.widgets.form.fields.SelectItem; -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.ToolStrip; -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/view/DeviceDialog.java b/src/main/java/org/traccar/web/client/view/DeviceDialog.java deleted file mode 100644 index 119564a..0000000 --- a/src/main/java/org/traccar/web/client/view/DeviceDialog.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.traccar.web.client.view; - -import org.traccar.web.client.Style; -import org.traccar.web.client.Traccar; -import org.traccar.web.shared.model.Device; - -import com.smartgwt.client.types.Alignment; -import com.smartgwt.client.widgets.IButton; -import com.smartgwt.client.widgets.Window; -import com.smartgwt.client.widgets.events.ClickEvent; -import com.smartgwt.client.widgets.events.ClickHandler; -import com.smartgwt.client.widgets.form.DynamicForm; -import com.smartgwt.client.widgets.form.fields.TextItem; -import com.smartgwt.client.widgets.form.fields.ToolbarItem; -import com.smartgwt.client.widgets.layout.Layout; - -public class DeviceDialog extends Window { - - public interface SaveHandler { - public void onSave(Device device); - } - - private SaveHandler saveHandler; - - public void setSaveHandler(SaveHandler saveHandler) { - this.saveHandler = saveHandler; - } - - private Device device; - - TextItem nameEdit; - TextItem uniqueIdEdit; - - public void setDevice(Device device) { - this.device = device; - nameEdit.setValue(device.getName()); - uniqueIdEdit.setValue(device.getUniqueId()); - } - - public DeviceDialog() { - setTitle(Traccar.getConstants().device()); - setAutoSize(true); - setIsModal(true); - - // Form - final DynamicForm form = new DynamicForm(); - form.setHeight100(); - form.setWidth100(); - - nameEdit = new TextItem(); - nameEdit.setTitle(Traccar.getConstants().name()); - uniqueIdEdit = new TextItem(); - uniqueIdEdit.setTitle(Traccar.getConstants().uniqueId()); - - final ToolbarItem toolbarItem = new ToolbarItem(); - toolbarItem.setButtons( - new IButton(Traccar.getConstants().save(), new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - if (saveHandler != null) { - device.setName(nameEdit.getValueAsString()); - device.setUniqueId(uniqueIdEdit.getValueAsString()); - saveHandler.onSave(device); - } - } - }), - new IButton(Traccar.getConstants().cancel(), new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - destroy(); - } - })); - toolbarItem.setAlign(Alignment.RIGHT); - toolbarItem.setColSpan(3); - - form.setFields(nameEdit, uniqueIdEdit, toolbarItem); - form.setCellPadding(Style.getCellPadding()); - - final Layout layout = new Layout(); - layout.setPadding(Style.getPadding()); - - layout.addMember(form); - - addItem(layout); - } - -} diff --git a/src/main/java/org/traccar/web/client/view/DevicePanel.java b/src/main/java/org/traccar/web/client/view/DevicePanel.java deleted file mode 100644 index 11a3bc3..0000000 --- a/src/main/java/org/traccar/web/client/view/DevicePanel.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.traccar.web.client.view; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.traccar.web.client.Traccar; -import org.traccar.web.shared.model.Device; - -import com.smartgwt.client.data.Record; -import com.smartgwt.client.util.BooleanCallback; -import com.smartgwt.client.util.SC; -import com.smartgwt.client.widgets.events.ClickEvent; -import com.smartgwt.client.widgets.events.ClickHandler; -import com.smartgwt.client.widgets.grid.ListGrid; -import com.smartgwt.client.widgets.grid.ListGridField; -import com.smartgwt.client.widgets.grid.events.SelectionChangedHandler; -import com.smartgwt.client.widgets.grid.events.SelectionEvent; -import com.smartgwt.client.widgets.layout.SectionStack; -import com.smartgwt.client.widgets.layout.SectionStackSection; -import com.smartgwt.client.widgets.toolbar.ToolStrip; -import com.smartgwt.client.widgets.toolbar.ToolStripButton; - -/** - * Device list widget - */ -public class DevicePanel extends SectionStack { - - private static final String COLUMN_ID = "id"; - private static final String COLUMN_NAME = "name"; - private static final String COLUMN_UNIQUE_ID = "uniqueId"; - - public interface DeviceHandler { - public void onAdd(); - public void onEdit(Device device); - public void onRemove(Device device); - public void onSelected(Device device); - } - - private DeviceHandler deviceHandler; - - public void setDeviceHandler(DeviceHandler deviceHandler) { - this.deviceHandler = deviceHandler; - } - - ToolStripButton addButton; - ToolStripButton removeButton; - ToolStripButton editButton; - private ToolStripButton settingsButton; - - private ListGrid list; - - private Map<Long, Device> deviceMap = new HashMap<Long, Device>(); - - public DevicePanel() { - SectionStackSection section = new SectionStackSection(Traccar.getConstants().devices()); - section.setCanCollapse(false); - section.setExpanded(true); - - ToolStrip toolbar = new ToolStrip(); - toolbar.setWidth100(); - - addButton = new ToolStripButton(); - addButton.setTitle(Traccar.getConstants().add()); - addButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - if (deviceHandler != null) { - deviceHandler.onAdd(); - } - } - }); - - removeButton = new ToolStripButton(); - removeButton.setTitle(Traccar.getConstants().remove()); - removeButton.setVisible(false); - removeButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - SC.ask(Traccar.getConstants().removeDeviceConfirmation(), new BooleanCallback() { - @Override - public void execute(Boolean value) { - if (value && deviceHandler != null && list.anySelected()) { - deviceHandler.onRemove(deviceMap.get(list.getSelectedRecord().getAttributeAsLong(COLUMN_ID))); - } - } - }); - } - }); - - editButton = new ToolStripButton(); - editButton.setVisible(false); - editButton.setTitle(Traccar.getConstants().edit()); - editButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - if (deviceHandler != null && list.anySelected()) { - deviceHandler.onEdit(deviceMap.get(list.getSelectedRecord().getAttributeAsLong(COLUMN_ID))); - } - } - }); - - toolbar.addButton(addButton); - toolbar.addButton(removeButton); - toolbar.addButton(editButton); - - toolbar.addFill(); - toolbar.addSeparator(); - - settingsButton = new ToolStripButton(); - settingsButton.setTitle(Traccar.getConstants().settings()); - toolbar.addButton(settingsButton); - - list = new ListGrid(); - list.setFields( - new ListGridField(COLUMN_NAME, Traccar.getConstants().name()), - new ListGridField(COLUMN_UNIQUE_ID, Traccar.getConstants().uniqueId())); - - list.setCanSort(false); - list.setShowHeaderContextMenu(false); - list.setShowHeaderMenuButton(false); - - list.addSelectionChangedHandler(new SelectionChangedHandler() { - @Override - public void onSelectionChanged(SelectionEvent event) { - removeButton.setVisible(list.anySelected()); - editButton.setVisible(list.anySelected()); - if (deviceHandler != null) { - if (list.anySelected()) { - deviceHandler.onSelected(deviceMap.get(list.getSelectedRecord().getAttributeAsLong(COLUMN_ID))); - } else { - deviceHandler.onSelected(null); - } - } - } - }); - - section.setItems(toolbar, list); - setSections(section); - } - - public void setSettingsClickHandler(ClickHandler handler) { - settingsButton.addClickHandler(handler); - } - - public void updateDevices(List<Device> devices) { - deviceMap.clear(); - for (Record record : list.getRecords()) { - list.removeData(record); - } - removeButton.setVisible(list.anySelected()); - editButton.setVisible(list.anySelected()); - - for (Device device : devices) { - deviceMap.put(device.getId(), device); - - Map<String, Object> map = new HashMap<String, Object>(); - map.put(COLUMN_ID, device.getId()); - map.put(COLUMN_NAME, device.getName()); - map.put(COLUMN_UNIQUE_ID, device.getUniqueId()); - - Record record = new Record(map); - list.addData(record); - } - } - -} diff --git a/src/main/java/org/traccar/web/client/view/LoginDialog.java b/src/main/java/org/traccar/web/client/view/LoginDialog.java deleted file mode 100644 index 625a29b..0000000 --- a/src/main/java/org/traccar/web/client/view/LoginDialog.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.traccar.web.client.view; - -import org.traccar.web.client.Style; -import org.traccar.web.client.Traccar; - -import com.smartgwt.client.types.Alignment; -import com.smartgwt.client.widgets.IButton; -import com.smartgwt.client.widgets.Window; -import com.smartgwt.client.widgets.events.ClickEvent; -import com.smartgwt.client.widgets.events.ClickHandler; -import com.smartgwt.client.widgets.form.DynamicForm; -import com.smartgwt.client.widgets.form.fields.PasswordItem; -import com.smartgwt.client.widgets.form.fields.TextItem; -import com.smartgwt.client.widgets.form.fields.ToolbarItem; -import com.smartgwt.client.widgets.layout.Layout; - -public class LoginDialog extends Window { - - public interface LoginHandler { - public void onLogin(String login, String password); - public void onRegister(String login, String password); - } - - private LoginHandler loginHandler; - - public void setLoginHandler(LoginHandler loginHandler) { - this.loginHandler = loginHandler; - } - - public LoginDialog() { - - // Window properties - setTitle(Traccar.getConstants().userAuthentication()); - setShowCloseButton(false); - setShowMinimizeButton(false); - setAutoSize(true); - setIsModal(true); - - // Login form - final DynamicForm form = new DynamicForm(); - form.setHeight100(); - form.setWidth100(); - final TextItem loginEdit = new TextItem(); - loginEdit.setTitle(Traccar.getConstants().login()); - final PasswordItem passwordEdit = new PasswordItem(); - passwordEdit.setTitle(Traccar.getConstants().password()); - - final ToolbarItem toolbarItem = new ToolbarItem(); - toolbarItem.setButtons( - new IButton(Traccar.getConstants().login(), new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - if (loginHandler != null) { - loginHandler.onLogin( - loginEdit.getValueAsString(), passwordEdit.getValueAsString()); - } - } - }), - new IButton(Traccar.getConstants().register(), new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - if (loginHandler != null) { - loginHandler.onRegister( - loginEdit.getValueAsString(), passwordEdit.getValueAsString()); - } - } - })); - toolbarItem.setAlign(Alignment.RIGHT); - toolbarItem.setColSpan(3); - - form.setFields(loginEdit, passwordEdit, toolbarItem); - form.setCellPadding(Style.getCellPadding()); - - final Layout layout = new Layout(); - layout.setPadding(Style.getPadding()); - - layout.addMember(form); - - addItem(layout); - } - -} diff --git a/src/main/java/org/traccar/web/client/view/MapPanel.java b/src/main/java/org/traccar/web/client/view/MapPanel.java deleted file mode 100644 index 4a2ea94..0000000 --- a/src/main/java/org/traccar/web/client/view/MapPanel.java +++ /dev/null @@ -1,177 +0,0 @@ -package org.traccar.web.client.view; - -import java.util.AbstractMap; -import java.util.HashMap; -import java.util.List; - -import org.gwtopenmaps.openlayers.client.Icon; -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.Marker; -import org.gwtopenmaps.openlayers.client.Pixel; -import org.gwtopenmaps.openlayers.client.Projection; -import org.gwtopenmaps.openlayers.client.Size; -import org.gwtopenmaps.openlayers.client.control.ScaleLine; -import org.gwtopenmaps.openlayers.client.layer.Markers; -import org.gwtopenmaps.openlayers.client.layer.OSM; -import org.traccar.web.client.Traccar; -import org.traccar.web.shared.model.Device; -import org.traccar.web.shared.model.Position; - -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; - - -class MarkerIconFactory { - - private static final Size iconSize = new Size(21, 25); - private static final Pixel iconOffset = new Pixel(-10.5f, -25.0f); - - private static final String iconUrl = "http://www.openlayers.org/api/img/"; - private static final String iconRed = iconUrl + "marker.png"; - private static final String iconBlue = iconUrl + "marker-blue.png"; - private static final String iconGreen = iconUrl + "marker-green.png"; - private static final String iconGold = iconUrl + "marker-gold.png"; - - public static Icon getLocationIcon() { - return new Icon(iconRed, iconSize, iconOffset); - } - - public static Icon getSelectedLocationIcon() { - return new Icon(iconGreen, iconSize, iconOffset); - } - - public static Icon getArchiveIcon() { - return new Icon(iconBlue, iconSize, iconOffset); - } - - public static Icon getSelectedArchiveIcon() { - return new Icon(iconGold, iconSize, iconOffset); - } - -} - -/** - * Map panel widget - */ -public class MapPanel extends SectionStack { - - private MapWidget mapWidget; - private Map map; - private WidgetCanvas mapWrapper; - private Markers markerLayer; - - private LonLat createPoint(double longitude, double latitude) { - LonLat point = new LonLat(longitude, latitude); - point.transform(new Projection("EPSG:4326").getProjectionCode(), map.getProjection()); - return point; - } - - private void createMapWidget() { - MapOptions defaultMapOptions = new MapOptions(); - defaultMapOptions.setNumZoomLevels(16); - - mapWidget = new MapWidget("100%", "100%", defaultMapOptions); - map = mapWidget.getMap(); - - OSM mapLayer = OSM.Mapnik(Traccar.getConstants().mapnik()); - mapLayer.setIsBaseLayer(true); - - markerLayer = new Markers(Traccar.getConstants().markers()); - - map.addLayer(mapLayer); - map.addLayer(markerLayer); - map.addControl(new ScaleLine()); - - map.setCenter(createPoint(12.5, 41.9), 1); - } - - public SectionStackSection section; - - public MapPanel() { - section = new SectionStackSection(Traccar.getConstants().map()); - section.setShowHeader(false); - section.setCanCollapse(false); - section.setExpanded(true); - - 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) { - map.updateSize(); - } - }); - - section.setItems(mapWrapper); - setSections(section); - } - - private AbstractMap<Device, Position> positionMap = new HashMap<Device, Position>(); - private AbstractMap<Device, Marker> markerMap = new HashMap<Device, Marker>(); - private Device selectedDevice; - - public void showPositions(List<Position> positions) { - positionMap.clear(); - markerMap.clear(); - markerLayer.clearMarkers(); - for (Position position : positions) { - positionMap.put(position.getDevice(), position); - Marker marker = new Marker( - createPoint(position.getLongitude(), position.getLatitude()), MarkerIconFactory.getLocationIcon()); - markerMap.put(position.getDevice(), marker); - markerLayer.addMarker(marker); - } - if (selectedDevice != null) { - select(selectedDevice, false); - } - } - - private void changeMarkerIcon(Marker marker, Icon icon) { - Marker newMarker = new Marker(marker.getLonLat(), icon); - markerLayer.removeMarker(marker); - markerLayer.addMarker(newMarker); - } - - public void select(Device device, boolean center) { - if (selectedDevice != null) { - changeMarkerIcon(markerMap.get(selectedDevice), MarkerIconFactory.getLocationIcon()); - } - if (device != null) { - Marker marker = markerMap.get(device); - if (center) { - map.panTo(marker.getLonLat()); - } - changeMarkerIcon(marker, MarkerIconFactory.getSelectedLocationIcon()); - } - selectedDevice = device; - } - -} diff --git a/src/main/java/org/traccar/web/server/database/DatabaseServiceImpl.java b/src/main/java/org/traccar/web/server/database/DatabaseServiceImpl.java deleted file mode 100644 index d466262..0000000 --- a/src/main/java/org/traccar/web/server/database/DatabaseServiceImpl.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.traccar.web.server.database; - -import java.util.Date; -import java.util.LinkedList; -import java.util.List; - -import javax.persistence.EntityManager; -import javax.persistence.Persistence; -import javax.persistence.TypedQuery; -import javax.servlet.ServletException; -import javax.servlet.http.HttpSession; - -import org.traccar.web.client.database.DatabaseService; -import org.traccar.web.shared.model.Device; -import org.traccar.web.shared.model.Position; -import org.traccar.web.shared.model.User; - -import com.google.gwt.user.server.rpc.RemoteServiceServlet; - -public class DatabaseServiceImpl extends RemoteServiceServlet implements DatabaseService { - - private static final long serialVersionUID = 1; - - private static final String PERSISTENCE_UNIT = "traccar"; - private static final String ATTRIBUTE_USER = "user"; - - private EntityManager entityManager; - - @Override - public void init() throws ServletException { - super.init(); - entityManager = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT).createEntityManager(); - } - - private void setUser(User user) { - HttpSession session = getThreadLocalRequest().getSession(); - session.setAttribute(ATTRIBUTE_USER, user); - } - - private User getUser() { - HttpSession session = getThreadLocalRequest().getSession(); - return (User) session.getAttribute(ATTRIBUTE_USER); - } - - @Override - public boolean authenticated() { - return (getUser() != null); - } - - @Override - public boolean authenticate(String login, String password) { - TypedQuery<User> query = entityManager.createQuery( - "SELECT x FROM User x WHERE x.login = :login", User.class); - query.setParameter("login", login); - List<User> results = query.getResultList(); - - if (!results.isEmpty() && password.equals(results.get(0).getPassword())) { - setUser(results.get(0)); - return true; - } - return false; - } - - @Override - public boolean register(String login, String password) { - User user = new User(); - user.setLogin(login); - user.setPassword(password); - entityManager.getTransaction().begin(); - try { - entityManager.persist(user); - } finally { - entityManager.getTransaction().commit(); - } - setUser(user); - return true; - } - - @Override - public List<Device> getDevices() { - User user = getUser(); - List<Device> devices = new LinkedList<Device>(); - for (Device device : user.getDevices()) { - devices.add(device); - } - return devices; - } - - @Override - public boolean storeDevice(Device device) { - User user = getUser(); - boolean isNew = device.getId() == 0; - entityManager.getTransaction().begin(); - try { - device = entityManager.merge(device); - if (isNew) { - user.getDevices().add(device); - } - } finally { - entityManager.getTransaction().commit(); - } - return true; - } - - @Override - public boolean removeDevice(Device device) { - User user = getUser(); - entityManager.getTransaction().begin(); - try { - device = entityManager.merge(device); - user.getDevices().remove(device); - entityManager.remove(device); - } finally { - entityManager.getTransaction().commit(); - } - return true; - } - - @Override - public List<Position> getPositions(Device device, Date from, Date to) { - TypedQuery<Position> query = entityManager.createQuery( - "SELECT x FROM Position x WHERE x.device = :device AND x.time BETWEEN :from AND :to", Position.class); - query.setParameter("device", device); - query.setParameter("from", from); - query.setParameter("to", to); - - List<Position> positions = new LinkedList<Position>(); - for (Position position : query.getResultList()) { - positions.add(position); - } - return positions; - } - - @Override - public List<Position> getLatestPositions() { - User user = getUser(); - TypedQuery<Position> query = entityManager.createQuery( - "SELECT x FROM Position x WHERE (x.device, x.time) IN (" + - "SELECT y.device, MAX(y.time) FROM Position y WHERE y.device IN :devices GROUP BY y.device)", Position.class); - query.setParameter("devices", user.getDevices()); - - List<Position> positions = new LinkedList<Position>(); - for (Position position : query.getResultList()) { - positions.add(position); - } - return positions; - } - -} diff --git a/src/main/java/org/traccar/web/shared/model/Device.java b/src/main/java/org/traccar/web/shared/model/Device.java deleted file mode 100644 index 32f1c1f..0000000 --- a/src/main/java/org/traccar/web/shared/model/Device.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.traccar.web.shared.model; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "devices") -public class Device implements Serializable { - - private static final long serialVersionUID = 1; - - @Override - public boolean equals(Object obj) { - if (obj == null || obj.getClass() != this.getClass()) { - return false; - } - return id == ((Device) obj).id; - } - - @Override - public int hashCode() { - return (int) id; - } - - public Device() { - } - - // Constructor for testing - public Device(long id) { - this.id = id; - } - - @Id - @GeneratedValue - private long id; - - public long getId() { - return id; - } - - @Column(unique = true) - private String uniqueId; - - public void setUniqueId(String uniqueId) { - this.uniqueId = uniqueId; - } - - public String getUniqueId() { - return uniqueId; - } - - private String name; - - public void setName(String name) { - this.name = name; - } - - public String getName() { - return name; - } - -} diff --git a/src/main/java/org/traccar/web/shared/model/Position.java b/src/main/java/org/traccar/web/shared/model/Position.java deleted file mode 100644 index 69181df..0000000 --- a/src/main/java/org/traccar/web/shared/model/Position.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.traccar.web.shared.model; - -import java.io.Serializable; -import java.util.Date; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -import org.hibernate.annotations.Index; - -@Entity -@Table(name = "positions") -public class Position implements Serializable { - - private static final long serialVersionUID = 1; - - public Position() { - } - - @Id - @GeneratedValue - private long id; - - @ManyToOne - @Index(name = "positionsIndex") - private Device device; - - public Device getDevice() { - return device; - } - - @Index(name = "positionsIndex") - private Date time; - - public Date getTime() { - return time; - } - - private boolean valid; - - public boolean getValid() { - return valid; - } - - private double latitude; - - public double getLatitude() { - return latitude; - } - - private double longitude; - - public double getLongitude() { - return longitude; - } - - private double altitude; - - public double getAltitude() { - return altitude; - } - - private double speed; - - public double getSpeed() { - return speed; - } - - private double course; - - public double getCourse() { - return course; - } - - private double power; - - public double getPower() { - return power; - } - - private String address; - - public String getAddress() { - return address; - } - - private String other; - - public String getOther() { - return other; - } - -} diff --git a/src/main/java/org/traccar/web/shared/model/User.java b/src/main/java/org/traccar/web/shared/model/User.java deleted file mode 100644 index 181a09b..0000000 --- a/src/main/java/org/traccar/web/shared/model/User.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.traccar.web.shared.model; - -import java.io.Serializable; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.ManyToMany; -import javax.persistence.Table; - -@Entity -@Table(name="users") -public class User implements Serializable { - - private static final long serialVersionUID = 1; - - public User() { - } - - @Id - @GeneratedValue - private long id; - - @Column(unique = true) - private String login; - - public void setLogin(String login) { - this.login = login; - } - - public String getLogin() { - return login; - } - - private String password; - - public void setPassword(String password) { - this.password = password; - } - - public String getPassword() { - return password; - } - - @ManyToMany - private List<Device> devices; - - public List<Device> getDevices() { - return devices; - } - -} |