public class Canvas extends javax.swing.JPanel implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener, java.awt.event.KeyListener, CElement
 A canvas that displays a scene composed of graphical objects. A canvas handles
 a display list containing CShape objects. It is
 ordered from back to front, i.e. the frontmost object is the last in the list.
 Whenever the contents of the display list is modified, a repaint is triggered to update the display.
 
 The display list contains CShape objects. It is
 ordered from back to front, i.e. the frontmost object is the last in the
 list. Whenever the contents of the display list is modified, a repaint is
 triggered to update the display.
 
 
 CStateMachine is a class that implements state machines dedicated 
 to program interaction with a canvas. See StateMachine 
 for a description of the syntax and use of state machines.
 Once a state machine is attached to a canvas and is active, it receives and handles all input events.
 The canvas may have several active state machines; they receive and handle the same events. State machines can be attached
 to a subpart of a canvas, i.e. a shape or a tag, to reduce their scope.
 
 Events handled by state machines are mouse events, the keyboard events,
 the time out events (triggered by armTimer) and animation events.
 
CStateMachine, 
CShape, 
Serialized FormTOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description | 
|---|
Canvas()
Builds a Canvas. 
 | 
Canvas(int w,
      int h)
Builds a Canvas. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
CElement | 
above(CElement before)
Does Anything. 
 | 
CElement | 
aboveAll()
Does Anything. 
 | 
void | 
addGhost()
Calls addGhost() on every CShape contained in this  
CElement. | 
Canvas | 
addShape(CShape sms)
Adds a shape to the canvas. 
 | 
CElement | 
addTag(CExtensionalTag t)
Calls  
addTag(Canvas.Tag t) for every CShape contained in this CElement. | 
CElement | 
addTag(java.lang.String t)
Calls  
addTag(String t) for every CShape contained in this CElement. | 
CElement | 
animate(Animation anim)
Calls  
animate(Animation animTagScale) for every CShape
 contained in this Canvas. | 
void | 
attachSM(CStateMachine sm,
        boolean reset)
Attaches a state machine to this  
CElement to describe its behavior. | 
CElement | 
below(CElement after)
Does Anything. 
 | 
CElement | 
belowAll()
Does Anything. 
 | 
static boolean | 
contains(CElement container,
        CElement element)
Tests if a  
CElement is a subset of another
 CElement. | 
CShape | 
contains(double x,
        double y)
Returns the topmost CShape containing the point (x, y). 
 | 
CShape | 
contains(double x,
        double y,
        double w,
        double h)
Returns the topmost CShape containing a given rectangle R. 
 | 
CShape | 
contains(java.awt.geom.Point2D p)
Returns the topmost CShape containing the point p. 
 | 
CShape | 
contains(java.awt.Rectangle r)
Returns the topmost CShape containing a given rectangle. 
 | 
void | 
detachSM(CStateMachine sm)
Detaches a state machine from this  
CElement. | 
CShape | 
firstShape()
Returns the first shape contained in this  
CElement. | 
CElement | 
fixReferenceShapeToCurrent() | 
java.util.List<CTag> | 
getAllTags()  | 
java.util.LinkedList<CShape> | 
getAntialiasedShapes()
Returns the list of CShape that have this tag and that are antialiased. 
 | 
CRectangle | 
getBoundingBox() | 
Canvas | 
getCanvas()
Returns the canvas in which this CElement is displayed. 
 | 
double | 
getCenterX() | 
double | 
getCenterY() | 
java.awt.Shape | 
getClip()  | 
java.util.List<CShape> | 
getDisplayList()  | 
java.util.LinkedList<CShape> | 
getFilledShapes()
Returns the list of CShape that have this tag and that are filled. 
 | 
CShape | 
getFirstAntialiasedShape()
Returns the first antialiased CShape contained in this  
CElement. | 
CShape | 
getFirstFilledShape()
Returns the first CShape contained in this  
CElement and that is filled. | 
CShape | 
getFirstHavingTag(CTag t)
Returns the topmost CShape that has tag t. 
 | 
CShape | 
getFirstOutlinedShape()
Returns the first CShape contained in this  
CElement and that is outlined. | 
CPolyLine | 
getIntersection(CShape s)
Tests whether a  
CShape s intersects this
 CElement. | 
