org.opensha.commons.param.editor.impl
Class DoubleParameterEditor

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 org.opensha.commons.gui.LabeledBorderPanel
                      extended by org.opensha.commons.param.editor.AbstractParameterEditor<Double>
                          extended by org.opensha.commons.param.editor.impl.DoubleParameterEditor
All Implemented Interfaces:
FocusListener, KeyListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ParameterEditor<Double>
Direct Known Subclasses:
ConstrainedDoubleParameterEditor

public class DoubleParameterEditor
extends AbstractParameterEditor<Double>
implements FocusListener, KeyListener

Title: DoubleParameterEditor

Description: Subclass of ParameterEditor for editing DoubleParameters. The widget is an DoubleTextField so that only numbers can be typed in.

The main functionality overidden from the parent class to achive Double cusomization are the setWidgetObject() and AddWidget() functions. The parent's class JComponent valueEditor field becomes an NumericTextField, a subclass of a JTextField. Note: We have to create a double parameter with constraints if we want to reflect the constarints as the tooltip text in the GUI. Because when we editor is created for that double parameter, it creates a constraint double parameter and then we can change the constraint and it will be reflected in the tool tip text.

Version:
1.0
Author:
Steven W. Rock
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected static String C
          Class name for debugging.
protected static boolean D
          If true print out debug statements.
 
Fields inherited from class org.opensha.commons.param.editor.AbstractParameterEditor
CONST_BORDER, DEFAULT_FONT, ETCHED, FOCUS_BORDER, LABEL_DIM, LABEL_PANEL_DIM, WIGET_PANEL_DIM
 
Fields inherited from class org.opensha.commons.gui.LabeledBorderPanel
addDefault, borderColor, editorPanel, GBL, jScrollPane1, mainPanel, PARAMETER_LABEL_FONT, PARAMTER_FORE_COLOR, title
 
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
protected DoubleParameterEditor()
          No-Arg constructor calls parent constructtor
  DoubleParameterEditor(Parameter model)
          Constructor that sets the parameter that it edits.
 
Method Summary
protected  JComponent buildWidget()
          This will be called by refreshParamEditor to initially build the widget component.
 void focusGained(FocusEvent e)
           
 void focusLost(FocusEvent e)
          Called when the user clicks on another area of the GUI outside this editor panel.
 boolean isParameterSupported(Parameter<Double> param)
          Abstract method that allows subclasses to define if a specific parameter is valid.
 void keyPressed(KeyEvent e)
           
 void keyReleased(KeyEvent e)
           
 void keyTyped(KeyEvent e)
          Called everytime a key is typed in the text field to validate it as a valid number character ( digits, - sign in first position, etc.
 void setEnabled(boolean enabled)
           
protected  JComponent updateWidget()
          This is called by refreshParamEditor when the parameters value is changed externally and the widget needs to be updated to reflect the new value.
 
Methods inherited from class org.opensha.commons.param.editor.AbstractParameterEditor
getComponent, getLabelToolTipText, getParameter, getValue, getWidget, getWidgetToolTipText, isFocusEnabled, makeSingleConstraintValueLabel, refreshParamEditor, removeWidget, setEditorBorder, setFocusEnabled, setParameter, setValue, unableToSetValue, updateTitle
 
Methods inherited from class org.opensha.commons.gui.LabeledBorderPanel
add, add, add, add, add, getBorderColor, getTitle, initParameterLookAndFeel, jbInit, remove, remove, removeAll, setBorderColor, setLayout, setTitle, setTitleFont, setTitleJustification, setTitlePosition
 
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, 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, 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, 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, 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
 
Methods inherited from interface org.opensha.commons.param.editor.ParameterEditor
isVisible, setVisible
 

Field Detail

C

protected static final String C
Class name for debugging.

See Also:
Constant Field Values

D

protected static final boolean D
If true print out debug statements.

See Also:
Constant Field Values
Constructor Detail

DoubleParameterEditor

protected DoubleParameterEditor()
No-Arg constructor calls parent constructtor


DoubleParameterEditor

public DoubleParameterEditor(Parameter model)
                      throws Exception
Constructor that sets the parameter that it edits. Note: When calling the super() constuctor addWidget() is called which configures the NumericTextField as the editor widget.

Throws:
Exception
Method Detail

buildWidget

protected JComponent buildWidget()
Description copied from class: AbstractParameterEditor
This will be called by refreshParamEditor to initially build the widget component.

Specified by:
buildWidget in class AbstractParameterEditor<Double>
Returns:
widget editing component to be displayed in the editor

keyTyped

public void keyTyped(KeyEvent e)
              throws NumberFormatException
Called everytime a key is typed in the text field to validate it as a valid number character ( digits, - sign in first position, etc. ).

Specified by:
keyTyped in interface KeyListener
Throws:
NumberFormatException

focusLost

public void focusLost(FocusEvent e)
               throws ConstraintException
Called when the user clicks on another area of the GUI outside this editor panel. This synchornizes the editor text field value to the internal parameter reference.

Specified by:
focusLost in interface FocusListener
Throws:
ConstraintException

isParameterSupported

public boolean isParameterSupported(Parameter<Double> param)
Description copied from class: AbstractParameterEditor
Abstract method that allows subclasses to define if a specific parameter is valid. An editor could, for example, disallow null parameters or only allow parameters with a specific type of constraint. This is called when setParameter is called.

Specified by:
isParameterSupported in class AbstractParameterEditor<Double>
Returns:

setEnabled

public void setEnabled(boolean enabled)
Specified by:
setEnabled in interface ParameterEditor<Double>
Specified by:
setEnabled in class AbstractParameterEditor<Double>

updateWidget

protected JComponent updateWidget()
Description copied from class: AbstractParameterEditor
This is called by refreshParamEditor when the parameters value is changed externally and the widget needs to be updated to reflect the new value. If the widget can be simply updated to display/edit the new value, it should do so.

If it needs to be rebuilt, then this can either return null (which will result in a subsequent call to buildWidget), or return the new component.

Specified by:
updateWidget in class AbstractParameterEditor<Double>
Returns:
updated component, or new component/null if it needs to be rebuilt

keyPressed

public void keyPressed(KeyEvent e)
Specified by:
keyPressed in interface KeyListener

keyReleased

public void keyReleased(KeyEvent e)
Specified by:
keyReleased in interface KeyListener

focusGained

public void focusGained(FocusEvent e)
Specified by:
focusGained in interface FocusListener