Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.scopemvc.view.swing
Class STextArea  view STextArea download STextArea.java

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.text.JTextComponent
                  extended byjavax.swing.JTextArea
                      extended byorg.scopemvc.view.swing.STextArea
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, org.scopemvc.view.util.ModelBindable, org.scopemvc.core.PropertyView, Refreshable, javax.swing.Scrollable, java.io.Serializable, org.scopemvc.core.View

public class STextArea
extends javax.swing.JTextArea
implements org.scopemvc.core.PropertyView, java.awt.event.FocusListener, org.scopemvc.view.util.ModelBindable, Refreshable

A JTextArea 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 textarea. Updates to the textarea result in changes to the model property when focus is lost.

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

Null properties are handled in one of two ways:

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

Version:
$Revision: 1.8 $ $Date: 2002/05/26 10:30:54 $

Nested Class Summary
 
Nested classes inherited from class javax.swing.JTextArea
javax.swing.JTextArea.AccessibleJTextArea
 
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
private  SwingBoundModel boundModel
          Helper to manage model to view binding.
private  boolean disableOnNull
          Does this textarea disable itself if the model property it is bound to becomes null?
private static org.apache.commons.logging.Log LOG
           
private  org.scopemvc.util.convertor.StringConvertor stringConvertor
          The StringConvertor used to convert the model property to and from the String representation that the user edits in the textarea.
private  ValidationHelper validationHelper
          Helper to manage validation state.
private  boolean valueIsNull
          STextArea can "hold" a null when bound to a property that happens to be null.
 
Fields inherited from class javax.swing.JTextArea
 
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.Container
 
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
STextArea()
           
STextArea(int rows, int columns)
           
 
Method Summary
 javax.swing.JToolTip createToolTip()
          Return the toolTip property of this component, creating it and setting it if it is currently null.
 void focusGained(java.awt.event.FocusEvent inEvent)
          This method is called when a component gains the keyboard focus.
 void focusLost(java.awt.event.FocusEvent inEvent)
          This method is invoked when a component loses the keyboard focus.
 java.lang.Object getBoundModel()
           
 org.scopemvc.core.Controller getController()
          Don't assign a Controller to STextArea.
 org.scopemvc.core.Selector getSelector()
           
 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(org.scopemvc.core.Control inControl)
          STextArea can't issue Controls.
 void refresh()
          Update the widget with the current state of the bound model.
 void setBoundModel(java.lang.Object inModel)
           
 void setController(org.scopemvc.core.Controller inController)
          Don't assign a Controller to STextArea.
 void setDisableOnNull(boolean inDisable)
          Set this to true if the textarea should be disabled when it edits a null String.
 void setSelector(org.scopemvc.core.Selector inSelector)
           
 void setSelectorString(java.lang.String inSelectorString)
           
 void setText(java.lang.String t)
          Override to call super.setText() only if new value not equals() old value.
protected  void setupStringConvertor()
           
 void updateFromProperty(java.lang.Object inValue, boolean inReadOnly)
          Converts the incoming value to a String via appropriate org.scopemvc.util.convertor.StringConvertor.
 void validationFailed(java.lang.Exception inException)
          Validation failed while getting a value from View into the bound model object.
 void validationSuccess()
          Clear previous validation failure.
 
Methods inherited from class javax.swing.JTextArea
append, createDefaultModel, getAccessibleContext, getColumns, getColumnWidth, getLineCount, getLineEndOffset, getLineOfOffset, getLineStartOffset, getLineWrap, getPreferredScrollableViewportSize, getPreferredSize, getRowHeight, getRows, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getTabSize, getUIClassID, getWrapStyleWord, insert, replaceRange, setColumns, setLineWrap, setRows, setTabSize, setWrapStyleWord
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getFocusAccelerator, getHighlighter, getInputMethodListeners, getKeymap, getKeymap, getMargin, getNavigationFilter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paramString, paste, read, removeCaretListener, removeInputMethodListener, removeKeymap, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDocument, 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, addVetoableChangeListener, computeVisibleRect, contains, disable, enable, 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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, 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, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, 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, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOG

