public class JotyTextField extends javax.swing.JFormattedTextField implements java.awt.event.FocusListener, java.awt.event.KeyListener, Term.TermEnclosable
At the presentation level a NumberFormatter
instance is used for the
numerical types then the built-in formatting features of the JotyDate
class are used for presenting _date
and _dateTime
types.
For editing purposes it is used a javax.swing.text.MaskFormatter object
created by the TextTerm
containing instance, by the invocation of
Application.createFormatter
method: this uses the type information
for embedding the right constraints into the MaskFormatter object.
It also instantiates a TextEditManager
as helper in decoding the
typed keys.
Further assistance for inputing text is provided by the
checkForCompletion
method and, in the case of date types, the
JotyCalendarDialog
object that opens on a double click on the text
box.
Its implementation of the java.awt.event.KeyListener and of the java.awt.event.FocusListener interfaces covers all the desired behavior in any circumstance. The content validation process happens on loosing focus and, for date types, it in mainly dispatched to the JotyDate class.
TextEditManager
,
NumberFormatter
,
JotyDate
,
Application.createFormatter(int, boolean, int)
,
JotyCalendarDialog
,
Serialized Formjavax.swing.JFormattedTextField.AbstractFormatter, javax.swing.JFormattedTextField.AbstractFormatterFactory
javax.swing.JTextField.AccessibleJTextField
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
boolean |
m_changed |
protected org.joty.app.Common |
m_common |
javax.swing.text.MaskFormatter |
m_formatter |
java.lang.Object |
m_iLenMaskDec |
protected org.joty.gui.NumberFormatter |
m_numberFormat |
TermContainerPanel |
m_panel |
boolean |
m_readOnly |
Term |
m_term |
COMMIT, COMMIT_OR_REVERT, PERSIST, REVERT
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
JotyTextField(TermContainerPanel panel,
Term term,
javax.swing.text.MaskFormatter maskFormatter) |
JotyTextField(TermContainerPanel panel,
Term term,
javax.swing.text.MaskFormatter maskFormatter,
boolean asCellEditor) |
Modifier and Type | Method and Description |
---|---|
boolean |
doValidate() |
void |
focusGained(java.awt.event.FocusEvent focusevent) |
void |
focusLost(java.awt.event.FocusEvent focusevent) |
void |
formatNumber(java.lang.String content) |
boolean |
getRelatedEnable() |
Term |
getTerm() |
protected void |
installFormatter() |
void |
keyPressed(java.awt.event.KeyEvent e) |
void |
keyReleased(java.awt.event.KeyEvent e) |
void |
keyTyped(java.awt.event.KeyEvent e) |
void |
render() |
void |
setAsViewer() |
void |
setBackground(java.awt.Color bg) |
void |
setCellEditor(javax.swing.DefaultCellEditor cellEditor) |
void |
setEditable(boolean b) |
void |
setFocusLostBehavior(int behavior) |
void |
setReadOnly(boolean truth) |
void |
setSize(int arg0,
int arg1) |
void |
setTextAndNotify(java.lang.String text) |
void |
setTextAndNotify(java.lang.String text,
boolean updateData) |
protected void |
uninstallFormatter() |
boolean |
validateContent(java.lang.String content) |
void |
warningMsg(java.lang.String theMsg) |
commitEdit, getActions, getFocusLostBehavior, getFormatter, getFormatterFactory, getUIClassID, getValue, invalidEdit, isEditValid, processFocusEvent, processInputMethodEvent, setDocument, setFormatter, setFormatterFactory, setValue
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setFont, setHorizontalAlignment, setScrollOffset
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, write
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
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, transferFocusDownCycle, validate, validateTree
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, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public TermContainerPanel m_panel
public Term m_term
public boolean m_readOnly
public java.lang.Object m_iLenMaskDec
public boolean m_changed
public javax.swing.text.MaskFormatter m_formatter
protected org.joty.gui.NumberFormatter m_numberFormat
protected org.joty.app.Common m_common
public JotyTextField(TermContainerPanel panel, Term term, javax.swing.text.MaskFormatter maskFormatter)
public JotyTextField(TermContainerPanel panel, Term term, javax.swing.text.MaskFormatter maskFormatter, boolean asCellEditor)
public boolean doValidate()
public void focusGained(java.awt.event.FocusEvent focusevent)
focusGained
in interface java.awt.event.FocusListener
public void focusLost(java.awt.event.FocusEvent focusevent)
focusLost
in interface java.awt.event.FocusListener
public void formatNumber(java.lang.String content)
public boolean getRelatedEnable()
getRelatedEnable
in interface Term.TermEnclosable
public Term getTerm()
getTerm
in interface Term.TermEnclosable
protected void installFormatter()
public void keyPressed(java.awt.event.KeyEvent e)
keyPressed
in interface java.awt.event.KeyListener
public void keyReleased(java.awt.event.KeyEvent e)
keyReleased
in interface java.awt.event.KeyListener
public void keyTyped(java.awt.event.KeyEvent e)
keyTyped
in interface java.awt.event.KeyListener
public void render()
public void setAsViewer()
public void setBackground(java.awt.Color bg)
setBackground
in class javax.swing.JComponent
public void setCellEditor(javax.swing.DefaultCellEditor cellEditor)
public void setEditable(boolean b)
setEditable
in class javax.swing.text.JTextComponent
public void setFocusLostBehavior(int behavior)
setFocusLostBehavior
in class javax.swing.JFormattedTextField
public void setReadOnly(boolean truth)
public void setSize(int arg0, int arg1)
setSize
in class java.awt.Component
public void setTextAndNotify(java.lang.String text)
public void setTextAndNotify(java.lang.String text, boolean updateData)
protected void uninstallFormatter()
public boolean validateContent(java.lang.String content)
public void warningMsg(java.lang.String theMsg)