//import the packages for using the classes in them into this class import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.filechooser.*; /** *A PUBLIC CLASS FOR ACTIONS.JAVA */ public class Actions{ //declaration of the private variables used in the program int returnVal; //for JFileChooser int option; //for using it into JOptionPane String fileContent = null; //to get the text from the text area String fileName = null; //for using the name of the file String findword; //for searching & finding the word JFileChooser jfc = new JFileChooser("."); //for using a open & save dialog ExampleFileFilter filter = new ExampleFileFilter(); //for filtering the file Notepad n; //for using the object in the Notepad.java public Actions(Notepad n){ this.n = n; } /** *If we want to write a new text, first we want to know if the text area is empty or not, *second we want to kwnow if the text was saved or not. *If the text area isn't empty & the text wasn't saved befor this time, then the program display -> *for the user an option for saving the text in a new file or in the same file */ public void neW(){ n.getTextArea().setText(""); n.setTitle("Untitled - JAVA Notepad"); } /** *If we want to open a new text, first we want to know if the text area * is empty or not, second we want to kwnow if the text was saved or not. *If the text area isn't empty & the text wasn't saved befor this time, *then the program display for the user an option for saving the text *in a new file or in the same file */ public void opeN(){ open(); } /** *THIS FROM SUN� WEBSITE (@Print.java) *if we want to print the text, we can do this by print method */ public void prinT(){ //import printer class Print.printComponent(n.getTextArea()); } /** *If we want to exit from the program, *first we want to know if the text area is empty or not, *second we want to kwnow if the text was saved or not. *If the text area isn't empty & the text wasn't saved befor this time, *then the program display -> *for the user an option for saving the text in a new file or in the same file */ public void exiT(){ //for closing the program System.exit(0); } //to cut the selected text public void cuT(){ n.getTextArea().cut(); } //to copy the selected text public void copY(){ n.getTextArea().copy(); } //to paste the selected text public void pastE(){ n.getTextArea().paste(); } //to select all the text public void selectALL(){ n.getTextArea().selectAll(); } //this is a method for searching the input text from the text area public void finD(){ try{ //this is an input dialog which return a string (findword) findword = JOptionPane.showInputDialog("Type the word to find"); //if the JTextField in the input dialog is empty (null), then return a message dialog while(n.getTextArea().getText().indexOf(findword) == -1){ /** *this is a message dialog which is warning the user, *because he didn't or forgot to enter the word */ JOptionPane.showMessageDialog(null,"Word not found!","No match",JOptionPane.WARNING_MESSAGE); findword = JOptionPane.showInputDialog("Type the word to find"); } //for selecting the word which the user search for it n.getTextArea().select(n.getTextArea().getText().indexOf(findword), n.getTextArea().getText().indexOf(findword) + findword.length()); } catch(Exception ex){ JOptionPane.showMessageDialog(null,"Search canceled","Abourted",JOptionPane.WARNING_MESSAGE); } } public void findNexT(){ n.getTextArea().select(n.getTextArea().getText().indexOf(findword,(int)n.getTextArea().getText().indexOf(findword)+1), n.getTextArea().getText().indexOf(findword,(int)n.getTextArea().getText().indexOf(findword)+1)); } //for wraping the line & wraping the style word public void lineWraP(){ if(n.getLineWrap().isSelected()){ /** *make the line wrap & wrap style word is true *when the line wrap is selected */ n.getTextArea().setLineWrap(true); n.getTextArea().setWrapStyleWord(true); } else{ /** *make the line wrap & wrap style word is false *when the line wrap isn't selected */ n.getTextArea().setLineWrap(false); n.getTextArea().setWrapStyleWord(false); } } /** *@see ABOUT.JAVA *it's a Message Dialog to show the information about this program */ public void abouT(){ JOptionPane.showMessageDialog(null, new About(),"About Notepad",JOptionPane.PLAIN_MESSAGE); } /** *THIS IS THE WAY FOR OPENING THE TEXT FILE */ public void open(){ //filter the kind of files, we want only TXT file filter.addExtension("txt"); //to set a description for the file (TXT) filter.setDescription("TXT Documents"); //setting the FileFilter to JFileChooser jfc.setFileFilter(filter); returnVal = jfc.showOpenDialog(n); //to show JFileChooser if(returnVal == JFileChooser.APPROVE_OPTION){ //to erase any text in the text area before adding new text n.getTextArea().setText(null); try{ //to get the name of the selected file fileName = jfc.getSelectedFile().getPath(); //to read the selected file Reader in = new FileReader(jfc.getSelectedFile()); //100000 is the max. char can be written in the text area char[] buff = new char[100000]; int nch; while((nch = in.read(buff, 0, buff.length)) != -1) n.getTextArea().append(new String(buff, 0, nch)); //to get more text from the file if the array wasn't full fileContent = n.getTextArea().getText(); } catch(FileNotFoundException x){} catch(IOException ioe){ System.err.println("I/O Error on Open"); } } n.setTitle(jfc.getSelectedFile().getName() + " - JAVA� Notepad"); } }