Class Blob

  • All Implemented Interfaces:
    ConnectorEnd

    public class Blob
    extends java.lang.Object
    implements ConnectorEnd
    An object that draws a blob of some kind on the end of a connector. The blob can be one of several styles, such as circle or diamond, and can either be draw filled or not. This is a low-level utility class, not a self-contained Figure.
    Version:
    $Id$
    Author:
    John Reekie
    • Constructor Summary

      Constructors 
      Constructor Description
      Blob()
      Create a new circle blob at (0,0).
      Blob​(double x, double y, double normal, int style)
      Create a new blob at the given coordinates and in the given style.
      Blob​(double x, double y, double normal, int style, double size, java.awt.Paint fillColor)
      Create a new blob at the given coordinates and in the given style.
      Blob​(int style)
      Create a new blob at (0,0) in the given style.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.awt.geom.Rectangle2D getBounds()
      Get the bounding box of the shape used to draw this connector end.
      void getConnection​(java.awt.geom.Point2D p)
      Get the connection point into the given point
      void getOrigin​(java.awt.geom.Point2D p)
      Get the origin into the given point.
      double getSizeUnit()
      Get the size unit.
      int getStyle()
      Get the style.
      boolean isFilled()
      Test if the blob is filled or not.
      void paint​(java.awt.Graphics2D g)
      Paint the blob.
      void reshape()
      Recalculate the shape of the blob.
      void setFilled​(boolean flag)
      Set the flag that determines whether to fill the blob.
      void setNormal​(double angle)
      Set the normal of the blob.
      void setOrigin​(double x, double y)
      Set the end-point of the blob.
      void setSizeUnit​(double s)
      Set the size unit.
      void setStyle​(int s)
      Set the style.
      void translate​(double x, double y)
      Translate the origin by the given amount.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • BLOB_CIRCLE

        public static final int BLOB_CIRCLE
        Specify a circle style
        See Also:
        Constant Field Values
      • BLOB_DIAMOND

        public static final int BLOB_DIAMOND
        Specify a diamond style
        See Also:
        Constant Field Values
      • BLOB_CIRCLE_DIAMOND

        public static final int BLOB_CIRCLE_DIAMOND
        Specify a circle and a diamond style
        See Also:
        Constant Field Values
      • ARROW_CIRCLE_H

        public static final int ARROW_CIRCLE_H
        Arrow, circle, H style.
        See Also:
        Constant Field Values
      • stroke

        public java.awt.Stroke stroke
        The stroke. This is needed to get the bounding box. As the default, we use a stroke width of 3.0 pixels, in order that redraw is clean even in the presence of anti-aliasing. Connectors that have non-unit stroke widths should set this variable to a stroke with appropriate width.
      • narrowStroke

        public java.awt.Stroke narrowStroke
        A narrow stroke.
    • Constructor Detail

      • Blob

        public Blob()
        Create a new circle blob at (0,0).
      • Blob

        public Blob​(int style)
        Create a new blob at (0,0) in the given style.
      • Blob

        public Blob​(double x,
                    double y,
                    double normal,
                    int style)
        Create a new blob at the given coordinates and in the given style.
      • Blob

        public Blob​(double x,
                    double y,
                    double normal,
                    int style,
                    double size,
                    java.awt.Paint fillColor)
        Create a new blob at the given coordinates and in the given style.
    • Method Detail

      • getBounds

        public java.awt.geom.Rectangle2D getBounds()
        Get the bounding box of the shape used to draw this connector end.
        Specified by:
        getBounds in interface ConnectorEnd
      • getConnection

        public void getConnection​(java.awt.geom.Point2D p)
        Get the connection point into the given point
        Specified by:
        getConnection in interface ConnectorEnd
      • getOrigin

        public void getOrigin​(java.awt.geom.Point2D p)
        Get the origin into the given point.
        Specified by:
        getOrigin in interface ConnectorEnd
      • getSizeUnit

        public double getSizeUnit()
        Get the size unit.
      • getStyle

        public int getStyle()
        Get the style.
      • isFilled

        public boolean isFilled()
        Test if the blob is filled or not.
      • paint

        public void paint​(java.awt.Graphics2D g)
        Paint the blob. This method assumes that the graphics context is already set up with the correct paint and stroke.
        Specified by:
        paint in interface ConnectorEnd
      • reshape

        public void reshape()
        Recalculate the shape of the blob.
      • setFilled

        public void setFilled​(boolean flag)
        Set the flag that determines whether to fill the blob.
      • setNormal

        public void setNormal​(double angle)
        Set the normal of the blob. The argument is the angle in radians away from the origin.
        Specified by:
        setNormal in interface ConnectorEnd
      • setOrigin

        public void setOrigin​(double x,
                              double y)
        Set the end-point of the blob.
        Specified by:
        setOrigin in interface ConnectorEnd
      • setSizeUnit

        public void setSizeUnit​(double s)
        Set the size unit. This unit is used differently depending on the style, but is generally half the width of the blob.
      • setStyle

        public void setStyle​(int s)
        Set the style.
      • translate

        public void translate​(double x,
                              double y)
        Translate the origin by the given amount.
        Specified by:
        translate in interface ConnectorEnd