Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

TFixedSizeDocumentFilter.java

00001 /*
00002 *  Name:      TFixedSizeDocumentFilter.java
00003 *  Author:    Rafael Jesus Alcantara Perez
00004 *  Summary:   Filter for fixed size documents
00005 *  Date:      $Date: 2003/09/09 23:24:56 $
00006 *  Revision:  $Revision: 1.2 $
00007 *
00008 *  Copyright (C) 2003  Rafael Jesus Alcantara Perez <rafa@dedalo-ing.com>
00009 *
00010 *  This program is free software; you can redistribute it and/or modify
00011 *  it under the terms of the GNU General Public License as published by
00012 *  the Free Software Foundation; either version 2 of the License, or
00013 *  (at your option) any later version.
00014 *
00015 *  This program is distributed in the hope that it will be useful,
00016 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 *  GNU General Public License for more details.
00019 *
00020 *  You should have received a copy of the GNU General Public License
00021 *  along with this program; if not, write to the Free Software
00022 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00023 *  MA 02111-1307, USA.
00024 */
00025 
00027 package org.mpcl.nui;
00028 
00029 import javax.swing.text.AttributeSet;
00030 import javax.swing.text.BadLocationException;
00031 import javax.swing.text.DocumentFilter;
00032 
00033 
00035 public class TFixedSizeDocumentFilter extends DocumentFilter
00036 {
00037 
00039   private int   iMaxSize;
00040 
00041 
00042   //
00043   //  C O N S T R U C T O R S
00044   //
00045 
00050   public TFixedSizeDocumentFilter (int iMAX_SIZE)
00051   {
00052     iMaxSize = iMAX_SIZE;
00053   }
00054 
00073   public void insertString ( DocumentFilter.FilterBypass tFILTER_BYPASS ,
00074                              int                         iOFFSET        ,
00075                              String                      yTEXT          ,
00076                              AttributeSet                tATTRIBUTE_SET )
00077     throws BadLocationException
00078   {
00079     replace (tFILTER_BYPASS, iOFFSET, 0, yTEXT, tATTRIBUTE_SET);
00080   }
00081     
00102   public void replace ( DocumentFilter.FilterBypass tFILTER_BYPASS ,
00103                         int                         iOFFSET        ,
00104                         int                         iLENGTH        ,
00105                         String                      yTEXT          ,
00106                         AttributeSet                tATTRIBUTE_SET )
00107     throws BadLocationException
00108   {
00109     int   iNewLength;
00110 
00111     iNewLength = tFILTER_BYPASS.getDocument().getLength() - iLENGTH + yTEXT.length();
00112     if ( iNewLength <= iMaxSize)
00113     {
00114       tFILTER_BYPASS.replace (iOFFSET, iLENGTH, yTEXT, tATTRIBUTE_SET);
00115     }
00116     else
00117     {
00118       throw new BadLocationException ("new characters exceeds max size of document", iOFFSET);
00119     }
00120   }
00121 
00122 }  // class TFixedSizeDocumentFilter

Generated on Mon Oct 13 02:35:24 2003 for MPCL by doxygen1.2.18