Changeset 17312 in josm


Ignore:
Timestamp:
2020-11-15T18:35:28+01:00 (2 weeks ago)
Author:
Don-vip
Message:

see #7548 - fix UI issues in proxy preferences panel

File:
1 edited

Legend:

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

    r17271 r17312  
    22package org.openstreetmap.josm.gui.preferences.server;
    33
     4import static java.awt.GridBagConstraints.HORIZONTAL;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56import static org.openstreetmap.josm.tools.I18n.trc;
     
    2122
    2223import javax.swing.BorderFactory;
     24import javax.swing.Box;
    2325import javax.swing.ButtonGroup;
    2426import javax.swing.JLabel;
     
    3739import org.openstreetmap.josm.io.auth.CredentialsManager;
    3840import org.openstreetmap.josm.spi.preferences.Config;
     41import org.openstreetmap.josm.spi.preferences.IPreferences;
    3942import org.openstreetmap.josm.tools.GBC;
    4043import org.openstreetmap.josm.tools.Logging;
     
    7881        gc.anchor = GridBagConstraints.WEST;
    7982        gc.insets = new Insets(5, 5, 0, 0);
    80         gc.fill = GridBagConstraints.HORIZONTAL;
     83        gc.fill = HORIZONTAL;
    8184        gc.weightx = 0.0;
    8285        pnl.add(new JLabel(tr("Host:")), gc);
     
    100103        gc.gridx = 0;
    101104        gc.gridwidth = 2;
    102         gc.fill = GridBagConstraints.HORIZONTAL;
     105        gc.fill = HORIZONTAL;
    103106        gc.weightx = 1.0;
    104107        pnl.add(new JMultilineLabel(tr("Please enter a username and a password if your proxy requires authentication.")), gc);
     
    148151        gc.anchor = GridBagConstraints.WEST;
    149152        gc.insets = new Insets(5, 5, 0, 0);
    150         gc.fill = GridBagConstraints.HORIZONTAL;
     153        gc.fill = HORIZONTAL;
    151154        gc.weightx = 0.0;
    152155        pnl.add(new JLabel(tr("Host:")), gc);
     
    191194
    192195        // radio button "No proxy"
    193         rbProxyPolicy.get(ProxyPolicy.NO_PROXY).setText(tr("No proxy"));
    194         pnl.add(rbProxyPolicy.get(ProxyPolicy.NO_PROXY), GBC.eop().anchor(GBC.NORTHWEST));
     196        pnl.add(newRadioButton(ProxyPolicy.NO_PROXY, tr("No proxy")), GBC.eop().anchor(GBC.NORTHWEST));
    195197
    196198        // radio button "System settings"
    197         pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_SYSTEM_SETTINGS), GBC.eol());
    198         rbProxyPolicy.get(ProxyPolicy.USE_SYSTEM_SETTINGS).setText(tr("Use standard system settings"));
     199        pnl.add(newRadioButton(ProxyPolicy.USE_SYSTEM_SETTINGS, tr("Use standard system settings")), GBC.eol());
    199200        if (!DefaultProxySelector.willJvmRetrieveSystemProxies()) {
    200201            String msg = tr("Use standard system settings (disabled. Start JOSM with <tt>-Djava.net.useSystemProxies=true</tt> to enable)");
    201             pnl.add(new JMultilineLabel("<html>" + msg + "</html>"), GBC.eop());
     202            pnl.add(new JMultilineLabel("<html>" + msg + "</html>"), GBC.eop().fill(HORIZONTAL));
    202203        }
    203204
    204205        // radio button http proxy
    205         rbProxyPolicy.get(ProxyPolicy.USE_HTTP_PROXY).setText(tr("Manually configure a HTTP proxy"));
    206         pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_HTTP_PROXY), GBC.eol());
     206        pnl.add(newRadioButton(ProxyPolicy.USE_HTTP_PROXY, tr("Manually configure a HTTP proxy")), GBC.eol());
    207207
    208208        // the panel with the http proxy configuration parameters
    209209        pnlHttpProxyConfigurationPanel = buildHttpProxyConfigurationPanel();
    210         pnl.add(pnlHttpProxyConfigurationPanel, GBC.eop().fill(GBC.HORIZONTAL));
     210        pnl.add(pnlHttpProxyConfigurationPanel, GBC.eop().fill(HORIZONTAL));
    211211
    212212        // radio button SOCKS proxy
    213         pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_SOCKS_PROXY), GBC.eol());
    214         rbProxyPolicy.get(ProxyPolicy.USE_SOCKS_PROXY).setText(tr("Use a SOCKS proxy"));
     213        pnl.add(newRadioButton(ProxyPolicy.USE_SOCKS_PROXY, tr("Use a SOCKS proxy")), GBC.eol());
    215214
    216215        // the panel with the SOCKS configuration parameters
    217216        pnlSocksProxyConfigurationPanel = buildSocksProxyConfigurationPanel();
    218         pnl.add(pnlSocksProxyConfigurationPanel, GBC.eop().fill(GBC.HORIZONTAL));
     217        pnl.add(pnlSocksProxyConfigurationPanel, GBC.eop().fill(HORIZONTAL));
     218
     219        pnl.add(Box.createVerticalGlue(), GBC.eol().fill());
    219220
    220221        return pnl;
    221222    }
    222223
     224    private JRadioButton newRadioButton(ProxyPolicy policy, String text) {
     225        JRadioButton radioButton = rbProxyPolicy.get(policy);
     226        radioButton.setText(text);
     227        return radioButton;
     228    }
     229
    223230    /**
    224231     * Initializes the panel with the values from the preferences
    225232     */
    226233    public final void initFromPreferences() {
    227         ProxyPolicy pp = Optional.ofNullable(ProxyPolicy.fromName(Config.getPref().get(DefaultProxySelector.PROXY_POLICY, null)))
     234        IPreferences pref = Config.getPref();
     235        ProxyPolicy pp = Optional.ofNullable(ProxyPolicy.fromName(pref.get(DefaultProxySelector.PROXY_POLICY, null)))
    228236                .orElse(ProxyPolicy.NO_PROXY);
    229237        rbProxyPolicy.get(pp).setSelected(true);
    230         tfProxyHttpHost.setText(Config.getPref().get(DefaultProxySelector.PROXY_HTTP_HOST, ""));
    231         tfProxyHttpPort.setText(Config.getPref().get(DefaultProxySelector.PROXY_HTTP_PORT, ""));
    232         tfProxySocksHost.setText(Config.getPref().get(DefaultProxySelector.PROXY_SOCKS_HOST, ""));
    233         tfProxySocksPort.setText(Config.getPref().get(DefaultProxySelector.PROXY_SOCKS_PORT, ""));
     238        tfProxyHttpHost.setText(pref.get(DefaultProxySelector.PROXY_HTTP_HOST, ""));
     239        tfProxyHttpPort.setText(pref.get(DefaultProxySelector.PROXY_HTTP_PORT, ""));
     240        tfProxySocksHost.setText(pref.get(DefaultProxySelector.PROXY_SOCKS_HOST, ""));
     241        tfProxySocksPort.setText(pref.get(DefaultProxySelector.PROXY_SOCKS_PORT, ""));
    234242
    235243        if (pp == ProxyPolicy.USE_SYSTEM_SETTINGS && !DefaultProxySelector.willJvmRetrieveSystemProxies()) {
     
    275283    class ProxyPolicyChangeListener implements ItemListener {
    276284        @Override
    277         public void itemStateChanged(ItemEvent arg0) {
     285        public void itemStateChanged(ItemEvent e) {
    278286            updateEnabledState();
    279287        }
     
    301309                .filter(pp -> rbProxyPolicy.get(pp).isSelected())
    302310                .findFirst().orElse(null);
    303         Config.getPref().put(DefaultProxySelector.PROXY_POLICY, Optional.ofNullable(policy).orElse(ProxyPolicy.NO_PROXY).getName());
    304         Config.getPref().put(DefaultProxySelector.PROXY_HTTP_HOST, tfProxyHttpHost.getText());
    305         Config.getPref().put(DefaultProxySelector.PROXY_HTTP_PORT, tfProxyHttpPort.getText());
    306         Config.getPref().put(DefaultProxySelector.PROXY_SOCKS_HOST, tfProxySocksHost.getText());
    307         Config.getPref().put(DefaultProxySelector.PROXY_SOCKS_PORT, tfProxySocksPort.getText());
     311        IPreferences pref = Config.getPref();
     312        pref.put(DefaultProxySelector.PROXY_POLICY, Optional.ofNullable(policy).orElse(ProxyPolicy.NO_PROXY).getName());
     313        pref.put(DefaultProxySelector.PROXY_HTTP_HOST, tfProxyHttpHost.getText());
     314        pref.put(DefaultProxySelector.PROXY_HTTP_PORT, tfProxyHttpPort.getText());
     315        pref.put(DefaultProxySelector.PROXY_SOCKS_HOST, tfProxySocksHost.getText());
     316        pref.put(DefaultProxySelector.PROXY_SOCKS_PORT, tfProxySocksPort.getText());
    308317
    309318        // update the proxy selector
Note: See TracChangeset for help on using the changeset viewer.