de.sciss.gui
Class PrefPathField

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by de.sciss.gui.SpringPanel
                      extended by de.sciss.gui.PathField
                          extended by de.sciss.gui.PrefPathField
All Implemented Interfaces:
DynamicListening, EventManager.Processor, LaterInvocationManager.Listener, PreferenceEntrySync, PathListener, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, java.util.prefs.PreferenceChangeListener, javax.accessibility.Accessible
Direct Known Subclasses:
BasicPathField

public class PrefPathField
extends PathField
implements DynamicListening, java.util.prefs.PreferenceChangeListener, LaterInvocationManager.Listener, PreferenceEntrySync

Subclass of PathField that enables automatic Preferences association

Version:
0.28, 17-Apr-07
Author:
Hanns Holger Rutz
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class de.sciss.gui.SpringPanel
SpringPanel.ComponentHeightRatioSpring, SpringPanel.ComponentWidthRatioSpring, SpringPanel.RatioSpring
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  boolean writePrefs
           
 
Fields inherited from class de.sciss.gui.PathField
COLOR_PROPSET, ggFormat, ggPath, myMeta, protoScheme, scheme, TYPE_BASICMASK, TYPE_FOLDER, TYPE_FORMATFIELD, TYPE_INPUTFILE, TYPE_OUTPUTFILE, userPaths
 
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PrefPathField(int type, java.lang.String dlgTxt)
          Constructs a new PrefPathField.
 
Method Summary
 java.lang.String getPreferenceKey()
          Gets the recently set preference key
 java.util.prefs.Preferences getPreferenceNode()
          Gets the recently set preference node
 boolean getReadPrefs()
           
 boolean getWritePrefs()
           
 void laterInvocation(java.lang.Object o)
          Called later in the event thread, this passes the object given to the queue method
 void preferenceChange(java.util.prefs.PreferenceChangeEvent e)
           
 void readPrefs()
           
 void setPath(java.io.File f)
          Sets the gadget's path.
 void setPreferenceKey(java.lang.String key)
           
 void setPreferenceNode(java.util.prefs.Preferences prefs)
           
 void setPreferences(java.util.prefs.Preferences prefs, java.lang.String key)
          Enable Preferences synchronization.
 void setReadPrefs(boolean b)
           
 void setWritePrefs(boolean b)
           
 void startListening()
          will be called when the component becomes visible
 void stopListening()
          will be called when the component is hidden
 void writePrefs()
           
 
Methods inherited from class de.sciss.gui.PathField
abbrScheme, actionPerformed, addPathListener, createPathButton, deriveFrom, evalScheme, expandScheme, getFormat, getPath, getType, pathChanged, processEvent, removePathListener, requestFocusInWindow, selectFileName, setErrWhenExistsOn, setErrWhenWriteProtected, setFormat, setPathAndDispatchEvent, setWarnWhenExists, udirScheme
 
Methods inherited from class de.sciss.gui.SpringPanel
gridAdd, gridAdd, gridAdd, makeCompactGrid, makeCompactGrid, makeGrid, setInitialX, setInitialY, setPadding, setTitle, setXPad, setYPad
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, 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, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, 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
add, add, add, add, add, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

writePrefs

protected boolean writePrefs
Constructor Detail

PrefPathField

public PrefPathField(int type,
                     java.lang.String dlgTxt)
Constructs a new PrefPathField.

Parameters:
type - type of path field, e.g. TYPE_INPUTFILE.
dlgTxt - text for the file chooser dialog or null
Synchronization:
Like any other Swing component, the constructor is to be called from the event thread.
Method Detail

setReadPrefs

public void setReadPrefs(boolean b)
Specified by:
setReadPrefs in interface PreferenceEntrySync

getReadPrefs

public boolean getReadPrefs()
Specified by:
getReadPrefs in interface PreferenceEntrySync

setWritePrefs

public void setWritePrefs(boolean b)
Specified by:
setWritePrefs in interface PreferenceEntrySync

getWritePrefs

public boolean getWritePrefs()
Specified by:
getWritePrefs in interface PreferenceEntrySync

setPath

public void setPath(java.io.File f)
Description copied from class: PathField
Sets the gadget's path. This is path will be used as default setting when the file chooser is shown

Overrides:
setPath in class PathField
Parameters:
f - the new path for the button

writePrefs

public void writePrefs()
Specified by:
writePrefs in interface PreferenceEntrySync

setPreferenceNode

public void setPreferenceNode(java.util.prefs.Preferences prefs)
Specified by:
setPreferenceNode in interface PreferenceEntrySync

setPreferenceKey

public void setPreferenceKey(java.lang.String key)
Specified by:
setPreferenceKey in interface PreferenceEntrySync

setPreferences

public void setPreferences(java.util.prefs.Preferences prefs,
                           java.lang.String key)
Enable Preferences synchronization. This method is not thread safe and must be called from the event thread. When a preference change is received, the path is updated in the GUi and the PathField dispatches a PathEvent. Likewise, if the user adjusts the path in the GUI, the preference will be updated. The same is true, if you call setPath.

Specified by:
setPreferences in interface PreferenceEntrySync
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 the path converted to a string.

getPreferenceNode

public java.util.prefs.Preferences getPreferenceNode()
Description copied from interface: PreferenceEntrySync
Gets the recently set preference node

Specified by:
getPreferenceNode in interface PreferenceEntrySync
Returns:
the node set with setPreferences or null if no prefs were set

getPreferenceKey

public java.lang.String getPreferenceKey()
Description copied from interface: PreferenceEntrySync
Gets the recently set preference key

Specified by:
getPreferenceKey in interface PreferenceEntrySync
Returns:
the key set with setPreferences or null if no prefs were set

startListening

public void startListening()
Description copied from interface: DynamicListening
will be called when the component becomes visible

Specified by:
startListening in interface DynamicListening

stopListening

public void stopListening()
Description copied from interface: DynamicListening
will be called when the component is hidden

Specified by:
stopListening in interface DynamicListening

laterInvocation

public void laterInvocation(java.lang.Object o)
Description copied from interface: LaterInvocationManager.Listener
Called later in the event thread, this passes the object given to the queue method

Specified by:
laterInvocation in interface LaterInvocationManager.Listener
Parameters:
o - object as passed to queue

readPrefs

public void readPrefs()
Specified by:
readPrefs in interface PreferenceEntrySync

preferenceChange

public void preferenceChange(java.util.prefs.PreferenceChangeEvent e)
Specified by:
preferenceChange in interface java.util.prefs.PreferenceChangeListener