home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / TextEditFrame.java < prev    next >
Text File  |  1997-07-12  |  21KB  |  671 lines

  1. package borland.samples.tutorial.textedit;
  2.  
  3. import java.io.*;
  4. import java.awt.*;
  5. import java.awt.event.*;
  6. import borland.jbcl.control.*;
  7. import borland.jbcl.layout.*;
  8.  
  9. public class TextEditFrame extends DecoratedFrame {
  10.   BorderLayout borderLayout1 = new BorderLayout();
  11.   BevelPanel bevelPanel1 = new BevelPanel();
  12.   MenuBar menuBar1 = new MenuBar();
  13.   Menu menuFile = new Menu();
  14.   MenuItem menuFileExit = new MenuItem();
  15.   Menu menuHelp = new Menu();
  16.   MenuItem menuHelpAbout = new MenuItem();
  17.   ButtonBar buttonBar = new ButtonBar();
  18.   StatusBar statusBar = new StatusBar();
  19.   BorderLayout borderLayout2 = new BorderLayout();
  20.   TextArea textArea1 = new TextArea();
  21.   MenuItem menuItem1 = new MenuItem();
  22.   MenuItem menuItem2 = new MenuItem();
  23.   MenuItem menuItem3 = new MenuItem();
  24.   MenuItem menuItem4 = new MenuItem();
  25.   Menu menu1 = new Menu();
  26.   MenuItem menuItem5 = new MenuItem();
  27.   MenuItem menuItem6 = new MenuItem();
  28.   MenuItem menuItem7 = new MenuItem();
  29.   FontChooser fontChooser1 = new FontChooser();
  30.   ColorChooser colorChooser1 = new ColorChooser();
  31.   Filer filer1 = new Filer();
  32.   String currFileName = null;  // path plus filename. null means new / untitled
  33.   boolean dirty = false;  // true means modified text
  34.   Message message1 = new Message();
  35.  
  36.   //Construct the frame
  37.   public TextEditFrame() {
  38.     try {
  39.       jbInit();
  40.       updateCaption();
  41.     }
  42.     catch (Exception e) {
  43.       e.printStackTrace();
  44.     }
  45.   }
  46.  
  47.   //Component initialization
  48.   public void jbInit() throws Exception{
  49.     this.setLayout(borderLayout1);
  50.     this.setSize(new Dimension(400, 300));
  51.     this.setTitle("TextEdit");
  52.     menuFile.setLabel("File");
  53.     menuFileExit.setLabel("Exit");
  54.     menuFileExit.addActionListener(new TextEditFrame_menuFileExit_ActionAdapter(this));
  55.     menuHelp.setLabel("Help");
  56.     menuHelpAbout.setLabel("About");
  57.     menuHelpAbout.addActionListener(new TextEditFrame_menuHelpAbout_ActionAdapter(this));
  58.     buttonBar.setButtonType(ButtonBar.IMAGE_ONLY);
  59.     buttonBar.setLabels(new String[] {"Open", "Save", "About"});
  60.     textArea1.addTextListener(new TextEditFrame_textArea1_textAdapter(this));
  61.     buttonBar.addActionListener(new TextEditFrame_buttonBar_actionAdapter(this));
  62.     menuItem1.setLabel("New");
  63.     menuItem1.addActionListener(new TextEditFrame_menuItem1_actionAdapter(this));
  64.     menuItem2.setLabel("Open");
  65.     menuItem2.addActionListener(new TextEditFrame_menuItem2_actionAdapter(this));
  66.     menuItem3.setLabel("Save");
  67.     menuItem3.addActionListener(new TextEditFrame_menuItem3_actionAdapter(this));
  68.     menuItem4.setLabel("Save As");
  69.     menuItem4.addActionListener(new TextEditFrame_menuItem4_actionAdapter(this));
  70.     menu1.setLabel("Edit");
  71.     menuItem5.setLabel("Font");
  72.     menuItem5.addActionListener(new TextEditFrame_menuItem5_actionAdapter(this));
  73.     menuItem6.setLabel("Foreground Color");
  74.     menuItem6.addActionListener(new TextEditFrame_menuItem6_actionAdapter(this));
  75.     menuItem7.setLabel("Background Color");
  76.     menuItem7.addActionListener(new TextEditFrame_menuItem7_actionAdapter(this));
  77.     fontChooser1.setFrame(this);
  78.     fontChooser1.setTitle("Font");
  79.     colorChooser1.setFrame(this);
  80.     filer1.setFrame(this);
  81.     message1.setFrame(this);
  82.     buttonBar.setImageBase("image");
  83.     buttonBar.setImageNames(new String[] {"openFile.gif", "closeFile.gif", "help.gif"});
  84.     bevelPanel1.setLayout(borderLayout2);
  85.     menuFile.add(menuItem1);
  86.     menuFile.add(menuItem2);
  87.     menuFile.add(menuItem3);
  88.     menuFile.add(menuItem4);
  89.     menuFile.addSeparator();
  90.     menuFile.add(menuFileExit);
  91.     menuHelp.add(menuHelpAbout);
  92.     menuBar1.add(menuFile);
  93.     menuBar1.add(menu1);
  94.     menuBar1.add(menuHelp);
  95.     this.setMenuBar(menuBar1);
  96.     this.add(buttonBar, BorderLayout.NORTH);
  97.     this.add(statusBar, BorderLayout.SOUTH);
  98.     this.add(bevelPanel1, BorderLayout.CENTER);
  99.     bevelPanel1.add(textArea1, BorderLayout.CENTER);
  100.     menu1.add(menuItem5);
  101.     menu1.add(menuItem6);
  102.     menu1.add(menuItem7);
  103.   }
  104.  
  105.   /**
  106.    * Display the About box.
  107.    */
  108.   void helpAbout() {
  109.     TextEditFrame_AboutBox dlg = new TextEditFrame_AboutBox(this);
  110.     Dimension dlgSize = dlg.getPreferredSize();
  111.     Dimension frmSize = getSize();
  112.     Point loc = getLocation();
  113.     dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
  114.     dlg.setModal(true);
  115.     dlg.show();
  116.   }
  117.  
  118.   /**
  119.    * Handle the File|Open menu or button, invoking okToAbandon and openFile
  120.    * as needed.
  121.    */
  122.   void fileOpen() {
  123.     if (!okToAbandon()) {
  124.       return;
  125.     }
  126.  
  127.     // Filer makes use of a java.awt.FileDialog, and so its
  128.     // mode property uses the same values as those of FileDialog.
  129.     filer1.setMode(FileDialog.LOAD); // Use the OPEN version of the dialog.
  130.  
  131.     // Make the dialog visible as a modal (default) dialog box.
  132.     filer1.show();
  133.  
  134.     // Upon return, getFile() will be null if user cancelled the dialog.
  135.     if (filer1.getFile() != null) {
  136.       // Non-null file property after return implies user
  137.       // selected a file to open.
  138.  
  139.       // Call openFile to attempt to load the text from file into TextArea
  140.       openFile(filer1.getDirectory()+filer1.getFile());
  141.     }
  142.   }
  143.  
  144.   /**
  145.    * Open named file; read text from file into textArea1; report to statusBar.
  146.    * @param fileName the name of the text file on disk
  147.    */
  148.   void openFile(String fileName)
  149.   {
  150.     try
  151.     {
  152.       // Open a file of the given name.
  153.       File file = new File(fileName);
  154.  
  155.       // Get the size of the opened file.
  156.       int size = (int)file.length();
  157.  
  158.       // Set to zero a counter for counting the number of
  159.       // characters that have been read from the file.
  160.       int chars_read = 0;
  161.  
  162.       // Create an input reader based on the file, so we can read its data.
  163.       // FileReader handles international character encoding conversions.
  164.       FileReader in = new FileReader(file);
  165.  
  166.       // Create a character array of the size of the file,
  167.       // to use as a data buffer, into which we will read
  168.       // the text data.
  169.       char[] data = new char[size];
  170.  
  171.       // Read all available characters into the buffer.
  172.       while(in.ready()) {
  173.         // Increment the count for each character read,
  174.         // and accumulate them in the data buffer.
  175.         chars_read += in.read(data, chars_read, size - chars_read);
  176.       }
  177.       in.close();
  178.  
  179.       // Create a temporary string containing the data,
  180.       // and set the string into the TextArea.
  181.       textArea1.setText(new String(data, 0, chars_read));
  182.  
  183.       // Cache the currently opened filename for use at save time...
  184.       this.currFileName = fileName;
  185.       // ...and mark the edit session as being clean
  186.       this.dirty = false;
  187.  
  188.       // Display the name of the opened directory+file in the statusBar.
  189.       statusBar.setText("Opened "+fileName);
  190.  
  191.       updateCaption();
  192.     }
  193.     catch (IOException e)
  194.     {
  195.       statusBar.setText("Error opening "+fileName);
  196.     }
  197.   }
  198.  
  199.   /**
  200.    * Save current file; handle not yet having a filename; report to statusBar.
  201.    * @return false if save did not occur.
  202.    */
  203.   boolean saveFile()
  204.   {
  205.  
  206.     // Handle the case where we don't have a file name yet.
  207.     if (currFileName == null) {
  208.       return saveAsFile();
  209.     }
  210.  
  211.     try
  212.     {
  213.       // Open a file of the current name.
  214.       File file = new File (currFileName);
  215.  
  216.       // Create an output writer that will write to that file.
  217.       // FileWriter handles international characters encoding conversions.
  218.       FileWriter out = new FileWriter(file);
  219.       String text = textArea1.getText();
  220.       out.write(text);
  221.       out.close();
  222.       this.dirty = false;
  223.       updateCaption();
  224.       return true;
  225.     }
  226.     catch (IOException e) {
  227.       statusBar.setText("Error saving "+currFileName);
  228.     }
  229.     return false;
  230.   }
  231.  
  232.   /**
  233.    * Save current file, asking user for new destination name.
  234.    * Report to statuBar.
  235.    * @return false means user cancelled the SaveAs
  236.    */
  237.   boolean saveAsFile() {
  238.     // Filer makes use of a java.awt.FileDialog, so its
  239.     // mode property uses the same values as those of FileDialog.
  240.     filer1.setMode(FileDialog.SAVE); // Use the SAVE version of the dialog.
  241.  
  242.     // Make the dialog visible as a modal (default) dialog box.
  243.     filer1.show();
  244.  
  245.     // Upon return, getFile() will be null if user cancelled the dialog.
  246.     if (filer1.getFile() != null) {
  247.       // Non-null file property after return implies user
  248.       // selected a filename to save to.
  249.  
  250.       // Set the current file name to the user's selection,
  251.       // then do a regular saveFile
  252.       currFileName = filer1.getDirectory()+filer1.getFile();
  253.       return saveFile();
  254.     }
  255.     else {
  256.       return false;
  257.     }
  258.   }
  259.  
  260.   /**
  261.    * Check if file is dirty.
  262.    * If so get user to make a "Save? yes/no/cancel" decision.
  263.    * @return true if user saved here (Yes), or didn't care (No)
  264.    * @return false if user hits cancel.
  265.    */
  266.   boolean okToAbandon() {
  267.     if (!dirty) {
  268.       return true;
  269.     }
  270.     message1.setButtonSet(Message.YES_NO_CANCEL);
  271.     message1.setTitle("Text Edit");
  272.     message1.setMessage("Save changes?");
  273.     message1.show();
  274.     switch (message1.getResult()) {
  275.        case Message.YES:
  276.          // yes, please save changes
  277.          return saveFile();
  278.        case Message.NO:
  279.          // no, abandon edits
  280.          // i.e. return true without saving
  281.          return true;
  282.        case Message.CANCEL:
  283.        default:
  284.          // cancel
  285.          return false;
  286.     }
  287.   }
  288.  
  289.   /**
  290.    * Update the caption of the application to show the filename and its dirty state.
  291.    */
  292.   void updateCaption() {
  293.     String caption;
  294.  
  295.     if (currFileName == null) {
  296.        // synthesize the "Untitled" name if no name yet.
  297.        caption = "Untitled";
  298.     }
  299.     else {
  300.       caption = currFileName;
  301.     }
  302.  
  303.     // add a "*" in the caption if the file is dirty.
  304.     if (dirty) {
  305.       caption = "* " + caption;
  306.     }
  307.     caption = "TextEdit - " + caption;
  308.     this.setTitle(caption);
  309.   }
  310.  
  311.   /**
  312.    * Override DecoratedFrame's system close handler
  313.    */
  314.   protected void processWindowEvent(WindowEvent e) {
  315.     if (e.getID() == WindowEvent.WINDOW_CLOSING) {
  316.       if (okToAbandon()) {
  317.         System.exit(0);
  318.       }
  319.     }
  320.   }
  321.  
  322.   //File | Exit action performed
  323.   public void fileExit_actionPerformed(ActionEvent e) {
  324.     if (okToAbandon()) {
  325.       System.exit(0);
  326.     }
  327.   }
  328.  
  329.   //Help | About action performed
  330.   public void helpAbout_actionPerformed(ActionEvent e) {
  331.     helpAbout();
  332.   }
  333.  
  334.   void menuItem5_actionPerformed(java.awt.event.ActionEvent e) {
  335.     // Handle the "Edit Font" menu item
  336.  
  337.     // Pick up the existing font from the TextArea
  338.     // and put it into the FontChooser before showing
  339.     // the FontChooser, so that we are editing the
  340.     // existing / previous font.
  341.     fontChooser1.setValue(textArea1.getFont());
  342.  
  343.     // Show the FontChooser.
  344.     // Since the FontChooser is modal by default,
  345.     // the program will not return from the call
  346.     // to show until the user dismisses the FontChooser
  347.     // using OK or Cancel.
  348.     fontChooser1.show();
  349.  
  350.     // Now that the user has dismissed the FontChooser,
  351.     // obtain the new Font from the FontChooser's
  352.     // value property.  First test the result property to see if the
  353.     // user pressed OK.
  354.     if (fontChooser1.getResult() == FontChooser.OK) {
  355.  
  356.       // Set the font of textArea1 to the font
  357.       // value that can be obtained from the
  358.       // value property of fontChooser1.  This
  359.       // font value is what the user entered
  360.       // before pressing the OK button
  361.       textArea1.setFont(fontChooser1.getValue());
  362.     }
  363.   }
  364.  
  365.   void menuItem6_actionPerformed(ActionEvent e) {
  366.     // Handle the "Foreground Color" menu item
  367.  
  368.     // Pick up the existing text (foreground) color from the TextArea
  369.     // and put it into the ColorChooser before showing
  370.     // the ColorChooser, so that we are editing the
  371.     // existing text color.
  372.     colorChooser1.setValue(textArea1.getForeground());
  373.  
  374.     // Before showing it, set the title of the dialog for its
  375.     // particular use in this event (for setting the text color)
  376.     colorChooser1.setTitle("Set Text Color");
  377.     
  378.     // Show the ColorChooser.
  379.     // Since the ColorChooser is modal by default,
  380.     // the program will not return from the call
  381.     // to show until the user dismisses the ColorChooser
  382.     // using OK or Cancel.
  383.     colorChooser1.show();
  384.     
  385.  
  386.     // Now that the user has dismissed the ColorChooser,
  387.     // obtain the new color from the ColorChooser's
  388.     // value property. First test the result property to see if the
  389.     // user pressed OK.
  390.     if (colorChooser1.getResult() == ColorChooser.OK) {
  391.       // set the foreground of textArea1 to the color
  392.       // value that can be obtained from the
  393.       // value property of colorChooser1.  This
  394.       // color value is what the user set
  395.       // before pressing the OK button
  396.       textArea1.setForeground(colorChooser1.getValue());
  397.     }
  398.   }
  399.  
  400.   void menuItem7_actionPerformed(ActionEvent e) {
  401.     colorChooser1.setValue(textArea1.getBackground());
  402.     colorChooser1.setTitle("Set Background Color");
  403.     colorChooser1.show();
  404.     if (colorChooser1.getResult() == ColorChooser.OK) {
  405.       textArea1.setBackground(colorChooser1.getValue());
  406.     }
  407.   }
  408.  
  409.   void menuItem1_actionPerformed(ActionEvent e) {
  410.     // Handle the File|New menu item.
  411.     if (okToAbandon()) {
  412.       // clear the text of the TextArea
  413.       textArea1.setText("");
  414.       // clear the current filename and set the file as clean:
  415.       currFileName = null;
  416.       dirty = false;
  417.       updateCaption();
  418.     }
  419.   }
  420.  
  421.   void menuItem2_actionPerformed(ActionEvent e) {
  422.     // Handle the File|Open menu item.
  423.     fileOpen();
  424.   }
  425.  
  426.   void menuItem3_actionPerformed(ActionEvent e) {
  427.     saveFile();
  428.   }
  429.  
  430.   void menuItem4_actionPerformed(ActionEvent e) {
  431.     saveAsFile();
  432.   }
  433.  
  434.   void buttonBar_actionPerformed(ActionEvent e) {
  435.     String actionCommand = e.getActionCommand();
  436.     if (actionCommand.equals("Open")) {
  437.       fileOpen();
  438.     }
  439.     else if (actionCommand.equals("Save")) {
  440.       saveFile();
  441.     }
  442.     else if (actionCommand.equals("About")) {
  443.       helpAbout();
  444.     }
  445.   }
  446.  
  447.   void textArea1_textValueChanged(TextEvent e) {
  448.     if (!dirty) {
  449.       dirty = true;
  450.       updateCaption();
  451.     }
  452.   }
  453. }
  454.  
  455. class TextEditFrame_menuFileExit_ActionAdapter implements ActionListener {
  456.   TextEditFrame adaptee;
  457.  
  458.   TextEditFrame_menuFileExit_ActionAdapter(TextEditFrame adaptee) {
  459.     this.adaptee = adaptee;
  460.   }
  461.  
  462.   public void actionPerformed(ActionEvent e) {
  463.     adaptee.fileExit_actionPerformed(e);
  464.   }
  465. }
  466.  
  467. class TextEditFrame_menuHelpAbout_ActionAdapter implements ActionListener {
  468.   TextEditFrame adaptee;
  469.  
  470.   TextEditFrame_menuHelpAbout_ActionAdapter(TextEditFrame adaptee) {
  471.     this.adaptee = adaptee;
  472.   }
  473.  
  474.   public void actionPerformed(ActionEvent e) {
  475.     adaptee.helpAbout_actionPerformed(e);
  476.   }
  477. }
  478.  
  479. class TextEditFrame_AboutBox extends Dialog implements ActionListener {
  480.   Panel panel1 = new Panel();
  481.   BevelPanel bevelPanel1 = new BevelPanel();
  482.   TextEditFrame_InsetsPanel insetsPanel1 = new TextEditFrame_InsetsPanel();
  483.   TextEditFrame_InsetsPanel insetsPanel2 = new TextEditFrame_InsetsPanel();
  484.   TextEditFrame_InsetsPanel insetsPanel3 = new TextEditFrame_InsetsPanel();
  485.   Button button1 = new Button();
  486.   ImageControl imageControl1 = new ImageControl();
  487.   Label label1 = new Label();
  488.   Label label2 = new Label();
  489.   Label label3 = new Label();
  490.   Label label4 = new Label();
  491.   BorderLayout borderLayout1 = new BorderLayout();
  492.   BorderLayout borderLayout2 = new BorderLayout();
  493.   FlowLayout flowLayout1 = new FlowLayout();
  494.   GridLayout gridLayout1 = new GridLayout();
  495.   String product = "Your Product Name";
  496.   String version = "";
  497.   String copyright = "Copyright (c) 1997";
  498.   String comments = "Your description";
  499.  
  500.   public TextEditFrame_AboutBox(Frame parent) {
  501.     super(parent);
  502.     try {
  503.       jbInit();
  504.     }
  505.     catch (Exception e) {
  506.       e.printStackTrace();
  507.     }
  508.     pack();
  509.   }
  510.  
  511.   void jbInit() throws Exception{
  512.     this.setTitle("About");
  513.     setResizable(false);
  514.     panel1.setLayout(borderLayout1);
  515.     bevelPanel1.setLayout(borderLayout2);
  516.     insetsPanel2.setLayout(flowLayout1);
  517.     insetsPanel2.setInsets(new Insets(10, 10, 10, 10));
  518.     gridLayout1.setRows(4);
  519.     gridLayout1.setColumns(1);
  520.     label1.setText(product);
  521.     label2.setText(version);
  522.     label3.setText(copyright);
  523.     label4.setText(comments);
  524.     insetsPanel3.setLayout(gridLayout1);
  525.     insetsPanel3.setInsets(new Insets(10, 60, 10, 10));
  526.     button1.setLabel("OK");
  527.     button1.addActionListener(this);
  528.     imageControl1.setImageName("");
  529.     insetsPanel2.add(imageControl1, null);
  530.     bevelPanel1.add(insetsPanel2, BorderLayout.WEST);
  531.     this.add(panel1, null);
  532.     insetsPanel3.add(label1, null);
  533.     insetsPanel3.add(label2, null);
  534.     insetsPanel3.add(label3, null);
  535.     insetsPanel3.add(label4, null);
  536.     bevelPanel1.add(insetsPanel3, BorderLayout.CENTER);
  537.     insetsPanel1.add(button1, null);
  538.     panel1.add(insetsPanel1, BorderLayout.SOUTH);
  539.     panel1.add(bevelPanel1, BorderLayout.NORTH);
  540.     pack();
  541.   }
  542.  
  543.   public void actionPerformed(ActionEvent e) {
  544.     if (e.getSource() == button1) {
  545.     setVisible(false);
  546.     dispose();
  547.     }
  548.   }
  549. }
  550.  
  551. class TextEditFrame_InsetsPanel extends Panel {
  552.   protected Insets insets;
  553.  
  554.   public Insets getInsets() {
  555.     return insets == null ? super.getInsets() : insets;
  556.   }
  557.  
  558.   public void setInsets(Insets insets) {
  559.     this.insets = insets;
  560.   }
  561. }
  562.  
  563. class TextEditFrame_menuItem5_actionAdapter implements java.awt.event.ActionListener {
  564.   TextEditFrame adaptee;
  565.  
  566.   TextEditFrame_menuItem5_actionAdapter(TextEditFrame adaptee) {
  567.     this.adaptee = adaptee;
  568.   }
  569.  
  570.   public void actionPerformed(ActionEvent e) {
  571.     adaptee.menuItem5_actionPerformed(e);
  572.   }
  573. }
  574.  
  575. class TextEditFrame_menuItem6_actionAdapter implements java.awt.event.ActionListener {
  576.   TextEditFrame adaptee;
  577.  
  578.   TextEditFrame_menuItem6_actionAdapter(TextEditFrame adaptee) {
  579.     this.adaptee = adaptee;
  580.   }
  581.  
  582.   public void actionPerformed(ActionEvent e) {
  583.     adaptee.menuItem6_actionPerformed(e);
  584.   }
  585. }
  586.  
  587. class TextEditFrame_menuItem7_actionAdapter implements java.awt.event.ActionListener {
  588.   TextEditFrame adaptee;
  589.  
  590.   TextEditFrame_menuItem7_actionAdapter(TextEditFrame adaptee) {
  591.     this.adaptee = adaptee;
  592.   }
  593.  
  594.   public void actionPerformed(ActionEvent e) {
  595.     adaptee.menuItem7_actionPerformed(e);
  596.   }
  597. }
  598.  
  599. class TextEditFrame_menuItem1_actionAdapter implements java.awt.event.ActionListener {
  600.   TextEditFrame adaptee;
  601.  
  602.   TextEditFrame_menuItem1_actionAdapter(TextEditFrame adaptee) {
  603.     this.adaptee = adaptee;
  604.   }
  605.  
  606.   public void actionPerformed(ActionEvent e) {
  607.     adaptee.menuItem1_actionPerformed(e);
  608.   }
  609. }
  610.  
  611. class TextEditFrame_menuItem2_actionAdapter implements java.awt.event.ActionListener {
  612.   TextEditFrame adaptee;
  613.  
  614.   TextEditFrame_menuItem2_actionAdapter(TextEditFrame adaptee) {
  615.     this.adaptee = adaptee;
  616.   }
  617.  
  618.   public void actionPerformed(ActionEvent e) {
  619.     adaptee.menuItem2_actionPerformed(e);
  620.   }
  621. }
  622.  
  623. class TextEditFrame_menuItem3_actionAdapter implements java.awt.event.ActionListener {
  624.   TextEditFrame adaptee;
  625.  
  626.   TextEditFrame_menuItem3_actionAdapter(TextEditFrame adaptee) {
  627.     this.adaptee = adaptee;
  628.   }
  629.  
  630.   public void actionPerformed(ActionEvent e) {
  631.     adaptee.menuItem3_actionPerformed(e);
  632.   }
  633. }
  634.  
  635. class TextEditFrame_menuItem4_actionAdapter implements java.awt.event.ActionListener {
  636.   TextEditFrame adaptee;
  637.  
  638.   TextEditFrame_menuItem4_actionAdapter(TextEditFrame adaptee) {
  639.     this.adaptee = adaptee;
  640.   }
  641.  
  642.   public void actionPerformed(ActionEvent e) {
  643.     adaptee.menuItem4_actionPerformed(e);
  644.   }
  645. }
  646.  
  647. class TextEditFrame_buttonBar_actionAdapter implements java.awt.event.ActionListener {
  648.   TextEditFrame adaptee;
  649.  
  650.   TextEditFrame_buttonBar_actionAdapter(TextEditFrame adaptee) {
  651.     this.adaptee = adaptee;
  652.   }
  653.  
  654.   public void actionPerformed(ActionEvent e) {
  655.     adaptee.buttonBar_actionPerformed(e);
  656.   }
  657. }
  658.  
  659. class TextEditFrame_textArea1_textAdapter implements java.awt.event.TextListener {
  660.   TextEditFrame adaptee;
  661.  
  662.   TextEditFrame_textArea1_textAdapter(TextEditFrame adaptee) {
  663.     this.adaptee = adaptee;
  664.   }
  665.  
  666.   public void textValueChanged(TextEvent e) {
  667.     adaptee.textArea1_textValueChanged(e);
  668.   }
  669. }
  670.  
  671.