ptolemy.actor.gui
Class Configurer

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 ptolemy.actor.gui.Configurer
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, CloseListener

public class Configurer
extends javax.swing.JPanel
implements CloseListener

This class is an editor for the user settable attributes of an object. It may consist of more than one editor panel. If the object has any attributes that are instances of EditorPaneFactory, then the panes made by those factories are stacked vertically in this panel. Otherwise, a static method of EditorPaneFactory is used to construct a default editor.

The restore() method restores the values of the attributes of the object to their values when this object was created. This can be used in a modal dialog to implement a cancel button, which restores the attribute values to those before the dialog was opened.

This class is created by an instance of the EditParametersDialog class to handle the part of the dialog that edits the parameters.

Since:
Ptolemy II 0.4
Version:
$Id: Configurer.java 57046 2010-01-27 23:35:53Z cxh $
Author:
Steve Neuendorffer and Edward A. Lee
See Also:
EditorPaneFactory, Serialized Form
Accepted Rating:
Yellow (neuendor)
Proposed Rating:
Yellow (eal)

Nested Class Summary
 
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
private  java.util.List<java.awt.Component> _closeListeners
           
private  NamedObj _object
           
private  java.util.HashMap<Settable,java.lang.String> _originalValues
           
 
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
Configurer(NamedObj object)
          Construct a configurer for the specified object.
 
Method Summary
private static java.util.Set<Settable> _getVisibleSettables(NamedObj object, boolean addDecoratedAttributes)
          Return the visible Settables of NamedObj object.
static boolean isVisible(NamedObj target, Settable settable)
          Return true if the given settable should be visible in a configurer panel for the specified target.
 void restore()
          Request restoration of the user settable attribute values to what they were when this object was created.
 void restoreToDefaults()
          Restore parameter values to their defaults.
 void windowClosed(java.awt.Window window, java.lang.String button)
          Notify any panels in this configurer that implement the CloseListener interface that the specified window has closed.
 
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, 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

_closeListeners

private java.util.List<java.awt.Component> _closeListeners

_object

private NamedObj _object

_originalValues

private java.util.HashMap<Settable,java.lang.String> _originalValues
Constructor Detail

Configurer

public Configurer(NamedObj object)
Construct a configurer for the specified object. This stores the current values of any Settable attributes of the given object, and then defers to any editor pane factories contained by the given object to populate this panel with widgets that edit the attributes of the given object. If there are no editor pane factories, then a default editor pane is created.

Parameters:
object - The object to configure.
Method Detail

isVisible

public static boolean isVisible(NamedObj target,
                                Settable settable)
Return true if the given settable should be visible in a configurer panel for the specified target. Any settable with visibility FULL or NOT_EDITABLE will be visible. If the target contains an attribute named "_expertMode", then any attribute with visibility EXPERT will also be visible.

Parameters:
target - The object to be configured.
settable - The object whose visibility is returned.
Returns:
True if settable is FULL or NOT_EDITABLE or True if the target has an _expertMode attribute and the settable is EXPERT. Otherwise, return false.

restore

public void restore()
Request restoration of the user settable attribute values to what they were when this object was created. The actual restoration occurs later, in the UI thread, in order to allow all pending changes to the attribute values to be processed first. If the original values match the current values, then nothing is done.


restoreToDefaults

public void restoreToDefaults()
Restore parameter values to their defaults.


windowClosed

public void windowClosed(java.awt.Window window,
                         java.lang.String button)
Notify any panels in this configurer that implement the CloseListener interface that the specified window has closed. The second argument, if non-null, gives the name of the button that was used to close the window.

Specified by:
windowClosed in interface CloseListener
Parameters:
window - The window that closed.
button - The name of the button that was used to close the window.

_getVisibleSettables

private static java.util.Set<Settable> _getVisibleSettables(NamedObj object,
                                                            boolean addDecoratedAttributes)
Return the visible Settables of NamedObj object. When addDecoratedAttributes is true we will also return the decorated attributes.

Parameters:
object - The named object for which to show the visible Settables
addDecoratedAttributes - A flag that specifies whether decorated attributes should also be included.
Returns:
The visible attributes.