double | 
getMaxX() | 
double | 
getMaxY() | 
double | 
getMinX() | 
double | 
getMinY() | 
java.util.LinkedList<CShape> | 
getOutlinedShapes()
Returns the list of CShape that have this tag and that are outlined. 
 | 
java.util.List<CStateMachine> | 
getSMs()
Returns the state machines attached to this canvas. 
 | 
ClassTag | 
getTag(java.lang.Class tagClass)
Returns an intentional tag object grouping shapes having a tag of a given
 class. 
 | 
CNamedTag | 
getTag(java.lang.String tag)
Returns the tag object given its name. 
 | 
boolean | 
hasTag(CTag t)
Returns true if every shape with this tag also has tag t. 
 | 
boolean | 
hasTag(java.lang.String t)
Returns true if every shape with this tag also has tag t. 
 | 
CShape | 
intersects(CShape s)
Returns the topmost  
CShape that intersects the given CShape s. | 
boolean | 
isAntialiased()
Returns True if the canvas is antialiased. 
 | 
boolean | 
isDrawable()
Returns true if every shape contained in this  
CElement is drawable. | 
boolean | 
isFilled()
Calls  
isFilled() for every CShape contained in this CElement. | 
CShape | 
isOnOutline(java.awt.geom.Point2D p)
Returns the topmost CShape whose outline contains the point p. 
 | 
boolean | 
isOutlined()
Returns true if every shape contained in this  
CElement is outlined. | 
boolean | 
isPickable()
Returns true if every shape contained in this  
CElement is pickable. | 
boolean | 
isTracking(CElement element)
Tests if one of the attached state machines is waiting for changes of
  
element. | 
void | 
keyPressed(java.awt.event.KeyEvent arg0) | 
void | 
keyReleased(java.awt.event.KeyEvent arg0) | 
void | 
keyTyped(java.awt.event.KeyEvent arg0) | 
void | 
mouseClicked(java.awt.event.MouseEvent event) | 
void | 
mouseDragged(java.awt.event.MouseEvent event) | 
void | 
mouseEntered(java.awt.event.MouseEvent event) | 
void | 
mouseExited(java.awt.event.MouseEvent event) | 
void | 
mouseMoved(java.awt.event.MouseEvent arg0) | 
void | 
mousePressed(java.awt.event.MouseEvent event) | 
void | 
mouseReleased(java.awt.event.MouseEvent event) | 
void | 
mouseWheelMoved(java.awt.event.MouseWheelEvent event) | 
CDynamicWidget | 
newDynamicWidget(javax.swing.JComponent b,
                double x,
                double y,
                int delayInMilliseconds)
