ingo@785: package de.intevation.flys.client.client.ui;
ingo@785:
ingo@785: import java.util.ArrayList;
ingo@785: import java.util.List;
ingo@785:
ingo@785: import com.google.gwt.core.client.GWT;
ingo@785:
ingo@785: import com.smartgwt.client.widgets.Canvas;
ingo@785: import com.smartgwt.client.widgets.form.DynamicForm;
ingo@785: import com.smartgwt.client.widgets.form.fields.LinkItem;
ingo@785: import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
ingo@785: import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
ingo@785:
ingo@785: import de.intevation.flys.client.shared.model.ArtifactDescription;
ingo@785: import de.intevation.flys.client.shared.model.Data;
ingo@785: import de.intevation.flys.client.shared.model.DataList;
ingo@785:
ingo@785: import de.intevation.flys.client.client.FLYSConstants;
ingo@785: import de.intevation.flys.client.client.event.AdvanceHandler;
ingo@785:
ingo@785:
ingo@785: /**
ingo@785: * @author Ingo Weinzierl
ingo@785: */
ingo@785: public class ContinuePanel extends AbstractUIProvider {
ingo@785:
ingo@785: protected static FLYSConstants MSG = GWT.create(FLYSConstants.class);
ingo@785:
ingo@785: protected List advHandlers;
ingo@785:
ingo@785:
ingo@785: @Override
ingo@785: public Canvas create(DataList dataList) {
ingo@785: DynamicForm form = new DynamicForm();
ingo@785: form.setWidth(200);
ingo@785: form.setHeight(35);
ingo@785:
ingo@785: LinkItem next = new LinkItem();
ingo@785: next.setShowTitle(false);
ingo@785: next.setLinkTitle(MSG.next());
ingo@785:
ingo@785: final ArtifactDescription desc = artifact.getArtifactDescription();
ingo@785: final String[] reachable = desc.getReachableStates();
ingo@785:
ingo@785: next.addClickHandler(new ClickHandler() {
ingo@785: public void onClick(ClickEvent e) {
ingo@785: fireOnAdvance(reachable[0]);
ingo@785: }
ingo@785: });
ingo@785:
ingo@785: form.setFields(next);
ingo@785:
ingo@785: return form;
ingo@785: }
ingo@785:
ingo@785:
ingo@785: @Override
ingo@785: public Canvas createOld(DataList dataList) {
ingo@790: return null;
ingo@785: }
ingo@785:
ingo@785:
ingo@785: @Override
ingo@785: protected Data[] getData() {
ingo@785: return new Data[0];
ingo@785: }
ingo@785:
ingo@785:
ingo@785: public void addAdvanceHandler(AdvanceHandler handler) {
ingo@785: if (advHandlers == null) {
ingo@785: advHandlers = new ArrayList();
ingo@785: }
ingo@785:
ingo@785: if (handler != null) {
ingo@785: advHandlers.add(handler);
ingo@785: }
ingo@785: }
ingo@785:
ingo@785:
ingo@785: public void fireOnAdvance(String target) {
ingo@785: if (advHandlers == null || advHandlers.isEmpty()) {
ingo@785: return;
ingo@785: }
ingo@785:
ingo@785: for (AdvanceHandler handler: advHandlers) {
ingo@785: handler.onAdvance(target);
ingo@785: }
ingo@785: }
ingo@785: }
ingo@785: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :