package org.geogebra.web.web.cas.view; import org.geogebra.common.kernel.geos.GeoNumeric; import org.geogebra.common.main.App; import org.geogebra.web.html5.main.DrawEquationW; import com.google.gwt.canvas.client.Canvas; import com.google.gwt.dom.client.Element; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; public interface InputPanel extends IsWidget { public void setText(String input); public String getText(); public class InputPanelLabel extends Label implements InputPanel { @Override public void setLaTeX(String laTeX) { // TODO Auto-generated method stub } @Override public void setPixelRatio(double ratio) { // TODO Auto-generated method stub } } public class InputPanelCanvas implements InputPanel { private String text; private Canvas c; private App app; private String laTex; public InputPanelCanvas(App app) { this.app = app; c = Canvas.createIfSupported(); // if shown on init, make sure it's not huge c.setCoordinateSpaceHeight(1); c.setCoordinateSpaceWidth(1); } @Override public void setText(String input) { this.text = input; } @Override public String getText() { return text; } @Override public void addStyleName(String style) { c.addStyleName(style); } @Override public Widget asWidget() { return c; } @Override public void removeStyleName(String string) { c.removeStyleName(string); } @Override public Element getElement() { return c.getElement(); } @Override public void setLaTeX(String laTeX) { this.laTex = laTeX; if (laTeX == null) { c.setCoordinateSpaceHeight(1); c.setCoordinateSpaceWidth(1); return; } DrawEquationW.paintOnCanvas(new GeoNumeric(app.getKernel() .getConstruction()), laTeX, c, app.getFontSizeWeb()); } @Override public void setPixelRatio(double ratio) { if (this.laTex != null) { setLaTeX(laTex); } } } public void addStyleName(String string); public void removeStyleName(String string); public Element getElement(); public void setLaTeX(String laTeX); public void setPixelRatio(double ratio); }