blob: 55ae536db470d922595338289357949d4f1b6c1c [file] [log] [blame]
package autotest.tko.embedded_spreadsheet;
import autotest.common.spreadsheet.Spreadsheet;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
public class EmbeddedSpreadsheetDisplay extends Composite
implements EmbeddedSpreadsheetPresenter.Display {
private static final String NO_RESULTS = "There are no results for this query (yet?)";
private Panel panel = new SimplePanel();
private Spreadsheet spreadsheet = new Spreadsheet();
private Label noResults = new Label(NO_RESULTS);
public EmbeddedSpreadsheetDisplay() {
initWidget(panel);
}
private void notifyParent(Widget w) {
Element elem = w.getElement();
notifyParent(elem.getClientWidth(), elem.getClientHeight());
}
private native void notifyParent(int width, int height) /*-{
$wnd.parent.postMessage(width + 'px ' + height + 'px', '*');
}-*/;
@Override
public Command getOnSpreadsheetRendered() {
return new Command() {
@Override
public void execute() {
notifyParent(spreadsheet);
}
};
}
@Override
public Spreadsheet getSpreadsheet() {
return spreadsheet;
}
@Override
public void showNoResults() {
panel.add(noResults);
notifyParent(noResults);
}
@Override
public void showSpreadsheet() {
panel.add(spreadsheet);
}
}