Class PreferenceTabbedPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTabbedPane
-
- org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,ChangeListener
,SwingConstants
,ExpertToggleAction.ExpertModeChangeListener
public final class PreferenceTabbedPane extends JTabbedPane implements ExpertToggleAction.ExpertModeChangeListener, ChangeListener
The preference settings.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
PreferenceTabbedPane.PluginDownloadAfterTask
static class
PreferenceTabbedPane.PreferencePanel
Panel used for preference settings.static class
PreferenceTabbedPane.PreferenceScrollPane
Scroll pane used for largePreferenceTabbedPane.PreferencePanel
s.private static interface
PreferenceTabbedPane.PreferenceTab
static interface
PreferenceTabbedPane.ValidationListener
Allows PreferenceSettings to do validation of entered values when ok was pressed.(package private) static class
PreferenceTabbedPane.WheelListener
This mouse wheel listener reacts when a scroll is carried out over the tab strip and scrolls one tab/down or up, selecting it immediately.-
Nested classes/interfaces inherited from class javax.swing.JTabbedPane
JTabbedPane.AccessibleJTabbedPane, JTabbedPane.ModelListener
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description private static PreferenceSettingFactory
ADVANCED_PREFERENCE_FACTORY
private List<PreferenceSetting>
settings
private static Collection<PreferenceSettingFactory>
SETTINGS_FACTORIES
private List<PreferenceSetting>
settingsInitialized
private List<PreferenceTabbedPane.PreferenceTab>
tabs
(package private) List<PreferenceTabbedPane.ValidationListener>
validationListeners
-
Fields inherited from class javax.swing.JTabbedPane
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
Constructor Summary
Constructors Constructor Description PreferenceTabbedPane()
If the dialog is closed with Ok, the preferences will be stored to the preferences- file, otherwise no change of the file happens.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addGUITabs(boolean clear)
private void
addGUITabsForSetting(Icon icon, TabPreferenceSetting tps, int maxWidth)
private void
addSubPreferenceSetting(TabPreferenceSetting preferenceSettings, SubPreferenceSetting sps)
void
addValidationListener(PreferenceTabbedPane.ValidationListener validationListener)
Add validation listener to currently open preferences dialog.void
buildGui()
Constructs GUI.private int
computeMaxTabWidth()
PreferenceTabbedPane.PreferencePanel
createPreferenceTab(TabPreferenceSetting caller)
Construct a PreferencePanel for the preference settings.PreferenceTabbedPane.PreferencePanel
createPreferenceTab(TabPreferenceSetting caller, boolean inScrollPane)
Construct a PreferencePanel for the preference settings.void
expertChanged(boolean isExpert)
The expert mode changed.DisplayPreference
getDisplayPreference()
Returns theDisplayPreference
object.ImageryPreference
getImageryPreference()
Returns theImageryPreference
object.PluginPreference
getPluginPreference()
Returns thePluginPreference
object.Pair<Class<? extends TabPreferenceSetting>,Class<? extends SubPreferenceSetting>>
getSelectedTab()
Returns the currently selected preference and sub preference settingServerAccessPreference
getServerPreference()
Returns theServerAccessPreference
object.<T extends PreferenceSetting>
TgetSetting(Class<? extends T> clazz)
Returns the preferences setting for the given classList<PreferenceSetting>
getSettings()
Returns a list of all preferences settingsShortcutPreference
getShortcutPreference()
Returns theShortcutPreference
object.ValidatorPreference
getValidatorPreference()
Returns theValidatorPreference
object.private static String
htmlTabTitle(String title, int maxWidth)
private OptionalInt
indexOfTab(Predicate<TabPreferenceSetting> predicate)
private int
insertGUITabsForSetting(Icon icon, TabPreferenceSetting tps, int index, int maxWidth)
private void
insertGUITabsForSetting(Icon icon, TabPreferenceSetting tps, Component component, int position, int maxWidth)
void
savePreferences()
Saves preferences.boolean
selectSubTabByPref(Class<? extends SubPreferenceSetting> clazz)
Selects aSubPreferenceSetting
by classprivate void
selectTabBy(Predicate<TabPreferenceSetting> predicate)
void
selectTabByName(String name)
Selects aTabPreferenceSetting
by its icon namevoid
selectTabByPref(Class<? extends TabPreferenceSetting> clazz)
Selects aTabPreferenceSetting
by classvoid
stateChanged(ChangeEvent e)
-
Methods inherited from class javax.swing.JTabbedPane
add, add, add, add, add, addChangeListener, addTab, addTab, addTab, createChangeListener, fireStateChanged, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getComponentAt, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabComponentAt, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, getUI, getUIClassID, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, indexOfTabComponent, insertTab, isEnabledAt, paramString, remove, remove, removeAll, removeChangeListener, removeTabAt, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setTitleAt, setToolTipTextAt, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
tabs
private final transient List<PreferenceTabbedPane.PreferenceTab> tabs
-
SETTINGS_FACTORIES
private static final Collection<PreferenceSettingFactory> SETTINGS_FACTORIES
-
ADVANCED_PREFERENCE_FACTORY
private static final PreferenceSettingFactory ADVANCED_PREFERENCE_FACTORY
-
settings
private final transient List<PreferenceSetting> settings
-
settingsInitialized
private final transient List<PreferenceSetting> settingsInitialized
-
validationListeners
final transient List<PreferenceTabbedPane.ValidationListener> validationListeners
-
-
Constructor Detail
-
PreferenceTabbedPane
public PreferenceTabbedPane()
If the dialog is closed with Ok, the preferences will be stored to the preferences- file, otherwise no change of the file happens.
-
-
Method Detail
-
addValidationListener
public void addValidationListener(PreferenceTabbedPane.ValidationListener validationListener)
Add validation listener to currently open preferences dialog. Calling to removeValidationListener is not necessary, all listeners will be automatically removed when dialog is closed- Parameters:
validationListener
- validation listener to add
-
createPreferenceTab
public PreferenceTabbedPane.PreferencePanel createPreferenceTab(TabPreferenceSetting caller)
Construct a PreferencePanel for the preference settings. Layout is GridBagLayout and a centered title label and the description are added.- Parameters:
caller
- Preference settings, that display a top level tab- Returns:
- The created panel ready to add other controls.
-
createPreferenceTab
public PreferenceTabbedPane.PreferencePanel createPreferenceTab(TabPreferenceSetting caller, boolean inScrollPane)
Construct a PreferencePanel for the preference settings. Layout is GridBagLayout and a centered title label and the description are added.- Parameters:
caller
- Preference settings, that display a top level tabinScrollPane
- iftrue
the added tab will show scroll bars if the panel content is larger than the available space- Returns:
- The created panel ready to add other controls.
-
indexOfTab
private OptionalInt indexOfTab(Predicate<TabPreferenceSetting> predicate)
-
selectTabBy
private void selectTabBy(Predicate<TabPreferenceSetting> predicate)
-
selectTabByName
public void selectTabByName(String name)
Selects aTabPreferenceSetting
by its icon name- Parameters:
name
- the icon name
-
selectTabByPref
public void selectTabByPref(Class<? extends TabPreferenceSetting> clazz)
Selects aTabPreferenceSetting
by class- Parameters:
clazz
- preferences tab class
-
selectSubTabByPref
public boolean selectSubTabByPref(Class<? extends SubPreferenceSetting> clazz)
Selects aSubPreferenceSetting
by class- Parameters:
clazz
- sub preferences tab class- Returns:
- true if the specified preference settings have been selected, false otherwise.
-
getSelectedTab
public Pair<Class<? extends TabPreferenceSetting>,Class<? extends SubPreferenceSetting>> getSelectedTab()
Returns the currently selected preference and sub preference setting- Returns:
- the currently selected preference and sub preference setting
-
getDisplayPreference
public DisplayPreference getDisplayPreference()
Returns theDisplayPreference
object.- Returns:
- the
DisplayPreference
object.
-
getPluginPreference
public PluginPreference getPluginPreference()
Returns thePluginPreference
object.- Returns:
- the
PluginPreference
object.
-
getImageryPreference
public ImageryPreference getImageryPreference()
Returns theImageryPreference
object.- Returns:
- the
ImageryPreference
object.
-
getShortcutPreference
public ShortcutPreference getShortcutPreference()
Returns theShortcutPreference
object.- Returns:
- the
ShortcutPreference
object.
-
getServerPreference
public ServerAccessPreference getServerPreference()
Returns theServerAccessPreference
object.- Returns:
- the
ServerAccessPreference
object. - Since:
- 6523
-
getValidatorPreference
public ValidatorPreference getValidatorPreference()
Returns theValidatorPreference
object.- Returns:
- the
ValidatorPreference
object. - Since:
- 6665
-
savePreferences
public void savePreferences()
Saves preferences.
-
buildGui
public void buildGui()
Constructs GUI.
-
addGUITabsForSetting
private void addGUITabsForSetting(Icon icon, TabPreferenceSetting tps, int maxWidth)
-
insertGUITabsForSetting
private int insertGUITabsForSetting(Icon icon, TabPreferenceSetting tps, int index, int maxWidth)
-
insertGUITabsForSetting
private void insertGUITabsForSetting(Icon icon, TabPreferenceSetting tps, Component component, int position, int maxWidth)
-
htmlTabTitle
private static String htmlTabTitle(String title, int maxWidth)
-
addGUITabs
private void addGUITabs(boolean clear)
-
computeMaxTabWidth
private int computeMaxTabWidth()
-
expertChanged
public void expertChanged(boolean isExpert)
Description copied from interface:ExpertToggleAction.ExpertModeChangeListener
The expert mode changed.- Specified by:
expertChanged
in interfaceExpertToggleAction.ExpertModeChangeListener
- Parameters:
isExpert
-true
if expert mode was enabled, false otherwise.
-
getSettings
public List<PreferenceSetting> getSettings()
Returns a list of all preferences settings- Returns:
- a list of all preferences settings
-
getSetting
public <T extends PreferenceSetting> T getSetting(Class<? extends T> clazz)
Returns the preferences setting for the given class- Type Parameters:
T
- the preference setting type- Parameters:
clazz
- the preference setting class- Returns:
- the preferences setting for the given class
- Throws:
NoSuchElementException
- if there is no such value
-
stateChanged
public void stateChanged(ChangeEvent e)
- Specified by:
stateChanged
in interfaceChangeListener
-
addSubPreferenceSetting
private void addSubPreferenceSetting(TabPreferenceSetting preferenceSettings, SubPreferenceSetting sps)
-
-