Ticket #21619: 21619.patch

File 21619.patch, 3.2 KB (added by marcello@…, 3 years ago)

patch

  • src/org/openstreetmap/josm/gui/preferences/projection/CustomProjectionChoice.java

     
    1616import javax.swing.JComponent;
    1717import javax.swing.JLabel;
    1818import javax.swing.JPanel;
    19 import javax.swing.plaf.basic.BasicComboBoxEditor;
    2019
    2120import org.openstreetmap.josm.data.projection.CustomProjection;
    2221import org.openstreetmap.josm.data.projection.Projection;
     
    2625import org.openstreetmap.josm.gui.widgets.AbstractTextComponentValidator;
    2726import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
    2827import org.openstreetmap.josm.gui.widgets.HtmlPanel;
    29 import org.openstreetmap.josm.gui.widgets.JosmTextField;
    3028import org.openstreetmap.josm.tools.GBC;
    3129import org.openstreetmap.josm.tools.ImageProvider;
    3230import org.openstreetmap.josm.tools.Logging;
     
    5250
    5351    private static class PreferencePanel extends JPanel {
    5452
    55         public JosmTextField input;
    5653        private HistoryComboBox cbInput;
    5754
    5855        PreferencePanel(String initialText, ActionListener listener) {
     
    6057        }
    6158
    6259        private void build(String initialText, final ActionListener listener) {
    63             input = new JosmTextField(30);
    6460            cbInput = new HistoryComboBox();
    65             cbInput.setEditor(new BasicComboBoxEditor() {
    66                 @Override
    67                 protected JosmTextField createEditorComponent() {
    68                     return input;
    69                 }
    70             });
     61            cbInput.getEditorComponent().setColumns(30);
    7162            List<String> samples = Arrays.asList(
    7263                    "+proj=lonlat +ellps=WGS84 +datum=WGS84 +bounds=-180,-90,180,90",
    7364                    "+proj=tmerc +lat_0=0 +lon_0=9 +k_0=1 +x_0=3500000 +y_0=0 +ellps=bessel +nadgrids=BETA2007.gsb");
     
    7970            final JLabel valStatus = new JLabel();
    8071            valStatus.setVisible(false);
    8172
    82             final AbstractTextComponentValidator val = new AbstractTextComponentValidator(input, false, false, false) {
     73            final AbstractTextComponentValidator val = new AbstractTextComponentValidator(cbInput.getEditorComponent(), false, false, false) {
    8374
    8475                private String error;
    8576
     
    9788                public boolean isValid() {
    9889                    try {
    9990                        CustomProjection test = new CustomProjection();
    100                         test.update(input.getText());
     91                        test.update(cbInput.getEditorComponent().getText());
    10192                    } catch (ProjectionConfigurationException ex) {
    10293                        Logging.warn(ex);
    10394                        error = ex.getMessage();
     
    220211            throw new IllegalArgumentException("Unsupported panel: "+panel);
    221212        }
    222213        PreferencePanel prefPanel = (PreferencePanel) panel;
    223         String pref = prefPanel.input.getText();
     214        String pref = prefPanel.cbInput.getEditorComponent().getText();
    224215        prefPanel.rememberHistory();
    225216        return Collections.singleton(pref);
    226217    }