edu.jhu.tmaj.client.image.draw
Class PolygonDrawable

java.lang.Object
  extended by edu.jhu.tmaj.client.image.draw.AbstractDrawable
      extended by edu.jhu.tmaj.client.image.draw.PolygonDrawable
All Implemented Interfaces:
Drawable, java.io.Serializable

public final class PolygonDrawable
extends AbstractDrawable
implements Drawable, java.io.Serializable

A polygon

See Also:
Serialized Form

Field Summary
(package private) static int SIZE_OF_POINTS_LIST_FIELD
           
 
Fields inherited from class edu.jhu.tmaj.client.image.draw.AbstractDrawable
BLACK_SQUARE_SIZE, drawableLabel, isCompleted, MARGIN, userID
 
Constructor Summary
PolygonDrawable(DrawableLabel d)
           
 
Method Summary
(package private) static boolean checkPolygonLength(java.awt.Polygon polygon, java.awt.Component component)
           
 void createFromShapeRecord(ShapeRecord shapeRecord)
          Called from subclasses that override this method, this class only sets the shapeID variable
 boolean createNewShapeOnMousePress()
          Returns true
 void draw(java.awt.Graphics g)
          Sets the color and draws the black squares aroudn the Drawable
protected  Point[] getBlackSquares()
          Returns an empty array; This method is overwritten in subclasses
 InsertSQL getInsertSQL(int scoredImageID)
          Returns a SQL statement to update an existing shape in the database.
 UpdateSQL getUpdateSQL()
          Returns a SQL statement to insert this shape into the database.
 void handleMouseDragged(java.awt.event.MouseEvent e)
          Moves the shape depending on difference between last point, if the user has finished drawing it.
 void handleMousePressed(java.awt.event.MouseEvent e)
          Registers tempX and tempX if moving is allowed
 void handleMouseReleased(java.awt.event.MouseEvent e)
          Does nothing: unlike most shapes MouseReleased() does not mean the user is done drawing the shape
 boolean isValid()
          Returns true if the shape is "worth saving".
protected  void move(int xDiff, int yDiff)
          Moves the shape by adding xDiff and YDiff to it's current x and y, respectively.
 boolean shouldPointActivate(int xPos, int yPos)
          Returns true if the x and y are close enough to the border of the shape to "Select" the shape
 
Methods inherited from class edu.jhu.tmaj.client.image.draw.AbstractDrawable
allowMoving, changeNormalStatusToModified, drawBlackSquare, drawBlackSquares, getColor, getDrawingX, getDrawingY, getNormalX, getNormalY, getShapeID, getStatus, getUserID, handleKeyPressed, isCompleted, isHighlighted, repaintDrawableLabel, setDrawableLabel, setIsCompleted, setIsHighlighted, setShapeID, setStatus, setUserID
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface edu.jhu.tmaj.client.image.draw.Drawable
getShapeID, getStatus, handleKeyPressed, isCompleted, isHighlighted, setIsCompleted, setIsHighlighted, setShapeID, setStatus, setUserID
 

Field Detail

SIZE_OF_POINTS_LIST_FIELD

static final int SIZE_OF_POINTS_LIST_FIELD
See Also:
Constant Field Values
Constructor Detail

PolygonDrawable

public PolygonDrawable(DrawableLabel d)
Method Detail

handleMousePressed

public void handleMousePressed(java.awt.event.MouseEvent e)
Description copied from class: AbstractDrawable
Registers tempX and tempX if moving is allowed

Specified by:
handleMousePressed in interface Drawable
Overrides:
handleMousePressed in class AbstractDrawable

checkPolygonLength

static boolean checkPolygonLength(java.awt.Polygon polygon,
                                  java.awt.Component component)

handleMouseReleased

public void handleMouseReleased(java.awt.event.MouseEvent e)
Does nothing: unlike most shapes MouseReleased() does not mean the user is done drawing the shape

Specified by:
handleMouseReleased in interface Drawable
Overrides:
handleMouseReleased in class AbstractDrawable

handleMouseDragged

public void handleMouseDragged(java.awt.event.MouseEvent e)
Description copied from class: AbstractDrawable
Moves the shape depending on difference between last point, if the user has finished drawing it.

Specified by:
handleMouseDragged in interface Drawable
Overrides:
handleMouseDragged in class AbstractDrawable

move

protected void move(int xDiff,
                    int yDiff)
Description copied from class: AbstractDrawable
Moves the shape by adding xDiff and YDiff to it's current x and y, respectively.

Specified by:
move in class AbstractDrawable

draw

public void draw(java.awt.Graphics g)
Description copied from class: AbstractDrawable
Sets the color and draws the black squares aroudn the Drawable

Specified by:
draw in interface Drawable
Overrides:
draw in class AbstractDrawable

shouldPointActivate

public boolean shouldPointActivate(int xPos,
                                   int yPos)
Description copied from interface: Drawable
Returns true if the x and y are close enough to the border of the shape to "Select" the shape

Specified by:
shouldPointActivate in interface Drawable

isValid

public boolean isValid()
Description copied from interface: Drawable
Returns true if the shape is "worth saving". A line of zero length of text with 0 characters is not valid

Specified by:
isValid in interface Drawable

createFromShapeRecord

public void createFromShapeRecord(ShapeRecord shapeRecord)
Description copied from class: AbstractDrawable
Called from subclasses that override this method, this class only sets the shapeID variable

Specified by:
createFromShapeRecord in interface Drawable
Overrides:
createFromShapeRecord in class AbstractDrawable

getInsertSQL

public InsertSQL getInsertSQL(int scoredImageID)
Description copied from class: AbstractDrawable
Returns a SQL statement to update an existing shape in the database.

Specified by:
getInsertSQL in interface Drawable
Specified by:
getInsertSQL in class AbstractDrawable

getUpdateSQL

public UpdateSQL getUpdateSQL()
Description copied from class: AbstractDrawable
Returns a SQL statement to insert this shape into the database.

Specified by:
getUpdateSQL in interface Drawable
Specified by:
getUpdateSQL in class AbstractDrawable

createNewShapeOnMousePress

public boolean createNewShapeOnMousePress()
Description copied from class: AbstractDrawable
Returns true

Specified by:
createNewShapeOnMousePress in interface Drawable
Overrides:
createNewShapeOnMousePress in class AbstractDrawable

getBlackSquares

protected Point[] getBlackSquares()
Description copied from class: AbstractDrawable
Returns an empty array; This method is overwritten in subclasses

Overrides:
getBlackSquares in class AbstractDrawable