Class BusyPainter
A specific painter that paints an "infinite progress" like animation.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumDirection is used to set the initial direction in which the animation starts.Nested classes/interfaces inherited from class AbstractPainter
AbstractPainter.Interpolation -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Colorprivate BusyPainter.Directionprivate intprivate Colorprivate booleanprivate intprivate Shapeprivate intprivate 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 floatcalcCube(float[] coords, Point2D.Float cp) Claclulates length of the cubic segment.private ColorcalcFrameColor(int i) Selects appropriate color for given frame based on the frame position and gradient difference.private floatcalcLengthOfQuad(float[] coords, Point2D.Float cp) Calculates length of the quadratic segmentprivate floatcalcLine(float[] coords, Point2D.Float cp) Calculates length of the linear segment.private Point2D.FloatcalcPoint(float dist2go, Point2D.Float startPoint, float[] sgmt, int w, int h) protected voiddoPaint(Graphics2D g, Object t, int width, int height) Subclasses must implement this method and perform custom painting operations here.private voiddrawAt(Graphics2D g, int i, Point2D.Float p, Point2D.Float c) Gets base color.Gets current direction of spinning.intgetFrame()Gets current frame.Gets highlight color.intGets total amount of distinct points in spinner.final ShapeGets shape of current point.protected static ShapegetScaledDefaultPoint(int height) protected static ShapegetScaledDefaultTrajectory(int height) intGets length of trail in number of points.final ShapeGets current trajectory.private Point2D.FloatgetXY(float t, float x1, float y1, float x2, float y2) Calculates the XY point for a given t value.static Point2D.FloatgetXY(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 voidInitializes painter to provided shapes and default colors.booleanGets value of centering hint.private voidvoidsetBaseColor(Color baseColor) Sets new base color.voidSets new spinning direction.voidsetFrame(int frame) Sets current frame.voidsetHighlightColor(Color highlightColor) Sets new highlight color.voidsetPaintCentered(boolean paintCentered) Centers shape in the area covered by the painter.voidsetPoints(int points) Sets total amount of points in spinner.final voidsetPointShape(Shape pointShape) Sets new point shape.voidsetTrailLength(int trailLength) Sets length of the trail in points.final voidsetTrajectory(Shape trajectory) Sets new trajectory.Methods inherited from class AbstractPainter
clearCache, configureGraphics, getFilters, getInterpolation, isAntialiasing, isCacheable, isCacheCleared, isDirty, isInPaintContext, isVisible, paint, setAntialiasing, setCacheable, setDirty, setFilters, setInPaintContext, setInterpolation, setVisible, shouldUseCache, validateMethods inherited from class 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
-
-
Method Details
-
getScaledDefaultTrajectory
-
getScaledDefaultPoint
-
init
-
doPaint
Description copied from class:AbstractPainterSubclasses must implement this method and perform custom painting operations here.- Specified by:
doPaintin 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
-
setBaseColor
Sets new base color. Bound property.- Parameters:
baseColor- Base color.
-
getHighlightColor
-
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
-
setPointShape
Sets new point shape. Bound property.- Parameters:
pointShape- new Shape.
-
getTrajectory
-
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.
-