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

Last change on this file was 18208, checked in by Don-vip, 3 years ago

global use of Utils.isEmpty/isBlank

  • Property svn:eol-style set to native
File size: 3.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.preferences;
3
4import java.awt.Component;
5
6import javax.swing.ImageIcon;
7
8import org.openstreetmap.josm.tools.ImageProvider;
9import org.openstreetmap.josm.tools.Utils;
10
11/**
12 * Preference settings, that display a top level tab.
13 *
14 * This preference setting's addGui method is called after the user clicked the tab.
15 */
16public interface TabPreferenceSetting extends PreferenceSetting {
17
18 /**
19 * Called during preferences dialog initialization to display the preferences tab with the returned icon.
20 * @return The icon name in the preferences folder.
21 */
22 String getIconName();
23
24 /**
25 * Returns the icon for this preference setting
26 * @param size the icon size
27 * @return the icon or {@code null}
28 */
29 default ImageIcon getIcon(ImageProvider.ImageSizes size) {
30 String iconName = getIconName();
31 return Utils.isEmpty(iconName)
32 ? null
33 : iconName.contains("/")
34 ? ImageProvider.get(iconName, size)
35 : ImageProvider.get("preferences", iconName, size);
36 }
37
38 /**
39 * Called during preferences tab initialization to display its title.
40 * @return The title of this preferences tab.
41 */
42 String getTitle();
43
44 /**
45 * Called during preferences dialog initialization to display the preferences tab with the returned tooltip.
46 * @return The tooltip of this preferences tab.
47 */
48 String getTooltip();
49
50 /**
51 * Called during preferences tab initialization to display a description in one sentence for this tab.
52 * Will be displayed in italic under the title.
53 * @return The description of this preferences tab.
54 */
55 String getDescription();
56
57 /**
58 * Adds a new sub preference settings tab with the given title and component.
59 * @param sub The new sub preference settings.
60 * @param title The tab title.
61 * @param component The tab component.
62 * @since 5631
63 */
64 void addSubTab(SubPreferenceSetting sub, String title, Component component);
65
66 /**
67 * Adds a new sub preference settings tab with the given title, component and tooltip.
68 * @param sub The new sub preference settings.
69 * @param title The tab title.
70 * @param component The tab component.
71 * @param tip The tab tooltip.
72 * @since 5631
73 */
74 void addSubTab(SubPreferenceSetting sub, String title, Component component, String tip);
75
76 /**
77 * Registers a sub preference settings to an existing tab component.
78 * @param sub The new sub preference settings.
79 * @param component The component for which a tab already exists.
80 * @since 5631
81 */
82 void registerSubTab(SubPreferenceSetting sub, Component component);
83
84 /**
85 * Returns the tab component related to the specified sub preference settings
86 * @param sub The requested sub preference settings.
87 * @return The component related to the specified sub preference settings, or null.
88 * @since 5631
89 */
90 Component getSubTab(SubPreferenceSetting sub);
91
92 /**
93 * Returns the currently selected sub preference setting
94 * @return the currently selected sub preference setting
95 */
96 Class<? extends SubPreferenceSetting> getSelectedSubTab();
97
98 /**
99 * Selects the specified sub preference settings, if applicable. Not all Tab preference settings need to implement this.
100 * @param subPref The sub preference settings to be selected.
101 * @return true if the specified preference settings have been selected, false otherwise.
102 * @since 5631
103 */
104 boolean selectSubTab(SubPreferenceSetting subPref);
105
106 /**
107 * Returns the help context for this preferences settings tab.
108 * @return the help context for this preferences settings tab
109 * @since 13431
110 */
111 String getHelpContext();
112}
Note: See TracBrowser for help on using the repository browser.