package org.geogebra.web.html5.main;
import org.geogebra.common.kernel.Kernel;
import org.geogebra.common.plugin.ScriptManager;
import org.geogebra.common.util.debug.Log;
import com.google.gwt.core.client.JavaScriptObject;
/**
* Provides JavaScript scripting for objects and initializes the public API.
*/
public class ScriptManagerW extends ScriptManager {
private String ggbApplet = AppW.DEFAULT_APPLET_ID;
private JavaScriptObject api;
/**
* @param app
* application
*/
public ScriptManagerW(AppW app) {
super(app);
// this should contain alphanumeric characters only,
// but it is not checked otherwise
ggbApplet = app.getDataParamId();
api = initAppletFunctions(app.getGgbApi());
}
public static native void runCallback(JavaScriptObject onLoadCallback) /*-{
if (typeof onLoadCallback === "function") {
onLoadCallback();
}
}-*/;
/**
* Run global ggbOnInit without parameters
*/
public static native void ggbOnInitStatic() /*-{
if (typeof $wnd.ggbOnInit === 'function')
$wnd.ggbOnInit();
}-*/;
public static native void ggbOnInit(String arg, JavaScriptObject self) /*-{
if (typeof $wnd.ggbOnInit === 'function')
$wnd.ggbOnInit(arg, self);
}-*/;
@Override
public void ggbOnInit() {
try {
// Log.debug("almost there" + app.useBrowserForJavaScript());
// assignGgbApplet();
tryTabletOnInit();
boolean standardJS = app.getKernel().getLibraryJavaScript()
.equals(Kernel.defaultLibraryJavaScript);
if (!standardJS && !app.useBrowserForJavaScript()) {
app.evalJavaScript(app, app.getKernel().getLibraryJavaScript(),
null);
}
if (!standardJS || app.useBrowserForJavaScript()) {
String param = ((AppW) app).getDataParamId();
if (param == null || "".equals(param)) {
ggbOnInitStatic();
} else {
ggbOnInit(param, api);
}
}
} catch (Throwable t) {
Log.debug(t.getMessage());
}
// set this to run always
String articleid = ((AppW) app).getArticleId();
if (articleid != null) {
AppW.appletOnLoad(articleid);
}
if (((AppW) app).getAppletFrame() != null
&& ((AppW) app).getAppletFrame().getOnLoadCallback() != null) {
runCallback(((AppW) app).getAppletFrame().getOnLoadCallback());
}
}
private native void tryTabletOnInit() /*-{
if ($wnd.android && $wnd.android.callPlugin) {
$wnd.android.callPlugin('GgbOnInit', [ 1 ]);
}
}-*/;
private static String toString(Object o) {
return o == null ? null : o.toString();
}
@Override
public void callJavaScript(String jsFunction, Object[] args) {
try {
if (jsFunction != null && jsFunction.length() > 0
&& jsFunction.charAt(0) <= '9') {
if (args != null && args.length > 2) {
callListenerNativeArray(this.api, jsFunction, toString(args[0]),
toString(args[1]), toString(args[2]));
return;
}
if (args != null && args.length > 1) {
callListenerNativeArray(this.api, jsFunction, toString(args[0]),
toString(args[1]));
return;
}
String singleArg = args != null && args.length > 0
? (String) args[0] : null;
callListenerNative(this.api, jsFunction, singleArg, null);
return;
}
app.callAppletJavaScript(jsFunction, args);
} catch (Throwable t) {
Log.warn("Error in user script: " + t.getMessage());
}
}
@Override
public void callJavaScript(String jsFunction, Object arg0, Object arg1) {
try {
if (jsFunction != null && jsFunction.length() > 0
&& jsFunction.charAt(0) <= '9') {
callListenerNative(this.api, jsFunction, toString(arg0),
toString(arg1));
return;
}
((AppW) app).callAppletJavaScript(jsFunction, arg0, arg1);
} catch (Throwable t) {
Log.warn("Error in user script: " + t.getMessage());
}
}
private native void callListenerNative(JavaScriptObject api2,
String jsFunction, String arg0, String arg1) /*-{
api2.listeners[jsFunction * 1](arg0, arg1);
}-*/;
private native void callListenerNativeArray(JavaScriptObject api2,
String jsFunction, String arg0, String arg1, String arg2) /*-{
api2.listeners[jsFunction * 1]([ arg0, arg1, arg2 ]);
}-*/;
private native void callListenerNativeArray(JavaScriptObject api2,
String jsFunction, String arg0, String arg1) /*-{
api2.listeners[jsFunction * 1]([ arg0, arg1 ]);
}-*/;
// TODO - needed for every ggm instance
private native JavaScriptObject initAppletFunctions(
org.geogebra.web.html5.main.GgbAPIW ggbAPI) /*-{
var ggbApplet = this.@org.geogebra.web.html5.main.ScriptManagerW::ggbApplet;
//set the reference
//$doc[ggbApplet] = $wnd[ggbApplet] = {};
var api = {listeners:[]};
var getId = function(obj) {
if (typeof obj == 'string') {
return obj;
}
for(var i = 0;i<api.listeners.length;i++){
if(api.listeners[i]==obj){
return i+"";
}
}
api.listeners[api.listeners.length]=obj;
return (api.listeners.length-1)+"";
}
function makeStr(data){
return data ? data+"" : "";
}
api.getXML = function(objName) {
if (objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getXML(Ljava/lang/String;)(objName);
} else {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getXML()();
}
};
api.getAlgorithmXML = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getAlgorithmXML(Ljava/lang/String;)(objName);
};
api.getPerspectiveXML = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getPerspectiveXML()();
};
api.getBase64 = function(param1, param2) {
if (param2 === false) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getBase64(Z)(false);
}
if (param2 === true) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getBase64(Z)(true);
}
if (param2) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getBase64(ZLcom/google/gwt/core/client/JavaScriptObject;)(param1, param2);
} else if (param1) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getBase64(ZLcom/google/gwt/core/client/JavaScriptObject;)(false, param1);
} else {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getBase64()();
}
}
api.setBase64 = function(base64string, callback) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setBase64(Ljava/lang/String;Lcom/google/gwt/core/client/JavaScriptObject;)(base64string, callback);
}
api.openFile = function(filename, callback) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::openFile(Ljava/lang/String;Lcom/google/gwt/core/client/JavaScriptObject;)(base64string, callback);
}
api.getContext2D = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getContext2D()();
};
api.login = function(token) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::login(Ljava/lang/String;)(token);
};
api.logout = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::logout()();
};
api.setXML = function(xml) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setXML(Ljava/lang/String;)(xml);
};
api.evalXML = function(xmlString) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::evalXML(Ljava/lang/String;)(xmlString);
};
api.setDisplayStyle = function(objName, style) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setDisplayStyle(Ljava/lang/String;Ljava/lang/String;)(objName, style);
};
api.evalCommand = function(cmdString) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::evalCommand(Ljava/lang/String;)(cmdString);
};
api.evalCommandGetLabels = function(cmdString) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::evalCommandGetLabels(Ljava/lang/String;)(cmdString);
};
api.evalCommandCAS = function(cmdString) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::evalCommandCAS(Ljava/lang/String;)(cmdString);
};
api.evalGeoGebraCAS = function(cmdString) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::evalGeoGebraCAS(Ljava/lang/String;)(cmdString);
};
api.setFixed = function(objName, flag, selection) {
if(typeof selection === 'undefined'){
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setFixed(Ljava/lang/String;Z)(objName,flag);
}else{
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setFixed(Ljava/lang/String;ZZ)(objName,flag,selection);
}
};
api.setOnTheFlyPointCreationActive = function(flag) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setOnTheFlyPointCreationActive(Z)(flag);
};
api.setUndoPoint = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setUndoPoint()();
};
api.setSaved = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setSaved()();
};
api.initCAS = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::initCAS()();
};
api.uploadToGeoGebraTube = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::uploadToGeoGebraTube()();
};
api.setErrorDialogsActive = function(flag) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setErrorDialogsActive(Z)(flag);
};
api.reset = function() {//TODO: implement this in Desktop and Web
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::reset()();
};
api.refreshViews = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::refreshViews()();
};
api.setVisible = function(objName, visible) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setVisible(Ljava/lang/String;Z)(objName,visible);
};
api.getVisible = function(objName, view) {
if (typeof view !== 'undefined') {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getVisible(Ljava/lang/String;I)(objName,view);
}
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getVisible(Ljava/lang/String;)(objName);
};
api.setLayer = function(objName, layer) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setLayer(Ljava/lang/String;I)(objName,layer);
};
api.getLayer = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getLayer(Ljava/lang/String;)(objName);
};
api.setLayerVisible = function(layer, visible) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setLayerVisible(IZ)(layer,visible);
};
api.setTrace = function(objName, flag) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setTrace(Ljava/lang/String;Z)(objName,flag);
};
api.isTracing = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::isTracing(Ljava/lang/String;)(objName);
};
api.setLabelVisible = function(objName, visible) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setLabelVisible(Ljava/lang/String;Z)(objName,visible);
};
api.setLabelStyle = function(objName, style) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setLabelStyle(Ljava/lang/String;I)(objName,style);
};
api.getLabelStyle = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getLabelStyle(Ljava/lang/String;)(objName);
};
api.getLabelVisible = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getLabelVisible(Ljava/lang/String;)(objName);
};
api.setColor = function(objName, red, green, blue) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setColor(Ljava/lang/String;III)(objName,red,green,blue);
};
api.setCorner = function(objName, x, y, index) {
if (!index) {
index = 1;
}
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setCorner(Ljava/lang/String;DDI)(objName,x,y,index);
};
api.setLineStyle = function(objName, style) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setLineStyle(Ljava/lang/String;I)(objName,style);
};
api.setLineThickness = function(objName, thickness) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setLineThickness(Ljava/lang/String;I)(objName,thickness);
};
api.setPointStyle = function(objName, style) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setPointStyle(Ljava/lang/String;I)(objName,style);
};
api.setPointSize = function(objName, style) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setPointSize(Ljava/lang/String;I)(objName,style);
};
api.setFilling = function(objName, filling) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setFilling(Ljava/lang/String;D)(objName,filling);
};
api.getColor = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getColor(Ljava/lang/String;)(objName);
};
api.getPenColor = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getPenColor()();
};
api.getPenSize = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getPenSize()();
};
api.setPenSize = function(size) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setPenSize(I)(size);
};
api.setPenColor = function(red,green,blue) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setPenColor(III)(red,green,blue);
};
api.getFilling = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getFilling(Ljava/lang/String;)(objName);
};
api.getLineStyle = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getLineStyle(Ljava/lang/String;)(objName);
};
api.getLineThickness = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getLineThickness(Ljava/lang/String;)(objName);
};
api.getPointStyle = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getPointStyle(Ljava/lang/String;)(objName);
};
api.getPointSize = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getPointSize(Ljava/lang/String;)(objName);
};
api.deleteObject = function(objName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::deleteObject(Ljava/lang/String;)(objName);
};
api.setAnimating = function(objName, animate) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAnimating(Ljava/lang/String;Z)(objName,!!animate);
};
api.setAnimationSpeed = function(objName, speed) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAnimationSpeed(Ljava/lang/String;D)(objName,speed);
};
api.startAnimation = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::startAnimation()();
};
api.stopAnimation = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::stopAnimation()();
};
api.setAuxiliary = function(objName, auxiliary) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAuxiliary(Ljava/lang/String;Z)(objName,!!auxiliary);
};
api.hideCursorWhenDragging = function(hideCursorWhenDragging) {//TODO: CSS hacks in GeoGebraWeb
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::hideCursorWhenDragging(Z)(hideCursorWhenDragging);
};
api.isAnimationRunning = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::isAnimationRunning()();
};
api.getFrameRate = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getFrameRate()();
}
api.renameObject = function(oldName, newName, force) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::renameObject(Ljava/lang/String;Ljava/lang/String;Z)(oldName,newName,!!force);
};
api.exists = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::exists(Ljava/lang/String;)(objName);
};
api.isDefined = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::isDefined(Ljava/lang/String;)(objName);
};
api.getValueString = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getValueString(Ljava/lang/String;)(objName);
};
api.getListValue = function(objName, index) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getListValue(Ljava/lang/String;I)(objName, index);
};
api.getDefinitionString = function(objName, localize) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getDefinitionString(Ljava/lang/String;Z)(objName, typeof localize === 'undefined' ? true : localize);
};
api.getLaTeXString = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getLaTeXString(Ljava/lang/String;)(objName);
};
api.getLaTeXBase64 = function(objName, value) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getLaTeXBase64(Ljava/lang/String;Z)(objName, !!value);
};
api.getCommandString = function(objName, localize) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getCommandString(Ljava/lang/String;Z)(objName, typeof localize === 'undefined' ? true : localize);
};
api.getCaption = function(objName, subst) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getCaption(Ljava/lang/String;Z)(objName, !!subst);
};
api.setCaption = function(objName, caption) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setCaption(Ljava/lang/String;Ljava/lang/String;)(objName, caption);
};
api.getXcoord = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getXcoord(Ljava/lang/String;)(objName);
};
api.getYcoord = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getYcoord(Ljava/lang/String;)(objName);
};
api.getZcoord = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getZcoord(Ljava/lang/String;)(objName);
};
api.setCoords = function(objName, x, y, z) {
if (typeof z === 'undefined') {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setCoords(Ljava/lang/String;DD)(objName,x,y);
} else {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setCoords(Ljava/lang/String;DDD)(objName,x,y,z);
}
};
api.getValue = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getValue(Ljava/lang/String;)(objName);
};
api.getVersion = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getVersion()();
};
api.getScreenshotBase64 = function(callback) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getScreenshotBase64(Lcom/google/gwt/core/client/JavaScriptObject;)(callback);
}
api.setValue = function(objName, x) {
// #4035
// need to support possible syntax error
// eg setValue("a","3") rather than setValue("a",3)
if (typeof x === "string") {
if (x === "true") {
x = true;
} else if (x === "false") {
x = false;
} else {
// force string -> number (might give NaN)
x = x * 1;
}
}
if (typeof x !== "number" && typeof x !== "boolean") {
// avoid possible strange effects
return;
}
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setValue(Ljava/lang/String;D)(objName,x);
};
api.setTextValue = function(objName, x) {
x = x + "";
if (typeof objName !== "string") {
// avoid possible strange effects
return;
}
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setTextValue(Ljava/lang/String;Ljava/lang/String;)(objName,x);
};
api.setListValue = function(objName, x, y) {
// #4035
// need to support possible syntax error
if (typeof x === "string") {
if (x === "true") {
x = 1;
} else if (x === "false") {
x = 0;
} else {
// force string -> number (might give NaN)
x = x * 1;
}
}
if (typeof y === "string") {
if (y === "true") {
y = 1;
} else if (y === "false") {
y = 0;
} else {
// force string -> number (might give NaN)
y = y * 1;
}
}
if (typeof x !== "number" || typeof y !== "number") {
// avoid possible strange effects
return;
}
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setListValue(Ljava/lang/String;DD)(objName,x,y);
};
api.setRepaintingActive = function(flag) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setRepaintingActive(Z)(flag);
};
api.setCoordSystem = function(xmin, xmax, ymin, ymax, zmin, zmax,
verticalY) {
if (typeof zmin !== "number") {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setCoordSystem(DDDD)(xmin,xmax,ymin,ymax);
} else {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setCoordSystem(DDDDDDZ)(xmin,xmax,ymin,ymax,zmin,zmax, !!verticalY);
}
};
api.setAxesVisible = function(arg1, arg2, arg3, arg4) {
if (typeof arg3 === "undefined") {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAxesVisible(ZZ)(arg1,arg2);
} else {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAxesVisible(IZZZ)(arg1, arg2, arg3, !!arg4);
}
};
api.setAxisUnits = function(arg1, arg2, arg3, arg4) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAxisUnits(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)(arg1, makeStr(arg2), makeStr(arg3), makeStr(arg4));
};
api.setAxisLabels = function(arg1, arg2, arg3, arg4) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAxisLabels(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)(arg1, makeStr(arg2), makeStr(arg3), makeStr(arg4));
};
api.setAxisSteps = function(arg1, arg2, arg3, arg4) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setAxisSteps(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)(arg1, makeStr(arg2), makeStr(arg3), makeStr(arg4));
};
api.setPointCapture = function(view, capture) {
if(typeof capture == "undefined"){
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setPointCapture(II)(1, view);
}else{
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setPointCapture(II)(view, capture);
}
}
api.getGridVisible = function(view) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getGridVisible(I)(view || 1);
};
api.setGridVisible = function(arg1, arg2) {
if (typeof arg2 === "undefined") {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setGridVisible(Z)(arg1);
} else {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setGridVisible(IZ)(arg1, arg2);
}
};
api.getAllObjectNames = function(objectType) {
if(typeof objectType === "undefined"){
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getAllObjectNames()();
}else{
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getAllObjectNames(Ljava/lang/String;)(objectType);
}
};
api.getObjectNumber = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getObjectNumber()();
};
api.getObjectName = function(i) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getObjectName(I)(i);
};
api.getObjectType = function(objName) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getObjectType(Ljava/lang/String;)(objName);
};
api.setMode = function(mode) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setMode(I)(mode);
};
api.getMode = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getMode()();
};
api.getToolName = function(i) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getToolName(I)(i);
};
api.openMaterial = function(material) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::openMaterial(Ljava/lang/String;)(material);
};
// not supported by GgbAPI Desktop,Web
//$wnd[ggbApplet].callJavaScript = function(jsFunction, args) {
// ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::callJavaScript(Ljava/lang/String;Ljava/lang/String;)(jsFunction,args);
//};
api.registerAddListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerAddListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerStoreUndoListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerStoreUndoListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.unregisterAddListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterAddListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerRemoveListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerRemoveListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.unregisterRemoveListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterRemoveListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerClearListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerClearListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.unregisterClearListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterClearListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerRenameListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerRenameListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.unregisterRenameListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerRenameListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerUpdateListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerUpdateListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.unregisterUpdateListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterUpdateListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerClientListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerClientListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.unregisterClientListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterClientListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerObjectUpdateListener = function(objname, JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerObjectUpdateListener(Ljava/lang/String;Ljava/lang/String;)(objname, getId(JSFunctionName));
};
api.unregisterObjectUpdateListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterObjectUpdateListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.registerObjectClickListener = function(objname, JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerObjectClickListener(Ljava/lang/String;Ljava/lang/String;)(objname, getId(JSFunctionName));
};
api.unregisterObjectClickListener = function(objname) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterObjectClickListener(Ljava/lang/String;)(objname);
};
api.registerClickListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::registerClickListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.unregisterClickListener = function(JSFunctionName) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::unregisterClickListener(Ljava/lang/String;)(getId(JSFunctionName));
};
api.undo = function(repaint) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::undo(Z)(repaint == true);
};
api.redo = function(repaint) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::redo(Z)(repaint == true);
};
api.newConstruction = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::newConstruction()();
};
api.debug = function(str) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::debug(Ljava/lang/String;)(str);
};
api.setWidth = function(width) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setWidth(I)(width);
};
api.setHeight = function(height) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setHeight(I)(height);
};
api.setSize = function(width, height) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setSize(II)(width, height);
};
api.enableRightClick = function(enable) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::enableRightClick(Z)(enable);
};
api.enableLabelDrags = function(enable) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::enableLabelDrags(Z)(enable);
};
api.enableShiftDragZoom = function(enable) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::enableShiftDragZoom(Z)(enable);
};
api.showToolBar = function(show) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::showToolBar(Z)(show);
};
api.setCustomToolBar = function(toolbarDef) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setCustomToolBar(Ljava/lang/String;)(toolbarDef);
};
api.showMenuBar = function(show) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::showMenuBar(Z)(show);
};
api.showAlgebraInput = function(show) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::showAlgebraInput(Z)(show);
};
api.showResetIcon = function(show) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::showResetIcon(Z)(show);
};
api.getViewProperties = function(show) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getViewProperties(I)(show);
};
api.setFont = function(label, size, bold, italic, serif) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setFont(Ljava/lang/String;IZZZ)(label,size,bold, italic,serif);
};
api.insertImage = function(url) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::insertImage(Ljava/lang/String;)(url);
};
api.recalculateEnvironments = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::recalculateEnvironments()();
};
api.isIndependent = function(label) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::isIndependent(Ljava/lang/String;)(label);
};
api.isMoveable = function(label) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::isMoveable(Ljava/lang/String;)(label);
};
api.setPerspective = function(code) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setPerspective(Ljava/lang/String;)(code+"");
};
api.enableCAS = function(enable) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::enableCAS(Z)(enable);
};
api.enable3D = function(enable) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::enable3D(Z)(enable);
};
api.getPNGBase64 = function(exportScale, transparent, dpi,
copyToClipboard) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getPNGBase64(DZDZ)(exportScale, transparent, dpi, copyToClipboard);
}
api.getFileJSON = function(thumbnail) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getFileJSON(Z)(!!thumbnail);
}
api.setFileJSON = function(zip) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setFileJSON(Lcom/google/gwt/core/client/JavaScriptObject;)(zip);
}
api.setLanguage = function(lang) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setLanguage(Ljava/lang/String;)(lang);
}
api.showTooltip = function(lang) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::showTooltip(Ljava/lang/String;)(lang);
}
api.remove = function() {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::removeApplet()();
$doc[ggbApplet] = $wnd[ggbApplet] = api = null;
}
api.getExerciseResult = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getExerciseResult()();
};
api.getExerciseFraction = function() {
return ggbAPI.@org.geogebra.common.plugin.GgbAPI::getExerciseFraction()();
};
api.isExercise = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::isExercise()();
};
api.startExercise = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::startExercise()();
};
api.setExternalPath = function(path) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setExternalPath(Ljava/lang/String;)(path);
};
api.checkSaved = function(path) {
ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::checkSaved(Lcom/google/gwt/core/client/JavaScriptObject;)(path);
};
api.getCASObjectNumber = function(path) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::getCASObjectNumber()();
};
api.writePNGtoFile = function(filename, exportScale, transparent, DPI) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::writePNGtoFile(Ljava/lang/String;DZD)(filename, exportScale, transparent, DPI);
};
api.exportPGF = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::exportPGF()();
};
api.exportSVG = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::exportSVG()();
};
api.exportPSTricks = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::exportPSTricks()();
};
api.exportAsymptote = function() {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::exportAsymptote()();
};
api.setRounding = function(digits) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::setRounding(Ljava/lang/String;)(digits+"");
};
api.copyTextToClipboard = function(text) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::copyTextToClipboard(Ljava/lang/String;)(text+"");
};
api.evalLaTeX = function(text,mode) {
return ggbAPI.@org.geogebra.web.html5.main.GgbAPIW::evalLaTeX(Ljava/lang/String;I)(text+"",mode);
};
$doc[ggbApplet] = $wnd[ggbApplet] = api;
return api;
}-*/;
}