package annis.gui.widgets; import annis.gui.widgets.gwt.client.ui.autoheightiframe.AutoHeightIFrameServerRpc; import annis.gui.widgets.gwt.client.ui.autoheightiframe.AutoHeightIFrameState; import com.vaadin.ui.AbstractComponent; import java.net.URI; /** * Server side component for the VAutoHeightIFrame widget. */ public class AutoHeightIFrame extends AbstractComponent { private URI uri; private boolean heightWasSet = false; public static final int ADDITIONAL_HEIGHT = -1; public final static String RES_KEY = "iframe-vis-res"; public AutoHeightIFrame(URI uri) { this.uri = uri; setWidth("100%"); registerRpc(rpc); getState().setUrl(uri.toASCIIString()); getState().setAdditionalHeight(ADDITIONAL_HEIGHT); } private AutoHeightIFrameServerRpc rpc = new AutoHeightIFrameServerRpc() { @Override public void newHeight(float height) { if (!heightWasSet) { setHeight(height, Unit.PIXELS); heightWasSet = true; } } }; @Override protected AutoHeightIFrameState getState() { return (AutoHeightIFrameState) super.getState(); } }