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 classPreferenceTabbedPane.PluginDownloadAfterTaskstatic classPreferenceTabbedPane.PreferencePanelPanel used for preference settings.static classPreferenceTabbedPane.PreferenceScrollPaneScroll pane used for largePreferenceTabbedPane.PreferencePanels.private static interfacePreferenceTabbedPane.PreferenceTabstatic interfacePreferenceTabbedPane.ValidationListenerAllows PreferenceSettings to do validation of entered values when ok was pressed.(package private) static classPreferenceTabbedPane.WheelListenerThis 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 PreferenceSettingFactoryADVANCED_PREFERENCE_FACTORYprivate java.util.List<PreferenceSetting>settingsprivate static java.util.Collection<PreferenceSettingFactory>SETTINGS_FACTORIESprivate java.util.List<PreferenceSetting>settingsInitializedprivate 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 voidaddGUITabs(boolean clear)private voidaddGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, int maxWidth)private voidaddSubPreferenceSetting(TabPreferenceSetting preferenceSettings, SubPreferenceSetting sps)voidaddValidationListener(PreferenceTabbedPane.ValidationListener validationListener)Add validation listener to currently open preferences dialog.voidbuildGui()Constructs GUI.private intcomputeMaxTabWidth()PreferenceTabbedPane.PreferencePanelcreatePreferenceTab(TabPreferenceSetting caller)Construct a PreferencePanel for the preference settings.PreferenceTabbedPane.PreferencePanelcreatePreferenceTab(TabPreferenceSetting caller, boolean inScrollPane)Construct a PreferencePanel for the preference settings.voidexpertChanged(boolean isExpert)The expert mode changed.DisplayPreferencegetDisplayPreference()Returns theDisplayPreferenceobject.ImageryPreferencegetImageryPreference()Returns theImageryPreferenceobject.PluginPreferencegetPluginPreference()Returns thePluginPreferenceobject.Pair<java.lang.Class<? extends TabPreferenceSetting>,java.lang.Class<? extends SubPreferenceSetting>>getSelectedTab()Returns the currently selected preference and sub preference settingServerAccessPreferencegetServerPreference()Returns theServerAccessPreferenceobject.<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 settingsShortcutPreferencegetShortcutPreference()Returns theShortcutPreferenceobject.ValidatorPreferencegetValidatorPreference()Returns theValidatorPreferenceobject.private static java.lang.StringhtmlTabTitle(java.lang.String title, int maxWidth)private java.util.OptionalIntindexOfTab(java.util.function.Predicate<TabPreferenceSetting> predicate)private intinsertGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, int index, int maxWidth)private voidinsertGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, java.awt.Component component, int position, int maxWidth)voidsavePreferences()Saves preferences.booleanselectSubTabByPref(java.lang.Class<? extends SubPreferenceSetting> clazz)Selects aSubPreferenceSettingby classprivate voidselectTabBy(java.util.function.Predicate<TabPreferenceSetting> predicate)voidselectTabByName(java.lang.String name)Selects aTabPreferenceSettingby its icon namevoidselectTabByPref(java.lang.Class<? extends TabPreferenceSetting> clazz)Selects aTabPreferenceSettingby classvoidstateChanged(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- iftruethe 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 aTabPreferenceSettingby its icon name- Parameters:
name- the icon name
-
selectTabByPref
public void selectTabByPref(java.lang.Class<? extends TabPreferenceSetting> clazz)
Selects aTabPreferenceSettingby class- Parameters:
clazz- preferences tab class
-
selectSubTabByPref
public boolean selectSubTabByPref(java.lang.Class<? extends SubPreferenceSetting> clazz)
Selects aSubPreferenceSettingby 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 theDisplayPreferenceobject.- Returns:
- the
DisplayPreferenceobject.
-
getPluginPreference
public PluginPreference getPluginPreference()
Returns thePluginPreferenceobject.- Returns:
- the
PluginPreferenceobject.
-
getImageryPreference
public ImageryPreference getImageryPreference()
Returns theImageryPreferenceobject.- Returns:
- the
ImageryPreferenceobject.
-
getShortcutPreference
public ShortcutPreference getShortcutPreference()
Returns theShortcutPreferenceobject.- Returns:
- the
ShortcutPreferenceobject.
-
getServerPreference
public ServerAccessPreference getServerPreference()
Returns theServerAccessPreferenceobject.- Returns:
- the
ServerAccessPreferenceobject. - Since:
- 6523
-
getValidatorPreference
public ValidatorPreference getValidatorPreference()
Returns theValidatorPreferenceobject.- Returns:
- the
ValidatorPreferenceobject. - 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.ExpertModeChangeListenerThe expert mode changed.- Specified by:
expertChangedin interfaceExpertToggleAction.ExpertModeChangeListener- Parameters:
isExpert-trueif 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:
stateChangedin interfacejavax.swing.event.ChangeListener
-
addSubPreferenceSetting
private void addSubPreferenceSetting(TabPreferenceSetting preferenceSettings, SubPreferenceSetting sps)
-
-