All Classes

Class Description
ColorButton
a button that shows what color is chosed and allows the user to choose another color
ControlPanel
a panel that have buttons that control the program
DrawingPanel
a panel that allows you to draw on it with your mouse
FreeDrawShape
shape that consists of points to allow the user to drag any line he wants
KeyBoardManager
manage all supported shortcuts using a list and function pointers.
Main  
MouseController
controlls the mouse input and update the screen accordingly
MouseController.MouseMode  
MouseModeSwitch
a switch to choose if you want to drag or click twice to paint
MyBoundedShape
represent shapes that have area
MyCircle
a circle defined by two points, restricts to a valid circle!
MyLine
represents line that can be drawn
MyOval
makes a oval and draws it
MyRectangle
a rectangle shape class that knows how to draw the rectangle
MyRoundedRectangle
a rounded rectangle that draws rectangle width rounded corners
MyShape
class that represent the basic attributes of shape
RoundnessPanel
a panel that controls how round the roundedRectangle is
SettingPanel
allows the user to change settings regarding the shape drawing
ShapeAdapter
access the global constants in the Shapes enums in order to activate user changes
ShapeFactory
makes new shapes with this factory, helps share settings throw different screens
ShapeFactory.Shapes
the shapes that the factory supports, and representing strings for them
ShapesPanel
a panel that allows the user to choose what shape is beeing drawn
ShapeStack
implement a stack of shapes using ArrayList
ShortCut
wrap a single shortcut - the keys that will activate it and the function that will be called
StackAdapter
adapter to access the stack controller using :: expressions
StackController
send commands to the shape stack and update the drawing panel after the command have been done.
ThicknessControllerPanel
control the line thickness using a slider that updates our factory
ToolPanel
makes a panel that inclued all of the panels that control the program