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@785: Canvas c = new Canvas(); ingo@785: c.setHeight(1); ingo@785: c.setWidth(1); ingo@785: ingo@785: return c; 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 :