Ignore:
Timestamp:
2013-12-24T23:40:10+01:00 (5 years ago)
Author:
Don-vip
Message:

fix server preferences dialog broken in r6523 + reload MOTD after proxy update if it fails because of a proxy error

File:
1 edited

Legend:

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

    r6296 r6525  
    2525import org.openstreetmap.josm.Main;
    2626import org.openstreetmap.josm.data.Version;
     27import org.openstreetmap.josm.gui.preferences.server.ProxyPreference;
     28import org.openstreetmap.josm.gui.preferences.server.ProxyPreferenceListener;
    2729import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
    2830import org.openstreetmap.josm.io.CacheCustomContent;
     
    3133import org.openstreetmap.josm.tools.WikiReader;
    3234
    33 public final class GettingStarted extends JPanel {
     35public final class GettingStarted extends JPanel implements ProxyPreferenceListener {
     36
     37    private final LinkGeneral lg;
    3438    private String content = "";
     39    private boolean contentInitialized = false;
     40
    3541    private static final String STYLE = "<style type=\"text/css\">\n"
    3642            + "body {font-family: sans-serif; font-weight: bold; }\n"
     
    113119    public GettingStarted() {
    114120        super(new BorderLayout());
    115         final LinkGeneral lg = new LinkGeneral("<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
     121        lg = new LinkGeneral("<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
    116122                + "</h1><h2 align=\"center\">" + tr("Downloading \"Message of the day\"") + "</h2></html>");
    117123        // clear the build-in command ctrl+shift+O, because it is used as shortcut in JOSM
     
    122128        add(scroller, BorderLayout.CENTER);
    123129
     130        getMOTD();
     131
     132        new FileDrop(scroller);
     133    }
     134
     135    private void getMOTD() {
    124136        // Asynchronously get MOTD to speed-up JOSM startup
    125137        Thread t = new Thread(new Runnable() {
    126138            @Override
    127139            public void run() {
    128                 if (content.isEmpty() && Main.pref.getBoolean("help.displaymotd", true)) {
     140                if (!contentInitialized && Main.pref.getBoolean("help.displaymotd", true)) {
    129141                    try {
    130142                        content = new MotdContent().updateIfRequiredString();
     143                        contentInitialized = true;
     144                        ProxyPreference.removeProxyPreferenceListener(GettingStarted.this);
    131145                    } catch (IOException ex) {
    132146                        Main.warn(tr("Failed to read MOTD. Exception was: {0}", ex.toString()));
    133147                        content = "<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
    134148                                + "</h1>\n<h2 align=\"center\">(" + tr("Message of the day not available") + ")</h2></html>";
     149                        // In case of MOTD not loaded because of proxy error, listen to preference changes to retry after update
     150                        ProxyPreference.addProxyPreferenceListener(GettingStarted.this);
    135151                    }
    136152                }
     
    146162        t.setDaemon(true);
    147163        t.start();
    148 
    149         new FileDrop(scroller);
    150164    }
    151165
     
    163177        return sb.toString();
    164178    }
     179
     180    @Override
     181    public void proxyPreferenceChanged() {
     182        getMOTD();
     183    }
    165184}
Note: See TracChangeset for help on using the changeset viewer.