/**
*This is a JAVA program for writing, opening, saving, editing the documents,
*has the ability to copy, cut, paste & select all text in the JTextArea,
*has @see ExampleFileFilter class (From SUN -http://java.sun.com-) for filter the file
*has a print class (from AarbTeam2000 -http://wwww.arabteam2000.com-) for printing the documents
*/
/**
*@King Fahd University of Petroleum and Minerals (KFUPM)
*@auther: Al-Thubaiti Salah
*@ICS201 PROJECT
*@JAVA Notepad (JNotepad)
*@version# 2.0
*/
//import the packages for using the classes in them into the program
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.undo.*;
/**
*A PUBLIC CLASS FOR NOTEPAD.JAVA
*/
public class Notepad extends JFrame {
//Main Method
public static void main( String[] args ) {
new Notepad().show();
}
//for using the methods in these classes
public Actions actions = new Actions( this );
//declaration of the private variables used in the program
//create the text area
private JTextPane textPane;
//for using undo & redo
UndoManager undo = new UndoManager();
UndoAction undoAction = new UndoAction( this );
RedoAction redoAction = new RedoAction( this );
//Constructor of Notepad
public Notepad() {
super(); {
{
{
{
{
//set the title for Notepad and set the size for it.
setTitle( "Untitled - JAVA Notepad" );
setSize( 800,600 );
/**
*setting the default close operation to false and
*using own action (exitMenuItem action @Actions.java)
*/
setDefaultCloseOperation( DO_NOTHING_ON_CLOSE );
addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
actions.exit();
}
} );
} {
Container cp = getContentPane();
textPane = new JTextPane();
cp.add( textPane );
cp.add( new JScrollPane( textPane ) );
}
} {
JToolBar toolBar = buildToolBar();
if ( toolBar.getComponentCount() > 0 ) {
getContentPane().add( "North", toolBar );
}
}
} {
//get the graphical user interface components display area
setJMenuBar( buildMenuBar() );
}
} {
getTextComponent().getDocument().addUndoableEditListener( new UndoableEditListener() {
public void undoableEditHappened( UndoableEditEvent e ) {
//Remember the edit and update the menus
undo.addEdit( e.getEdit() );
undoAction.update();
redoAction.update();
}
} );
}
} {
StyledDocument doc = getTextPane().getStyledDocument();
Style regular = doc.addStyle( "regular",
StyleContext.getDefaultStyleContext().getStyle( StyleContext.DEFAULT_STYLE ) );
Style italic = doc.addStyle( "italic", regular );
StyleConstants.setItalic( italic, true );
Style bold = doc.addStyle( "bold", regular );
StyleConstants.setBold( bold, true );
}
}
protected final JMenu buildEditMenu$$Base() {
JMenu editMenu = new JMenu( "Edit" );
editMenu.setMnemonic( 'e' );
return editMenu;
}
protected final JMenu buildEditMenu$$Undo() {
JMenu editMenu = buildEditMenu$$Base();
if ( editMenu.getItemCount() > 0 )
editMenu.addSeparator();
editMenu.add( undoAction );
editMenu.add( redoAction );
return editMenu;
}
protected final JMenu buildEditMenu$$Clipboard() {
JMenu editMenu = buildEditMenu$$Undo();
if ( editMenu.getItemCount() > 0 )
editMenu.addSeparator();
JMenuItem cutMenuItem = new JMenuItem( "Cut", new ImageIcon( this.getClass().getResource( "images/cut.gif" ) ) );
cutMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_X, ActionEvent.CTRL_MASK ) );
cutMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.cut();
}
} );
editMenu.add( cutMenuItem );
JMenuItem copyMenuItem = new JMenuItem( "Copy", new ImageIcon( this.getClass().getResource( "images/copy.gif" ) ) );
copyMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_C, ActionEvent.CTRL_MASK ) );
copyMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.copy();
}
} );
editMenu.add( copyMenuItem );
JMenuItem pasteMenuItem= new JMenuItem( "Paste",new ImageIcon( this.getClass().getResource( "images/paste.gif" ) ) );
pasteMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_V, ActionEvent.CTRL_MASK ) );
pasteMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.paste();
}
} );
editMenu.add( pasteMenuItem );
JMenuItem selectAllMenuItem= new JMenuItem( "Select All" );
selectAllMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_A, ActionEvent.CTRL_MASK ) );
selectAllMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.selectAll();
}
} );
editMenu.add( selectAllMenuItem );
return editMenu;
}
protected JMenu buildEditMenu() {
JMenu editMenu = buildEditMenu$$Clipboard();
if ( editMenu.getItemCount() > 0 )
editMenu.addSeparator();
JMenuItem findMenuItem = new JMenuItem( "Find", new ImageIcon( this.getClass().getResource( "images/find.gif" ) ) );
findMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_F, ActionEvent.CTRL_MASK ) );
findMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.find();
}
} );
editMenu.add( findMenuItem );
JMenuItem findNextMenuItem = new JMenuItem( "Find Next" );
findNextMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_G, ActionEvent.CTRL_MASK ) );
findNextMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.findNext();
}
} );
editMenu.add( findNextMenuItem );
return editMenu;
}
protected final JMenu buildFileMenu$$Base() {
JMenu fileMenu = new JMenu( "File" );
fileMenu.setMnemonic( 'f' );
return fileMenu;
}
protected final JMenu buildFileMenu$$File() {
JMenu fileMenu = buildFileMenu$$Base();
if ( fileMenu.getItemCount() > 0 )
fileMenu.addSeparator();
JMenuItem newFileMenuItem = new JMenuItem( "New", new ImageIcon( this.getClass().getResource( "images/new.gif" ) ) );
newFileMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_N, ActionEvent.CTRL_MASK ) );
newFileMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.newFile();
}
} );
fileMenu.add( newFileMenuItem );
JMenuItem openMenuItem = new JMenuItem( "Open", new ImageIcon( this.getClass().getResource( "images/open.gif" ) ) );
openMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O, ActionEvent.CTRL_MASK ) );
openMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.open();
}
} );
fileMenu.add( openMenuItem );
JMenuItem saveMenuItem = new JMenuItem( "Save", new ImageIcon( this.getClass().getResource( "images/save.gif" ) ) );
saveMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, ActionEvent.CTRL_MASK ) );
saveMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.save();
}
} );
fileMenu.add( saveMenuItem );
JMenuItem saveAsMenuItem = new JMenuItem( "Save As", new ImageIcon( this.getClass().getResource( "images/saveAs.gif" ) ) );
saveAsMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.saveAs();
}
} );
fileMenu.add( saveAsMenuItem );
return fileMenu;
}
protected JMenu buildFileMenu() {
JMenu fileMenu = buildFileMenu$$File();
if ( fileMenu.getItemCount() > 0 )
fileMenu.addSeparator();
JMenuItem printMenuItem = new JMenuItem( "Print", new ImageIcon( this.getClass().getResource( "images/print.gif" ) ) );
printMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_P, ActionEvent.CTRL_MASK ) );
printMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.print();
}
} );
fileMenu.add( printMenuItem );
return fileMenu;
}
protected JMenu buildFormatMenu() {
JMenu formatMenu = new JMenu( "Format" );
formatMenu.setMnemonic( 'o' );
return formatMenu;
}
protected JMenu buildHelpMenu() {
JMenu helpMenu = new JMenu( "Help" );
helpMenu.setMnemonic( 'h' );
JMenuItem aboutMenuItem = new JMenuItem( "About Notepad", new ImageIcon( this.getClass().getResource( "images/about.gif" ) ) );
aboutMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.about();
}
} );
helpMenu.add( aboutMenuItem );
return helpMenu;
}
protected JMenuBar buildMenuBar() {
JMenuBar Menubar = new JMenuBar();
JMenu fileMenu = buildFileMenu();
if ( fileMenu.getItemCount() > 0 )
fileMenu.addSeparator();
JMenuItem exitMenuItem = new JMenuItem( "Exit" );
exitMenuItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_F4, ActionEvent.CTRL_MASK ) );
exitMenuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.exit();
}
} );
fileMenu.add( exitMenuItem ); //, new ImageIcon(this.getClass().getResource("images/exit.gif")))); -- exit.gif missing
Menubar.add( fileMenu );
JMenu editMenu = buildEditMenu();
if ( editMenu.getItemCount() > 0 )
Menubar.add( editMenu );
JMenu formatMenu = buildFormatMenu();
if ( formatMenu.getItemCount() > 0 )
Menubar.add( formatMenu );
Menubar.add( buildHelpMenu() );
return Menubar;
}
protected final JToolBar buildToolBar$$Base() {
JToolBar toolBar = new JToolBar( "Tool Bar" );
return toolBar;
}
protected final JToolBar buildToolBar$$File() {
JToolBar toolBar = buildToolBar$$Base();
if ( toolBar.getComponentCount() > 0 )
toolBar.addSeparator();
JButton newButton = new JButton( new ImageIcon( this.getClass().getResource( "images/new.gif" ) ) );
newButton.setToolTipText( "New" );
newButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.newFile();
}
} );
toolBar.add( newButton );
JButton openButton = new JButton( new ImageIcon( this.getClass().getResource( "images/open.gif" ) ) );
openButton.setToolTipText( "Open" );
openButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.open();
}
} );
toolBar.add( openButton );
JButton saveButton = new JButton( new ImageIcon( this.getClass().getResource( "images/save.gif" ) ) );
saveButton.setToolTipText( "Save" );
saveButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.save();
}
} );
toolBar.add( saveButton );
JButton saveAsButton= new JButton( new ImageIcon( this.getClass().getResource( "images/saveAs.gif" ) ) );
saveAsButton.setToolTipText( "Save As" );
saveAsButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.saveAs();
}
} );
toolBar.add( saveAsButton );
return toolBar;
}
protected final JToolBar buildToolBar$$Undo() {
JToolBar toolBar = buildToolBar$$File();
if ( toolBar.getComponentCount() > 0 )
toolBar.addSeparator();
toolBar.add( undoAction );
toolBar.add( redoAction );
return toolBar;
}
protected final JToolBar buildToolBar$$Clipboard() {
JToolBar toolBar = buildToolBar$$Undo();
if ( toolBar.getComponentCount() > 0 )
toolBar.addSeparator();
JButton cutButton = new JButton( new ImageIcon( this.getClass().getResource( "images/cut.gif" ) ) );
cutButton.setToolTipText( "Cut" );
cutButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.cut();
}
} );
toolBar.add( cutButton );
JButton copyButton = new JButton( new ImageIcon( this.getClass().getResource( "images/copy.gif" ) ) );
copyButton.setToolTipText( "Copy" );
copyButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.copy();
}
} );
toolBar.add( copyButton );
JButton pasteButton = new JButton( new ImageIcon( this.getClass().getResource( "images/paste.gif" ) ) );
pasteButton.setToolTipText( "Paste" );
pasteButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.paste();
}
} );
toolBar.add( pasteButton );
return toolBar;
}
protected final JToolBar buildToolBar$$Find() {
JToolBar toolBar = buildToolBar$$Clipboard();
if ( toolBar.getComponentCount() > 0 )
toolBar.addSeparator();
JButton findButton = new JButton( new ImageIcon( this.getClass().getResource( "images/find.gif" ) ) );
findButton.setToolTipText( "Find" );
findButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.find();
}
} );
toolBar.add( findButton );
return toolBar;
}
protected final JToolBar buildToolBar$$FormatRaw() {
JToolBar toolBar = buildToolBar$$Find();
if ( toolBar.getComponentCount() > 0 )
toolBar.addSeparator();
String styles[] = {"regular", "bold", "italic"};
final JComboBox styleBox = new JComboBox( styles );
styleBox.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.setStyle( String.valueOf( styleBox.getSelectedItem() ) );
}
} );
toolBar.add( styleBox );
return toolBar;
}
protected JToolBar buildToolBar() {
JToolBar toolBar = buildToolBar$$FormatRaw();
if ( toolBar.getComponentCount() > 0 )
toolBar.addSeparator();
JButton printButton = new JButton( new ImageIcon( this.getClass().getResource( "images/print.gif" ) ) );
printButton.setToolTipText( "Print" );
printButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
actions.print();
}
} );
toolBar.add( printButton );
return toolBar;
}
public JTextComponent getTextComponent() {
return textPane;
}
public JTextPane getTextPane() {
return textPane;
}
}