package org.geogebra.common.gui.view.spreadsheet;
import org.geogebra.common.kernel.geos.GeoElement;
import org.geogebra.common.kernel.geos.GeoText;
import org.geogebra.common.kernel.kernelND.GeoElementND;
import org.geogebra.common.main.App;
import org.geogebra.common.plugin.EventType;
public class SpreadsheetController {
private App app;
public SpreadsheetController(App app) {
this.app = app;
}
public boolean redefineIfNeeded(GeoElement geo) {
if (!geo.isProtected(EventType.UPDATE)) {
if (!geo.isGeoText() && !geo.isIndependent()
&& getEditorInitString(geo).length() > 20) {
app.getDialogManager().showRedefineDialog(geo, false);
return true;
}
if (geo.isGeoText() && ((GeoText) geo).isLaTeX()) {
app.getDialogManager().showRedefineDialog(geo, true);
return true;
}
}
return false;
}
/**
* Returns the definition of geo used to init the editor when editing is
* started.
*
* @param geo
* @return editor string
*/
public String getEditorInitString(GeoElementND geo) {
return geo.getRedefineString(true, false);
}
}