package org.geogebra.web.web.gui.laf; import org.geogebra.common.GeoGebraConstants.Versions; import org.geogebra.common.main.App; import org.geogebra.common.move.ggtapi.models.Material; import org.geogebra.web.html5.euclidian.EuclidianControllerW; import org.geogebra.web.html5.gui.tooltip.ToolTipManagerW; import org.geogebra.web.html5.gui.util.CancelEvents; import org.geogebra.web.html5.main.AppW; import org.geogebra.web.web.euclidian.SmartTouchHandler; import org.geogebra.web.web.gui.browser.EmbeddedMaterialElement; import org.geogebra.web.web.gui.browser.MaterialListElement; import org.geogebra.web.web.gui.browser.SignInButton; import org.geogebra.web.web.gui.browser.SmartSignInButton; import com.google.gwt.event.dom.client.TouchCancelEvent; import com.google.gwt.event.dom.client.TouchEndEvent; import com.google.gwt.event.dom.client.TouchMoveEvent; import com.google.gwt.event.dom.client.TouchStartEvent; import com.google.gwt.user.client.ui.Widget; /** * @author geogebra * Look and Feel for SMART * */ public class SmartLookAndFeel extends GLookAndFeel{ /** * Creates smart LAF */ public SmartLookAndFeel() { ToolTipManagerW.setEnabled(false); } @Override public boolean undoRedoSupported() { return false; } @Override public boolean isSmart() { return true; } @Override public boolean isEmbedded() { return true; } @Override public void addWindowClosingHandler(AppW app) { //no close message for SMART } @Override public void removeWindowClosingHandler() { //no close message for SMART } @Override public String getType() { return "smart"; } @Override public boolean copyToClipboardSupported(){ return false; } @Override public String getLoginListener() { return "loginListener"; } @Override public SignInButton getSignInButton(App app) { return new SmartSignInButton(app); } @Override public MaterialListElement getMaterialElement(Material m, AppW app, boolean isLocal) { return new EmbeddedMaterialElement(m, app, isLocal); } @Override public boolean registerHandlers(Widget evPanel, EuclidianControllerW euclidiancontroller) { SmartTouchHandler sh = new SmartTouchHandler(euclidiancontroller); evPanel.addDomHandler(sh, TouchStartEvent.getType()); evPanel.addDomHandler(sh, TouchEndEvent.getType()); evPanel.addDomHandler(sh, TouchMoveEvent.getType()); evPanel.addDomHandler(CancelEvents.instance, TouchCancelEvent.getType()); return true; } @Override public boolean autosaveSupported() { return false; } @Override public boolean exportSupported() { return false; } @Override public boolean supportsGoogleDrive() { return false; } @Override public boolean examSupported(boolean tablet) { return false; } @Override public boolean printSupported() { return false; } @Override public Versions getVersion(int dim, boolean app) { return Versions.SMART; } @Override public void toggleFullscreen(boolean full) { // nothing to do } }