source: josm/trunk/src/org/openstreetmap/josm/gui/preferences/server/OverpassServerPreference.java@ 12928

Last change on this file since 12928 was 12816, checked in by Don-vip, 7 years ago

see #15229 - see #15182 - remove GUI references from I/O subsystem

File size: 3.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.awt.GridBagLayout;
7
8import javax.swing.BorderFactory;
9import javax.swing.Box;
10import javax.swing.JCheckBox;
11import javax.swing.JLabel;
12import javax.swing.JPanel;
13
14import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
15import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
16import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
17import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
18import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
19import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
20import org.openstreetmap.josm.io.OverpassDownloadReader;
21import org.openstreetmap.josm.tools.GBC;
22
23/**
24 * Preferences related to Overpass API servers.
25 *
26 * @since 9142
27 */
28public class OverpassServerPreference implements SubPreferenceSetting {
29
30 private final HistoryComboBox overpassServer = new HistoryComboBox();
31 private final JCheckBox forMultiFetch = new JCheckBox(tr("Use Overpass server for object downloads"));
32
33 /**
34 * Factory used to create a new {@link OverpassServerPreference}.
35 */
36 public static class Factory implements PreferenceSettingFactory {
37 @Override
38 public PreferenceSetting createPreferenceSetting() {
39 return new OverpassServerPreference();
40 }
41 }
42
43 @Override
44 public TabPreferenceSetting getTabPreferenceSetting(PreferenceTabbedPane gui) {
45 return gui.getServerPreference();
46 }
47
48 @Override
49 public void addGui(PreferenceTabbedPane gui) {
50 final JPanel panel = new JPanel(new GridBagLayout());
51
52 panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
53 panel.add(new JLabel(tr("Overpass server: ")), GBC.std().insets(5, 5, 5, 5));
54 panel.add(overpassServer, GBC.eop().fill(GBC.HORIZONTAL));
55 overpassServer.setPossibleItems(OverpassDownloadReader.OVERPASS_SERVER_HISTORY.get());
56 overpassServer.setText(OverpassDownloadReader.OVERPASS_SERVER.get());
57
58 panel.add(forMultiFetch, GBC.eop());
59 forMultiFetch.setSelected(OverpassDownloadReader.FOR_MULTI_FETCH.get());
60
61 panel.add(Box.createVerticalGlue(), GBC.eol().fill());
62
63 getTabPreferenceSetting(gui).addSubTab(this, tr("Overpass server"), panel);
64 }
65
66 @Override
67 public boolean ok() {
68 OverpassDownloadReader.OVERPASS_SERVER.put(overpassServer.getText());
69 OverpassDownloadReader.OVERPASS_SERVER_HISTORY.put(overpassServer.getHistory());
70 OverpassDownloadReader.FOR_MULTI_FETCH.put(forMultiFetch.isSelected());
71 return false;
72 }
73
74 @Override
75 public boolean isExpert() {
76 return true;
77 }
78
79 /**
80 * Returns the URL of the currently selected Overpass server.
81 * @return the URL of the currently selected Overpass server.
82 * @deprecated To be removed end of 2017. Use {@code OverpassDownloadReader.OVERPASS_SERVER.get()} instead
83 */
84 @Deprecated
85 public static String getOverpassServer() {
86 return OverpassDownloadReader.OVERPASS_SERVER.get();
87 }
88
89 /**
90 * Returns true if objects should be fetched from an Overpass server instead of the OSM API.
91 * @return true if objects should be fetched from an Overpass server instead of the OSM API.
92 * @deprecated To be removed end of 2017. Use {@code OverpassDownloadReader.FOR_MULTI_FETCH.get()} instead
93 */
94 @Deprecated
95 public static boolean useForMultiFetch() {
96 return OverpassDownloadReader.FOR_MULTI_FETCH.get();
97 }
98}
Note: See TracBrowser for help on using the repository browser.