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:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.event.ChangeListener
,javax.swing.SwingConstants
,ExpertToggleAction.ExpertModeChangeListener
public final class PreferenceTabbedPane extends javax.swing.JTabbedPane implements ExpertToggleAction.ExpertModeChangeListener, javax.swing.event.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
javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListener
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private static PreferenceSettingFactory
ADVANCED_PREFERENCE_FACTORY
private java.util.List<PreferenceSetting>
settings
private static java.util.Collection<PreferenceSettingFactory>
SETTINGS_FACTORIES
private java.util.List<PreferenceSetting>
settingsInitialized
private java.util.List<PreferenceTabbedPane.PreferenceTab>
tabs
(package private) java.util.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
-
-
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(javax.swing.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<java.lang.Class<? extends TabPreferenceSetting>,java.lang.Class<? extends SubPreferenceSetting>>
getSelectedTab()
Returns the currently selected preference and sub preference settingServerAccessPreference
getServerPreference()
Returns theServerAccessPreference
object.<T extends PreferenceSetting>
TgetSetting(java.lang.Class<? extends T> clazz)
Returns the preferences setting for the given classjava.util.List<PreferenceSetting>
getSettings()
Returns a list of all preferences settingsShortcutPreference
getShortcutPreference()
Returns theShortcutPreference
object.ValidatorPreference
getValidatorPreference()
Returns theValidatorPreference
object.private static java.lang.String
htmlTabTitle(java.lang.String title, int maxWidth)
private java.util.OptionalInt
indexOfTab(java.util.function.Predicate<TabPreferenceSetting> predicate)
private int
insertGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, int index, int maxWidth)
private void
insertGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, java.awt.Component component, int position, int maxWidth)
void
savePreferences()
Saves preferences.boolean
selectSubTabByPref(java.lang.Class<? extends SubPreferenceSetting> clazz)
Selects aSubPreferenceSetting
by classprivate void
selectTabBy(java.util.function.Predicate<TabPreferenceSetting> predicate)
void
selectTabByName(java.lang.String name)
Selects aTabPreferenceSetting
by its icon namevoid
selectTabByPref(java.lang.Class<? extends TabPreferenceSetting> clazz)
Selects aTabPreferenceSetting
by classvoid
stateChanged(javax.swing.event.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 java.util.List<PreferenceTabbedPane.PreferenceTab> tabs
-
SETTINGS_FACTORIES
private static final java.util.Collection<PreferenceSettingFactory> SETTINGS_FACTORIES
-
ADVANCED_PREFERENCE_FACTORY
private static final PreferenceSettingFactory ADVANCED_PREFERENCE_FACTORY
-
settings
private final transient java.util.List<PreferenceSetting> settings
-
settingsInitialized
private final transient java.util.List<PreferenceSetting> settingsInitialized
-
validationListeners
final transient java.util.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 java.util.OptionalInt indexOfTab(java.util.function.Predicate<TabPreferenceSetting> predicate)
-
selectTabBy
private void selectTabBy(java.util.function.Predicate<TabPreferenceSetting> predicate)
-
selectTabByName
public void selectTabByName(java.lang.String name)
Selects aTabPreferenceSetting
by its icon name- Parameters:
name
- the icon name
-
selectTabByPref
public void selectTabByPref(java.lang.Class<? extends TabPreferenceSetting> clazz)
Selects aTabPreferenceSetting
by class- Parameters:
clazz
- preferences tab class
-
selectSubTabByPref
public boolean selectSubTabByPref(java.lang.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<java.lang.Class<? extends TabPreferenceSetting>,java.lang.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(javax.swing.Icon icon, TabPreferenceSetting tps, int maxWidth)
-
insertGUITabsForSetting
private int insertGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, int index, int maxWidth)
-
insertGUITabsForSetting
private void insertGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, java.awt.Component component, int position, int maxWidth)
-
htmlTabTitle
private static java.lang.String htmlTabTitle(java.lang.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 java.util.List<PreferenceSetting> getSettings()
Returns a list of all preferences settings- Returns:
- a list of all preferences settings
-
getSetting
public <T extends PreferenceSetting> T getSetting(java.lang.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:
java.util.NoSuchElementException
- if there is no such value
-
stateChanged
public void stateChanged(javax.swing.event.ChangeEvent e)
- Specified by:
stateChanged
in interfacejavax.swing.event.ChangeListener
-
addSubPreferenceSetting
private void addSubPreferenceSetting(TabPreferenceSetting preferenceSettings, SubPreferenceSetting sps)
-
-