Subversion Repositories javautils

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
  3.  *
  4.  * Redistribution and use in source and binary forms, with or without
  5.  * modification, are permitted provided that the following conditions
  6.  * are met:
  7.  *
  8.  *   - Redistributions of source code must retain the above copyright
  9.  *     notice, this list of conditions and the following disclaimer.
  10.  *
  11.  *   - Redistributions in binary form must reproduce the above copyright
  12.  *     notice, this list of conditions and the following disclaimer in the
  13.  *     documentation and/or other materials provided with the distribution.
  14.  *
  15.  *   - Neither the name of Sun Microsystems nor the names of its
  16.  *     contributors may be used to endorse or promote products derived
  17.  *     from this software without specific prior written permission.
  18.  *
  19.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  20.  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  21.  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  22.  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  23.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  24.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  25.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  26.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  27.  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  28.  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  29.  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  30.  */
  31.  
  32. import java.awt.*;
  33. import java.io.*;
  34. import java.beans.*;
  35. import javax.activation.*;
  36. import javax.swing.JPanel;
  37. import javax.swing.JTextArea;
  38. import javax.swing.JScrollPane;
  39.  
  40.  
  41. /**
  42.  * A very simple TextViewer Bean for the MIMEType "text/plain"
  43.  *
  44.  * @author      Christopher Cotton
  45.  */
  46.  
  47. public class TextViewer extends JPanel implements CommandObject
  48. {
  49.  
  50.     private JTextArea text_area = null;
  51.     private DataHandler dh = null;
  52.     private String      verb = null;
  53.  
  54.     /**
  55.      * Constructor
  56.      */
  57.     public TextViewer() {
  58.         super(new GridLayout(1,1));
  59.  
  60.         // create the text area
  61.         text_area = new JTextArea();
  62.         text_area.setEditable(false);
  63.         text_area.setLineWrap(true);
  64.  
  65.         // create a scroll pane for the JTextArea
  66.         JScrollPane sp = new JScrollPane();
  67.         sp.setPreferredSize(new Dimension(300, 300));
  68.         sp.getViewport().add(text_area);
  69.        
  70.         add(sp);
  71.     }
  72.  
  73.  
  74.     public void setCommandContext(String verb, DataHandler dh)
  75.         throws IOException {
  76.  
  77.         this.verb = verb;
  78.         this.dh = dh;
  79.        
  80.         this.setInputStream( dh.getInputStream() );
  81.     }
  82.  
  83.  
  84.   /**
  85.    * set the data stream, component to assume it is ready to
  86.    * be read.
  87.    */
  88.   public void setInputStream(InputStream ins) {
  89.      
  90.       int bytes_read = 0;
  91.       // check that we can actually read
  92.       ByteArrayOutputStream baos = new ByteArrayOutputStream();
  93.       byte data[] = new byte[1024];
  94.      
  95.       try {
  96.           while((bytes_read = ins.read(data)) >0)
  97.                   baos.write(data, 0, bytes_read);
  98.           ins.close();
  99.       } catch(Exception e) {
  100.           e.printStackTrace();
  101.       }
  102.  
  103.       // convert the buffer into a string
  104.       // place in the text area
  105.       text_area.setText(baos.toString());
  106.  
  107.     }
  108. }
  109.