diff options
Diffstat (limited to 'src/org/traccar/web/client/view/ArchiveView.java')
-rw-r--r-- | src/org/traccar/web/client/view/ArchiveView.java | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/src/org/traccar/web/client/view/ArchiveView.java b/src/org/traccar/web/client/view/ArchiveView.java deleted file mode 100644 index 9cc579f8..00000000 --- a/src/org/traccar/web/client/view/ArchiveView.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright 2013 Anton Tananaev (anton.tananaev@gmail.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.traccar.web.client.view; - -import java.util.Date; -import java.util.LinkedList; -import java.util.List; - -import org.traccar.web.client.ApplicationContext; -import org.traccar.web.client.model.BaseStoreHandlers; -import org.traccar.web.client.model.DeviceProperties; -import org.traccar.web.client.model.PositionProperties; -import org.traccar.web.shared.model.Device; -import org.traccar.web.shared.model.Position; - -import com.google.gwt.cell.client.DateCell; -import com.google.gwt.core.client.GWT; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.uibinder.client.UiHandler; -import com.google.gwt.user.client.ui.Widget; -import com.sencha.gxt.cell.core.client.NumberCell; -import com.sencha.gxt.core.client.Style.SelectionMode; -import com.sencha.gxt.data.shared.ListStore; -import com.sencha.gxt.data.shared.event.StoreHandlers; -import com.sencha.gxt.widget.core.client.ContentPanel; -import com.sencha.gxt.widget.core.client.event.SelectEvent; -import com.sencha.gxt.widget.core.client.form.ComboBox; -import com.sencha.gxt.widget.core.client.form.DateField; -import com.sencha.gxt.widget.core.client.form.TimeField; -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.selection.SelectionChangedEvent; - -public class ArchiveView implements SelectionChangedEvent.SelectionChangedHandler<Position> { - - private static ArchiveViewUiBinder uiBinder = GWT.create(ArchiveViewUiBinder.class); - - interface ArchiveViewUiBinder extends UiBinder<Widget, ArchiveView> { - } - - public interface ArchiveHandler { - public void onSelected(Position position); - public void onLoad(Device device, Date from, Date to); - public void onClear(); - } - - private ArchiveHandler archiveHandler; - - @UiField - ContentPanel contentPanel; - - public ContentPanel getView() { - return contentPanel; - } - - ListStore<Device> deviceStore; - - @UiField - DateField fromDate; - - @UiField - TimeField fromTime; - - @UiField - DateField toDate; - - @UiField - TimeField toTime; - - @UiField(provided = true) - ComboBox<Device> deviceCombo; - - @UiField(provided = true) - ColumnModel<Position> columnModel; - - @UiField(provided = true) - ListStore<Position> positionStore; - - @UiField - Grid<Position> grid; - - public ArchiveView(ArchiveHandler archiveHandler, ListStore<Position> positionStore, ListStore<Device> deviceStore) { - this.archiveHandler = archiveHandler; - this.positionStore = positionStore; - deviceStore.addStoreHandlers(deviceStoreHandlers); - this.deviceStore = deviceStore; - - DeviceProperties deviceProperties = GWT.create(DeviceProperties.class); - deviceCombo = new ComboBox<Device>(deviceStore, deviceProperties.label()); - - PositionProperties positionProperties = GWT.create(PositionProperties.class); - - List<ColumnConfig<Position, ?>> columnConfigList = new LinkedList<ColumnConfig<Position, ?>>(); - - columnConfigList.add(new ColumnConfig<Position, Boolean>(positionProperties.valid(), 0, "Valid")); - - ColumnConfig<Position, Date> columnConfigDate = new ColumnConfig<Position, Date>(positionProperties.time(), 0, "Time"); - columnConfigDate.setCell(new DateCell(ApplicationContext.getInstance().getFormatterUtil().getTimeFormat())); - columnConfigList.add(columnConfigDate); - - columnConfigList.add(new ColumnConfig<Position, Double>(positionProperties.latitude(), 0, "Latitude")); - columnConfigList.add(new ColumnConfig<Position, Double>(positionProperties.longitude(), 0, "Longitude")); - columnConfigList.add(new ColumnConfig<Position, Double>(positionProperties.altitude(), 0, "Altitude")); - - ColumnConfig<Position, Double> columnConfigDouble = new ColumnConfig<Position, Double>(positionProperties.speed(), 0, "Speed"); - columnConfigDouble.setCell(new NumberCell<Double>(ApplicationContext.getInstance().getFormatterUtil().getSpeedFormat())); - columnConfigList.add(columnConfigDouble); - - columnConfigList.add(new ColumnConfig<Position, Double>(positionProperties.course(), 0, "Course")); - columnConfigList.add(new ColumnConfig<Position, Double>(positionProperties.power(), 0, "Power")); - - columnModel = new ColumnModel<Position>(columnConfigList); - - uiBinder.createAndBindUi(this); - - grid.getSelectionModel().addSelectionChangedHandler(this); - grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); - - // Initialize with current time - long min = 60 * 1000; - Date now = new Date(); - Date to = new Date(((now.getTime() + 15 * min) / (15 * min)) * 15 * min); - Date from = new Date(to.getTime() - 60 * min); - fromDate.setValue(from); - fromTime.setValue(from); - toDate.setValue(to); - toTime.setValue(to); - } - - @Override - public void onSelectionChanged(SelectionChangedEvent<Position> event) { - if (event.getSelection().isEmpty()) { - archiveHandler.onSelected(null); - } else { - archiveHandler.onSelected(event.getSelection().get(0)); - } - } - - @SuppressWarnings("deprecation") - private static Date getCombineDate(DateField dateField, TimeField timeField) { - Date result = null; - Date date = dateField.getValue(); - Date time = timeField.getValue(); - if (date != null && time != null) { - result = new Date( - date.getYear(), date.getMonth(), date.getDate(), - time.getHours(), time.getMinutes(), time.getSeconds()); - } - return result; - } - - @UiHandler("loadButton") - public void onLoadClicked(SelectEvent event) { - archiveHandler.onLoad( - deviceCombo.getValue(), - getCombineDate(fromDate, fromTime), - getCombineDate(toDate, toTime)); - } - - @UiHandler("clearButton") - public void onClearClicked(SelectEvent event) { - archiveHandler.onClear(); - } - - private StoreHandlers<Device> deviceStoreHandlers = new BaseStoreHandlers<Device>() { - - @Override - public void onAnything() { - Device oldDevice = deviceCombo.getValue(); - if (oldDevice != null) { - deviceCombo.setValue(deviceStore.findModel(oldDevice)); - } - } - - }; - - public void selectPosition(Position position) { - grid.getSelectionModel().select(positionStore.findModel(position), false); - } - -} |