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

Last change on this file was 17648, checked in by simon04, 3 years ago

fix #20652 - Preferences: Update context-sensitive help page links to new structure

  • Property svn:eol-style set to native
File size: 2.8 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 javax.swing.Box;
10
11import org.openstreetmap.josm.gui.help.HelpUtil;
12import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
13import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
14import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
15import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
16import org.openstreetmap.josm.tools.GBC;
17
18/**
19 * Proxy sub-preferences in server preferences.
20 * @since 6523
21 */
22public final class ProxyPreference extends DefaultTabPreferenceSetting {
23
24 /**
25 * Factory used to create a new {@code ProxyPreference}.
26 */
27 public static class Factory implements PreferenceSettingFactory {
28 @Override
29 public PreferenceSetting createPreferenceSetting() {
30 return new ProxyPreference();
31 }
32 }
33
34 private static final Set<ProxyPreferenceListener> listeners = new HashSet<>();
35
36 private ProxyPreferencesPanel pnlProxyPreferences;
37
38 private ProxyPreference() {
39 super(/* ICON(preferences/) */ "proxy", tr("Proxy"), tr("Configure whether to use a proxy server"));
40 }
41
42 @Override
43 public void addGui(PreferenceTabbedPane gui) {
44 pnlProxyPreferences = new ProxyPreferencesPanel();
45 pnlProxyPreferences.add(Box.createVerticalGlue(), GBC.eol().fill());
46 gui.createPreferenceTab(this).add(pnlProxyPreferences, GBC.eol().fill());
47 }
48
49 @Override
50 public boolean ok() {
51 pnlProxyPreferences.saveToPreferences();
52 for (ProxyPreferenceListener listener : listeners) {
53 listener.proxyPreferenceChanged();
54 }
55 return false;
56 }
57
58 @Override
59 public boolean isExpert() {
60 return false;
61 }
62
63 /**
64 * Adds a new ProxyPreferenceListener.
65 * @param listener the listener to add
66 * @return {@code true} if the listener has been added, {@code false} otherwise
67 * @since 6525
68 */
69 public static boolean addProxyPreferenceListener(ProxyPreferenceListener listener) {
70 if (listener != null) {
71 return listeners.add(listener);
72 }
73 return false;
74 }
75
76 /**
77 * Removes a ProxyPreferenceListener.
78 * @param listener the listener to remove
79 * @return {@code true} if the listener has been removed, {@code false} otherwise
80 * @since 6525
81 */
82 public static boolean removeProxyPreferenceListener(ProxyPreferenceListener listener) {
83 if (listener != null) {
84 return listeners.remove(listener);
85 }
86 return false;
87 }
88
89 @Override
90 public String getHelpContext() {
91 return HelpUtil.ht("/Preferences/ProxyPreference");
92 }
93}
Note: See TracBrowser for help on using the repository browser.