tecgraf.javautils.gui.field
Class RegexDocument

java.lang.Object
  extended by javax.swing.text.AbstractDocument
      extended by javax.swing.text.PlainDocument
          extended by tecgraf.javautils.gui.field.RegexDocument
All Implemented Interfaces:
Serializable, Document
Direct Known Subclasses:
DateDocument, LatLongDocument

public abstract class RegexDocument
extends PlainDocument

Documento usado para manipular máscaras via expressão regular e aceitar complementos de texto.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
 
Field Summary
 
Fields inherited from class javax.swing.text.PlainDocument
lineLimitAttribute, tabSizeAttribute
 
Fields inherited from class javax.swing.text.AbstractDocument
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
 
Fields inherited from interface javax.swing.text.Document
StreamDescriptionProperty, TitleProperty
 
Constructor Summary
RegexDocument(String regex)
          Construtor
RegexDocument(String regex, CompleteText completeText)
          Construtor
 
Method Summary
protected  void fireAllListeners(Object oldValue, Object newValue, boolean valueIsAdjusting)
          Dispara os listeners
 CompleteText getCompleteText()
          Retorna o objeto de complemento de texto.
protected abstract  Object getValue()
          Obtém o valor atual
 void insertString(int offs, String str, AttributeSet a)
           
 void remove(int offs, int len)
           
 void setCompleteText(CompleteText completeText)
          Seta o objeto de complemento de texto.
 
Methods inherited from class javax.swing.text.PlainDocument
createDefaultRoot, getDefaultRootElement, getParagraphElement, insertUpdate, removeUpdate
 
Methods inherited from class javax.swing.text.AbstractDocument
addDocumentListener, addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, postRemoveUpdate, putProperty, readLock, readUnlock, removeDocumentListener, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RegexDocument

public RegexDocument(String regex)
Construtor

A expressão regular define os caracteres válidos e a sequência permitida para o campo. Essa expressão permitirá ou não que o texto digitado seja aceito. A cada entrada, o texto atual acrescentado da nova entrada será verificado na expressão regular.

Para um campo do tipo NN/N, definido por uma expressão "[0-9]{1,2}/[0-9]", esse método deverá retornar uma expressão com grupos não obrigatórios: "([0-9]{1,2})?(/)?([0-9])?", pois dessa maneira permitirá que cada caracter da sequência seja digitado separadamente ou omitindo alguns podendo ser corrigido futuramente. Uma segunda opção seria: "[0-9]{1,2}(/([0-9])?)?" o que também permite que cada caracter da sequência seja digitado separadamente porém obrigatoriamente na ordem NN -> NN/ -> NN/N

Parameters:
regex - expressão regular

RegexDocument

public RegexDocument(String regex,
                     CompleteText completeText)
Construtor

A expressão regular define os caracteres válidos e a sequência permitida para o campo. Essa expressão permitirá ou não que o texto digitado seja aceito. A cada entrada, o texto atual acrescentado da nova entrada será verificado na expressão regular.

Para um campo do tipo NN/N, definido por uma expressão "[0-9]{1,2}/[0-9]", esse método deverá retornar uma expressão com grupos não obrigatórios: "([0-9]{1,2})?(/)?([0-9])?", pois dessa maneira permitirá que cada caracter da sequência seja digitado separadamente ou omitindo alguns podendo ser corrigido futuramente. Uma segunda opção seria: "[0-9]{1,2}(/([0-9])?)?" o que também permite que cada caracter da sequência seja digitado separadamente porém obrigatoriamente na ordem NN -> NN/ -> NN/N

Parameters:
regex - expressão regular
completeText - CompleteText utilizado para completar automaticamente um texto
Method Detail

fireAllListeners

protected void fireAllListeners(Object oldValue,
                                Object newValue,
                                boolean valueIsAdjusting)
Dispara os listeners


getValue

protected abstract Object getValue()
Obtém o valor atual

Returns:
Object

remove

public void remove(int offs,
                   int len)
            throws BadLocationException
Specified by:
remove in interface Document
Overrides:
remove in class AbstractDocument
Throws:
BadLocationException

insertString

public void insertString(int offs,
                         String str,
                         AttributeSet a)
                  throws BadLocationException
Specified by:
insertString in interface Document
Overrides:
insertString in class PlainDocument
Throws:
BadLocationException

getCompleteText

public CompleteText getCompleteText()
Retorna o objeto de complemento de texto.

Returns:
CompleteText

setCompleteText

public void setCompleteText(CompleteText completeText)
Seta o objeto de complemento de texto.

Parameters:
completeText -


Copyright © 2014 Tecgraf/PUC-Rio. All rights reserved.