jsky.util.gui
Class QuantityPanel

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 jsky.util.gui.QuantityPanel
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, ReplaceablePropertyChangeListener

public class QuantityPanel
extends javax.swing.JPanel
implements ReplaceablePropertyChangeListener, java.awt.event.ActionListener, java.awt.event.FocusListener

A JPanel subclass that manages coordinated display and editing of Quantity values and units. The JPanel contains both a JTextField for displaying/editing the Quantity's value, and a JLabel for displaying the Quantity's current default units. The panel listens to for relevant changes in the Quantity's list of default units and updates the display accordingly. Changes to the Quantity instance edited by the QuantityPanel are passed on to registered PropertyChangeListeners via PropertyChangeEvents have the propertyName of QuantityPanel.QUANTITY.

Version:
1999.11.11
Author:
S. Grosvenor
See Also:
Serialized Form

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
static java.lang.String QUANTITY
           
 
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
QuantityPanel(java.lang.Class cl)
          Creates a QuantityPanel providing for 8 columns in the quantity field, and displaying the default units.
QuantityPanel(int width, java.lang.Class cl)
          Creates a QuantityPanel providing for specified number of columns in the quantity field, and displaying the default units.
QuantityPanel(int width, int labelLocation, java.lang.Class cl)
          Creates a QuantityPanel providing for specified number of columns in the quantity field, displaying the Quantity's default units, and providing an option to display the unit beside or below the textfield.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          handles ActionEvents from the JTextField
 void focusGained(java.awt.event.FocusEvent event)
           
 void focusLost(java.awt.event.FocusEvent event)
          Updates the quantity value when the JTextField loses focus
 int getDecs()
          returns the number of decimal places being displayed in the JTextField
 java.awt.Font getFont()
          returns the current font for the JTextField
 Quantity getQuantity()
          Returns the Quantity object being editted
 void propertyChange(java.beans.PropertyChangeEvent event)
          handles inbound PropertyEvents (only expected to come from Quantity in response to changes to the default units
 void replaceObject(ReplacementEvent event)
          handles requests to swap out the edited Quantity instance
 void setAbbreviate(boolean abbrev)
          When set to True, the units will be displayed as abbreviations, the default is True.
 void setDecs(int inDecs)
          Sets the number of decimal places to be displayed in the TextField of the panel
 void setEnabled(boolean b)
          overrides parent setEnabled to pass the enabling onto the textfield contained in the quantiypanel.
 void setErrorColor(java.awt.Color c)
          Sets the Color for the foreground of "error" text in the textfield.
 void setFont(java.awt.Font f)
          Sets the font to be displayed in the JTextField
 void setNormalColor(java.awt.Color c)
          Sets the Color for the foreground of "normal" text in the textfield
 void setQuantity(Quantity newQ)
          Sets the Quantity instance to be editted.
 void setToolTipText(java.lang.String text)
          overrides setToolTip to pass the tool tip on to both the label and the text field in the Panel
 void setUnitsVisible(boolean onOff)
          turns on or off the displaying of the units label
 
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, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, 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, 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

QUANTITY

public static final java.lang.String QUANTITY
See Also:
Constant Field Values
Constructor Detail

QuantityPanel

public QuantityPanel(java.lang.Class cl)
Creates a QuantityPanel providing for 8 columns in the quantity field, and displaying the default units.

Parameters:
cl - The subclass of Quantity for which editting is to be performed

QuantityPanel

public QuantityPanel(int width,
                     java.lang.Class cl)
Creates a QuantityPanel providing for specified number of columns in the quantity field, and displaying the default units.

Parameters:
width - The width of the text field in the panel
cl - The subclass of Quantity for which editting is to be performed

QuantityPanel

public QuantityPanel(int width,
                     int labelLocation,
                     java.lang.Class cl)
Creates a QuantityPanel providing for specified number of columns in the quantity field, displaying the Quantity's default units, and providing an option to display the unit beside or below the textfield.

Parameters:
width - The width of the text field in the panel
labelLocation - The location for the units, use SwingConstants.EAST to locate along side, any other string (recommend using SwingConstants.SOUTH), will result in units displayed below the textfield
cl - The subclass of Quantity for which editting is to be performed
Method Detail

setAbbreviate

public void setAbbreviate(boolean abbrev)
When set to True, the units will be displayed as abbreviations, the default is True.


setNormalColor

public void setNormalColor(java.awt.Color c)
Sets the Color for the foreground of "normal" text in the textfield


setErrorColor

public void setErrorColor(java.awt.Color c)
Sets the Color for the foreground of "error" text in the textfield. Values such as NaN


setQuantity

public void setQuantity(Quantity newQ)
Sets the Quantity instance to be editted.

Parameters:
newQ - Quantity object to be editted

getQuantity

public Quantity getQuantity()
Returns the Quantity object being editted


setDecs

public void setDecs(int inDecs)
Sets the number of decimal places to be displayed in the TextField of the panel

Parameters:
inDecs - the number of decimal places to be displayed

getDecs

public int getDecs()
returns the number of decimal places being displayed in the JTextField


setFont

public void setFont(java.awt.Font f)
Sets the font to be displayed in the JTextField

Overrides:
setFont in class javax.swing.JComponent

getFont

public java.awt.Font getFont()
returns the current font for the JTextField

Specified by:
getFont in interface java.awt.MenuContainer
Overrides:
getFont in class java.awt.Component

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent event)
handles inbound PropertyEvents (only expected to come from Quantity in response to changes to the default units

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

replaceObject

public void replaceObject(ReplacementEvent event)
handles requests to swap out the edited Quantity instance

Specified by:
replaceObject in interface ReplaceablePropertyChangeListener
Parameters:
event - the event that contains details about replacement

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
handles ActionEvents from the JTextField

Specified by:
actionPerformed in interface java.awt.event.ActionListener

focusGained

public void focusGained(java.awt.event.FocusEvent event)
Specified by:
focusGained in interface java.awt.event.FocusListener

focusLost

public void focusLost(java.awt.event.FocusEvent event)
Updates the quantity value when the JTextField loses focus

Specified by:
focusLost in interface java.awt.event.FocusListener

setUnitsVisible

public void setUnitsVisible(boolean onOff)
turns on or off the displaying of the units label


setToolTipText

public void setToolTipText(java.lang.String text)
overrides setToolTip to pass the tool tip on to both the label and the text field in the Panel

Overrides:
setToolTipText in class javax.swing.JComponent

setEnabled

public void setEnabled(boolean b)
overrides parent setEnabled to pass the enabling onto the textfield contained in the quantiypanel.

Overrides:
setEnabled in class javax.swing.JComponent