javapoint.components
Class GraphicObject

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javapoint.components.GraphicObject
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
DiamondGraphicObject, ImageGraphicObject, LineGraphicObject, OctagonGraphicObject, OvalGraphicObject, RectangleGraphicObject, TableGraphicObject, TextGraphicObject, TriangleGraphicObject

public abstract class GraphicObject
extends javax.swing.JComponent
implements java.lang.Cloneable

This class is the base class for the components manipulated by the user.
It provides common mouse behavior (select, drag, resize).

See Also:
Serialized Form

Nested Class Summary
static class GraphicObject.LineStyle
           
 class GraphicObject.ResizeHandle
          This class defines the location and mouse behavior of the resize handles.
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int COMPONENT_MINIMUM_SIZE
           
 int fill
           
static int linear
           
static int radial
           
static float RESIZE_HANDLE_BOTTOM
           
static int RESIZE_HANDLE_DEFAULT_SIZE
           
static float RESIZE_HANDLE_LEFT
           
static float RESIZE_HANDLE_MIDDLE
           
static float RESIZE_HANDLE_RIGHT
           
static float RESIZE_HANDLE_TOP
           
static int solid
           
protected  double temporaryAngleRadians
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
  GraphicObject(Slide slide)
           
protected GraphicObject(Slide slide, GraphicObject toCopy)
           
 
Method Summary
 boolean contains(java.awt.Point point)
           
protected  boolean containsPoint(java.awt.Point point)
          Check if the object contains point
abstract  GraphicObject deepCopy(Slide slide)
           
 void delete()
           
protected abstract  void doPaint(java.awt.Graphics2D slideGraphics)
          This method should be overriden.
 void drawResizeBox(java.awt.Graphics slideGraphics)
           
 void flipHorizontal(boolean updateUndoStack)
           
protected  void flipModelHorizontal()
           
protected  void flipModelVertical()
           
 void flipVertical(boolean updateUndoStack)
           
 java.lang.Object getDraggableObjectAt(java.awt.Point point)
           
 int getFillAlpha()
           
 java.awt.Color getFillColor()
           
 java.awt.GradientPaint getGradient()
           
 int getLineAlpha()
           
 java.awt.Color getLineColor()
           
 GraphicObject.LineStyle getLineStyle()
           
 int getLineWidth()
           
 java.awt.Polygon getPolygon()
           
 java.awt.RadialGradientPaint getRadialGradient()
           
 GraphicObject.ResizeHandle getResizeHandle(float proportionalLocationX, float proportionalLocationY)
           
protected  GraphicObject.ResizeHandle[] getResizeHandles()
           
 Slide getSlide()
           
protected  java.awt.BasicStroke getStroke()
           
abstract  org.w3c.dom.Node getXMLRepresentation(org.w3c.dom.Document document)
           
 boolean isLinearGradient()
           
 boolean isRadialGradient()
           
 boolean isSolidFill()
           
 void paint(java.awt.Graphics graphics)
           
 void print(java.awt.Graphics printerGraphics)
           
 void rotate(double angleRadians, boolean updateUndoStack)
          Rotate graphic object
protected  void rotateModel(double angleRadians)
          Rotate model implementatioon
 void setFillAlpha(int fillAlpha)
           
 void setFillColor(java.awt.Color fillColor)
           
 void setGradientFill(java.awt.Color c1, java.awt.Color c2, java.awt.Point p1, java.awt.Point p2, boolean cyclic)
           
 void setLineAlpha(int lineAlpha)
           
 void setLineColor(java.awt.Color lineColor)
           
 void setLineStyle(GraphicObject.LineStyle lineStyle)
           
 void setLineWidth(int lineWidth)
           
 void setLocation(int x, int y)
           
 void setPolygon(java.awt.Polygon p)
           
 void setRadialFill(java.awt.Color c1, java.awt.Color c2, java.awt.Point center, int radius, boolean cyclic)
           
 void setSolidFill()
           
abstract  void updateModelBounds()
          Called during resize action.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fill

public int fill

solid

public static final int solid
See Also:
Constant Field Values

linear

public static final int linear
See Also:
Constant Field Values

radial

public static final int radial
See Also:
Constant Field Values

temporaryAngleRadians

protected double temporaryAngleRadians

RESIZE_HANDLE_DEFAULT_SIZE

public static final int RESIZE_HANDLE_DEFAULT_SIZE
See Also:
Constant Field Values

COMPONENT_MINIMUM_SIZE

public static final int COMPONENT_MINIMUM_SIZE
See Also:
Constant Field Values

RESIZE_HANDLE_TOP

public static final float RESIZE_HANDLE_TOP
See Also:
Constant Field Values

RESIZE_HANDLE_LEFT

public static final float RESIZE_HANDLE_LEFT
See Also:
Constant Field Values

RESIZE_HANDLE_MIDDLE

public static final float RESIZE_HANDLE_MIDDLE
See Also:
Constant Field Values

RESIZE_HANDLE_BOTTOM

public static final float RESIZE_HANDLE_BOTTOM
See Also:
Constant Field Values

RESIZE_HANDLE_RIGHT

public static final float RESIZE_HANDLE_RIGHT
See Also:
Constant Field Values
Constructor Detail

GraphicObject

public GraphicObject(Slide slide)
Parameters:
slide -
Not null
Shared

