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:
- Ability to display the contents of several directories simultaneously
- Ability to display files and directories as manipulable icons, which
may be repositioned by dragging and opened by clicking
- Ability to display detailed file information, such as size,
modification and creation date, permissions and owner.
- Ability to move, copy, and rename files and directories by
standard mouse and keyboard combinations
- Capability to Undo last move, copy, or rename file operation.
- Ability to refresh the display of a directory
whose contents may have changed.
- Ability to customize and configure the UI appearance
- Ability to save these customizations
- A clock
- A calculator
- 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.
- Ability to delete and undelete files
- A file search utility
- Ability to launch other processes
- A job control utility
- Unlimited undo/redo ability for file move, copy, rename, delete
operations.
- A text editor
- 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.