Tuesday, October 2, 2007

Work Distribution 10/2

Corey: Implement Req 1 and 6, Refine GUI framework.

Kate: Work on presentation, Implement Req 8.

Mike: Work on presentation, Implement Req 8, Test.

Jeremy: Implement Req 4, work on gui.

Monday, October 1, 2007

UML Diagram for v1.0

Link to UML for JPaint v1.0:
UML Diagram

JPaint v1.0 Source

The following is a link to a compilable and working copy of JPaint v1.0:
JPaint v1.0 Source

Tuesday, September 25, 2007

Work Distribution 9/25

Corey: -implement requirements 11 and 12
-create main class and initial graphical framework for Paint

Kate:
-create UML Class diagram
-create content for "About" dialog

Mike:
-test implemented requirements
-create content for "Help" Dialog

Jeremy:
-create general canvas layout
-generate buttons for color palette, tools, and stroke width

Monday, September 24, 2007

General Plan

-Complete GUI Requirements first
(reqs 3, 11, 12, 5)
-Implement menu accessible tools next
(reqs 2, 11, 8)
-Implement canvas selectable tools last
(reqs 1, 4, 6, 7, 9, 10)

Project Paint Flowchart

http://www.best4c.com/jsp/image.html?id=3985

Tuesday, September 18, 2007

12 Requirements - update

Proposed By: Corey Forbus Requirement #1
Implemented By: -
Description: Paint will have a 'fill' tool that will change the canvas to be entirely the color selected.
Rationale: Instead of the user attempting to brush the whole canvas with a small stroke, they can achieve a similar result with only few clicks.

Proposed By: Corey Forbus Requirement #2
Implemented By: -
Description: Paint will have an erase tool that will allow the user to erase areas of the canvas.
Rationale: Essentialy this will act the same as a brush containing the background color but will allow the user to achieve the same results with fewer steps.

Proposed By: Corey Forbus Requirement #3
Implemented By: -
Description: Paint will allow the user to specify the size of the canvas by providing height and width pixel values.
Rationale: This will add more functionality to the paint program by allowing the user to work with files of a size they specify. Having a canvas with dimensions defined by the user is a staple in any paint program on the market.

Proposed By: Corey Forbus Requirement #4
Implemented By: -
Description: Paint will have a rectangle tool that allows user to click on a starting point, click on an ending point and create a rectangle using the two selected points as opposite corners.
Rationale: The user will be able to create clean, rectangular shapes outlined with a user specified color easily as opposed to having to draw them with the brush tool.

Proposed By: Kate Allinson Requirement #5
Implemented By:-
Description: Paint will respond to a 2d input device, mouse, to determine when a button is pressed or selection made.
Rationale: The program must detect an input device to allow interactivity

Proposed By: Kate Allinson Requirement #6
Implemented By: -
Description: Paint will draw when the left mouse button is pressed and stop drawing when the mouse button is released
Rationale: This allows the user to draw on the screen using only the mouse to create unique forms. Also, this feature allows for more than just simply polygons (rectangles) to be created.

Proposed By: Kate Allinson Requirement #7
Implemented By:
Description: Paint will allow the user the choice of eight colors to paint with: red, orange, yellow, green, blue, purple, black, or white.
Rationale: Adding color choice allows for a greater variety and gives more choices to the user.

Proposed By: Kate Allinson Requirement #8
Implemented By: -
Description: Paint will have a line tool detect points a and b the user designates. Paint will connect the two points with a solid, straight line.
Rationale: Drawing a straight line with a mouse or other two dimensional input device proves difficult.

Proposed By: Jeremy Crockett Requirement #9
Implemented By: -
Description: Paint will be opened by double clicking the appropriate file.
Rationale: Opening a file by double clicking is easy and fast to use compared to, for example, using the command-line java tool.

Proposed By: Jeremy Crockett Requirement #10
Implemented By: -
Description: There will be several buttons showing lines of different width. The width selected will be the width of paint strokes made.
Rationale: Allowing the user to specify the width of the line allows greater control over the final image that is created.

Proposed By: Jeremy Crockett Requirement #11
Implemented By: -
Description: A drop-down menu with the name "file" will have a "New" button, a "Resize" button, and a "Quit" button. The new button will clear the canvas to white. The quit button will exit the program.
Rationale: The ability to start over in a paint program is often necesary, and selecting "new" is more intuitive and perhaps faster than selecting the white color and then using fill. The ability to quit a program easily is necessary when the user wishes to stop painting.

Proposed By: Jeremy Crockett Requirement #12
Implemented By: -
Description: A second drop-down menu with the name "help" will have "Instructions" and "About" buttons. The instruction button will give helpful information on the features of the program. The about program will give information about the program itself, incuding the creaters and release date.
Rationale: An instructions button teaches users about the program so that they can use all of its features. An about program provides the necessary information to those who wish to know more about the creation of the program.