home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / jfc.bin / RTFEditorKit.java < prev    next >
Text File  |  1998-02-26  |  5KB  |  149 lines

  1. /*
  2.  * @(#)RTFEditorKit.java    1.2 97/12/14
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20. package com.sun.java.swing.text.rtf;
  21.  
  22. import java.awt.*;
  23. import java.io.*;
  24. import java.net.MalformedURLException;
  25. import java.net.URL;
  26. import com.sun.java.swing.Action;
  27. import com.sun.java.swing.text.*;
  28. import com.sun.java.swing.*;
  29.  
  30. /**
  31.  * This is the default implementation of rtf editing
  32.  * functionality.
  33.  *
  34.  * @author  Timothy Prinzing
  35.  * @version 1.2 12/14/97
  36.  */
  37. public class RTFEditorKit extends StyledEditorKit {
  38.    
  39.     /**
  40.      * Constructs an RTFEditorKit.
  41.      */
  42.     public RTFEditorKit() {
  43.     super();
  44.     }
  45.  
  46.     /**
  47.      * Create a copy of the editor kit.  This
  48.      * allows an implementation to serve as a prototype
  49.      * for others, so that they can be quickly created.
  50.      */
  51.     public Object clone() {
  52.     return new RTFEditorKit();
  53.     }
  54.  
  55.     /**
  56.      * Get the MIME type of the data that this
  57.      * kit represents support for.  This kit supports
  58.      * the type <code>text/rtf</code>.
  59.      */
  60.     public String getContentType() {
  61.     return "text/rtf";
  62.     }
  63.  
  64.     /**
  65.      * Insert content from the given stream which is expected 
  66.      * to be in a format appropriate for this kind of content
  67.      * handler.
  68.      * 
  69.      * @param in  The stream to read from
  70.      * @param doc The destination for the insertion.
  71.      * @param pos The location in the document to place the
  72.      *   content.
  73.      * @exception IOException on any I/O error
  74.      * @exception BadLocationException if pos represents an invalid
  75.      *   location within the document.
  76.      */
  77.     public void read(InputStream in, Document doc, int pos) throws IOException, BadLocationException {
  78.  
  79.     if (doc instanceof StyledDocument) {
  80.         // PENDING(prinz) this needs to be fixed to
  81.         // insert to the given position.
  82.         RTFReader rdr = new RTFReader((StyledDocument) doc);
  83.         rdr.readFromStream(in);
  84.         rdr.close();
  85.     } else {
  86.         throw new IOException("Document must be StyledDocument");
  87.     }
  88.     }
  89.  
  90.     /**
  91.      * Write content from a document to the given stream
  92.      * in a format appropriate for this kind of content handler.
  93.      * 
  94.      * @param out  The stream to write to
  95.      * @param doc The source for the write.
  96.      * @param pos The location in the document to fetch the
  97.      *   content.
  98.      * @param len The amount to write out.
  99.      * @exception IOException on any I/O error
  100.      * @exception BadLocationException if pos represents an invalid
  101.      *   location within the document.
  102.      */
  103.     public void write(OutputStream out, Document doc, int pos, int len) 
  104.     throws IOException, BadLocationException {
  105.  
  106.         // PENDING(prinz) this needs to be fixed to
  107.         // use the given document range.
  108.         RTFGenerator.writeDocument(doc, out);
  109.     }
  110.  
  111.     /**
  112.      * Insert content from the given stream, which will be 
  113.      * treated as plain text.
  114.      * 
  115.      * @param in  The stream to read from
  116.      * @param doc The destination for the insertion.
  117.      * @param pos The location in the document to place the
  118.      *   content.
  119.      * @exception IOException on any I/O error
  120.      * @exception BadLocationException if pos represents an invalid
  121.      *   location within the document.
  122.      */
  123.     public void read(Reader in, Document doc, int pos) 
  124.     throws IOException, BadLocationException {
  125.  
  126.     throw new IOException("RTF is an 8-bit format");
  127.     }
  128.  
  129.     /**
  130.      * Write content from a document to the given stream
  131.      * as plain text.
  132.      * 
  133.      * @param out  The stream to write to
  134.      * @param doc The source for the write.
  135.      * @param pos The location in the document to fetch the
  136.      *   content.
  137.      * @param len The amount to write out.
  138.      * @exception IOException on any I/O error
  139.      * @exception BadLocationException if pos represents an invalid
  140.      *   location within the document.
  141.      */
  142.     public void write(Writer out, Document doc, int pos, int len) 
  143.     throws IOException, BadLocationException {
  144.  
  145.     throw new IOException("RTF is an 8-bit format");
  146.     }
  147.  
  148. }
  149.