From ebcedc38812405ba1cd03c518317bcf0cd52f925 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 25 Feb 2013 21:06:38 +1300 Subject: Added user management --- .../web/client/controller/SettingsController.java | 58 +++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) (limited to 'src/org/traccar/web/client/controller') diff --git a/src/org/traccar/web/client/controller/SettingsController.java b/src/org/traccar/web/client/controller/SettingsController.java index a1892ae2..f8fcc72d 100644 --- a/src/org/traccar/web/client/controller/SettingsController.java +++ b/src/org/traccar/web/client/controller/SettingsController.java @@ -15,17 +15,27 @@ */ package org.traccar.web.client.controller; +import java.util.List; + import org.traccar.web.client.Application; import org.traccar.web.client.ApplicationContext; import org.traccar.web.client.model.BaseAsyncCallback; +import org.traccar.web.client.model.UserProperties; import org.traccar.web.client.view.ApplicationSettingsDialog; import org.traccar.web.client.view.DeviceView; import org.traccar.web.client.view.UserDialog; import org.traccar.web.client.view.UserSettingsDialog; +import org.traccar.web.client.view.UsersDialog; import org.traccar.web.shared.model.ApplicationSettings; import org.traccar.web.shared.model.User; import org.traccar.web.shared.model.UserSettings; +import com.google.gwt.core.client.GWT; +import com.sencha.gxt.data.shared.ListStore; +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; + public class SettingsController implements DeviceView.SettingsHandler { @Override @@ -66,8 +76,54 @@ public class SettingsController implements DeviceView.SettingsHandler { @Override public void onUsersSelected() { - // TODO Auto-generated method stub + Application.getDataService().getUsers(new BaseAsyncCallback>() { + @Override + public void onSuccess(List result) { + UserProperties userProperties = GWT.create(UserProperties.class); + final ListStore userStore = new ListStore(userProperties.id()); + userStore.addAll(result); + new UsersDialog(userStore, new UsersDialog.UserHandler() { + + @Override + public void onAdd() { + new UserDialog( + new User(), + new UserDialog.UserHandler() { + @Override + public void onSave(User user) { + Application.getDataService().addUser(user, new BaseAsyncCallback() { + @Override + public void onSuccess(User result) { + userStore.add(result); + } + }); + } + }).show(); + } + + @Override + public void onRemove(final User user) { + final ConfirmMessageBox dialog = new ConfirmMessageBox("Confirm", "Are you sure you want remove user?"); + dialog.addHideHandler(new HideEvent.HideHandler() { + @Override + public void onHide(HideEvent event) { + if (dialog.getHideButton() == dialog.getButtonById(PredefinedButton.YES.name())) { + Application.getDataService().removeUser(user, new BaseAsyncCallback() { + @Override + public void onSuccess(User result) { + userStore.remove(user); + } + }); + } + } + }); + dialog.show(); + } + + }).show(); + } + }); } @Override -- cgit v1.2.3