001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.gui.widgets;
003
004 import java.util.List;
005
006 import javax.swing.text.JTextComponent;
007
008 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
009 import org.openstreetmap.josm.Main;
010
011 public 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 }