org.scopemvc.view.swing
Class STextField

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.text.JTextComponent
                          |
                          +--javax.swing.JTextField
                                |
                                +--org.scopemvc.view.swing.STextField
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, ModelBindable, PropertyView, Refreshable, javax.swing.Scrollable, java.io.Serializable, javax.swing.SwingConstants, View

public class STextField
extends javax.swing.JTextField
implements PropertyView, java.awt.event.FocusListener, java.awt.event.ActionListener, ModelBindable, Refreshable

A JTextField linked to a property of a bound model object. The property must have a StringConvertor to handle conversion to and from a String representation that will be edited in the textfield. Updates to the textfield result in changes to the model property when focus is lost.

STextField responds to the bound model or the particular bound property becoming read-only by disabling itself. An STextField is also disabled if it has no bound model or property.

STextField can issue a Control when the user hits the Enter key.

Null properties are handled in one of two ways:

  1. The field is disabled to prevent editing.
  2. The field is populated with an empty String. In this case, the bound property will contain an empty String not a null, if the textfield is populated with an empty string.
The second option is the default but that can be changed by calling setDisableOnNull(boolean).

Version:
$Revision: 1.17 $ $Date: 2002/09/13 17:04:42 $
Author:
Steve Meyfroidt
See Also:
SwingView, Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JTextField
javax.swing.JTextField.AccessibleJTextField
 
Nested classes inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.KeyBinding
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JTextField
notifyAction
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
STextField()
          Constructor for the STextField object
STextField(int columns)
          Constructor for the STextField object
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Sync model object to View and issue a Control if ControlID set.
 javax.swing.JToolTip createToolTip()
          TODO: document the method
 void focusGained(java.awt.event.FocusEvent inEvent)
          TODO: document the method
 void focusLost(java.awt.event.FocusEvent inEvent)
          TODO: document the method
 java.lang.Object getBoundModel()
          Gets the bound model
 java.lang.String getControlID()
          Gets the control ID
 Controller getController()
          Don't assign a Controller to STextField, instead delegate to the containing SwingView that has a parent Controller.
 Selector getSelector()
          Gets the selector
 java.lang.Object getViewValue()
          Get the current value (what would be set as a property of the bound model object) being presented on the View.
 boolean isDisableOnNull()
           
 void issueControl(Control inControl)
          Don't assign a Controller to STextField, instead delegate to the containing SwingView that has a parent Controller.
 void refresh()
          TODO: document the method
 void setBoundModel(java.lang.Object inModel)
          Sets the bound model
 void setControlID(java.lang.String inControlID)
          Set the ID of the Control that will be issued when Enter key is pressed in this STextField.
 void setController(Controller inController)
          Don't assign a Controller to this component, instead delegate to the containing SwingView that has a parent Controller.
 void setDisableOnNull(boolean inDisable)
          Set this to true if the textfield should be disabled when it edits a null property value.
 void setSelector(Selector inSelector)
          Sets the selector
 void setSelectorString(java.lang.String inSelectorString)
          Sets the selector string
 void setStringConvertor(StringConvertor inConvertor)
          Force use of this StringConvertor instead of automatically finding one to match the datatype being edited.
 void setText(java.lang.String t)
          Override to call super.setText() only if new value not equals() old value.
protected  void setupStringConvertor()
          TODO: document the method
 void updateFromProperty(java.lang.Object inValue, boolean inReadOnly)
          Converts the incoming value to a String via appropriate StringConvertor.
 void validationFailed(java.lang.Exception inException)
          TODO: document the method
 void validationSuccess()
          TODO: document the method
 
Methods inherited from class javax.swing.JTextField
addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, 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
 

Constructor Detail

STextField

public STextField()
Constructor for the STextField object


STextField

public STextField(int columns)
Constructor for the STextField object

Parameters:
columns - TODO: Describe the Parameter
Method Detail

isDisableOnNull

public final boolean isDisableOnNull()
Returns:
true if the textfield should be disabled when it edits a null property value. Otherwise, a null property is treated as an empty String.

getBoundModel

public final java.lang.Object getBoundModel()
Gets the bound model

Specified by:
getBoundModel in interface View
Returns:
The boundModel value

getSelector

public final Selector getSelector()
Gets the selector

