Ignore:
Timestamp:
2014-04-27T17:34:22+02:00 (10 years ago)
Author:
Don-vip
Message:

see #8465 - fix generics for JComboBox/JList

Location:
trunk/src/org/openstreetmap/josm/gui/tagging
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java

    r7005 r7015  
    618618            } else {
    619619                // the objects have different values
    620                 JosmComboBox comboBox = new JosmComboBox(usage.values.toArray());
     620                JosmComboBox<String> comboBox = new JosmComboBox<>(usage.values.toArray(new String[0]));
    621621                comboBox.setEditable(true);
    622622                comboBox.setEditor(textField);
     
    697697        private static String getValue(Component comp) {
    698698            if (comp instanceof JosmComboBox) {
    699                 return ((JosmComboBox) comp).getEditor().getItem().toString();
     699                return ((JosmComboBox<?>) comp).getEditor().getItem().toString();
    700700            } else if (comp instanceof JosmTextField) {
    701701                return ((JosmTextField) comp).getText();
     
    11741174
    11751175        public boolean editable = true;
    1176         protected JosmComboBox combo;
     1176        protected JosmComboBox<PresetListEntry> combo;
    11771177        public String length;
    11781178
     
    11981198            lhm.put("", new PresetListEntry(""));
    11991199
    1200             combo = new JosmComboBox(lhm.values().toArray());
     1200            combo = new JosmComboBox<>(lhm.values().toArray(new PresetListEntry[0]));
    12011201            component = combo;
    12021202            combo.setRenderer(getListCellRenderer());
     
    12651265        @Override
    12661266        protected void addToPanelAnchor(JPanel p, String def, boolean presetInitiallyMatches) {
    1267             list = new ConcatenatingJList(delimiter, lhm.values().toArray());
     1267            list = new ConcatenatingJList(delimiter, lhm.values().toArray(new PresetListEntry[0]));
    12681268            component = list;
    1269             ListCellRenderer renderer = getListCellRenderer();
     1269            ListCellRenderer<PresetListEntry> renderer = getListCellRenderer();
    12701270            list.setCellRenderer(renderer);
    12711271
     
    13151315    * string (extracted from TaggingPreset)
    13161316    */
    1317     private static class ConcatenatingJList extends JList {
     1317    private static class ConcatenatingJList extends JList<PresetListEntry> {
    13181318        private String delimiter;
    1319         public ConcatenatingJList(String del, Object[] o) {
     1319        public ConcatenatingJList(String del, PresetListEntry[] o) {
    13201320            super(o);
    13211321            delimiter = del;
     
    13281328                String s = o.toString();
    13291329                TreeSet<String> parts = new TreeSet<>(Arrays.asList(s.split(delimiter)));
    1330                 ListModel lm = getModel();
     1330                ListModel<PresetListEntry> lm = getModel();
    13311331                int[] intParts = new int[lm.getSize()];
    13321332                int j = 0;
    13331333                for (int i = 0; i < lm.getSize(); i++) {
    1334                     if (parts.contains((((PresetListEntry)lm.getElementAt(i)).value))) {
     1334                    if (parts.contains((lm.getElementAt(i).value))) {
    13351335                        intParts[j++]=i;
    13361336                    }
     
    13451345
    13461346        public String getSelectedItem() {
    1347             ListModel lm = getModel();
     1347            ListModel<PresetListEntry> lm = getModel();
    13481348            int[] si = getSelectedIndices();
    13491349            StringBuilder builder = new StringBuilder();
     
    13521352                    builder.append(delimiter);
    13531353                }
    1354                 builder.append(((PresetListEntry)lm.getElementAt(si[i])).value);
     1354                builder.append(lm.getElementAt(si[i]).value);
    13551355            }
    13561356            return builder.toString();
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetSelector.java

    r7005 r7015  
    8282    private static class ResultListCellRenderer extends DefaultListCellRenderer {
    8383        @Override
    84         public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
    85                 boolean cellHasFocus) {
     84        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
    8685            JLabel result = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
    8786            TaggingPreset tp = (TaggingPreset)value;
  • trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java

    r7001 r7015  
    3030 * @author guilhem.bonnefille@gmail.com
    3131 */
    32 public class AutoCompletingComboBox extends JosmComboBox {
     32public class AutoCompletingComboBox extends JosmComboBox<AutoCompletionListItem> {
    3333
    3434    private boolean autocompleteEnabled = true;
     
    4343     */
    4444    class AutoCompletingComboBoxDocument extends PlainDocument {
    45         private JosmComboBox comboBox;
     45        private JosmComboBox<AutoCompletionListItem> comboBox;
    4646        private boolean selecting = false;
    4747
    48         public AutoCompletingComboBoxDocument(final JosmComboBox comboBox) {
     48        public AutoCompletingComboBoxDocument(final JosmComboBox<AutoCompletionListItem> comboBox) {
    4949            this.comboBox = comboBox;
    5050        }
     
    114114                }
    115115            }
    116             JTextComponent editor = (JTextComponent)comboBox.getEditor().getEditorComponent();
     116            JTextComponent editorComponent = (JTextComponent)comboBox.getEditor().getEditorComponent();
    117117            // save unix system selection (middle mouse paste)
    118118            Clipboard sysSel = Toolkit.getDefaultToolkit().getSystemSelection();
    119119            if(sysSel != null) {
    120120                Transferable old = sysSel.getContents(null);
    121                 editor.select(start, end);
     121                editorComponent.select(start, end);
    122122                sysSel.setContents(old, null);
    123123            } else {
    124                 editor.select(start, end);
     124                editorComponent.select(start, end);
    125125            }
    126126        }
     
    133133
    134134        private Object lookupItem(String pattern, boolean match) {
    135             ComboBoxModel model = comboBox.getModel();
     135            ComboBoxModel<AutoCompletionListItem> model = comboBox.getModel();
    136136            AutoCompletionListItem bestItem = null;
    137137            for (int i = 0, n = model.getSize(); i < n; i++) {
     
    153153     */
    154154    public AutoCompletingComboBox() {
    155         this(JosmComboBox.DEFAULT_PROTOTYPE_DISPLAY_VALUE);
     155        this("Foo");
    156156    }
    157157
     
    165165        super(new AutoCompletionListItem(prototype));
    166166        setRenderer(new AutoCompleteListCellRenderer());
    167         final JTextComponent editor = (JTextComponent) this.getEditor().getEditorComponent();
    168         editor.setDocument(new AutoCompletingComboBoxDocument(this));
    169         editor.addFocusListener(
     167        final JTextComponent editorComponent = (JTextComponent) this.getEditor().getEditorComponent();
     168        editorComponent.setDocument(new AutoCompletingComboBoxDocument(this));
     169        editorComponent.addFocusListener(
    170170                new FocusListener() {
    171171                    @Override
     
    178178                        if(sysSel != null) {
    179179                            Transferable old = sysSel.getContents(null);
    180                             editor.selectAll();
     180                            editorComponent.selectAll();
    181181                            sysSel.setContents(old, null);
    182182                        } else {
    183                             editor.selectAll();
     183                            editorComponent.selectAll();
    184184                        }
    185185                    }
     
    188188    }
    189189
    190     public void setMaxTextLength(int length)
    191     {
     190    public void setMaxTextLength(int length) {
    192191        this.maxTextLength = length;
    193192    }
    194193
    195194    /**
    196      * Convert the selected item into a String
    197      * that can be edited in the editor component.
     195     * Convert the selected item into a String that can be edited in the editor component.
    198196     *
    199      * @param editor    the editor
     197     * @param cbEditor    the editor
    200198     * @param item      excepts AutoCompletionListItem, String and null
    201199     */
    202     @Override public void configureEditor(ComboBoxEditor editor, Object item) {
     200    @Override
     201    public void configureEditor(ComboBoxEditor cbEditor, Object item) {
    203202        if (item == null) {
    204             editor.setItem(null);
     203            cbEditor.setItem(null);
    205204        } else if (item instanceof String) {
    206             editor.setItem(item);
     205            cbEditor.setItem(item);
    207206        } else if (item instanceof AutoCompletionListItem) {
    208             editor.setItem(((AutoCompletionListItem)item).getValue());
     207            cbEditor.setItem(((AutoCompletionListItem)item).getValue());
    209208        } else
    210209            throw new IllegalArgumentException();
     
    215214     * @param item      excepts AutoCompletionListItem, String and null
    216215     */
    217     @Override public void setSelectedItem(Object item) {
     216    @Override
     217    public void setSelectedItem(Object item) {
    218218        if (item == null) {
    219219            super.setSelectedItem(null);
     
    239239     */
    240240    public void setPossibleItems(Collection<String> elems) {
    241         DefaultComboBoxModel model = (DefaultComboBoxModel)this.getModel();
     241        DefaultComboBoxModel<AutoCompletionListItem> model = (DefaultComboBoxModel<AutoCompletionListItem>)this.getModel();
    242242        Object oldValue = this.getEditor().getItem(); // Do not use getSelectedItem(); (fix #8013)
    243243        model.removeAllElements();
     
    245245            model.addElement(new AutoCompletionListItem(elem, AutoCompletionItemPriority.UNKNOWN));
    246246        }
    247         // disable autocomplete to prevent unnecessary actions in
    248         // AutoCompletingComboBoxDocument#insertString
     247        // disable autocomplete to prevent unnecessary actions in AutoCompletingComboBoxDocument#insertString
    249248        autocompleteEnabled = false;
    250249        this.getEditor().setItem(oldValue); // Do not use setSelectedItem(oldValue); (fix #8013)
     
    256255     */
    257256    public void setPossibleACItems(Collection<AutoCompletionListItem> elems) {
    258         DefaultComboBoxModel model = (DefaultComboBoxModel)this.getModel();
     257        DefaultComboBoxModel<AutoCompletionListItem> model = (DefaultComboBoxModel<AutoCompletionListItem>)this.getModel();
    259258        Object oldValue = getSelectedItem();
    260259        Object editorOldValue = this.getEditor().getItem();
     
    266265        this.getEditor().setItem(editorOldValue);
    267266    }
    268 
    269267
    270268    protected boolean isAutocompleteEnabled() {
Note: See TracChangeset for help on using the changeset viewer.