|
Groovy Documentation | |||||||
| FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectcom.blogofbug.swing.layout.CaroselLayout
public class CaroselLayout extends Object
Layout engine for JCarousel components (although would work for any container). It does have a closer than usual relationship with the container, sometimes causing the container to repaint.
| Nested Class Summary | |
|---|---|
class |
CaroselLayout.CaroselPosition
|
| Field Summary | |
|---|---|
protected Hashtable |
additionalData
List of additional information held on components in the carousel |
private Timer |
animationTimer
Time for driving animations |
protected LinkedList |
components
List of components being laid out |
private Container |
container
The container the layout is... laying out |
private boolean |
depthBasedAlpha
Should items furtehr away from the observer be faded out? |
private int |
neutralContentWidth
The width of a component when the scale is 1.0 |
protected int |
numberOfItems
Number of items in the carousel (that are visible) |
protected double |
rotationalOffset
The current degree of rotation of the carousel |
protected double |
targetOffset
The desired rotational offset, which will be moved to by a timer animating the carousel |
| Constructor Summary | |
CaroselLayout(Container forContainer)
Creates a new instance of the layout engine, tied to the specified container. |
|
| Method Summary | |
|---|---|
void
|
actionPerformed(ActionEvent actionEvent)
Manages timer actions, terminating the timer if any event is fully achieved |
void
|
addLayoutComponent(String name, Component comp)
Name is ignored |
protected Point
|
calculateCenter(Insets insets, int width, int height, int widest)
Determines the center of the carousel |
void
|
finalizeLayoutImmediately()
Moves everything to their "target" positions, without animating anything |
double
|
getAngle()
Returns the current rotational angle |
protected Dimension
|
getCarouselRadius(Container target, Insets insets, int width, int height, int widestComponent)
Determines the correct size of the carousel for the container |
int
|
getComponentCount()
The number of components being laid out. |
int
|
getComponentIndex(Component comp)
Gets the index of the supplied component |
int
|
getNeutralContentWidth()
The size of comopnents a neutral width |
Component
|
getNextComponent(Component component)
Retrieve the component after the specified one. |
protected CaroselLayout.CaroselPosition
|
getPosition(Component comp)
Gets the additional data stored by the layout manager for a given component |
Component
|
getPreviousComponent(Component component)
Retrieve the component before the specified one. |
protected double
|
getScale(double angle, double x, double y, double carouselX, double carouselY)
Determines the scale to be applied to the component. |
protected boolean
|
isAnimating()
Determines if an animation is currently playing |
void
|
layoutContainer(Container target)
Lays out all of the components on the carosel. |
Dimension
|
minimumLayoutSize(Container parent)
Cheats and bases it's size on the prefered sizes of each component |
void
|
moveComponentTo(int i, Component comp)
Moves a layout component at a particular location in the carousel |
Dimension
|
preferredLayoutSize(Container parent)
Determine the widest and tallest dimensions, then return the height as 1.5 * the highest, and 3 * the widest |
protected void
|
recalculateCarosel()
Updates all of the positions of the carousel. |
protected int
|
recalculateVisibleItems()
Determines how many of the items being laid out are currently visible. |
void
|
removeLayoutComponent(Component comp)
Remove the component |
void
|
setAngle(double d)
Sets the current rotational angle. |
void
|
setDepthBasedAlpha(boolean depthBasedAlpha)
Controls if items should fade as they move to the back of the carousel |
void
|
setFrontMostComponent(Component component)
Moves the specified component to the front |
void
|
setNeutralContentWidth(int neutralContentWidth)
Specify the neutral content width of any laid out component. |
protected void
|
setTarget(double target)
Sets a target angle to rotate to, always choses a direction that is less than or equal to 180 degrees |
protected boolean
|
shouldHide(Component comp, double angle, double s)
Can be over-ridden to restrict the range of angles where the child component is shown |
| Methods inherited from class Object | |
|---|---|
| wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
| Field Detail |
|---|
protected Hashtable additionalData
private Timer animationTimer
protected LinkedList components
private Container container
private boolean depthBasedAlpha
private int neutralContentWidth
protected int numberOfItems
protected double rotationalOffset
protected double targetOffset
| Constructor Detail |
|---|
public CaroselLayout(Container forContainer)
forContainer - The container the layout will layout
| Method Detail |
|---|
public void actionPerformed(ActionEvent actionEvent)
actionEvent - the action event, although this will always be the timer
public void addLayoutComponent(String name, Component comp)
name - The name of the component, ignored.comp - The component being added
protected Point calculateCenter(Insets insets, int width, int height, int widest)
insets - The insets of the containerwidth - The width of the containerheight - The height of the containerwidest - The widest component
public void finalizeLayoutImmediately()
public double getAngle()
protected Dimension getCarouselRadius(Container target, Insets insets, int width, int height, int widestComponent)
target - The target containerinsets - Insets into the target containerwidth - Width of the target containerheight - Height of the target containerwidestComponent - The widest component in the container
public int getComponentCount()
public int getComponentIndex(Component comp)
comp - The component
public int getNeutralContentWidth()
public Component getNextComponent(Component component)
component - The component
protected CaroselLayout.CaroselPosition getPosition(Component comp)
comp - The component you wish retreive the data for
public Component getPreviousComponent(Component component)
component - The component you are looking for the one before for.
protected double getScale(double angle, double x, double y, double carouselX, double carouselY)
angle - The angle of the componentx - The x-position of the componenty - The y-position of the componentcarouselX - The x centre of the carouselcarouselY - The y centre of the carousel
protected boolean isAnimating()
public void layoutContainer(Container target)
target - The container currently being laid out
public Dimension minimumLayoutSize(Container parent)
parent - The container interested in the layout size
public void moveComponentTo(int i, Component comp)
i - The location at which to insertcomp - The component to insert
public Dimension preferredLayoutSize(Container parent)
parent - The container for the layout
protected void recalculateCarosel()
protected int recalculateVisibleItems()
public void removeLayoutComponent(Component comp)
comp - The component being removed
public void setAngle(double d)
d - The desired angle in radians
public void setDepthBasedAlpha(boolean depthBasedAlpha)
depthBasedAlpha - True if they should fade, false if they shouldn't
public void setFrontMostComponent(Component component)
component - The component move to the front
public void setNeutralContentWidth(int neutralContentWidth)
neutralContentWidth - The neutral width of components
protected final void setTarget(double target)
target - The target angle in radians
protected boolean shouldHide(Component comp, double angle, double s)
comp - Controls if components are hidden or not, in the case of this layout it always returns falseangle - The angle of the component under considerations - The scale of the component under consideration
Groovy Documentation