package org.freeplane.features.styles.mindmapmode;
import java.util.LinkedList;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import org.freeplane.core.util.TextUtils;
import org.freeplane.features.filter.AFilterComposerDialog;
import org.freeplane.features.filter.condition.ASelectableCondition;
@SuppressWarnings("serial")
class FilterComposerDialog extends AFilterComposerDialog{
public FilterComposerDialog() {
super(TextUtils.getText("filter_dialog"), true);
conditions = new LinkedList<ASelectableCondition>();
}
protected DefaultComboBoxModel createModel() {
conditions.clear();
initializeModel();
return model;
}
protected void initializeModel() {
if(model == null){
model = new DefaultComboBoxModel();
}
}
protected boolean applyModel(DefaultComboBoxModel model, int[] selectedIndices) {
if(selectedIndices.length != 1 && ! acceptMultipleConditions){
return false;
}
conditions.clear();
this.model = model;
for(int i : selectedIndices){
conditions.add((ASelectableCondition) model.getElementAt(i));
}
return true;
}
final private List<ASelectableCondition> conditions ;
private DefaultComboBoxModel model;
private boolean acceptMultipleConditions;
public List<ASelectableCondition> getConditions() {
return conditions;
}
public void acceptMultipleConditions(boolean acceptMultipleConditions) {
this.acceptMultipleConditions = acceptMultipleConditions;
}
public void addCondition(ASelectableCondition value) {
initializeModel();
if (model.getIndexOf(value) == -1){
model.addElement(value);
}
setSelectedItem(value);
}
}