Create a new dynamic widget and add it to the canvas (i.e. 
 | 
CEllipse | 
newEllipse(double x,
          double y,
          double w,
          double h)
Creates a new ellipse and add it to the canvas. 
 | 
CEllipse | 
newEllipse(java.awt.geom.Point2D p,
          double w,
          double h)
Creates a new ellipse and add it to the canvas. 
 | 
CImage | 
newImage(double x,
        double y,
        java.awt.image.BufferedImage image)
Create a new image and add it to the canvas. 
 | 
CImage | 
newImage(double x,
        double y,
        java.io.InputStream imageStream)
Create a new image and add it to the canvas. 
 | 
CImage | 
newImage(double x,
        double y,
        java.lang.String imageFile)
Create a new image and add it to the canvas. 
 | 
CImage | 
newImage(double x,
        double y,
        java.net.URL imageURL)
Create a new image and add it to the canvas. 
 | 
CPolyLine | 
newPolyLine()
Create a new empty polyline and add it to the canvas. 
 | 
CPolyLine | 
newPolyLine(double x,
           double y)
Create a new polyline and add it to the canvas. 
 | 
CPolyLine | 
newPolyLine(java.awt.geom.Point2D p)
Create a new polyline and add it to the canvas. 
 | 
CRectangle | 
newRectangle(double x,
            double y,
            double w,
            double h)
Creates a new rectangle and add it to the canvas. 
 | 
CRectangle | 
newRectangle(java.awt.geom.Point2D p,
            double w,
            double h)
Creates a new rectangle and add it to the canvas. 
 | 
CRectangle | 
newRoundRectangle(double x,
                 double y,
                 double w,
                 double h,
                 double arcw,
                 double arch)
Creates a new rectangle and add it to the canvas. 
 | 
CRectangle | 
newRoundRectangle(java.awt.geom.Point2D p,
                 double w,
                 double h,
                 double arcw,
                 double arch)
Creates a new rectangle and add it to the canvas. 
 | 
CSegment | 
newSegment(double x1,
          double y1,
          double x2,
          double y2)
Creates a new segment and add it to the canvas. 
 | 
CSegment | 
newSegment(java.awt.geom.Point2D p1,
          java.awt.geom.Point2D p2)
Creates a new segment and add it to the canvas. 
 | 
CNamedTag | 
newTag(java.lang.String t)
Returns a named tag object given its name. 
 | 
CText | 
newText(double x,
       double y,
       java.lang.String text)
Create a new text and add it to the canvas. 
 | 
CText | 
newText(double x,
       double y,
       java.lang.String text,
       java.awt.Font font)
Create a new text and add it to the canvas. 
 | 
CText | 
newText(java.awt.geom.Point2D p,
       java.lang.String text)
Create a new text and add it to the canvas. 
 | 
CText | 
newText(java.awt.geom.Point2D p,
       java.lang.String text,
       java.awt.Font font)
Create a new text and add it to the canvas. 
 | 
CWidget | 
newWidget(javax.swing.JComponent b)
Create a new widget and add it to the canvas. 
 | 
CWidget | 
newWidget(javax.swing.JComponent b,
         double x,
         double y)
Create a new widget and add it to the canvas (i.e. 
 | 
CWidget | 
newWidget(javax.swing.JComponent b,
         double x,
         double y,
         double w,
         double h)
Create a new widget and add it to the canvas. 
 | 
void | 
paintComponent(java.awt.Graphics g) | 
CShape | 
pick(java.awt.geom.Point2D p)
Returns the topmost shape at a given position. 
 | 
java.util.LinkedList<CShape> | 
pickAll(java.awt.geom.Point2D p)
Returns a list containing all the shapes at a given position. 
 | 
CShape | 
pickShapeHavingTag(java.awt.geom.Point2D p,
                  CTag tag)
Returns the top most shape having a given tag at a given position. 
 | 
CShape | 
pickShapeHavingTag(java.awt.geom.Point2D p,
                  java.lang.String tag)
Returns the top most shape having a given named tag at a given position. 
 | 
void | 
processEvent(java.lang.String event,
            java.awt.geom.Point2D pt)
Processes an event to all the state machines that monitor this canvas, a
 shape in this canvas or a tag attached to shapes in this canvas. 
 | 
void | 
processEvent(VirtualEvent virtualEvent)
Processes an event to all the state machines that monitor this canvas, a
 shape in this canvas or a tag attached to shapes in this canvas. 
 | 
Canvas | 
removeAllShapes()
Removes all shapes from this canvas. 
 | 
void | 
removeGhost()
Calls removeGhost() on every CShape contained in this  
CElement. | 
Canvas | 
removeShape(CShape shape)
Removes a shape from the canvas. 
 | 
Canvas | 
removeShapes(CTag shapes)
Removes a set of tagged shapes from the canvas. 
 | 
CElement | 
removeTag(CExtensionalTag t)
Calls  
removeTag(Tag t) for every CShape contained in this CElement only if t is a SMExtensionalTag, 
 does nothing otherwise. | 
CElement | 
removeTag(java.lang.String t)
Calls  
removeTag(String t) for every CShape contained in this CElement. | 
CElement | 
rotateBy(double theta)
Calls  
rotateBy(double theta) for every CShape contained in this CElement. | 
CElement | 
rotateTo(double theta)
Calls  
rotateTo(double theta) for every CShape contained in this CElement. | 
CElement | 
scaleBy(double s)
Calls  
scaleBy(double s) for every CShape contained in this CElement. | 
CElement | 
scaleBy(double sx,
       double sy)
Calls  
scale(double sx, double sy) for every CShape contained in this CElement. | 
CElement | 
scaleTo(double s)
Calls  
scaleTo(double s) for every CShape contained in this CElement. | 
CElement | 
scaleTo(double sx,
       double sy)
Calls  
scaleTo(double sx, double sy) for every CShape contained in this CElement. | 
CElement | 
setAntialiased(boolean a)
Sets the antialiasing for every CShape drawn in this canvas (global
 antialiasing). 
 | 
CElement | 
setClip(CShape clip)
Sets the clip for every CShape drawn in this canvas (global rendering
 hints). 
 | 
void | 
setClip(java.awt.Shape clip)  | 
CElement | 
setDrawable(boolean f)
Calls  
setDrawable(boolean) for every CShape contained in this CElement. | 
CElement | 
setFilled(boolean f)
Calls  
setFilled(boolean) for every CShape contained in this CElement. | 
CElement | 
setFillPaint(java.awt.Paint fp)
Calls  
setFillPaint(Paint fp) for every CShape contained in this CElement. | 
CElement | 
setOutlined(boolean f)
Calls  
setOutlined(boolean) for every CShape contained in this CElement. | 
CElement | 
setOutlinePaint(java.awt.Paint op)
Calls  
setOutlinePaint(Paint op) for every CShape contained in this CElement. | 
CElement | 
setParent(CShape parent)
Calls  
setParent(CShape parent) for every CShape contained in this CElement. | 
CElement | 
setPickable(boolean pick)
Calls  
setPickable(boolean) for every CShape contained in this CElement. | 
CElement | 
setReferencePoint(double x,
                 double y)
Calls  
setReferencePoint(double x, double y) for every CShape contained in this CElement. | 
CElement | 
setRenderingHint(java.awt.RenderingHints.Key hintKey,
                java.lang.Object hintValue)
Sets the rendering hints for every CShape drawn in this canvas (global
 rendering hints). 
 | 
CElement | 
setShape(java.awt.Shape sh)
Calls  
setShape(Shape sh) for every CShape contained in this CElement. | 
CElement | 
setStroke(java.awt.Stroke str)
Calls  
setStroke(Shape sh) for every CShape contained in this CElement. | 
CElement | 
setTransformToIdentity()
Calls  
setTransformToIdentity() for every CShape contained in this CElement. | 
CElement | 
setTransparencyFill(java.awt.AlphaComposite transparencyFill)
Calls  
setTransparencyFill(AlphaComposite transparencyFill) for every CShape contained in this CElement. | 
CElement | 
setTransparencyFill(float alpha)
Calls  
setTransparencyFill(float alpha) for every CShape contained in this CElement. | 
CElement | 
setTransparencyOutline(java.awt.AlphaComposite transparencyOutline)
Calls  
setTransparencyOutline(AlphaComposite transparencyOutline) for every CShape contained in this CElement. | 
CElement | 
setTransparencyOutline(float alpha)
Calls  
setTransparencyOutline(float alpha) for every CShape contained in this CElement. | 
CElement | 
translateBy(double tx,
           double ty)
Calls  
translateBy(double tx, double ty) for every CShape contained in this CElement. | 
CElement | 
translateTo(double tx,
           double ty)
Calls  
translateTo(double tx, double ty) every CShape contained in this CElement. | 
getAccessibleContext, getUI, getUIClassID, setUI, updateUIaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validateaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, 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, 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, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic Canvas()
public Canvas(int w,
      int h)
w - The width of the canvash - The height of the canvaspublic java.util.List<CTag> getAllTags()
Canvas.public CNamedTag getTag(java.lang.String tag)
tag - The name of the tagpublic ClassTag getTag(java.lang.Class tagClass)
tagClass - The class of the tagpublic void paintComponent(java.awt.Graphics g)
paintComponent in class javax.swing.JComponentpublic void processEvent(java.lang.String event,
                java.awt.geom.Point2D pt)
pt.event - The name of the virtual event to process.pt - The point on which this event occurred.public void processEvent(VirtualEvent virtualEvent)
virtualEvent has the type VirtualCanvasEvent,
 this method performs picking on the canvas so transitions EventOnShape
 and EventOnTag can be triggered.virtualEvent - The virtual event to process.public static boolean contains(CElement container, CElement element)
CElement is a subset of another
 CElement.container - The CElement containerelement - The CElement containedelement is a subset of
         container.public boolean isTracking(CElement element)
element. (if there is one machine whose current state
 contains a CElementEvent(element, ...) transition).element - The element.element is tracked by a machine, false
         otherwise.public void mouseWheelMoved(java.awt.event.MouseWheelEvent event)
mouseWheelMoved in interface java.awt.event.MouseWheelListenerpublic void mouseClicked(java.awt.event.MouseEvent event)
mouseClicked in interface java.awt.event.MouseListenerpublic void mouseReleased(java.awt.event.MouseEvent event)
mouseReleased in interface java.awt.event.MouseListenerpublic void mouseEntered(java.awt.event.MouseEvent event)
mouseEntered in interface java.awt.event.MouseListenerpublic void mouseExited(java.awt.event.MouseEvent event)
mouseExited in interface java.awt.event.MouseListenerpublic void mouseDragged(java.awt.event.MouseEvent event)
mouseDragged in interface java.awt.event.MouseMotionListenerpublic void mouseMoved(java.awt.event.MouseEvent arg0)
mouseMoved in interface java.awt.event.MouseMotionListenerpublic void mousePressed(java.awt.event.MouseEvent event)
mousePressed in interface java.awt.event.MouseListenerpublic void keyTyped(java.awt.event.KeyEvent arg0)
keyTyped in interface java.awt.event.KeyListenerpublic void keyPressed(java.awt.event.KeyEvent arg0)
keyPressed in interface java.awt.event.KeyListenerpublic void keyReleased(java.awt.event.KeyEvent arg0)
keyReleased in interface java.awt.event.KeyListenerpublic CShape pick(java.awt.geom.Point2D p)
p - The position.p, or null
         if there is no shape at this postion.public java.util.LinkedList<CShape> pickAll(java.awt.geom.Point2D p)
p - The position.public CShape pickShapeHavingTag(java.awt.geom.Point2D p, CTag tag)
p - The position.tag - The tag.p.public CShape pickShapeHavingTag(java.awt.geom.Point2D p, java.lang.String tag)
p - The position.tag - The name of the tag.p.public Canvas addShape(CShape sms)
sms - the shape to add.public Canvas removeShape(CShape shape)
setDrawable in class CShape.shape - The shape to remove from this canvas.CShape.setDrawable(boolean)public Canvas removeShapes(CTag shapes)
shapes - The shapes that have to be deleted.public Canvas removeAllShapes()
public CSegment newSegment(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
p1 - The first point of the segment.p2 - The second point of the segment.public CSegment newSegment(double x1, double y1, double x2, double y2)
x1 - The x-coordinate of the first point of the segment.y1 - The y-coordinate of the first point of the segment.x2 - The x-coordinate of the second point of the segment.y2 - The y-coordinate of the second point of the segment.public CRectangle newRectangle(double x, double y, double w, double h)
x - The x coordinate of the upper left point of the bounding box.y - The y coordinate of the upper left point of the bounding box.w - The width of the bounding box.h - The height of the bounding box.public CRectangle newRectangle(java.awt.geom.Point2D p, double w, double h)
p - The upper left point of the bounding box.w - The width of the bounding box.h - The height of the bounding box.public CRectangle newRoundRectangle(double x, double y, double w, double h, double arcw, double arch)
x - The x coordinate of the upper left point of the bounding box.y - The y coordinate of the upper left point of the bounding box.w - The width of the bounding box.h - The height of the bounding box.arcw - The width of the arc to use to round off the corners of the
            newly constructed CRectanglearch - The height of the arc to use to round off the corners of the
            newly constructed CRectangleCRectangle.public CRectangle newRoundRectangle(java.awt.geom.Point2D p, double w, double h, double arcw, double arch)
p - The upper left point of the bounding box.w - The width of the bounding box.h - The height of the bounding box.arcw - The width of the arc to use to round off the corners of the
            newly constructed CRectanglearch - The height of the arc to use to round off the corners of the
            newly constructed CRectangleCRectangle.public CEllipse newEllipse(java.awt.geom.Point2D p, double w, double h)
p - The upper left point of the bounding box.w - The width of the bounding box.h - The height of the bounding box.public CEllipse newEllipse(double x, double y, double w, double h)
x - The x coordinate of the upper left point of the bounding box.y - The y coordinate of the upper left point of the bounding box.w - The width of the bounding box.h - The height of the bounding box.public CPolyLine newPolyLine(java.awt.geom.Point2D p)
p - The starting point.public CPolyLine newPolyLine()
public CPolyLine newPolyLine(double x, double y)
x - The x coordinate of the starting point.y - The y coordinate of the starting point.public CText newText(java.awt.geom.Point2D p, java.lang.String text, java.awt.Font font)
p - The lower left point.text - The text to display.font - The font to use to render this text.public CText newText(java.awt.geom.Point2D p, java.lang.String text)
p - The lower left point.text - The text to display.public CText newText(double x, double y, java.lang.String text, java.awt.Font font)
x - The x coordinate of the lower left point.y - The y coordinate of the lower left point.text - The text to display.font - The font to use to render this text.public CText newText(double x, double y, java.lang.String text)
x - The x coordinate of the lower left point.y - The y coordinate of the lower left point.text - The text to display.public CImage newImage(double x, double y, java.lang.String imageFile)
x - The x coordinate of the lower left point.y - The y coordinate of the lower left point.imageFile - The name of the file image (gif, jpeg or png)public CImage newImage(double x, double y, java.net.URL imageURL)
x - The x coordinate of the lower left point.y - The y coordinate of the lower left point.imageURL - The url of the file image (gif, jpeg or png)public CImage newImage(double x, double y, java.awt.image.BufferedImage image)
x - The x coordinate of the lower left point.y - The y coordinate of the lower left point.image - The imagepublic CImage newImage(double x, double y, java.io.InputStream imageStream)
x - The x coordinate of the lower left point.y - The y coordinate of the lower left point.imageStream - The url of the file image (gif, jpeg or png)public CWidget newWidget(javax.swing.JComponent b)
b - The swing widget.public CWidget newWidget(javax.swing.JComponent b, double x, double y)
b - The swing widget.x - The x coordinate of the upper left point.y - The y coordinate of the upper left point.public CDynamicWidget newDynamicWidget(javax.swing.JComponent b, double x, double y, int delayInMilliseconds)
delayInMilliseconds milliseconds,
 e.g. a video or an animated widget).b - The swing widget.x - The x coordinate of the upper left point.y - The y coordinate of the upper left point.delayInMilliseconds - The refreshing ratepublic CWidget newWidget(javax.swing.JComponent b, double x, double y, double w, double h)
b - The swing widget.x - The x coordinate of the upper left point.y - The y coordinate of the upper left point.w - The width of the bounding box.h - The height of the bounding box.public java.util.List<CStateMachine> getSMs()
public boolean isAntialiased()
isAntialiased in interface CElementCShape.isAntialiased()public CElement setRenderingHint(java.awt.RenderingHints.Key hintKey, java.lang.Object hintValue)
setRenderingHint for each shape in the canvas is more
 efficient (the same RenderingHints is referenced by all
 shapes).setRenderingHint in interface CElementhintKey - The hint keyhintValue - The hint valuepublic CElement setAntialiased(boolean a)
setAntialiased for each shape in the canvas is more
 efficient (the same RenderingHints is referenced by all
 shapes).setAntialiased in interface CElementa - True if the canvas is antialiased.CShape.setAntialiased(boolean)public CNamedTag newTag(java.lang.String t)
t - The name of the tagpublic Canvas getCanvas()
public void attachSM(CStateMachine sm, boolean reset)
CElement to describe its behavior.public void detachSM(CStateMachine sm)
CElement.public CElement setShape(java.awt.Shape sh)
setShape(Shape sh) for every CShape contained in this CElement.setShape in interface CElementsh - The shapeCElementCShape.setShape(java.awt.Shape)public CElement setParent(CShape parent)
setParent(CShape parent) for every CShape contained in this CElement.setParent in interface CElementparent - The parent shapeCElementCShape.setParent(CShape)public CElement setStroke(java.awt.Stroke str)
setStroke(Shape sh) for every CShape contained in this CElement.setStroke in interface CElementstr - The strokeCElementCShape.setStroke(java.awt.Stroke)public CElement setTransparencyFill(java.awt.AlphaComposite transparencyFill)
setTransparencyFill(AlphaComposite transparencyFill) for every CShape contained in this CElement.setTransparencyFill in interface CElementtransparencyFill - The transparencyCElementCShape.setTransparencyFill(AlphaComposite)public CElement setTransparencyFill(float alpha)
setTransparencyFill(float alpha) for every CShape contained in this CElement.setTransparencyFill in interface CElementalpha - The transparencyCElementCShape.setTransparencyFill(float)public CElement setTransparencyOutline(java.awt.AlphaComposite transparencyOutline)
setTransparencyOutline(AlphaComposite transparencyOutline) for every CShape contained in this CElement.setTransparencyOutline in interface CElementtransparencyOutline - The transparencyCElementCShape.setTransparencyOutline(AlphaComposite)public CElement setTransparencyOutline(float alpha)
setTransparencyOutline(float alpha) for every CShape contained in this CElement.setTransparencyOutline in interface CElementalpha - The transparencyCElementCShape.setTransparencyOutline(float)public CElement setFillPaint(java.awt.Paint fp)
setFillPaint(Paint fp) for every CShape contained in this CElement.setFillPaint in interface CElementfp - The paint valueCElementCShape.setFillPaint(Paint)public CElement setOutlinePaint(java.awt.Paint op)
setOutlinePaint(Paint op) for every CShape contained in this CElement.setOutlinePaint in interface CElementop - The paint valueCElementCShape.setOutlinePaint(Paint)public java.util.LinkedList<CShape> getAntialiasedShapes()
getAntialiasedShapes in interface CElementCShape.isAntialiased()public boolean isFilled()
isFilled() for every CShape contained in this CElement.isFilled in interface CElementCElement is filled.CShape.isFilled()public java.util.LinkedList<CShape> getFilledShapes()
getFilledShapes in interface CElementCShape.isFilled()public CElement setFilled(boolean f)
setFilled(boolean) for every CShape contained in this CElement.setFilled in interface CElementf - True if the shape must be filled, false otherwise.CElementCShape.setFilled(boolean)public boolean isOutlined()
CElement is outlined.isOutlined in interface CElementCElement is outlined.CShape.isOutlined()public java.util.LinkedList<CShape> getOutlinedShapes()
getOutlinedShapes in interface CElementCShape.isOutlined()public CElement setOutlined(boolean f)
setOutlined(boolean) for every CShape contained in this CElement.setOutlined in interface CElementf - True if the shape must be outlined, false otherwise.CElementCShape.setOutlined(boolean)public boolean isDrawable()
CElement is drawable.isDrawable in interface CElementCElement is drawable.CShape.isDrawable()public CElement setDrawable(boolean f)
setDrawable(boolean) for every CShape contained in this CElement.setDrawable in interface CElementf - True if the shape must be drawn, false otherwise.CElementCShape.setDrawable(boolean)public boolean isPickable()
CElement is pickable.isPickable in interface CElementCElement is pickable.CShape.isPickable()public CElement setPickable(boolean pick)
setPickable(boolean) for every CShape contained in this CElement.setPickable in interface CElementpick - True if the shape must be pickable, false otherwise.CElementCShape.setOutlined(boolean)public CElement setReferencePoint(double x, double y)
setReferencePoint(double x, double y) for every CShape contained in this CElement.setReferencePoint in interface CElementx - The x coordinate of the new reference point.y - The y coordinate of the new reference point.CElementCShape.setReferencePoint(double, double)public CElement fixReferenceShapeToCurrent()
fixReferenceShapeToCurrent in interface CElementpublic CElement setTransformToIdentity()
setTransformToIdentity() for every CShape contained in this CElement.setTransformToIdentity in interface CElementCElementCShape.setTransformToIdentity()public CElement translateBy(double tx, double ty)
translateBy(double tx, double ty) for every CShape contained in this CElement.translateBy in interface CElementtx - The x offsetty - The y offsetCElementCShape.translateBy(double, double)public CElement translateTo(double tx, double ty)
translateTo(double tx, double ty) every CShape contained in this CElement.translateTo in interface CElementtx - The x coordinatety - The y coordinateCElementCShape.translateTo(double, double)public CElement scaleBy(double sx, double sy)
scale(double sx, double sy) for every CShape contained in this CElement.scaleBy in interface CElementsx - The x scale factorsy - The y scale factorCElementCShape.scaleBy(double, double)public CElement scaleBy(double s)
scaleBy(double s) for every CShape contained in this CElement.scaleBy in interface CElements - The scale factorCElementCShape.scaleBy(double)public CElement scaleTo(double sx, double sy)
scaleTo(double sx, double sy) for every CShape contained in this CElement.scaleTo in interface CElementsx - The x scalesy - The y scaleCElementCShape.scaleTo(double, double)public CElement scaleTo(double s)
scaleTo(double s) for every CShape contained in this CElement.scaleTo in interface CElements - The scale valueCElementCShape.scaleTo(double)public CElement rotateBy(double theta)
rotateBy(double theta) for every CShape contained in this CElement.rotateBy in interface CElementtheta - The angle offsetCElementCShape.rotateBy(double)public CElement rotateTo(double theta)
rotateTo(double theta) for every CShape contained in this CElement.rotateTo in interface CElementtheta - The angleCElementCShape.rotateTo(double)public CShape contains(double x, double y)
contains in interface CElementx - The x coordinatey - The y coordinateCShape.contains(double, double)public CShape contains(java.awt.geom.Point2D p)
contains in interface CElementp - The point.CShape.contains(Point2D)public CShape contains(double x, double y, double w, double h)
contains in interface CElementx - The x coordinate of the upper left corner of Ry - The y coordinate of the upper left corner of Rw - The width of Rh - The height of RCShape.contains(double, double, double, double)public CShape contains(java.awt.Rectangle r)
contains in interface CElementr - The rectangleCShape.contains(Rectangle)public CShape isOnOutline(java.awt.geom.Point2D p)
isOnOutline in interface CElementp - The pointCShape.isOnOutline(Point2D)public CShape intersects(CShape s)
CShape that intersects the given CShape s.intersects in interface CElements - The shapeCShape that intersects the given CShape, null if no CShape intersects s.CShape.intersects(CShape)public CPolyLine getIntersection(CShape s)
CShape s intersects this
 CElement.getIntersection in interface CElements - The shapeCPolyLine if s intersects
         it, null otherwise.CShape.getIntersection(CShape)public CShape getFirstHavingTag(CTag t)
getFirstHavingTag in interface CElementt - The tagCShape.hasTag(fr.lri.swingstates.canvas.CTag)public boolean hasTag(java.lang.String t)
hasTag in interface CElementt - The name of the tagCShape.hasTag(String)public boolean hasTag(CTag t)
public CElement above(CElement before)
before, this method does nothing.above in interface CElementbefore - The element that must be right below every shape contained in this CElement in the display listCElementCShape.below(CElement)public CElement aboveAll()
aboveAll() for every CShape contained in this CElement.aboveAll in interface CElementCElementCShape.aboveAll()public CElement below(CElement after)
after, this method does nothing.below in interface CElementafter - The element that must be right above every shape contained in this CElement in the display listCShape.below(CElement)public CElement belowAll()
belowAll() for every CShape contained in this CElement.belowAll in interface CElementCElementCShape.belowAll()public CElement setClip(CShape clip)
setClip
 for each shape in the canvas is more efficient (the same
 CShape clip is referenced by all shapes).setClip in interface CElementclip - The clipping shapeCShape.setClip(CShape)public void addGhost()
CElement.addGhost in interface CElementCShape.addGhost()public void removeGhost()
CElement.removeGhost in interface CElementCShape.removeGhost()public CRectangle getBoundingBox()
getBoundingBox in interface CElementCElement.public double getMinX()
public double getMaxX()
public double getCenterX()
getCenterX in interface CElementCElement.public double getMinY()
public double getMaxY()
public double getCenterY()
getCenterY in interface CElementCElement.public CShape firstShape()
CElement.firstShape in interface CElementCElement, null if no shape is contained.public CShape getFirstAntialiasedShape()
CElement.getFirstAntialiasedShape in interface CElementCElement, null if no CShape is antialiased.CShape.isAntialiased()public CShape getFirstFilledShape()
CElement and that is filled.getFirstFilledShape in interface CElementCElement and that is filled, null if no CShape is filled.CShape.isFilled()public CShape getFirstOutlinedShape()
CElement and that is outlined.getFirstOutlinedShape in interface CElementCElement and that is outlined, null if no CShape is outlined.CShape.isOutlined()public CElement addTag(CExtensionalTag t)
addTag(Canvas.Tag t) for every CShape contained in this CElement.public CElement addTag(java.lang.String t)
addTag(String t) for every CShape contained in this CElement.addTag in interface CElementt - The name of the tagCElementCShape.addTag(String)public CElement removeTag(CExtensionalTag t)
removeTag(Tag t) for every CShape contained in this CElement only if t is a SMExtensionalTag, 
 does nothing otherwise.removeTag in interface CElementt - The tagCElementCShape.removeTag(CExtensionalTag)public CElement removeTag(java.lang.String t)
removeTag(String t) for every CShape contained in this CElement.removeTag in interface CElementt - The name of the tagCElementCShape.removeTag(String)public CElement animate(Animation anim)
animate(Animation animTagScale) for every CShape
 contained in this Canvas.animate in interface CElementanim - The animation to associate to each shape in this
            Canvas.Canvas as a CElementCShape.animate(Animation)public java.util.List<CShape> getDisplayList()
public java.awt.Shape getClip()
public void setClip(java.awt.Shape clip)