raimund@2505: package de.intevation.flys.client.client.ui.fixation;
raimund@2505:
raimund@2505: import java.util.List;
raimund@2505: import java.util.ArrayList;
raimund@2505:
raimund@2526: import java.lang.NumberFormatException;
raimund@2526:
raimund@2505: import com.google.gwt.core.client.GWT;
raimund@2526: import com.google.gwt.user.client.rpc.AsyncCallback;
raimund@2526:
raimund@2526: import com.smartgwt.client.util.SC;
raimund@2505:
raimund@2505: import com.smartgwt.client.widgets.Canvas;
raimund@2505: import com.smartgwt.client.widgets.Label;
raimund@2505:
raimund@2505: import com.smartgwt.client.widgets.layout.HLayout;
raimund@2505: import com.smartgwt.client.widgets.layout.VLayout;
raimund@2505:
raimund@2526: import de.intevation.flys.client.client.Config;
raimund@2505: import de.intevation.flys.client.client.FLYSConstants;
raimund@2505:
raimund@2505: import de.intevation.flys.client.shared.model.Data;
raimund@2526: import de.intevation.flys.client.shared.model.DataItem;
raimund@2505: import de.intevation.flys.client.shared.model.DataList;
raimund@2526: import de.intevation.flys.client.shared.model.DefaultData;
raimund@2526: import de.intevation.flys.client.shared.model.DefaultDataItem;
raimund@2537: import de.intevation.flys.client.shared.model.IntDataItem;
raimund@2526: import de.intevation.flys.client.shared.model.IntegerArrayData;
raimund@2526: import de.intevation.flys.client.shared.model.FixingsOverviewInfo;
raimund@2526: import de.intevation.flys.client.shared.model.FixingsOverviewInfo.FixEvent;
raimund@2526:
raimund@2526: import de.intevation.flys.client.client.services.FixingsOverviewService;
raimund@2526: import de.intevation.flys.client.client.services.FixingsOverviewServiceAsync;
raimund@2505:
raimund@2505: /**
raimund@2505: * This UIProvider creates a panel for location or distance input.
raimund@2505: *
raimund@2505: * @author Raimund Renkert
raimund@2505: */
raimund@2505: public class FixEventSelect
raimund@2505: extends FixationPanel
raimund@2505: {
raimund@2505: /** The message class that provides i18n strings. */
raimund@2505: protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
raimund@2505:
raimund@2526: protected FixingsOverviewServiceAsync overviewService =
raimund@2526: GWT.create(FixingsOverviewService.class);
raimund@2526:
raimund@2505: protected List events;
raimund@2505:
raimund@2505: public FixEventSelect() {
raimund@2505: htmlOverview = "";
raimund@2505: events = new ArrayList();
raimund@2505: }
raimund@2505:
raimund@2505: public Canvas createWidget(DataList data) {
raimund@2505: instances.put(this.artifact.getUuid(), this);
raimund@2505:
raimund@2505: VLayout layout = new VLayout();
raimund@2505:
raimund@2505: Canvas title = new Label(MESSAGES.eventselect());
raimund@2505: title.setHeight("25px");
raimund@2505:
raimund@2505: layout.addMember(title);
raimund@2505: return layout;
raimund@2505: }
raimund@2505:
raimund@2505: @Override
raimund@2505: public Canvas createOld(DataList dataList) {
raimund@2526: List list = dataList.getAll();
raimund@2526:
raimund@2537: GWT.log("listsize: " + list.size());
raimund@2537:
raimund@2526: Data data = getData(list, "events");
raimund@2526:
raimund@2526: VLayout dataLayout = new VLayout();
raimund@2526: dataLayout.setWidth(130);
raimund@2537: DataItem[] items = data.getItems();
raimund@2537: for (int i = 0; i < items.length; i++) {
raimund@2537: Label l = new Label(items[i].getLabel());
raimund@2537: l.setHeight(25);
raimund@2537: dataLayout.addMember(l);
raimund@2537: }
raimund@2526:
raimund@2505: HLayout layout = new HLayout();
raimund@2505: layout.setWidth("400px");
raimund@2505:
raimund@2505: Label label = new Label(dataList.getLabel());
raimund@2505: label.setWidth("200px");
raimund@2505:
raimund@2505: Canvas back = getBackButton(dataList.getState());
raimund@2505:
raimund@2505: layout.addMember(label);
raimund@2526: layout.addMember(dataLayout);
raimund@2505: layout.addMember(back);
raimund@2505:
raimund@2505: return layout;
raimund@2505: }
raimund@2505:
raimund@2505:
raimund@2505: /**
raimund@2505: * This method returns the selected data.
raimund@2505: *
raimund@2505: * @return the selected/inserted data.
raimund@2505: */
raimund@2505: public Data[] getData() {
raimund@2505: List data = new ArrayList();
raimund@2505:
raimund@2526: if (events.size() > 0) {
raimund@2537: IntDataItem[] arr = new IntDataItem[events.size()];
raimund@2526: for (int i = 0; i < events.size(); i++) {
raimund@2526: GWT.log("event: " + events.get(i));
raimund@2526: try {
raimund@2526: Integer v = new Integer(events.get(i));
raimund@2537: arr[i] = new IntDataItem("id", "id", v.intValue());
raimund@2526: }
raimund@2526: catch (NumberFormatException nfe) {
raimund@2526: return (Data[]) data.toArray(new Data[data.size()]);
raimund@2526: }
raimund@2526: }
raimund@2526:
raimund@2526: IntegerArrayData iad =
raimund@2526: new IntegerArrayData("events", "events", arr);
raimund@2537: fixFilter.setEvents(iad.getValues());
raimund@2526:
raimund@2526: data.add(iad);
raimund@2526: }
raimund@2526:
raimund@2505: return (Data[]) data.toArray(new Data[data.size()]);
raimund@2505: }
raimund@2505:
raimund@2505:
raimund@2505: @Override
raimund@2505: public void setValues(String cid, boolean checked) {
raimund@2505: if (checked) {
raimund@2505: events.add(cid);
raimund@2505: }
raimund@2505: else {
raimund@2505: if (events.contains(cid)) {
raimund@2505: events.remove(cid);
raimund@2505: }
raimund@2505: }
raimund@2505: }
raimund@2505:
raimund@2505:
raimund@2505: @Override
raimund@2505: public boolean renderCheckboxes() {
raimund@2505: return true;
raimund@2505: }
raimund@2505:
raimund@2505:
raimund@2517: public void setFilter(FixFilter filter) {
raimund@2517: this.fixFilter = filter;
raimund@2517: }
raimund@2517:
raimund@2517:
raimund@2517: public FixFilter getFilter() {
raimund@2517: return this.fixFilter;
raimund@2517: }
raimund@2517:
raimund@2537: public void success() {}
raimund@2517:
raimund@2505: public void dumpGWT(String cid) {
raimund@2505: GWT.log("Setting values for cId: " + cid);
raimund@2505: GWT.log("River: " + fixInfo.getRiver());
raimund@2505: GWT.log("Date: " + fixInfo.getEventByCId(cid).getDate());
raimund@2537: GWT.log("Name: " + fixInfo.getEventByCId(cid).getDescription());
raimund@2505: }
raimund@2505: }