001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.widgets;
003
004import java.util.List;
005
006import javax.swing.text.JTextComponent;
007
008import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
009import org.openstreetmap.josm.Main;
010
011public class HistoryComboBox extends AutoCompletingComboBox {
012    private ComboBoxHistory model;
013
014    public static final int DEFAULT_SEARCH_HISTORY_SIZE = 15;
015
016    public HistoryComboBox() {
017        int maxsize = Main.pref.getInteger("search.history-size", DEFAULT_SEARCH_HISTORY_SIZE);
018        setModel(model = new ComboBoxHistory(maxsize));
019        setEditable(true);
020    }
021
022    public String getText() {
023        return ((JTextComponent)getEditor().getEditorComponent()).getText();
024    }
025
026    public void setText(String value) {
027        setAutocompleteEnabled(false);
028        ((JTextComponent)getEditor().getEditorComponent()).setText(value);
029        setAutocompleteEnabled(true);
030    }
031
032    public void addCurrentItemToHistory() {
033        String regex = (String)getEditor().getItem();
034        model.addElement(regex);
035    }
036
037    public void setHistory(List<String> history) {
038        model.setItemsAsString(history);
039    }
040
041    public List<String> getHistory() {
042        return model.asStringList();
043    }
044}