diff options
Diffstat (limited to 'src/org/traccar/web/client/controller/ArchiveController.java')
-rw-r--r-- | src/org/traccar/web/client/controller/ArchiveController.java | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/src/org/traccar/web/client/controller/ArchiveController.java b/src/org/traccar/web/client/controller/ArchiveController.java index 598a744d..9f865b65 100644 --- a/src/org/traccar/web/client/controller/ArchiveController.java +++ b/src/org/traccar/web/client/controller/ArchiveController.java @@ -1,12 +1,19 @@ package org.traccar.web.client.controller; -import java.util.Collection; +import java.util.Date; +import java.util.List; +import org.traccar.web.client.Application; +import org.traccar.web.client.model.BaseAsyncCallback; +import org.traccar.web.client.model.PositionProperties; import org.traccar.web.client.view.ArchiveView; import org.traccar.web.shared.model.Device; import org.traccar.web.shared.model.Position; +import com.google.gwt.core.client.GWT; +import com.sencha.gxt.data.shared.ListStore; import com.sencha.gxt.widget.core.client.ContentPanel; +import com.sencha.gxt.widget.core.client.box.AlertMessageBox; public class ArchiveController implements ContentController, ArchiveView.ArchiveHandler { @@ -16,11 +23,19 @@ public class ArchiveController implements ContentController, ArchiveView.Archive private ArchiveHandler archiveHandler; + private ListStore<Position> positionStore; + private ArchiveView archiveView; - public ArchiveController(ArchiveHandler archiveHandler) { + public ArchiveController(ArchiveHandler archiveHandler, ListStore<Device> deviceStore) { this.archiveHandler = archiveHandler; - archiveView = new ArchiveView(this); + PositionProperties positionProperties = GWT.create(PositionProperties.class); + positionStore = new ListStore<Position>(positionProperties.id()); + archiveView = new ArchiveView(this, positionStore, deviceStore); + } + + public ListStore<Position> getPositionStore() { + return positionStore; } @Override @@ -32,13 +47,29 @@ public class ArchiveController implements ContentController, ArchiveView.Archive public void run() { } - public void updateDevices(Collection<Device> devices) { + @Override + public void onSelected(Position position) { + archiveHandler.onSelected(position); + } + @Override + public void onLoad(Device device, Date from, Date to) { + if (device != null && from != null && to != null) { + Application.getDataService().getPositions(device, from, to, new BaseAsyncCallback<List<Position>>() { + @Override + public void onSuccess(List<Position> result) { + positionStore.clear(); + positionStore.addAll(result); + } + }); + } else { + new AlertMessageBox("Error", "All form fields must be filled first").show(); + } } @Override - public void onSelected(Position position) { - archiveHandler.onSelected(position); + public void onClear() { + positionStore.clear(); } } |