org.openstreetmap.josm.gui.preferences
Class PreferenceTabbedPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTabbedPane
                  extended by org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane
All Implemented Interfaces:
java.awt.event.MouseWheelListener, 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 class PreferenceTabbedPane
extends javax.swing.JTabbedPane
implements java.awt.event.MouseWheelListener, ExpertToggleAction.ExpertModeChangeListener, javax.swing.event.ChangeListener

The preference settings.

See Also:
Serialized Form

Nested Class Summary
static class PreferenceTabbedPane.PreferencePanel
           
static class PreferenceTabbedPane.PreferenceScrollPane
           
private static interface PreferenceTabbedPane.PreferenceTab
           
private static interface PreferenceTabbedPane.TabIdentifier
           
static interface PreferenceTabbedPane.ValidationListener
          Allows PreferenceSettings to do validation of entered values when ok was pressed.
 
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
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.util.List<PreferenceSetting> settings
           
private static java.util.Collection<PreferenceSettingFactory> settingsFactory
           
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
accessibleContext, 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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
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
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
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
private  void addGUITabs(boolean clear)
           
private  void addGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps)
           
 void addValidationListener(PreferenceTabbedPane.ValidationListener validationListener)
          Add validation listener to currently open preferences dialog.
 void buildGui()
           
 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)
           
 DisplayPreference getDisplayPreference()
           
 ImageryPreference getImageryPreference()
           
 MapPreference getMapPreference()
           
 PluginPreference getPluginPreference()
           
<T> T
getSetting(java.lang.Class<? extends T> clazz)
           
 java.util.List<PreferenceSetting> getSettings()
           
private  void insertGUITabsForSetting(javax.swing.Icon icon, TabPreferenceSetting tps, int index)
           
 void mouseWheelMoved(java.awt.event.MouseWheelEvent wev)
          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.
 void savePreferences()
           
private  void selectTabBy(PreferenceTabbedPane.TabIdentifier method, java.lang.Object param)
           
 void selectTabByName(java.lang.String name)
           
 void selectTabByPref(java.lang.Class<? extends TabPreferenceSetting> clazz)
           
 void 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tabs

private final java.util.List<PreferenceTabbedPane.PreferenceTab> tabs

settingsFactory

private static final java.util.Collection<PreferenceSettingFactory> settingsFactory

settings

private final java.util.List<PreferenceSetting> settings

settingsInitialized

private final java.util.List<PreferenceSetting> settingsInitialized

validationListeners

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 -

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.

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:
inScrollPane - if true 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.

selectTabBy

private void selectTabBy(PreferenceTabbedPane.TabIdentifier method,
                         java.lang.Object param)

selectTabByName

public void selectTabByName(java.lang.String name)

selectTabByPref

public void selectTabByPref(java.lang.Class<? extends TabPreferenceSetting> clazz)

getDisplayPreference

public final DisplayPreference getDisplayPreference()

getMapPreference

public final MapPreference getMapPreference()

getPluginPreference

public final PluginPreference getPluginPreference()

getImageryPreference

public final ImageryPreference getImageryPreference()

savePreferences

public void savePreferences()

buildGui

public void buildGui()

addGUITabsForSetting

private void addGUITabsForSetting(javax.swing.Icon icon,
                                  TabPreferenceSetting tps)

insertGUITabsForSetting

private void insertGUITabsForSetting(javax.swing.Icon icon,
                                     TabPreferenceSetting tps,
                                     int index)

addGUITabs

private void addGUITabs(boolean clear)

expertChanged

public void expertChanged(boolean isExpert)
Specified by:
expertChanged in interface ExpertToggleAction.ExpertModeChangeListener

getSettings

public java.util.List<PreferenceSetting> getSettings()

getSetting

public <T> T getSetting(java.lang.Class<? extends T> clazz)

mouseWheelMoved

public void mouseWheelMoved(java.awt.event.MouseWheelEvent wev)
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.

Specified by:
mouseWheelMoved in interface java.awt.event.MouseWheelListener

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent e)
Specified by:
stateChanged in interface javax.swing.event.ChangeListener


JOSM