From 9f80fe9b90d9ddb1132c139072cfe3bac5a42491 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 17 Feb 2013 13:24:07 +1300 Subject: Added settings controller --- src/org/traccar/web/client/Application.java | 5 +++- src/org/traccar/web/client/FormatterUtil.java | 17 +++++++++++ .../web/client/controller/DeviceController.java | 7 ++--- .../web/client/controller/SettingsController.java | 31 ++++++++++++++++++++ src/org/traccar/web/client/view/DeviceView.java | 34 +++++++++++++++++++++- src/org/traccar/web/client/view/DeviceView.ui.xml | 14 +++++++-- 6 files changed, 100 insertions(+), 8 deletions(-) create mode 100644 src/org/traccar/web/client/FormatterUtil.java create mode 100644 src/org/traccar/web/client/controller/SettingsController.java (limited to 'src/org/traccar/web') diff --git a/src/org/traccar/web/client/Application.java b/src/org/traccar/web/client/Application.java index 07e2586..cd3424d 100644 --- a/src/org/traccar/web/client/Application.java +++ b/src/org/traccar/web/client/Application.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import org.traccar.web.client.controller.ArchiveController; import org.traccar.web.client.controller.DeviceController; import org.traccar.web.client.controller.MapController; +import org.traccar.web.client.controller.SettingsController; import org.traccar.web.client.controller.StateController; import org.traccar.web.client.model.BaseStoreHandlers; import org.traccar.web.client.model.DataService; @@ -48,6 +49,7 @@ public class Application { return logger; } + private final SettingsController settingsController; private final DeviceController deviceController; private final StateController stateController; private final MapController mapController; @@ -56,7 +58,8 @@ public class Application { private ApplicationView view; public Application() { - deviceController = new DeviceController(deviceHandler); + settingsController = new SettingsController(); + deviceController = new DeviceController(deviceHandler, settingsController); deviceController.getDeviceStore().addStoreHandlers(deviceStoreHandler); stateController = new StateController(); mapController = new MapController(mapHandler); diff --git a/src/org/traccar/web/client/FormatterUtil.java b/src/org/traccar/web/client/FormatterUtil.java new file mode 100644 index 0000000..f5c7d3e --- /dev/null +++ b/src/org/traccar/web/client/FormatterUtil.java @@ -0,0 +1,17 @@ +package org.traccar.web.client; + +import java.util.Date; + +import com.google.gwt.i18n.client.DateTimeFormat; + +public class FormatterUtil { + + public DateTimeFormat getTimeFormat() { + return DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss"); + } + + public String formatTime(Date time) { + return getTimeFormat().format(time); + } + +} diff --git a/src/org/traccar/web/client/controller/DeviceController.java b/src/org/traccar/web/client/controller/DeviceController.java index 75aa76f..94c81ed 100644 --- a/src/org/traccar/web/client/controller/DeviceController.java +++ b/src/org/traccar/web/client/controller/DeviceController.java @@ -30,7 +30,6 @@ import com.sencha.gxt.widget.core.client.ContentPanel; import com.sencha.gxt.widget.core.client.Dialog.PredefinedButton; import com.sencha.gxt.widget.core.client.box.ConfirmMessageBox; import com.sencha.gxt.widget.core.client.event.HideEvent; -import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; public class DeviceController implements ContentController, DeviceView.DeviceHandler { @@ -44,11 +43,11 @@ public class DeviceController implements ContentController, DeviceView.DeviceHan private DeviceView deviceView; - public DeviceController(DeviceHandler deviceHandler) { + public DeviceController(DeviceHandler deviceHandler, DeviceView.SettingsHandler settingsHandler) { this.deviceHandler = deviceHandler; DeviceProperties deviceProperties = GWT.create(DeviceProperties.class); deviceStore = new ListStore(deviceProperties.id()); - deviceView = new DeviceView(this, deviceStore); + deviceView = new DeviceView(this, settingsHandler, deviceStore); } public ListStore getDeviceStore() { @@ -108,7 +107,7 @@ public class DeviceController implements ContentController, DeviceView.DeviceHan @Override public void onRemove(final Device device) { final ConfirmMessageBox dialog = new ConfirmMessageBox("Confirm", "Are you sure you want remove device?"); - dialog.addHideHandler(new HideHandler() { + dialog.addHideHandler(new HideEvent.HideHandler() { @Override public void onHide(HideEvent event) { if (dialog.getHideButton() == dialog.getButtonById(PredefinedButton.YES.name())) { diff --git a/src/org/traccar/web/client/controller/SettingsController.java b/src/org/traccar/web/client/controller/SettingsController.java new file mode 100644 index 0000000..b98d1bc --- /dev/null +++ b/src/org/traccar/web/client/controller/SettingsController.java @@ -0,0 +1,31 @@ +package org.traccar.web.client.controller; + +import org.traccar.web.client.view.DeviceView; + +public class SettingsController implements DeviceView.SettingsHandler { + + @Override + public void onAccountSelected() { + // TODO Auto-generated method stub + + } + + @Override + public void onPreferencesSelected() { + // TODO Auto-generated method stub + + } + + @Override + public void onUsersSelected() { + // TODO Auto-generated method stub + + } + + @Override + public void onGlobalSelected() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/org/traccar/web/client/view/DeviceView.java b/src/org/traccar/web/client/view/DeviceView.java index c3f3f7a..8a0b624 100644 --- a/src/org/traccar/web/client/view/DeviceView.java +++ b/src/org/traccar/web/client/view/DeviceView.java @@ -24,6 +24,7 @@ import org.traccar.web.client.model.DeviceProperties; import org.traccar.web.shared.model.Device; import com.google.gwt.core.client.GWT; +import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; @@ -37,6 +38,7 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent; import com.sencha.gxt.widget.core.client.grid.ColumnConfig; import com.sencha.gxt.widget.core.client.grid.ColumnModel; import com.sencha.gxt.widget.core.client.grid.Grid; +import com.sencha.gxt.widget.core.client.menu.Item; import com.sencha.gxt.widget.core.client.selection.SelectionChangedEvent; public class DeviceView implements SelectionChangedEvent.SelectionChangedHandler { @@ -80,8 +82,9 @@ public class DeviceView implements SelectionChangedEvent.SelectionChangedHandler @UiField Grid grid; - public DeviceView(DeviceHandler deviceHandler, ListStore deviceStore) { + public DeviceView(DeviceHandler deviceHandler, SettingsHandler settingsHandler, ListStore deviceStore) { this.deviceHandler = deviceHandler; + this.settingsHandler = settingsHandler; this.deviceStore = deviceStore; DeviceProperties deviceProperties = GWT.create(DeviceProperties.class); @@ -138,4 +141,33 @@ public class DeviceView implements SelectionChangedEvent.SelectionChangedHandler grid.getSelectionModel().select(deviceStore.findModel(device), false); } + public interface SettingsHandler { + public void onAccountSelected(); + public void onPreferencesSelected(); + public void onUsersSelected(); + public void onGlobalSelected(); + } + + private SettingsHandler settingsHandler; + + @UiHandler("settingsAccount") + public void onSettingsAccountSelected(SelectionEvent event) { + settingsHandler.onAccountSelected(); + } + + @UiHandler("preferencesAccount") + public void onSettingsPreferencesSelected(SelectionEvent event) { + settingsHandler.onPreferencesSelected(); + } + + @UiHandler("usersAccount") + public void onSettingsUsersSelected(SelectionEvent event) { + settingsHandler.onUsersSelected(); + } + + @UiHandler("globalAccount") + public void onSettingsGlobalSelected(SelectionEvent event) { + settingsHandler.onGlobalSelected(); + } + } diff --git a/src/org/traccar/web/client/view/DeviceView.ui.xml b/src/org/traccar/web/client/view/DeviceView.ui.xml index 77de651..f612957 100644 --- a/src/org/traccar/web/client/view/DeviceView.ui.xml +++ b/src/org/traccar/web/client/view/DeviceView.ui.xml @@ -6,7 +6,8 @@ xmlns:gxt="urn:import:com.sencha.gxt.widget.core.client" xmlns:toolbar="urn:import:com.sencha.gxt.widget.core.client.toolbar" xmlns:grid="urn:import:com.sencha.gxt.widget.core.client.grid" - xmlns:button="urn:import:com.sencha.gxt.widget.core.client.button"> + xmlns:button="urn:import:com.sencha.gxt.widget.core.client.button" + xmlns:menu="urn:import:com.sencha.gxt.widget.core.client.menu"> @@ -32,7 +33,16 @@ - + + + + + + + + + + -- cgit v1.2.3