Tuesday, October 2, 2007
Work Distribution 10/2
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
JPaint v1.0 Source
JPaint v1.0 Source
Tuesday, September 25, 2007
Work Distribution 9/25
-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
(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)
Tuesday, September 18, 2007
12 Requirements - update
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.
Work Distribution 9/18
Kate: Revise specific req and storycard.
Jeremy: Revise specific req and storycard.
All Group Members: Meeting on Thursday at 1pm to create version one of design.
Story Cards
Story Card Requirement #1
The requirement reads, “Paint will have a 'fill' tool that will change the canvas to be entirely the color selected.”
S1: The user will select (click) the fill tool from the tool bar.
S2: The user will select the desired color from the color palate.
S3: The user will click anywhere in the canvas to replace all pixels in the canvas with the color selected.
Story Card Requirement #2
The requirement reads, “Paint will have an erase tool that will allow the user to erase areas of the canvas.”
S1: The user will select (click) the eraser tool from the tool bar.
S2: The user will click or click and drag on the canvas where they would like to erase.
S3: The program will access a variable containing the last used background color and designate it as the current brush color.
S4: The program will employ the same method as the brush tool and replace pixels underneath the pointer with the background color.
Story Card Requirement #3
The requirement reads, “Paint will specify size of canvas in pixels for height and width.”
S1: By default, the canvas will be sized 200x200 pixels.
S2: The user can change the value of either or both height and width to any positive integer value greater than 0 and less than or equal to 600.
S2a: A number less than 1 will be automatically changed to 1.
S2b: A number greater than 600 will be automatically changed to 600.
S3: After changing the dimensions to the desired values, the user will click on the resize button to change the canvas size.
S3a: If either dimension is increased (i.e. pixels that were previously unavailable are now usable) the added pixels will be set to the background color.
S3b: If either dimension is decreased (i.e. causing some pixels to become unavailable) any changes in the now unavailable space is permanently lost.
Story Card Requirement #4
The requirement reads, “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.”
S1: The user will click the click on a button to select the rectangle drawing tool.
S2: After clicking the button, the user will click the left mouse button somewhere on the canvas to designate one corner of the rectangle.
S2a: If the user does not click on the canvas, the program ignores the click.
S3: After designating the first corner, the user moves the mouse to the desired location of the opposite corner in the rectangle and clicks the left mouse button.
S3a: If the user clicks the left mouse button off the canvas, the nearest legal point on the canvas will be used.
S4: A vertical rectangle will be drawn starting from the location of the first corner, moving vertically until horizontal with the location of the opposite corner. The rectangle will continue horizontally until reaching the designated opposite corner at which point, it will traverse vertically until it is horizontal with the starting corner. The drawing will then continue horizontally until ending at the starting point.
Story Card Requirement #5
The requirement reads, “Paint will respond to a 2d input device, mouse, to determine when a button is pressed or selection made.”
S1: The mouse will be used as in Windows to select various tools or locations on the canvas.
S2: To select a tool, the user left clicks once on the desired tool.
S3: If the tool requires additional designated inputs, the user will left click once and hold the mouse button down to select the first point. The user will release the left mouse button to select the second point.
S4: Each click/release of button on the canvas selects a single pixel on the canvas designated by the very tip of the pointer.
Story Card Requirement #6
The requirement reads, “Paint will paint when the left mouse button is pressed and stop painting when the mouse button is released”S1: The user will press the left mouse button down to signal a response on the paint program
S2: Paint will detect where the mouse is pressed and what action to follow based on the x and y coordinates of where the mouse is clicked.
S3: A mouse press results if the action intended was achieved.
Story Card Requirement #7
The requirement reads, “Paint will allow the user the choice of eight colors to paint with: red, orange, yellow, green, blue, purple, black, or white.”S1: The user will use the mouse to touch one of the color swatches provided on the palette
S2: Paint will respond by matching the color swatch with the designated private integers designated in the code
S3: A successful selection of brush color will paint the color selected on the canvas
Story Card Requirement #8
The requirement reads, “Paint will have a line tool that allows user to click point a, click point b and paint will connect a and b with a solid line.”
S1: The user will click on a button to select the line tool.
S2: The user will left click somewhere in the canvas to select point a.
S2a: If the user clicks outside of the canvas, the click is ignored.
S3: The user will left click again somewhere on the canvas to designate point b.
S3a: If the user clicks outside of the canvas, the closes point on the canvas is used.
S4. Paint will draw a single, straight line from point a to point b of the color selected in the color palate.
Story Card Requirement #9
The requirement reads, "Paint will open through double-clicking a file."
S1: The user will select (double click, press enter, etc.) the correct paint file.
S2: The program, including a blank canvas, menu, and buttons, will open, and the user will immediatly be able to paint. The white color and draw tool are automatically selected.
Story Card Requirement #10
The requirement reads, "There will be several buttons showing lines of different width. The width selected will be the width of paint strokes made."
S1: By default, the thinnest line will be selected.
S2: The user clicks on the line representing the thickness wanted.
S3: All paint strokes (including lines, rectangles, etc) will have a thickness equivalent to the thickness of the line selected.
Story Card Requirement #11
S1: The user will click on the word “File” which is located at the top left of the window.
S2: After single clicking on “File”, a drop down menu is displayed.
S2a: The dropdown menu contains “Clear canvas” and “Quit”.
S3: The user will left click on either of the options in the menu to select.
S3a: If the user selects “Clear canvas”, the program will completely fill the canvas with white pixels.
S3b: If the user selects “Quit”, the program will immediately close.
S4: If the user clicks anywhere on the screen outside of the dropdown menu, the dropdown menu will disappear and the user will resume the activity in process before clicking the “File” menu.
Story Card Requirement #12
The requirement reads, “Paint will have a "help" menu that contains the options to display a help page and an "about" page.”
S1: The user will click on the word “Help” which is located at the top left of the window, to the right of “File”.
S2: After single clicking on “Help”, a drop down menu is displayed.
S2a: The dropdown menu contains “Help page” and “About”.
S3: The user will left click on either of the options in the menu to select.
S3a: If the user selects “Help page”, a new window opens on top of the canvas with detailed explanations of all the tools available in the paint program.
S3b: If the user selects “About”, a new window opens on top of the canvas with information about the designers of the program.
S4: If the user clicks anywhere on the screen outside of the dropdown menu, the dropdown menu will disappear and the user will resume the activity in process before clicking the “File” menu.
12 Requirements
Proposed By: Corey Forbus Requirement #1
Implemented By: -
Description: Paint will have a 'fill' tool that will allow the user to to designate the background color of the canvas.
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 filled with a user specified color easily as opposed to having to draw them with the brush tool and fill them in freehand.
Proposed By: Kate Allinson Requirement #5
Implemented By: -
Description: Paint will paint when the left mouse button is pressed and stop painting when the mouse button is released.
Rationale: The program must detect when the user wishes to paint.
Proposed By: Kate Allinson Requirement #6
Implemented By: -
Description: Paint will allow the user the choice of seven colors to paint with: black, red, green, blue, cyan, magenta, and yellow
Rationale: Adding color choice to paint with allows variety and gives options to the user.
Proposed By: Kate Allinson Requirement #7
Implemented By: -
Description: Paint will be opened by using a file with the .exe extension.
Rationale: Executable files are extremely easy and fast to use compared to, for example, using the command-line java tool.
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 is difficult.
Proposed By: Jeremy Crockett Requirement #9Implemented 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: A number written in a text file will determine the witdth of the line created with the line tool.
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 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.
Tuesday, September 11, 2007
Group Roles/Task Distribution
Kate: Project Manager, Design
Jeremy: Design, Lead Coder
Mike: Design, Lead Tester
Corey
__________________________________________________
1) Retool requirements 1, 2, 3, and 5
2) Write story cards for requirements 1 and 2
Kate
__________________________________________________
1) Create four requirements
2) Write story cards for two of those requirements
Mike
__________________________________________________
1) Write story cards for remaining six requirements
Jeremy
__________________________________________________
1) Create four requirements
2) Write story cards for two of those requirements
6 Requirements
2) Paint will have an erase tool that will allow the user to erase areas of the canvas.
3) Paint will allow the user to specify the size of the canvas by providing height and width pixel values.
4) Paint will allow the user to save works to a specified image format.
5) Paint will have a rectangle tool which will allow the user to click from a starting point and drag diagonally to an ending point and create a rectangle.
6) Paint will allow the user to open files of a specified format.