home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / SAMPLES.BIN / JavaPad.java < prev    next >
Encoding:
Java Source  |  1996-12-08  |  7.3 KB  |  286 lines

  1. /*
  2.     This simple extension of the java.awt.Frame class
  3.     contains all the elements necessary to act as the
  4.     main window of an application.
  5.  */
  6.  
  7. import java.awt.*;
  8. import java.io.*;
  9.  
  10.  
  11. public class JavaPad extends Frame
  12. {
  13.     void SelectAll_Action(Event event) {
  14.         // to do: place event handler code here.
  15.         textArea1.select(0, textArea1.getText().length()-1);
  16.     }
  17.  
  18.     void Paste_Action(Event event) {
  19.         // to do: place event handler code here.
  20.         textArea1. replaceText(m_Clipboard, textArea1.getSelectionStart(), textArea1.getSelectionEnd());
  21.     }
  22.  
  23.     void Copy_Action(Event event) {
  24.         // to do: place event handler code here.
  25.         m_Clipboard = textArea1.getSelectedText();
  26.     }
  27.  
  28.     void Cut_Action(Event event) {
  29.         // to do: place event handler code here.
  30.         m_Clipboard = textArea1.getSelectedText();
  31.         textArea1. replaceText("", textArea1.getSelectionStart(), textArea1.getSelectionEnd());
  32.     }
  33.  
  34.     void SaveAs_Action(Event event) {
  35.         // to do: place event handler code here.
  36.         saveFileDialog1.show();
  37.         m_fileName = saveFileDialog1.getFile();
  38.  
  39.         if (m_fileName!=null)
  40.         {
  41.             try {
  42.                 FileOutputStream foS = new FileOutputStream( m_fileName );
  43.  
  44.                 String text = textArea1.getText();
  45.                 int size = text.length();
  46.                 byte[] byteBuffer = new byte[size];
  47.  
  48.                 text.getBytes(0, byteBuffer.length, byteBuffer, 0);
  49.                 foS.write(byteBuffer);
  50.                 foS.close();
  51.             }
  52.             catch (IOException e)
  53.             {
  54.                 System.out.print("Error reading file");
  55.             }
  56.         }
  57.         setTitle("JavaPad - " + m_fileName);
  58.     }
  59.  
  60.     void New_Action(Event event) {
  61.         // to do: place event handler code here.
  62.         m_fileName = "Untitled";
  63.         textArea1.setText("");
  64.         setTitle("JavaPad - " + m_fileName);
  65.     }
  66.  
  67.     void Save_Action(Event event) {
  68.         // to do: place event handler code here.
  69.         if (m_fileName == "Untitled")
  70.         {
  71.             // Create a new file and then save it's contents.
  72.             saveFileDialog1.show();
  73.             m_fileName = saveFileDialog1.getFile();
  74.         }
  75.  
  76.         if (m_fileName!=null)
  77.         {
  78.             try {
  79.                 FileOutputStream foS = new FileOutputStream( m_fileName );
  80.  
  81.                 String text = textArea1.getText();
  82.                 int size = text.length();
  83.                 byte[] byteBuffer = new byte[size];
  84.  
  85.                 text.getBytes(0, byteBuffer.length, byteBuffer, 0);
  86.                 foS.write(byteBuffer);
  87.                 foS.close();
  88.             }
  89.             catch (IOException e)
  90.             {
  91.                 System.out.print("Error reading file");
  92.             }
  93.         }
  94.     }
  95.  
  96.     void Open_Action(Event event) {
  97.         //{{CONNECTION
  98.         // Action from Open... Show the OpenFileDialog
  99.         openFileDialog1.show();
  100.         m_fileName = openFileDialog1.getFile();
  101.         if (openFileDialog1.getFile()!=null)
  102.         {
  103.             try {
  104.                 FileInputStream fiS = new FileInputStream( m_fileName );
  105.                 textArea1.setText("");
  106.  
  107.                 int notAtEnd = 1;
  108.                 while (notAtEnd!=-1 && notAtEnd!=0)
  109.                 {
  110.                     int size = fiS.available();
  111.                     byte[] byteBuffer = new byte[size];
  112.                     notAtEnd = fiS.read(byteBuffer);
  113.  
  114.                     // Convert to a String
  115.                     StringBuffer sb = new StringBuffer(size);
  116.                     int count = 0;
  117.                     while (count < size)
  118.                     {
  119.                         sb.append((char)byteBuffer[count]);
  120.                         count++;
  121.                     }
  122.                     textArea1.appendText(sb.toString());
  123.                 }
  124.  
  125.                 textArea1.select(0,0);
  126.                 setTitle("JavaPad - " + m_fileName);
  127.                 fiS.close();
  128.             }
  129.             catch (IOException e)
  130.             {
  131.                 System.out.print("Error reading file");
  132.             }
  133.         }
  134.         //}}
  135.     }
  136.  
  137.     void About_Action(Event event) {
  138.         //{{CONNECTION
  139.         // Action from About Create and show as modal
  140.         (new AboutDialog(this, true)).show();
  141.         //}}
  142.     }
  143.  
  144.     void Exit_Action(Event event) {
  145.         //{{CONNECTION
  146.         // Action from Exit Create and show as modal
  147.         (new QuitDialog(this, true)).show();
  148.         //}}
  149.     }
  150.  
  151.     public JavaPad() {
  152.         m_FindIndex = 0;
  153.  
  154.         //{{INIT_CONTROLS
  155.         setLayout(new GridLayout(0,1,0,0));
  156.         addNotify();
  157.         resize(insets().left + insets().right + 400,insets().top + insets().bottom + 300);
  158.         openFileDialog1 = new java.awt.FileDialog(this, "Open",FileDialog.LOAD);
  159.         //$$ openFileDialog1.move(0,0);
  160.         saveFileDialog1 = new java.awt.FileDialog(this, "Save",FileDialog.SAVE);
  161.         //$$ saveFileDialog1.move(0,0);
  162.         textArea1 = new java.awt.TextArea();
  163.         textArea1.reshape(insets().left + 0,insets().top + 0,400,300);
  164.         add(textArea1);
  165.         setTitle("JavaPad - Untitled");
  166.         //}}
  167.  
  168.         //{{INIT_MENUS
  169.         mainMenuBar = new java.awt.MenuBar();
  170.  
  171.         menu1 = new java.awt.Menu("File");
  172.         menu1.add("New");
  173.         menu1.add("Open...");
  174.         menu1.add("Save");
  175.         menu1.add("Save As...");
  176.         menu1.addSeparator();
  177.         menu1.add("Exit");
  178.         mainMenuBar.add(menu1);
  179.  
  180.         menu2 = new java.awt.Menu("Edit");
  181.         menu2.add("Cut");
  182.         menu2.add("Copy");
  183.         menu2.add("Paste");
  184.         menu2.addSeparator();
  185.         menu2.add("Select All");
  186.         mainMenuBar.add(menu2);
  187.  
  188.         menu3 = new java.awt.Menu("Help");
  189.         mainMenuBar.setHelpMenu(menu3);
  190.         menu3.add("About");
  191.         mainMenuBar.add(menu3);
  192.         setMenuBar(mainMenuBar);
  193.         //}}
  194.     }
  195.  
  196.     public JavaPad(String title) {
  197.         this();
  198.         setTitle(title);
  199.     }
  200.  
  201.     public synchronized void show() {
  202.         move(50, 50);
  203.         super.show();
  204.     }
  205.  
  206.     public boolean handleEvent(Event event) {
  207.         if (event.id == Event.WINDOW_DESTROY) {
  208.             hide();         // hide the Frame
  209.             dispose();      // free the system resources
  210.             System.exit(0); // close the application
  211.             return true;
  212.         }
  213.         return super.handleEvent(event);
  214.     }
  215.  
  216.     public boolean action(Event event, Object arg) {
  217.         if (event.target instanceof MenuItem) {
  218.             String label = (String) arg;
  219.             if (label.equalsIgnoreCase("Select All")) {
  220.                 SelectAll_Action(event);
  221.                 return true;
  222.             } else
  223.             if (label.equalsIgnoreCase("Paste")) {
  224.                 Paste_Action(event);
  225.                 return true;
  226.             } else
  227.             if (label.equalsIgnoreCase("Copy")) {
  228.                 Copy_Action(event);
  229.                 return true;
  230.             } else
  231.             if (label.equalsIgnoreCase("Cut")) {
  232.                 Cut_Action(event);
  233.                 return true;
  234.             } else
  235.             if (label.equalsIgnoreCase("Save As...")) {
  236.                 SaveAs_Action(event);
  237.                 return true;
  238.             } else
  239.             if (label.equalsIgnoreCase("New")) {
  240.                 New_Action(event);
  241.                 return true;
  242.             } else
  243.             if (label.equalsIgnoreCase("Save")) {
  244.                 Save_Action(event);
  245.                 return true;
  246.             } else
  247.             if (label.equalsIgnoreCase("Open...")) {
  248.                 Open_Action(event);
  249.                 return true;
  250.             } else
  251.             if (label.equalsIgnoreCase("About")) {
  252.                 About_Action(event);
  253.                 return true;
  254.             } else
  255.                 if (label.equalsIgnoreCase("Exit")) {
  256.                     Exit_Action(event);
  257.                     return true;
  258.             }
  259.         }
  260.         return super.action(event, arg);
  261.     }
  262.  
  263.     static public void main(String args[]) {
  264.         (new JavaPad()).show();
  265.     }
  266.  
  267.     String m_fileName;
  268.     String m_Clipboard;
  269.     String m_FindString;
  270.     String m_ReplaceString;
  271.     int    m_FindIndex;         // Where to start searching.
  272.  
  273.     //{{DECLARE_CONTROLS
  274.     java.awt.FileDialog openFileDialog1;
  275.     java.awt.FileDialog saveFileDialog1;
  276.     java.awt.TextArea textArea1;
  277.     //}}
  278.  
  279.     //{{DECLARE_MENUS
  280.     java.awt.MenuBar mainMenuBar;
  281.     java.awt.Menu menu1;
  282.     java.awt.Menu menu2;
  283.     java.awt.Menu menu3;
  284.     //}}
  285. }
  286.