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@2505: import com.google.gwt.core.client.GWT; 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@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@2537: import de.intevation.flys.client.shared.model.IntDataItem; raimund@2526: import de.intevation.flys.client.shared.model.IntegerArrayData; raimund@2902: 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@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: 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@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@2902: public void success() { raimund@2902: List fe = fixInfo.getEvents(); raimund@2902: for (int i = 0; i < fe.size(); i++) { raimund@2902: events.add (fe.get(i).getCId()); raimund@2902: } raimund@2902: } 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: }