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); } }