Class StateBubble

    • Field Detail

      • NORMAL_STATE

        public static final int NORMAL_STATE
        The style of a regular state
        See Also:
        Constant Field Values
      • INITIAL_STATE

        public static final int INITIAL_STATE
        The style of an initial state
        See Also:
        Constant Field Values
      • FINAL_STATE

        public static final int FINAL_STATE
        The style of a finalstate
        See Also:
        Constant Field Values
    • Constructor Detail

      • StateBubble

        public StateBubble​(double x,
                           double y,
                           double width,
                           double height)
        Create a new figure at the given coordinates. The figure, by default, has a unit-width continuous black outline and no fill.
      • StateBubble

        public StateBubble​(double x,
                           double y,
                           double width,
                           double height,
                           java.awt.Paint fill)
        Create a new figure at the given coordinates and with the given fill.
    • Method Detail

      • getBounds

        public java.awt.geom.Rectangle2D getBounds()
        Get the bounding box of this figure. This method overrides the inherited method to take account of the thickness of the stroke, if there is one.
        Specified by:
        getBounds in interface Figure
        Overrides:
        getBounds in class AbstractFigure
        Returns:
        the bounding box of this figure.
      • getShape

        public java.awt.Shape getShape()
        Get the shape of this figure.
        Specified by:
        getShape in interface Figure
        Specified by:
        getShape in class AbstractFigure
        Returns:
        the outline shape of this figure
      • getStateType

        public int getStateType()
        Get the state type. This will be one of NORMAL_STATE, INITIAL_STATE, or FINAL_STATE.
      • getStroke

        public java.awt.Stroke getStroke()
        Get the stroke of this figure.
      • getStrokePaint

        public java.awt.Paint getStrokePaint()
        Get the stroke paint pattern of this figure.
      • hit

        public boolean hit​(java.awt.geom.Rectangle2D r)
        Test if this figure intersects the given rectangle. If there is a fill but no outline, then there is a hit if the shape is intersected. If there is an outline but no fill, then the area covered by the outline stroke is tested. If there is both a fill and a stroke, the region bounded by the outside edge of the stroke is tested. If there is neither a fill nor a stroke, then return false. If the figure is not visible, always return false.
        Specified by:
        hit in interface Figure
        Overrides:
        hit in class AbstractFigure
        Parameters:
        r - The rectangle to be checked.
        Returns:
        true if the figure is hit by the given rectangle.
      • paint

        public void paint​(java.awt.Graphics2D g)
        Paint the figure. The figure is redrawn with the current shape, fill, and outline.
        Specified by:
        paint in interface VisibleComponent
        Specified by:
        paint in class AbstractFigure
        Parameters:
        g - The 2D graphics object that this object it to be painted upon.
      • setFillPaint

        public void setFillPaint​(java.awt.Paint p)
        Set the fill paint pattern of this figure. The figure will be filled with this paint pattern. If no pattern is given, do not fill it.
      • setStroke

        public void setStroke​(java.awt.BasicStroke s)
        Set the stroke of this figure.
      • setStateType

        public void setStateType​(int type)
        Set the type of the state
      • setStrokePaint

        public void setStrokePaint​(java.awt.Paint p)
        Set the stroke paint pattern of this figure.
      • transform

        public void transform​(java.awt.geom.AffineTransform at)
        Transform the figure with the supplied transform. This can be used to perform arbitrary translation, scaling, shearing, and rotation operations. As much as possible, this method attempts to preserve the type of the shape: if the shape of this figure is an of RectangularShape or Polyline, then the shape may be modified directly. Otherwise, a general transformation is used that loses the type of the shape, converting it into a GeneralPath.
        Specified by:
        transform in interface Figure
        Specified by:
        transform in class AbstractFigure
        Parameters:
        at - The transform to be used.
      • translate

        public void translate​(double x,
                              double y)
        Translate the figure with by the given distance. As much as possible, this method attempts to preserve the type of the shape: if the shape of this figure is an of RectangularShape or Polyline, then the shape may be modified directly. Otherwise, a general transformation is used that loses the type of the shape, converting it into a GeneralPath.
        Specified by:
        translate in interface Figure
        Overrides:
        translate in class AbstractFigure
        Parameters:
        x - The x value to be moved.
        y - The y value to be moved.