Package org.jdesktop.swingx.painter
Class BusyPainter
A specific painter that paints an "infinite progress" like animation.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Direction is used to set the initial direction in which the animation starts.Nested classes/interfaces inherited from class org.jdesktop.swingx.painter.AbstractPainter
AbstractPainter.Interpolation
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Color
private BusyPainter.Direction
private int
private Color
private boolean
private int
private Shape
private int
private Shape
-
Constructor Summary
ConstructorsConstructorDescriptionCreates new busy painter initialized to the shape of circle and bounds size 26x26 points.BusyPainter
(int height) Creates new painter initialized to the shape of circle and bounds of square of specified height.BusyPainter
(Shape point, Shape trajectory) Initializes painter to the specified trajectory and and point shape. -
Method Summary
Modifier and TypeMethodDescriptionprivate float
calcCube
(float[] coords, Point2D.Float cp) Claclulates length of the cubic segment.private Color
calcFrameColor
(int i) Selects appropriate color for given frame based on the frame position and gradient difference.private float
calcLengthOfQuad
(float[] coords, Point2D.Float cp) Calculates length of the quadratic segmentprivate float
calcLine
(float[] coords, Point2D.Float cp) Calculates length of the linear segment.private Point2D.Float
calcPoint
(float dist2go, Point2D.Float startPoint, float[] sgmt, int w, int h) protected void
doPaint
(Graphics2D g, Object t, int width, int height) Subclasses must implement this method and perform custom painting operations here.private void
drawAt
(Graphics2D g, int i, Point2D.Float p, Point2D.Float c) Gets base color.Gets current direction of spinning.int
getFrame()
Gets current frame.Gets highlight color.int
Gets total amount of distinct points in spinner.final Shape
Gets shape of current point.protected static Shape
getScaledDefaultPoint
(int height) protected static Shape
getScaledDefaultTrajectory
(int height) int
Gets length of trail in number of points.final Shape
Gets current trajectory.private Point2D.Float
getXY
(float t, float x1, float y1, float x2, float y2) Calculates the XY point for a given t value.static Point2D.Float
getXY
(float t, Point2D.Float begin, Point2D.Float ctrl, Point2D.Float end) Calculates relative position of the point on the quad curve in time t<0,1>.protected void
Initializes painter to provided shapes and default colors.boolean
Gets value of centering hint.private void
void
setBaseColor
(Color baseColor) Sets new base color.void
Sets new spinning direction.void
setFrame
(int frame) Sets current frame.void
setHighlightColor
(Color highlightColor) Sets new highlight color.void
setPaintCentered
(boolean paintCentered) Centers shape in the area covered by the painter.void
setPoints
(int points) Sets total amount of points in spinner.final void
setPointShape
(Shape pointShape) Sets new point shape.void
setTrailLength
(int trailLength) Sets length of the trail in points.final void
setTrajectory
(Shape trajectory) Sets new trajectory.Methods inherited from class org.jdesktop.swingx.painter.AbstractPainter
clearCache, configureGraphics, getFilters, getInterpolation, isAntialiasing, isCacheable, isCacheCleared, isDirty, isInPaintContext, isVisible, paint, setAntialiasing, setCacheable, setDirty, setFilters, setInPaintContext, setInterpolation, setVisible, shouldUseCache, validate
Methods inherited from class org.jdesktop.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clone, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
-
Field Details
-
frame
private int frame -
points
private int points -
baseColor
-
highlightColor
-
trailLength
private int trailLength -
pointShape
-
trajectory
-
direction
-
paintCentered
private boolean paintCentered
-
-
Constructor Details
-
BusyPainter
public BusyPainter()Creates new busy painter initialized to the shape of circle and bounds size 26x26 points. -
BusyPainter
public BusyPainter(int height) Creates new painter initialized to the shape of circle and bounds of square of specified height.- Parameters:
height
- Painter height.
-
BusyPainter
Initializes painter to the specified trajectory and and point shape. Bounds are dynamically calculated to so the specified trajectory fits in.- Parameters:
point
- Point shape.trajectory
- Trajectory shape.
-
-
Method Details
-
getScaledDefaultTrajectory
-
getScaledDefaultPoint
-
init
Initializes painter to provided shapes and default colors.- Parameters:
point
- Point shape.trajectory
- Trajectory shape.
-
doPaint
Description copied from class:AbstractPainter
Subclasses must implement this method and perform custom painting operations here.- Specified by:
doPaint
in classAbstractPainter<Object>
- Parameters:
g
- The Graphics2D object in which to paintt
-width
-height
-
-
isPaintCentered
public boolean isPaintCentered()Gets value of centering hint. If true, shape will be positioned in the center of painted area.- Returns:
- Whether shape will be centered over painting area or not.
-
setPaintCentered
public void setPaintCentered(boolean paintCentered) Centers shape in the area covered by the painter.- Parameters:
paintCentered
- Centering hint.
-
drawAt
-
paintRotatedCenteredShapeAtPoint
-
calcPoint
private Point2D.Float calcPoint(float dist2go, Point2D.Float startPoint, float[] sgmt, int w, int h) -
calcLine
Calculates length of the linear segment.- Parameters:
coords
- Segment coordinates.cp
- Start point.- Returns:
- Length of the segment.
-
calcCube
Claclulates length of the cubic segment.- Parameters:
coords
- Segment coordinates.cp
- Start point.- Returns:
- Length of the segment.
-
calcLengthOfQuad
Calculates length of the quadratic segment- Parameters:
coords
- Segment coordinatescp
- Start point.- Returns:
- Length of the segment.
-
getXY
Calculates the XY point for a given t value. The general spline equation is: x = b0*x0 + b1*x1 + b2*x2 + b3*x3 y = b0*y0 + b1*y1 + b2*y2 + b3*y3 where: b0 = (1-t)^3 b1 = 3 * t * (1-t)^2 b2 = 3 * t^2 * (1-t) b3 = t^3 We know that (x0,y0) == (0,0) and (x1,y1) == (1,1) for our splines, so this simplifies to: x = b1*x1 + b2*x2 + b3 y = b1*x1 + b2*x2 + b3- Parameters:
t
- parametric value for spline calculation
-
getXY
public static Point2D.Float getXY(float t, Point2D.Float begin, Point2D.Float ctrl, Point2D.Float end) Calculates relative position of the point on the quad curve in time t<0,1>.- Parameters:
t
- distance on the curvectrl
- Control point in rel coordsend
- End point in rel coords- Returns:
- Solution of the quad equation for time T in non complex space in rel coords.
-
calcFrameColor
Selects appropriate color for given frame based on the frame position and gradient difference.- Parameters:
i
- Frame.- Returns:
- Frame color.
-
getFrame
public int getFrame()Gets current frame.- Returns:
- Current frame.
-
setFrame
public void setFrame(int frame) Sets current frame.- Parameters:
frame
- Current frame.
-
getBaseColor
Gets base color.- Returns:
- Base color.
-
setBaseColor
Sets new base color. Bound property.- Parameters:
baseColor
- Base color.
-
getHighlightColor
Gets highlight color.- Returns:
- Current highlight color.
-
setHighlightColor
Sets new highlight color. Bound property.- Parameters:
highlightColor
- New highlight color.
-
getPoints
public int getPoints()Gets total amount of distinct points in spinner.- Returns:
- Total amount of points.
-
setPoints
public void setPoints(int points) Sets total amount of points in spinner. Bound property.- Parameters:
points
- Total amount of points.
-
getTrailLength
public int getTrailLength()Gets length of trail in number of points.- Returns:
- Trail lenght.
-
setTrailLength
public void setTrailLength(int trailLength) Sets length of the trail in points. Bound property.- Parameters:
trailLength
- Trail length in points.
-
getPointShape
Gets shape of current point.- Returns:
- Shape of the point.
-
setPointShape
Sets new point shape. Bound property.- Parameters:
pointShape
- new Shape.
-
getTrajectory
Gets current trajectory.- Returns:
- Current spinner trajectory .
-
setTrajectory
Sets new trajectory. Expected trajectory have to be closed shape. Bound property.- Parameters:
trajectory
- New trajectory.
-
getDirection
Gets current direction of spinning.- Returns:
- Current spinning direction.
-
setDirection
Sets new spinning direction.- Parameters:
dir
- Spinning direction.
-