Changeset 6602 in josm for trunk/src


Ignore:
Timestamp:
2014-01-03T02:17:12+01:00 (10 years ago)
Author:
Don-vip
Message:

fix #9511 - non propagation of OSM API url to OAuth preferences panel (regression from r6523)

Location:
trunk/src/org/openstreetmap/josm/gui/preferences/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/server/OAuthAuthenticationPreferencesPanel.java

    r6340 r6602  
    3030import org.openstreetmap.josm.gui.oauth.OAuthAuthorizationWizard;
    3131import org.openstreetmap.josm.gui.oauth.TestAccessTokenTask;
     32import org.openstreetmap.josm.io.OsmApi;
    3233import org.openstreetmap.josm.io.auth.CredentialsManager;
    3334import org.openstreetmap.josm.tools.ImageProvider;
     
    160161     */
    161162    public void initFromPreferences() {
     163        setApiUrl(Main.pref.get("osm-server.url", OsmApi.DEFAULT_API_URL).trim());
    162164        refreshView();
    163165    }
  • trunk/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java

    r6582 r6602  
    3434import org.openstreetmap.josm.io.OsmApi;
    3535import org.openstreetmap.josm.tools.ImageProvider;
     36import org.openstreetmap.josm.tools.Utils;
    3637
    3738/**
     
    5253    /** indicates whether to use the default OSM URL or not */
    5354    private JCheckBox cbUseDefaultServerUrl;
    54 
    55     protected JPanel buildDefultServerUrlPanel() {
     55   
     56    private ApiUrlPropagator propagator;
     57
     58    protected JPanel buildDefaultServerUrlPanel() {
    5659        JPanel pnl = new JPanel(new GridBagLayout());
    5760        GridBagConstraints gc = new GridBagConstraints();
     
    8487        gc.insets = new Insets(0,0,0,0);
    8588        gc.gridwidth  = 4;
    86         add(buildDefultServerUrlPanel(), gc);
     89        add(buildDefaultServerUrlPanel(), gc);
    8790
    8891
     
    101104        valOsmServerUrl = new ApiUrlValidator(tfOsmServerUrl);
    102105        valOsmServerUrl.validate();
    103         ApiUrlPropagator propagator = new ApiUrlPropagator();
     106        propagator = new ApiUrlPropagator();
    104107        tfOsmServerUrl.addActionListener(propagator);
    105108        tfOsmServerUrl.addFocusListener(propagator);
     
    131134        if (url.trim().equals(OsmApi.DEFAULT_API_URL)) {
    132135            cbUseDefaultServerUrl.setSelected(true);
    133             firePropertyChange(API_URL_PROP, null, OsmApi.DEFAULT_API_URL);
     136            propagator.propagate(OsmApi.DEFAULT_API_URL);
    134137        } else {
    135138            cbUseDefaultServerUrl.setSelected(false);
    136139            tfOsmServerUrl.setText(url);
    137             firePropertyChange(API_URL_PROP, null, url);
     140            propagator.propagate(url);
    138141        }
    139142    }
     
    143146     */
    144147    public void saveToPreferences() {
    145         String old_url = Main.pref.get("osm-server.url", OsmApi.DEFAULT_API_URL);
     148        String oldUrl = Main.pref.get("osm-server.url", OsmApi.DEFAULT_API_URL);
     149        String hmiUrl = getStrippedApiUrl();
    146150        if (cbUseDefaultServerUrl.isSelected()) {
    147151            Main.pref.put("osm-server.url", null);
    148         } else if (tfOsmServerUrl.getText().trim().equals(OsmApi.DEFAULT_API_URL)) {
     152        } else if (hmiUrl.equals(OsmApi.DEFAULT_API_URL)) {
    149153            Main.pref.put("osm-server.url", null);
    150154        } else {
    151             Main.pref.put("osm-server.url", tfOsmServerUrl.getText().trim());
    152         }
    153         String new_url = Main.pref.get("osm-server.url", OsmApi.DEFAULT_API_URL);
     155            Main.pref.put("osm-server.url", hmiUrl);
     156        }
     157        String newUrl = Main.pref.get("osm-server.url", OsmApi.DEFAULT_API_URL);
    154158
    155159        // When API URL changes, re-initialize API connection so we may adjust
    156160        // server-dependent settings.
    157         if (!old_url.equals(new_url)) {
     161        if (!oldUrl.equals(newUrl)) {
    158162            try {
    159163                OsmApi.getOsmApi().initialize(null);
     
    163167        }
    164168    }
     169   
     170    /**
     171     * Returns the entered API URL, stripped of leading and trailing white characters.
     172     * @return the entered API URL, stripped of leading and trailing white characters.
     173     *         May be an empty string if nothing has been entered. In this case, it means the user wants to use {@link OsmApi#DEFAULT_API_URL}.
     174     * @see Utils#strip(String)
     175     * @since 6602
     176     */
     177    public final String getStrippedApiUrl() {
     178        return Utils.strip(tfOsmServerUrl.getText());
     179    }
    165180
    166181    class ValidateApiUrlAction extends AbstractAction implements DocumentListener {
     
    175190        @Override
    176191        public void actionPerformed(ActionEvent arg0) {
    177             final String url = tfOsmServerUrl.getText().trim();
     192            final String url = getStrippedApiUrl();
    178193            final ApiUrlTestTask task = new ApiUrlTestTask(OsmApiUrlInputPanel.this, url);
    179194            Main.worker.submit(task);
     
    204219
    205220        protected void updateEnabledState() {
    206             boolean enabled =
    207                 !tfOsmServerUrl.getText().trim().isEmpty()
    208                 && !tfOsmServerUrl.getText().trim().equals(lastTestedUrl);
     221            String url = getStrippedApiUrl();
     222            boolean enabled = !url.isEmpty() && !url.equals(lastTestedUrl);
    209223            if (enabled) {
    210224                lblValid.setIcon(null);
     
    281295            case ItemEvent.SELECTED:
    282296                setApiUrlInputEnabled(false);
    283                 firePropertyChange(API_URL_PROP, null, OsmApi.DEFAULT_API_URL);
     297                propagator.propagate(OsmApi.DEFAULT_API_URL);
    284298                break;
    285299            case ItemEvent.DESELECTED:
     
    287301                valOsmServerUrl.validate();
    288302                tfOsmServerUrl.requestFocusInWindow();
    289                 firePropertyChange(API_URL_PROP, null, tfOsmServerUrl.getText());
     303                propagator.propagate();
    290304                break;
    291305            }
     
    295309    class ApiUrlPropagator extends FocusAdapter implements ActionListener {
    296310        public void propagate() {
    297             firePropertyChange(API_URL_PROP, null, tfOsmServerUrl.getText());
     311            propagate(getStrippedApiUrl());
     312        }
     313
     314        public void propagate(String url) {
     315            firePropertyChange(API_URL_PROP, null, url);
    298316        }
    299317
Note: See TracChangeset for help on using the changeset viewer.