package org.geogebra.common.gui.dialog.options.model; import org.geogebra.common.main.App; public abstract class BooleanOptionModel extends OptionsModel { public interface IBooleanOptionListener extends PropertyListener { void updateCheckbox(boolean isEqual); } private IBooleanOptionListener listener; public BooleanOptionModel(IBooleanOptionListener listener, App app) { super(app); this.setListener(listener); } public abstract boolean getValueAt(int index); public abstract void apply(int index, boolean value); @Override public void updateProperties() { boolean value0 = getValueAt(0); boolean isEqual = true; for (int i = 0; i < getGeosLength(); i++) { if (value0 != getValueAt(i)) { isEqual = false; } } getListener().updateCheckbox(isEqual && value0); } public void applyChanges(boolean value) { for (int i = 0; i < getGeosLength(); i++) { apply(i, value); } storeUndoInfo(); } @Override public IBooleanOptionListener getListener() { return listener; } public void setListener(IBooleanOptionListener listener) { this.listener = listener; } }