ingo@785: package de.intevation.flys.client.client.ui; 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: christian@4131: import de.intevation.flys.client.client.FLYSConstants; christian@4131: import de.intevation.flys.client.client.event.AdvanceHandler; 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: christian@4131: import java.util.ArrayList; christian@4131: import java.util.List; ingo@785: ingo@785: ingo@785: /** ingo@785: * @author Ingo Weinzierl ingo@785: */ ingo@785: public class ContinuePanel extends AbstractUIProvider { ingo@785: christian@4131: private static final long serialVersionUID = -5882814816875137397L; christian@4131: 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() { christian@4131: @Override 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 :