package org.geogebra.common.gui.dialog.options.model;
import org.geogebra.common.kernel.geos.GeoElement;
import org.geogebra.common.kernel.geos.HasSymbolicMode;
import org.geogebra.common.main.App;
public class SymbolicModel extends BooleanOptionModel {
public SymbolicModel(App app) {
super(null, app);
}
@Override
public boolean isValidAt(int index) {
GeoElement geo = getGeoAt(index).getGeoElementForPropertiesDialog();
return geo.isGeoNumeric() || geo.isGeoText();
}
@Override
public boolean getValueAt(int index) {
// not used as updateProperties is overridden.
return getObjectAt(index) instanceof HasSymbolicMode
&& ((HasSymbolicMode) getObjectAt(index)).isSymbolicMode();
}
@Override
public void apply(int index, boolean value) {
HasSymbolicMode geo = (HasSymbolicMode) getObjectAt(index);
geo.setSymbolicMode(value, true);
geo.updateRepaint();
}
}