package org.geogebra.common.gui.dialog.options.model; import org.geogebra.common.kernel.geos.GeoList; import org.geogebra.common.main.App; public class ListAsComboModel extends BooleanOptionModel { public interface IListAsComboListener extends IBooleanOptionListener { void drawListAsComboBox(GeoList geo, boolean value); } private IListAsComboListener listener; public ListAsComboModel(App app, IListAsComboListener listener) { super(listener, app); this.listener = listener; } private GeoList getGeoListAt(int index) { return (GeoList) getObjectAt(index); } @Override public void applyChanges(boolean value) { super.applyChanges(value); app.refreshViews(); } @Override public boolean isValidAt(int index) { return getGeoAt(index).isGeoList(); } @Override public boolean getValueAt(int index) { return getGeoListAt(0).drawAsComboBox(); } @Override public void apply(int index, boolean value) { GeoList geo = getGeoListAt(index); geo.setDrawAsComboBox(value); if (value) { geo.setEuclidianVisible(true); geo.updateRepaint(); } listener.drawListAsComboBox(geo, value); geo.updateRepaint(); } }