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 }