Course Project: WinDoh!

NOTE: This is just a dummy HTML file.
See the course web page for the current project specs.

A test link to Google.com.

Due dates

The project is due Friday, August 24th, at midnight. There will
be intermediate checkpoints every Friday of August at midnight.
Meeting the checkpoint goals on time is an important part of the
project; make sure you do this. (Marketing will get upset if the prototypes aren't ready on time!)

Graduating students:   your provisional grade will be
based on the work you turn in for the third checkpoint (August 17th).
It is especially critical for you to meet the checkpoints on time.

Modifications

Suggested modifications to the course project will be considered, and if approved, may be implemented. In general, only modifications which preserve or augment the original features of the project are likely to be accepted.

Any modifications to the assignment must be approved in advance by the instructor.

Description

Write a graphical user interface to the Linux filesystem, named WinDoh! The interface must have functionality similar to Microsoft Windows and MacOS for basic file operations.

Your UI must provide the following:

  1. Ability to display the contents of several directories simultaneously
  2. Ability to display files and directories as manipulable icons, which may be repositioned by dragging and opened by clicking
  3. Ability to display detailed file information, such as size, modification and creation date, permissions and owner.
  4. Ability to move, copy, and rename files and directories by standard mouse and keyboard combinations
  5. Capability to Undo last move, copy, or rename file operation.
  6. Ability to refresh the display of a directory whose contents may have changed.
  7. Ability to customize and configure the UI appearance
  8. Ability to save these customizations
  9. A clock
  10. A calculator
  11. On-line Help and Credits.

The following are suggested extra features, more or less in the order I perceive their importance. Remember to document these features in your Help system if you include them.

  1. Ability to delete and undelete files
  2. A file search utility
  3. Ability to launch other processes
  4. A job control utility
  5. Unlimited undo/redo ability for file move, copy, rename, delete operations.
  6. A text editor
  7. Internationalization

The presentability and usability of your GUI will be an important factor in the grading. Your first priority should be to meet the basic requirements well.

Design

Documentation

You should produce Javadoc documentation of your main classes, for the benefit of programmers who might come after you. Your on-line help should explain any workings of your UI which might not be obvious.

You must credit any source code you imitate. You may not steal source code wholesale. I will check this!

Checkpoints

Checkpoint 1, due Friday, August 3 at 11:59PM.
You should have a class, DirectoryWindow, which is capable of displaying all the files in a directory. This should be either a subclass of JFrame or JInternalFrame, depending on whether or not you plan to keep your windowing system in a JDesktop (this is recommended).

The file display mechanism should allow the user to select a file or directory from within the current DirectoryWindow, and either: open a file information window for the file, or open another DirectoryWindow for the second directory.

A preliminary version of the on-line help system.

Checkpoint 2, due Friday, August 10 at 11:59PM.
Now, file relocation, copying, and renaming should all be implemented. You should also have the ability to undo the last such change implemented.
Checkpoint 3, due Friday, August 17 at 11:59PM.
The rest of the 11 basic requirements should be implemented by now.
Checkpoint 4, due Friday, August 24 at 11:59PM.
Turn in the whole project by this deadline. There are no extensions possible.

Handin

To be announced.