
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_javax_activation_viewers_TextViewer__
#define __gnu_javax_activation_viewers_TextViewer__

#pragma interface

#include <java/awt/TextArea.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace activation
      {
        namespace viewers
        {
            class TextViewer;
        }
      }
    }
  }
  namespace java
  {
    namespace awt
    {
        class Dimension;
    }
  }
  namespace javax
  {
    namespace activation
    {
        class DataHandler;
    }
  }
}

class gnu::javax::activation::viewers::TextViewer : public ::java::awt::TextArea
{

public:
  TextViewer();
  virtual ::java::awt::Dimension * getPreferredSize();
  virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *);
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_activation_viewers_TextViewer__
