contrib.com.blogofbug.swing.layout
Class OffsetCaroselLayout

java.lang.Object
  extended by contrib.com.blogofbug.swing.layout.CaroselLayout
      extended by contrib.com.blogofbug.swing.layout.OffsetCaroselLayout
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.LayoutManager, java.util.EventListener

public class OffsetCaroselLayout
extends CaroselLayout

Offsets a normal carousel layout be a fixed amount allowing it be "moved" around the screen.

Author:
nigel

Field Summary
 
Fields inherited from class contrib.com.blogofbug.swing.layout.CaroselLayout
additionalData, components, numberOfItems, rotationalOffset, targetOffset
 
Constructor Summary
OffsetCaroselLayout(java.awt.Container forContainer)
          Creates a new instance of OffsetCaroselLayout
 
Method Summary
protected  java.awt.Point calculateCenter(java.awt.Insets insets, int width, int height, int widest)
          Determines the center of the carousel based on the dimensions of the container
protected  java.awt.Dimension getCarouselRadius(java.awt.Container target, java.awt.Insets insets, int width, int height, int widestComponent)
          Determines how "wide" the carousel should be drawn based on the side of the container the layout is laying out
 void setFrontMostComponent(java.awt.Component component)
          Over-rides the normal setFrontMostComponent to move the selected component to 3 o'clock instead of 6 o'clock
protected  boolean shouldHide(java.awt.Component comp, double angle, double scale)
          Overrides the normal layout method to determine if the object is offscreen and can therefore be ignored (giving a performance gain).
 
Methods inherited from class contrib.com.blogofbug.swing.layout.CaroselLayout
actionPerformed, addLayoutComponent, finalizeLayoutImmediately, getAngle, getComponentCount, getComponentIndex, getNeutralContentWidth, getNextComponent, getPosition, getPreviousComponent, getScale, isAnimating, layoutContainer, minimumLayoutSize, moveComponentTo, preferredLayoutSize, recalculateCarosel, recalculateVisibleItems, removeLayoutComponent, setAngle, setDepthBasedAlpha, setNeutralContentWidth, setTarget
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OffsetCaroselLayout

public OffsetCaroselLayout(java.awt.Container forContainer)
Creates a new instance of OffsetCaroselLayout

Parameters:
forContainer - The container to associate the layout with.
Method Detail

shouldHide

protected boolean shouldHide(java.awt.Component comp,
                             double angle,
                             double scale)
Overrides the normal layout method to determine if the object is offscreen and can therefore be ignored (giving a performance gain). In addition, it will adjust the alpha of the component based on its distance from 3'oclock (or 15:00 if you use a 24-hour compass)

Overrides:
shouldHide in class CaroselLayout
Parameters:
comp - The component to consider
angle - Its position on the carousel.
scale - The scale (applied to size) of the image, that is, how far from the observer is it
Returns:
True if it should be hidden, false if it should not

getCarouselRadius

protected java.awt.Dimension getCarouselRadius(java.awt.Container target,
                                               java.awt.Insets insets,
                                               int width,
                                               int height,
                                               int widestComponent)
Determines how "wide" the carousel should be drawn based on the side of the container the layout is laying out

Overrides:
getCarouselRadius in class CaroselLayout
Parameters:
target - The container the radius should be calculated for
insets - Any insets of the container
width - The width of the container
height - The height of the container
widestComponent - The widest component
Returns:
The size (in a bounding box) of the carousel

calculateCenter

protected java.awt.Point calculateCenter(java.awt.Insets insets,
                                         int width,
                                         int height,
                                         int widest)
Determines the center of the carousel based on the dimensions of the container

Overrides:
calculateCenter in class CaroselLayout
Parameters:
insets - The container insets
width - Width of the container
height - The height of the container
widest - width of the container
Returns:
A point representing the new center

setFrontMostComponent

public void setFrontMostComponent(java.awt.Component component)
Over-rides the normal setFrontMostComponent to move the selected component to 3 o'clock instead of 6 o'clock

Overrides:
setFrontMostComponent in class CaroselLayout
Parameters:
component - The component to move to the 'front'