Index: trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 9484)
@@ -150,5 +150,5 @@
             overpassWizard = new HistoryComboBox();
             overpassWizard.setToolTipText(tooltip);
-            overpassWizard.getEditor().getEditorComponent().addFocusListener(disableActionsFocusListener);
+            overpassWizard.getEditorComponent().addFocusListener(disableActionsFocusListener);
             final JButton buildQuery = new JButton(tr("Build query"));
             buildQuery.addActionListener(new AbstractAction() {
Index: trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 9484)
@@ -209,5 +209,5 @@
                     public void mouseClicked(MouseEvent e) {
                         try {
-                            JTextComponent tf = (JTextComponent) hcb.getEditor().getEditorComponent();
+                            JTextComponent tf = hcb.getEditorComponent();
                             tf.getDocument().insertString(tf.getCaretPosition(), ' ' + insertText, null);
                         } catch (BadLocationException ex) {
@@ -283,5 +283,5 @@
         buildHints(right, hcbSearchString);
 
-        final JTextComponent editorComponent = (JTextComponent) hcbSearchString.getEditor().getEditorComponent();
+        final JTextComponent editorComponent = hcbSearchString.getEditorComponent();
         editorComponent.getDocument().addDocumentListener(new AbstractTextComponentValidator(editorComponent) {
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 9484)
@@ -508,5 +508,5 @@
         protected FocusAdapter addFocusAdapter(final AutoCompletionManager autocomplete, final Comparator<AutoCompletionListItem> comparator) {
            // get the combo box' editor component
-           JTextComponent editor = (JTextComponent) values.getEditor().getEditorComponent();
+           final JTextComponent editor = values.getEditorComponent();
            // Refresh the values model when focus is gained
            FocusAdapter focus = new FocusAdapter() {
Index: trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 9484)
@@ -31,5 +31,4 @@
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
-import javax.swing.JTextField;
 import javax.swing.ListSelectionModel;
 import javax.swing.UIManager;
@@ -121,6 +120,6 @@
         SearchAction searchAction = new SearchAction();
         JButton btnSearch = new JButton(searchAction);
-        ((JTextField) cbSearchExpression.getEditor().getEditorComponent()).getDocument().addDocumentListener(searchAction);
-        ((JTextField) cbSearchExpression.getEditor().getEditorComponent()).addActionListener(searchAction);
+        cbSearchExpression.getEditorComponent().getDocument().addDocumentListener(searchAction);
+        cbSearchExpression.getEditorComponent().addActionListener(searchAction);
 
         panel.add(btnSearch, GBC.eol().insets(5, 5, 0, 5));
Index: trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 9484)
@@ -65,5 +65,5 @@
         CommentModelListener commentModelListener = new CommentModelListener(hcbUploadComment, changesetCommentModel);
         hcbUploadComment.getEditor().addActionListener(commentModelListener);
-        hcbUploadComment.getEditor().getEditorComponent().addFocusListener(commentModelListener);
+        hcbUploadComment.getEditorComponent().addFocusListener(commentModelListener);
         pnl.add(hcbUploadComment, GBC.eol().fill(GBC.HORIZONTAL));
 
@@ -90,5 +90,5 @@
         CommentModelListener sourceModelListener = new CommentModelListener(hcbUploadSource, changesetSourceModel);
         hcbUploadSource.getEditor().addActionListener(sourceModelListener);
-        hcbUploadSource.getEditor().getEditorComponent().addFocusListener(sourceModelListener);
+        hcbUploadSource.getEditorComponent().addFocusListener(sourceModelListener);
         pnl.add(hcbUploadSource, GBC.eol().fill(GBC.HORIZONTAL));
         return pnl;
@@ -130,5 +130,5 @@
     public void setHistoryComboBoxDownFocusTraversalHandler(final Action handler, final HistoryComboBox hcb) {
         hcb.getEditor().addActionListener(handler);
-        hcb.getEditor().getEditorComponent().addKeyListener(
+        hcb.getEditorComponent().addKeyListener(
                 new KeyListener() {
                     @Override
@@ -166,5 +166,5 @@
     public void startUserInput() {
         hcbUploadComment.requestFocusInWindow();
-        hcbUploadComment.getEditor().getEditorComponent().requestFocusInWindow();
+        hcbUploadComment.getEditorComponent().requestFocusInWindow();
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 9484)
@@ -130,5 +130,5 @@
                 }
             }
-            JTextComponent editorComponent = (JTextComponent) comboBox.getEditor().getEditorComponent();
+            final JTextComponent editorComponent = comboBox.getEditorComponent();
             // save unix system selection (middle mouse paste)
             Clipboard sysSel = Toolkit.getDefaultToolkit().getSystemSelection();
@@ -180,5 +180,5 @@
         super(new AutoCompletionListItem(prototype));
         setRenderer(new AutoCompleteListCellRenderer());
-        final JTextComponent editorComponent = (JTextComponent) this.getEditor().getEditorComponent();
+        final JTextComponent editorComponent = this.getEditorComponent();
         editorComponent.setDocument(new AutoCompletingComboBoxDocument(this));
         editorComponent.addFocusListener(
Index: trunk/src/org/openstreetmap/josm/gui/widgets/ComboBoxHistory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/ComboBoxHistory.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/ComboBoxHistory.java	(revision 9484)
@@ -10,5 +10,8 @@
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionListItem;
 
-public class ComboBoxHistory extends DefaultComboBoxModel<AutoCompletionListItem> implements Iterable<AutoCompletionListItem> {
+/**
+ * A data model for {@link HistoryComboBox}
+ */
+class ComboBoxHistory extends DefaultComboBoxModel<AutoCompletionListItem> implements Iterable<AutoCompletionListItem> {
 
     private final int maxSize;
@@ -16,8 +19,16 @@
     private final transient List<HistoryChangedListener> listeners = new ArrayList<>();
 
-    public ComboBoxHistory(int size) {
+    /**
+     * Constructs a {@code ComboBoxHistory} keeping track of {@code maxSize} items
+     * @param size the history size
+     */
+    ComboBoxHistory(int size) {
         maxSize = size;
     }
 
+    /**
+     * Adds or moves an element to the top of the history
+     * @param s the element to add
+     */
     public void addElement(String s) {
         addElement(new AutoCompletionListItem(s));
@@ -26,4 +37,5 @@
     /**
      * Adds or moves an element to the top of the history
+     * @param o the element to add
      */
     @Override
@@ -80,11 +92,20 @@
     }
 
+    /**
+     * {@link javax.swing.DefaultComboBoxModel#removeAllElements() Removes all items}
+     * and {@link ComboBoxHistory#addElement(String) adds} the given items.
+     * @param items the items to set
+     */
     public void setItemsAsString(List<String> items) {
         removeAllElements();
         for (int i = items.size()-1; i >= 0; i--) {
-            addElement(new AutoCompletionListItem(items.get(i)));
+            addElement(items.get(i));
         }
     }
 
+    /**
+     * Returns the {@link AutoCompletionListItem} items as strings
+     * @return a list of strings
+     */
     public List<String> asStringList() {
         List<String> list = new ArrayList<>(maxSize);
Index: trunk/src/org/openstreetmap/josm/gui/widgets/HistoryComboBox.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/HistoryComboBox.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/HistoryComboBox.java	(revision 9484)
@@ -9,4 +9,7 @@
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
 
+/**
+ * An {@link AutoCompletingComboBox} which keeps a history
+ */
 public class HistoryComboBox extends AutoCompletingComboBox {
     private final ComboBoxHistory model;
@@ -23,22 +26,46 @@
     }
 
+    /**
+     * Returns the text contained in this component
+     * @return the text
+     * @see JTextComponent#getText()
+     */
     public String getText() {
-        return ((JTextComponent) getEditor().getEditorComponent()).getText();
+        return getEditorComponent().getText();
     }
 
+    /**
+     * Sets the text of this component to the specified text
+     * @param value the text to set
+     * @see JTextComponent#setText(java.lang.String)
+     */
     public void setText(String value) {
         setAutocompleteEnabled(false);
-        ((JTextComponent) getEditor().getEditorComponent()).setText(value);
+        getEditorComponent().setText(value);
         setAutocompleteEnabled(true);
     }
 
+    /**
+     * Adds or moves the current element to the top of the history
+     * @see ComboBoxHistory#addElement(java.lang.String)
+     */
     public void addCurrentItemToHistory() {
         model.addElement((String) getEditor().getItem());
     }
 
+    /**
+     * Sets the elements of the ComboBox to the given items
+     * @param history the items to set
+     * @see ComboBoxHistory#setItemsAsString(java.util.List)
+     */
     public void setHistory(List<String> history) {
         model.setItemsAsString(history);
     }
 
+    /**
+     * Returns the items as strings
+     * @return the items as strings
+     * @see ComboBoxHistory#asStringList()
+     */
     public List<String> getHistory() {
         return model.asStringList();
Index: trunk/src/org/openstreetmap/josm/gui/widgets/JosmComboBox.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/JosmComboBox.java	(revision 9483)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/JosmComboBox.java	(revision 9484)
@@ -15,8 +15,10 @@
 
 import javax.accessibility.Accessible;
+import javax.swing.ComboBoxEditor;
 import javax.swing.ComboBoxModel;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.JComboBox;
 import javax.swing.JList;
+import javax.swing.JTextField;
 import javax.swing.plaf.basic.ComboPopup;
 import javax.swing.text.JTextComponent;
@@ -93,4 +95,14 @@
         super(items);
         init(findPrototypeDisplayValue(Arrays.asList(items)));
+    }
+
+    /**
+     * Returns the editor component
+     * @return the editor component
+     * @see ComboBoxEditor#getEditorComponent()
+     * @since 9484
+     */
+    public JTextField getEditorComponent() {
+        return (JTextField) getEditor().getEditorComponent();
     }
 
