/**
 * @(#) gTextDocument.java 19.07.01
 *
 * jfem - a java finite element system
 *
 * Copyright (C) 1999-2001 HS-MD
 * jfem.support@jfem.de
 * www.jfem.de
 *
 * For License information see License.txt
 */

package org.app.gui;

import javax.swing.text.PlainDocument;
import javax.swing.text.BadLocationException;
import javax.swing.text.AttributeSet;
import org.debug.Debug;

/**
 * description:
 * Wird als Document in der Klasse gTextFieldDouble
 * verwendet protected Document createDefaultModel() { gDoubleTextDocument doc = new gDoubleTextDocument();
 * doc.addDocumentListener(this); return doc; }
 *
 * @version     1.0  19.07.01
 * @author      Thomas Schmidt, Michael Wilhelem
 * @see         #app.gui.gTextField
 * @see         #app.gui.gTextField0
 * @see         #app.gui.gTextFieldDouble
 * @see         #PlainDocument
 */

public class gTextDocument extends PlainDocument {
    static int s_offs;
    static String s_str;
    static AttributeSet s_a;
    static int s_len;
    static int Befehl = 0;

    /**
     * Constructor
     * @return none
     * @param none
     * @exception none
     * @version      1.0
     * @author Thomas Schmidt, Michael Wilhelm FH MD, FB Bauwesen
     * @use Example
     * @see  #app.gui.gTextField
     * @see  #app.gui.gTextField0
     * @see  #app.gui.gTextFieldDouble
     * @see  #PlainDocumentDescription:   Wird als Documentenklasse in der Klasse gTextField verwendet
     */
    public gTextDocument() {
    }

    /**
     * insertString
     * @return none
     * @param int offs, String str, AttributeSet a
     * @exception none
     * @version      1.0
     * @author Thomas Schmidt, Michael Wilhelm FH MD, FB Bauwesen
     * @use Example
     * @see #gIntTextDocument
     * @see #gDoubleTextDocument
     * @see #gLongTextDocument Methode des Interface PlainDocument, für das Einfügen eines String
     * Abfangen, wenn es kein gültiger String ist
     */
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
        if (str == null) {
            return;
        }
        Debug.print("GUI", Debug.INFO, "offs:" + offs);
        Debug.print("GUI", Debug.INFO, "str:" + str);
        Befehl = 1;
        s_offs = offs;
        s_str = str;
        s_a = a;
        super.insertString(offs, str, a);
    }

    /**
     * remove
     * @return none
     * @param int offs, int len
     * @exception BadLocationException
     * @version      1.0
     * @author Thomas Schmidt, Michael Wilhelm FH MD, FB Bauwesen
     * @use Example
     * @see #gIntTextDocument
     * @see #gDoubleTextDocument
     * @see #gLongTextDocument Methode des Interface PlainDocument, für das Entfernen eines Teilstrings
     * Abfangen, wenn es kein gültiger String ist
     */
    public void remove(int offs, int len) throws BadLocationException {
        if (len == 0) return;
        Befehl = 2;
        s_offs = offs;
        s_len = len;
        super.remove(offs, len);
    }
}
