de.jsystems.framework.swing
Class DateDocument

java.lang.Object
  extended byjavax.swing.text.AbstractDocument
      extended byjavax.swing.text.PlainDocument
          extended byde.jsystems.framework.swing.DateDocument
All Implemented Interfaces:
Document, Serializable

class DateDocument
extends PlainDocument

Document fuer ein Textfeld fuer Datumseingaben. Hierbei wird als Wert nur ein gueltiges Datum zugelassen. Dabei gilt als Formatmaske 'dd.mm.yyyy', wobei diese Maske auch im Eingabefeld genauso vorbelegt wird. Ueberschrieben werden muessen alle Zeichen der Eingabemaske, da ansonsten kein korrektes Datum ausgelesen werden kann. Die Gueltigkeit des Datums wird schon bei der Eingabe geprueft. Ein Datum wie der 30.02 oder der 31.04 sind nicht moeglich. Schaltjahre werden beruecksichtigt.

Version:
1.0
Copyright by Jens Homm 2000 - 2004
Author:
Jens Homm JSYSTEMS

Nested Class Summary
 
Nested classes inherited from class javax.swing.text.AbstractDocument
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
 
Field Summary
static String formatString
          Die Formatmaske fuer die Datumseingabe.
 
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
DateDocument(DateField textfield)
          Erzeugt ein neues Document fuer die uebergebene Textkomponente.
 
Method Summary
 void insertString(int offset, String s, AttributeSet attributeSet)
          Ueberprueft die Eingabe auf Gueltigkeit fuer die entsprechende Stelle im Datum(Tag/Monat/Jahr).
 void remove(int offset, int length)
          Loescht die Eingabe im Document an der uebergebenen Stelle in der uebergebenen Laenge.
 
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
 

Field Detail

formatString

public static String formatString
Die Formatmaske fuer die Datumseingabe.

Constructor Detail

DateDocument

public DateDocument(DateField textfield)
Erzeugt ein neues Document fuer die uebergebene Textkomponente. Die Textkomponente muss hier uebergeben werden, damit eventuell gesetzte Formatierungsangaben wie zum Beispiel Tausendertrennzeichen nicht mit der Eingabe in der Oberflaeche ueberschrieben werden koennen.

Parameters:
textfield - Die Textkomponente deren Eingaben hier ueberwacht werden.
Method Detail

insertString

public void insertString(int offset,
                         String s,
                         AttributeSet attributeSet)
                  throws BadLocationException
Ueberprueft die Eingabe auf Gueltigkeit fuer die entsprechende Stelle im Datum(Tag/Monat/Jahr). Buchstaben und Sonderzeichne werden als Eingabe nicht akzeptiert. Ungültige Datuemer wie zum Beispiel der 30.02 oder der 31.04 werden nciht akzeptiert. Bei allen falschen Eingaben ertoent ein Signal, das auf die fehlerhafte Eingabe aufmerksam macht.

Parameters:
offset - Der Index im angezeigten String an der das neu eingegebene Zeichen eigefuegt werden soll.
s - Das einzufuegende Zeichen.
attributeSet - Attribute die fuer das eingegebene Zeichen beruecksichtigt werden sollen.
Throws:
BadLocationException - wenn ein ungueltiger Index uebergeben wird.

remove

public void remove(int offset,
                   int length)
            throws BadLocationException
Loescht die Eingabe im Document an der uebergebenen Stelle in der uebergebenen Laenge.

Parameters:
offset - Die Startposition zum loeschen.
length - Die Anzahl zu loeschender Zeichen.
Throws:
BadLocationException