Specified by:
getSelector in interface PropertyView
Returns:
The selector value

getControlID

public final java.lang.String getControlID()
Gets the control ID

Returns:
The controlID value

getViewValue

public java.lang.Object getViewValue()
                              throws java.lang.IllegalArgumentException
Get the current value (what would be set as a property of the bound model object) being presented on the View.

Specified by:
getViewValue in interface ModelBindable
Returns:
property value from parsing the textfield's current String representation.
Throws:
java.lang.IllegalArgumentException - if the conversion from String fails.

getController

public Controller getController()
Don't assign a Controller to STextField, instead delegate to the containing SwingView that has a parent Controller.

Specified by:
getController in interface View
Returns:
The controller value

issueControl

public void issueControl(Control inControl)
Don't assign a Controller to STextField, instead delegate to the containing SwingView that has a parent Controller.

Specified by:
issueControl in interface View
Parameters:
inControl - TODO: Describe the Parameter

setDisableOnNull

public final void setDisableOnNull(boolean inDisable)
Set this to true if the textfield should be disabled when it edits a null property value. Otherwise, a null property is treated as an empty String.

Parameters:
inDisable - The new disableOnNull value

setBoundModel

public final void setBoundModel(java.lang.Object inModel)
Sets the bound model

Specified by:
setBoundModel in interface View
Parameters:
inModel - The new boundModel value

setSelector

public final void setSelector(Selector inSelector)
Sets the selector

Specified by:
setSelector in interface PropertyView
Parameters:
inSelector - The new selector value

setSelectorString

public final void setSelectorString(java.lang.String inSelectorString)
Sets the selector string

Parameters:
inSelectorString - The new selectorString value

setControlID

public final void setControlID(java.lang.String inControlID)
Set the ID of the Control that will be issued when Enter key is pressed in this STextField. If null no Control will be issued.

Parameters:
inControlID - The new controlID value

setStringConvertor

public void setStringConvertor(StringConvertor inConvertor)
Force use of this StringConvertor instead of automatically finding one to match the datatype being edited.

Parameters:
inConvertor - The new stringConvertor value

setText

public void setText(java.lang.String t)
Override to call super.setText() only if new value not equals() old value.

Overrides:
setText in class javax.swing.text.JTextComponent
Parameters:
t - new text.

setController

public void setController(Controller inController)
Don't assign a Controller to this component, instead delegate to the containing SwingView that has a parent Controller.

Specified by:
setController in interface View
Parameters:
inController - The new controller value

updateFromProperty

public void updateFromProperty(java.lang.Object inValue,
                               boolean inReadOnly)
Converts the incoming value to a String via appropriate StringConvertor. For incoming null either disable field or set text to empty String.

Specified by:
updateFromProperty in interface ModelBindable
Parameters:
inValue - TODO: Describe the Parameter
inReadOnly - TODO: Describe the Parameter

validationFailed

public void validationFailed(java.lang.Exception inException)
TODO: document the method

Specified by:
validationFailed in interface ModelBindable
Parameters:
inException - TODO: Describe the Parameter

validationSuccess

public void validationSuccess()
TODO: document the method

Specified by:
validationSuccess in interface ModelBindable
See Also:
ModelBindable.validationFailed(java.lang.Exception)

createToolTip

public javax.swing.JToolTip createToolTip()
TODO: document the method

Overrides:
createToolTip in class javax.swing.JComponent
Returns:
TODO: Describe the Return Value

focusLost

public void focusLost(java.awt.event.FocusEvent inEvent)
TODO: document the method

Specified by:
focusLost in interface java.awt.event.FocusListener
Parameters:
inEvent - TODO: Describe the Parameter

focusGained

public void focusGained(java.awt.event.FocusEvent inEvent)
TODO: document the method

Specified by:
focusGained in interface java.awt.event.FocusListener
Parameters:
inEvent - TODO: Describe the Parameter

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Sync model object to View and issue a Control if ControlID set.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - TODO: Describe the Parameter

refresh

public void refresh()
TODO: document the method

Specified by:
refresh in interface Refreshable

setupStringConvertor

protected void setupStringConvertor()
TODO: document the method



Copyright © 2000-2002 The Scope Team. All Rights Reserved.