GraphicObject

protected GraphicObject(Slide slide,
                        GraphicObject toCopy)
Method Detail

isSolidFill

public boolean isSolidFill()

isLinearGradient

public boolean isLinearGradient()

isRadialGradient

public boolean isRadialGradient()

setSolidFill

public void setSolidFill()

setGradientFill

public void setGradientFill(java.awt.Color c1,
                            java.awt.Color c2,
                            java.awt.Point p1,
                            java.awt.Point p2,
                            boolean cyclic)

setRadialFill

public void setRadialFill(java.awt.Color c1,
                          java.awt.Color c2,
                          java.awt.Point center,
                          int radius,
                          boolean cyclic)

getGradient

public java.awt.GradientPaint getGradient()

getRadialGradient

public java.awt.RadialGradientPaint getRadialGradient()

getResizeHandles

protected GraphicObject.ResizeHandle[] getResizeHandles()
Returns:

Not null

getLineAlpha

public final int getLineAlpha()
Returns:

Range: [0 .. 255]

setLineAlpha

public final void setLineAlpha(int lineAlpha)
Parameters:
lineAlpha -
Range: [0 .. 255]

getFillAlpha

public final int getFillAlpha()
Returns:

Range: [0 .. 255]

setFillAlpha

public final void setFillAlpha(int fillAlpha)
Parameters:
fillAlpha -
Range: [0 .. 255]

getFillColor

public final java.awt.Color getFillColor()
Returns:

Not null
Shared

setFillColor

public final void setFillColor(java.awt.Color fillColor)
Parameters:
fillColor -
Not null
Shared

getLineColor

public final java.awt.Color getLineColor()
Returns:

Not null
Shared

setLineColor

public final void setLineColor(java.awt.Color lineColor)
Parameters:
lineColor -
Not null
Shared

getLineStyle

public final GraphicObject.LineStyle getLineStyle()
Returns:

Not null
Shared

setLineStyle

public final void setLineStyle(GraphicObject.LineStyle lineStyle)
Parameters:
lineStyle -
Not null
Shared

getLineWidth

public final int getLineWidth()
Returns:

Range: [1 .. 10]

setLineWidth

public final void setLineWidth(int lineWidth)
Parameters:
lineWidth -
Range: [1 .. 10]

getDraggableObjectAt

public java.lang.Object getDraggableObjectAt(java.awt.Point point)
Parameters:
point -
Should not be null
Returns:
The ResizeHandle instance at location point or this if there is none
A non-null value
A reference

getSlide

public final Slide getSlide()
Returns:

A non-null value
A reference

paint

public void paint(java.awt.Graphics graphics)
Overrides:
paint in class javax.swing.JComponent

updateModelBounds

public abstract void updateModelBounds()
Called during resize action. This method is supposed to be overriden by derived classes.


doPaint

protected abstract void doPaint(java.awt.Graphics2D slideGraphics)
This method should be overriden.
This method should only be called by paint(Graphics).

Parameters:
slideGraphics -
Not null

print

public void print(java.awt.Graphics printerGraphics)
Overrides:
print in class javax.swing.JComponent

setLocation

public void setLocation(int x,
                        int y)
Overrides:
setLocation in class java.awt.Component

flipHorizontal

public void flipHorizontal(boolean updateUndoStack)

flipVertical

public void flipVertical(boolean updateUndoStack)

flipModelHorizontal

protected void flipModelHorizontal()

flipModelVertical

protected void flipModelVertical()

getPolygon

public java.awt.Polygon getPolygon()

setPolygon

public void setPolygon(java.awt.Polygon p)

getStroke

protected final java.awt.BasicStroke getStroke()
Returns:

Not null
Shared

getResizeHandle

public final GraphicObject.ResizeHandle getResizeHandle(float proportionalLocationX,
                                                        float proportionalLocationY)
Parameters:
proportionalLocationX -
Range: {RESIZE_HANDLE_LEFT, RESIZE_HANDLE_MIDDLE, RESIZE_HANDLE_RIGHT}
proportionalLocationY -
Range: {RESIZE_HANDLE_TOP, RESIZE_HANDLE_MIDDLE, RESIZE_HANDLE_BOTTOM}
Returns:

Not null
Shared
Throws:
java.lang.IllegalArgumentException - if the location is no valid

drawResizeBox

public void drawResizeBox(java.awt.Graphics slideGraphics)
Parameters:
slideGraphics -
Not null
Input-output

contains

public final boolean contains(java.awt.Point point)
Overrides:
contains in class java.awt.Component

containsPoint

protected boolean containsPoint(java.awt.Point point)
Check if the object contains point

Parameters:
point - point in coordinates of slide
Not null
Returns:
true of the object contains point, false otherwise.

rotate

public void rotate(double angleRadians,
                   boolean updateUndoStack)
Rotate graphic object

Parameters:
angleRadians - angle in radians
updateUndoStack - flag if update undo stack

getXMLRepresentation

public abstract org.w3c.dom.Node getXMLRepresentation(org.w3c.dom.Document document)

rotateModel

protected void rotateModel(double angleRadians)
Rotate model implementatioon

Parameters:
angleRadians - angle in radians Should be overriden in descendents

delete

public void delete()

deepCopy

public abstract GraphicObject deepCopy(Slide slide)