COP4226, Shape Assignment

Due Monday, October 30

This application will draw shapes instead of using shape controls. It will use pens and brushes to draw and fill the shapes. It will use data binding to exchange data between the main form and the shape dialog.

Create an application that will use a separate class for a document. The document will contain a list of shape ojects. Define a separate class for the shape information. Be sure to encapsulate operations in the class they work on.

Avoid long methods. Each method that you create should be short, to promote encapsulation. If you have a method that is longer than 25 lines, then it probably needs to be divided into smaller methods.

Control Library

Update the control library from previous assignments. Be sure to include the file in the zip that you upload.

Interfaces

Use interfaces to encapsulate implementation details. Design code so that the implementation details of data could be changed in the future without having to rewrite all the code that accesses that data.

Oath Dialog

Create a dialog in the main application that will display the pledge of honesty.

About Dialog

Create a dialog in the main application that will display a description of the assignment.

Enumerations

Create an enumeration for shapes that contains the values Ellipse, Rectangle and Custom.

Create enumerations for pen type and brush type.

Shape Class

Create a class that will hold data for a shape. The shape will have location, size, pen color, pen type, brush color, brush type and shape type. Add properties to improve encapsulation. Add more properties and helper methods that contain operations that work on shapes. Encapsulate shape processes in this class.

Document Class

Create a document class that will store shapes. Use a container class to hold the shapes. Add properties and helper methods to encapsulate document processes in this class.

Shape Options Dialog

Create a dialog in the main application that will allow the user to modify information for a shape.

Main Form

Extend the main form from the form that was added to the control library for this assignment.

User Interface

When the user clicks and drags the mouse, create the currently checked shape from the shape menu.

Submitting the Assignment

Zip your entire project and upload via the Assignment Dropbox on BlackBoard. Exclude the Debug and Release directories.

Be sure to include your control library in your uploaded file.

Upload your video to me using the upload via the Assignment Dropbox on BlackBoard.