source: josm/trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreference.java@ 6525

Last change on this file since 6525 was 6525, checked in by Don-vip, 10 years ago

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

File size: 2.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.preferences.server;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.util.HashSet;
7import java.util.Set;
8
9import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
10import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
11import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
12import org.openstreetmap.josm.gui.preferences.ServerAccessPreference;
13import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
14import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
15
16/**
17 * Proxy sub-preferences in server preferences.
18 * @since 6523
19 */
20public class ProxyPreference implements SubPreferenceSetting {
21
22 /**
23 * Factory used to create a new {@code ProxyPreference}.
24 */
25 public static class Factory implements PreferenceSettingFactory {
26 @Override
27 public PreferenceSetting createPreferenceSetting() {
28 return new ProxyPreference();
29 }
30 }
31
32 private static Set<ProxyPreferenceListener> listeners = new HashSet<ProxyPreferenceListener>();
33
34 private ProxyPreferencesPanel pnlProxyPreferences;
35
36 private ProxyPreference() {
37 super();
38 }
39
40 @Override
41 public void addGui(PreferenceTabbedPane gui) {
42 pnlProxyPreferences = new ProxyPreferencesPanel();
43 gui.getServerPreference().addSubTab(this, tr("Proxy settings"),
44 ServerAccessPreference.wrapVerticallyScrollablePanel(pnlProxyPreferences),
45 tr("Configure whether to use a proxy server"));
46 }
47
48 @Override
49 public boolean ok() {
50 pnlProxyPreferences.saveToPreferences();
51 for (ProxyPreferenceListener listener : listeners) {
52 listener.proxyPreferenceChanged();
53 }
54 return false;
55 }
56
57 @Override
58 public boolean isExpert() {
59 return false;
60 }
61
62 @Override
63 public TabPreferenceSetting getTabPreferenceSetting(PreferenceTabbedPane gui) {
64 return gui.getServerPreference();
65 }
66
67 /**
68 * Adds a new ProxyPreferenceListener.
69 * @param listener the listener to add
70 * @return {@code true} if the listener has been added, {@code false} otherwise
71 * @since 6525
72 */
73 public static boolean addProxyPreferenceListener(ProxyPreferenceListener listener) {
74 if (listener != null) {
75 return listeners.add(listener);
76 }
77 return false;
78 }
79
80 /**
81 * Removes a ProxyPreferenceListener.
82 * @param listener the listener to remove
83 * @return {@code true} if the listener has been removed, {@code false} otherwise
84 * @since 6525
85 */
86 public static boolean removeProxyPreferenceListener(ProxyPreferenceListener listener) {
87 if (listener != null) {
88 return listeners.remove(listener);
89 }
90 return false;
91 }
92}
Note: See TracBrowser for help on using the repository browser.