Package de.sciss.gui
Class PrefCheckBox
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.AbstractButton
-
- javax.swing.JToggleButton
-
- javax.swing.JCheckBox
-
- de.sciss.gui.PrefCheckBox
-
- All Implemented Interfaces:
DynamicListening,LaterInvocationManager.Listener,PreferenceEntrySync,java.awt.image.ImageObserver,java.awt.ItemSelectable,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,java.util.prefs.PreferenceChangeListener,javax.accessibility.Accessible,javax.swing.SwingConstants
public class PrefCheckBox extends javax.swing.JCheckBox implements DynamicListening, java.util.prefs.PreferenceChangeListener, LaterInvocationManager.Listener, PreferenceEntrySync
Equips a normal JCheckBox with preference storing / recalling capabilities. To preserve maximum future compatibility, we decided to not override setSelected() and the like but to install an internal ActionListener. Thus, there are two ways to alter the gadget state, either by invoking the doClick() methods (DON'T USE setSelected() because it doesn't fire events) or by changing the associated preferences. The whole mechanism would be much simpler if we reduced listening to the preference changes, but a) this wouldn't track user GUI activities, b) the PrefCheckBox can be used with preferences set to null. When a preference change occurs, the doClick() method is called, allowing clients to add ActionListeners to the gadget in case they don't want to deal with preferences. However, when possible it is recommended to use PreferenceChangeListener mechanisms.- See Also:
PreferenceChangeListener, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JCheckBox
javax.swing.JCheckBox.AccessibleJCheckBox
-
Nested classes/interfaces inherited from class javax.swing.JToggleButton
javax.swing.JToggleButton.AccessibleJToggleButton, javax.swing.JToggleButton.ToggleButtonModel
-
Nested classes/interfaces inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanwritePrefs-
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
-
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 PrefCheckBox()Constructs a newPrefCheckBoxwith no initial preferences set.PrefCheckBox(java.lang.String text)Constructs a newPrefCheckBoxwith a given text label and no preferences set.PrefCheckBox(javax.swing.Action a)Constructs a newPrefCheckBoxwith a given action and no initial preferences set.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetPreferenceKey()Gets the recently set preference keyjava.util.prefs.PreferencesgetPreferenceNode()Gets the recently set preference nodebooleangetReadPrefs()booleangetWritePrefs()voidlaterInvocation(java.lang.Object o)Called later in the event thread, this passes the object given to the queue methodvoidpreferenceChange(java.util.prefs.PreferenceChangeEvent e)voidreadPrefs()voidsetPreferenceKey(java.lang.String key)voidsetPreferenceNode(java.util.prefs.Preferences prefs)voidsetPreferences(java.util.prefs.Preferences prefs, java.lang.String key)Enables Preferences synchronization.voidsetReadPrefs(boolean b)voidsetWritePrefs(boolean b)voidstartListening()will be called when the component becomes visiblevoidstopListening()will be called when the component is hiddenvoidwritePrefs()-
Methods inherited from class javax.swing.JCheckBox
getAccessibleContext, getUIClassID, isBorderPaintedFlat, paramString, setBorderPaintedFlat, updateUI
-
Methods inherited from class javax.swing.AbstractButton
actionPropertyChanged, addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, configurePropertiesFromAction, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
-
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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, 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
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
PrefCheckBox
public PrefCheckBox()
Constructs a newPrefCheckBoxwith no initial preferences set.
-
PrefCheckBox
public PrefCheckBox(java.lang.String text)
Constructs a newPrefCheckBoxwith a given text label and no preferences set.- Parameters:
text- label of the checkbox
-
PrefCheckBox
public PrefCheckBox(javax.swing.Action a)
Constructs a newPrefCheckBoxwith a given action and no initial preferences set.- Parameters:
a- action to attach to the checkbox
-
-
Method Detail
-
setReadPrefs
public void setReadPrefs(boolean b)
- Specified by:
setReadPrefsin interfacePreferenceEntrySync
-
getReadPrefs
public boolean getReadPrefs()
- Specified by:
getReadPrefsin interfacePreferenceEntrySync
-
setWritePrefs
public void setWritePrefs(boolean b)
- Specified by:
setWritePrefsin interfacePreferenceEntrySync
-
getWritePrefs
public boolean getWritePrefs()
- Specified by:
getWritePrefsin interfacePreferenceEntrySync
-
writePrefs
public void writePrefs()
- Specified by:
writePrefsin interfacePreferenceEntrySync
-
setPreferenceNode
public void setPreferenceNode(java.util.prefs.Preferences prefs)
- Specified by:
setPreferenceNodein interfacePreferenceEntrySync
-
setPreferenceKey
public void setPreferenceKey(java.lang.String key)
- Specified by:
setPreferenceKeyin interfacePreferenceEntrySync
-
setPreferences
public void setPreferences(java.util.prefs.Preferences prefs, java.lang.String key)Description copied from interface:PreferenceEntrySyncEnables Preferences synchronization. This method is not thread safe and must be called from the event thread. When a preference change is received, the GUI is updated and dispatches an event to registered listeners. Likewise, if the user adjusts the GUI value, the preference will be updated. The same is true, if you call one of the value changing methods.- Specified by:
setPreferencesin interfacePreferenceEntrySync- Parameters:
prefs- the preferences node in which the value is stored, or null to disable prefs sync.key- the key used to store and recall prefs. the value is converted into a string.
-
getPreferenceNode
public java.util.prefs.Preferences getPreferenceNode()
Description copied from interface:PreferenceEntrySyncGets the recently set preference node- Specified by:
getPreferenceNodein interfacePreferenceEntrySync- Returns:
- the node set with setPreferences or null if no prefs were set
-
getPreferenceKey
public java.lang.String getPreferenceKey()
Description copied from interface:PreferenceEntrySyncGets the recently set preference key- Specified by:
getPreferenceKeyin interfacePreferenceEntrySync- Returns:
- the key set with setPreferences or null if no prefs were set
-
startListening
public void startListening()
Description copied from interface:DynamicListeningwill be called when the component becomes visible- Specified by:
startListeningin interfaceDynamicListening
-
stopListening
public void stopListening()
Description copied from interface:DynamicListeningwill be called when the component is hidden- Specified by:
stopListeningin interfaceDynamicListening
-
laterInvocation
public void laterInvocation(java.lang.Object o)
Description copied from interface:LaterInvocationManager.ListenerCalled later in the event thread, this passes the object given to the queue method- Specified by:
laterInvocationin interfaceLaterInvocationManager.Listener- Parameters:
o- object as passed toqueue
-
readPrefs
public void readPrefs()
- Specified by:
readPrefsin interfacePreferenceEntrySync
-
preferenceChange
public void preferenceChange(java.util.prefs.PreferenceChangeEvent e)
- Specified by:
preferenceChangein interfacejava.util.prefs.PreferenceChangeListener
-
-