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

Last change on this file since 17227 was 17227, checked in by simon04, 4 years ago

see #7548 - Re-organize the preference dialog (remove "settings" from tab names)

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