package org.geogebra.common.gui.dialog.options.model; import java.util.ArrayList; import java.util.List; import org.geogebra.common.main.App; public class GroupModel extends OptionsModel { private List<OptionsModel> models = new ArrayList<OptionsModel>(); private PropertyListener listener; public GroupModel(App app) { super(app); listener = new PropertyListener() { @Override public Object updatePanel(Object[] geos2) { boolean enabled = false; for (OptionsModel model : models) { enabled = model.updateMPanel(geos2) || enabled; } return enabled ? this : null; } }; } @Override protected boolean isValidAt(int index) { for (OptionsModel model : models) { if (model.isValidAt(index)) { return true; } } return false; } @Override public void updateProperties() { for (OptionsModel model : models) { model.updateProperties(); } } public void add(OptionsModel model) { models.add(model); } @Override public PropertyListener getListener() { return listener; } }