private static final org.apache.commons.logging.Log LOG

boundModel

private SwingBoundModel boundModel
Helper to manage model to view binding.


validationHelper

private ValidationHelper validationHelper
Helper to manage validation state.


valueIsNull

private boolean valueIsNull
STextArea can "hold" a null when bound to a property that happens to be null.


disableOnNull

private boolean disableOnNull
Does this textarea disable itself if the model property it is bound to becomes null?


stringConvertor

private org.scopemvc.util.convertor.StringConvertor stringConvertor
The StringConvertor used to convert the model property to and from the String representation that the user edits in the textarea.

Constructor Detail

STextArea

public STextArea()

STextArea

public STextArea(int rows,
                 int columns)
Method Detail

setDisableOnNull

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


isDisableOnNull

public final boolean isDisableOnNull()

getBoundModel

public final java.lang.Object getBoundModel()
Specified by:
getBoundModel in interface org.scopemvc.core.View

setBoundModel

public final void setBoundModel(java.lang.Object inModel)
Specified by:
setBoundModel in interface org.scopemvc.core.View

getSelector

public final org.scopemvc.core.Selector getSelector()
Specified by:
getSelector in interface org.scopemvc.core.PropertyView

setSelector

public final void setSelector(org.scopemvc.core.Selector inSelector)
Specified by:
setSelector in interface org.scopemvc.core.PropertyView

setSelectorString

public final void setSelectorString(java.lang.String inSelectorString)

setupStringConvertor

protected void setupStringConvertor()

updateFromProperty

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

Specified by:
updateFromProperty in interface org.scopemvc.view.util.ModelBindable

setText

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


getViewValue

public java.lang.Object getViewValue()
                              throws java.lang.IllegalArgumentException
Description copied from interface: org.scopemvc.view.util.ModelBindable
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 org.scopemvc.view.util.ModelBindable

validationFailed

public void validationFailed(java.lang.Exception inException)
Description copied from interface: org.scopemvc.view.util.ModelBindable
Validation failed while getting a value from View into the bound model object. Use this to indicate to the user that the value being edited is invalid.

Specified by:
validationFailed in interface org.scopemvc.view.util.ModelBindable

validationSuccess

public void validationSuccess()
Description copied from interface: org.scopemvc.view.util.ModelBindable
Clear previous validation failure.

Specified by:
validationSuccess in interface org.scopemvc.view.util.ModelBindable

createToolTip

public javax.swing.JToolTip createToolTip()
Description copied from class: javax.swing.JComponent
Return the toolTip property of this component, creating it and setting it if it is currently null. This method can be overridden in subclasses which wish to control the exact form of tooltip created.


focusLost

public void focusLost(java.awt.event.FocusEvent inEvent)
Description copied from interface: java.awt.event.FocusListener
This method is invoked when a component loses the keyboard focus.

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

focusGained

public void focusGained(java.awt.event.FocusEvent inEvent)
Description copied from interface: java.awt.event.FocusListener
This method is called when a component gains the keyboard focus.

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

setController

public void setController(org.scopemvc.core.Controller inController)
Don't assign a Controller to STextArea.

Specified by:
setController in interface org.scopemvc.core.View

getController

public org.scopemvc.core.Controller getController()
Don't assign a Controller to STextArea.

Specified by:
getController in interface org.scopemvc.core.View

issueControl

public void issueControl(org.scopemvc.core.Control inControl)
STextArea can't issue Controls.

Specified by:
issueControl in interface org.scopemvc.core.View

refresh

public void refresh()
Description copied from interface: Refreshable
Update the widget with the current state of the bound model. Probably something like this:
     Object propertyValue = boundModel.getPropertyValue();
     boolean propertyReadOnly = boundModel.getPropertyReadOnly();
     updateFromProperty(propertyValue, propertyReadOnly);
 

Specified by:
refresh in interface Refreshable