package org.activityinfo.ui.client.pageView.formClass; import com.google.common.base.Function; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Widget; import org.activityinfo.core.client.ResourceLocator; import org.activityinfo.model.form.FormClass; import org.activityinfo.model.form.FormInstance; import org.activityinfo.promise.Promise; import org.activityinfo.ui.client.component.formdesigner.FormDesigner; import org.activityinfo.ui.client.widget.DisplayWidget; import javax.annotation.Nullable; /** * * Created by Mithun on 4/3/2014. */ public class DesignTab implements DisplayWidget<FormInstance> { private ResourceLocator resourceLocator; private FlowPanel panel; public DesignTab(ResourceLocator resourceLocator) { this.resourceLocator = resourceLocator; this.panel = new FlowPanel(); } @Override public Promise<Void> show(FormInstance value) { return this.resourceLocator.getFormClass(value.getId()) .then(new Function<FormClass, Void>() { @Nullable @Override public Void apply(FormClass formClass) { panel.add(new FormDesigner(resourceLocator, formClass).getFormDesignerPanel()); return null; } }); } @Override public Widget asWidget() { return panel; } }