diff options
Diffstat (limited to 'src/org/traccar/web/client/controller')
-rw-r--r-- | src/org/traccar/web/client/controller/SettingsController.java | 58 |
1 files changed, 57 insertions, 1 deletions
diff --git a/src/org/traccar/web/client/controller/SettingsController.java b/src/org/traccar/web/client/controller/SettingsController.java index a1892ae..f8fcc72 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<List<User>>() { + @Override + public void onSuccess(List<User> result) { + UserProperties userProperties = GWT.create(UserProperties.class); + final ListStore<User> userStore = new ListStore<User>(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<User>() { + @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<User>() { + @Override + public void onSuccess(User result) { + userStore.remove(user); + } + }); + } + } + }); + dialog.show(); + } + + }).show(); + } + }); } @Override |