High Level Diagram

Functionality classes:

MakeNewFile class:-
Returns a new Untitled file with a unique number, it also checks whether a file is Untitled or not.

OpenFile class:-
Reads the file and returns it.

SaveFile class:-
Takes the name of a file and saves its contents to it.

SaveAsFile class:-
Checks to see if a file exists or not, if it exists it returns false and does not save the contents to that file, else it does not exist and returns true and saves the contents to that file.

Clipper class:-
Handles the editing of text with cut, copy and paste operations.

CreateHtmlFile class:-
Checks whether a file is an Applet, checks whether a file is a java file. Takes a html file name and return a class file name, takes a java file name and returns a html file name. Checks if a html file exists and returns it, else it generates a new html file.

OpenBrowser class:-
Takes the name of a given file and opens Microsoft Internet Explorer where this file resides.

CompileJava class:-
Will start a separate process and compile a java file that returns the results of compilation, process will stop and resume depending on if the compilation is finished or the GUI has signalled to continue.

CompileClass class:-
This too will start a separate process and compile a class file that returns the results of compilation, process will stop and resume depending on if the compilation is finished or the GUI has signalled to continue. This process can be stopped by the user at any time.

NoComments1 class:-
A java file is taken and is stripped of all comments that may exist within that file.


IdeApp class:

IdeApp class:-
This acts as a go between the Functionality classes and Graphical User Interface classes. References are made by the GUI’s that the IdeApp accesses the functionality classes.


Graphical User Interface classes:

Project class:-
Starts the entire application and displays it, determining where the application is placed on screen and its size.

MainWindow class:-
Gathers all the various components and assembles them together within a frame.

FileMenu class:-
Returns a JMenu containing JMenuItems that offer elementary functionality to text files. Allows the user to Create and Open files and making necessary changes, closing files as well as closing the application itself.

EditMenu class:-
Returns a JMenu containing JMenuItems that are used in text editing such as cut, copy and paste.

ToolsMenu class:-
Returns a JMenu containing JMenuItems which offer stronger functionality to java files.

ProjectButtons class:-
Returns a floating JToolbar that offers elementary and text editing functionality.

ProjectButtonsWork class:-
Returns a floating JToolbar that handles java file functionality.

SourceCodeFrame class:-
An internal frame that is used to present text files to the user.

TemporalFrame class:-
An internal frame that provides uncommented text from a selected java file which has comments contained within its syntax.

HtmlFrame class:-
An internal frame that displays html code .

CompileFrame class:-
An internal frame that produces the results from the compilation of a java file

Splits class:-
These split up the desktop parts of the application to make working with different information more clear.

EdPane class:-
This contains the text of a file which is then placed within an internal frame.

myJFileChooser class:-
Provides a frame that informs the user of where files and directories exist on a computer, with the option of Opening or Saving them.


(Above is a high level class diagram)