edu.wisc.ssec.mcidasv.util
Class FocusTraveller

java.lang.Object
  extended by java.awt.FocusTraversalPolicy
      extended by edu.wisc.ssec.mcidasv.util.FocusTraveller

public class FocusTraveller
extends FocusTraversalPolicy

Abstraction of FocusTraversalPolicy that allows for easy creation of the traversal policy.

Note that the "delta" parameter of both cycle(Component, int) and indexCycle(int, int) can be any positive or negative integer. Both methods compute indices using the wonders of modular arithmetic.


Field Summary
private  Component[] components
          Components to traverse, stored in the desired traversal order.
 
Constructor Summary
FocusTraveller(Collection<Component> componentsToTraverse)
          Creates the FocusTraversalPolicy for the given components.
FocusTraveller(Component... componentsToTraverse)
          Creates the FocusTraversalPolicy.
 
Method Summary
private  Component cycle(Component currentComponent, int delta)
          Cycles through components.
 Component getComponentAfter(Container container, Component component)
          Gets the next component after component.
 Component getComponentBefore(Container container, Component component)
          Gets the component before component.
 Component getDefaultComponent(Container container)
          Not used.
 Component getFirstComponent(Container container)
          Gets the first component.
 Component getLastComponent(Container container)
          Gets the last component.
private  int indexCycle(int index, int delta)
          Cycles through valid index values.
 
Methods inherited from class java.awt.FocusTraversalPolicy
getInitialComponent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

components

private final Component[] components
Components to traverse, stored in the desired traversal order.

Constructor Detail

FocusTraveller

public FocusTraveller(Component... componentsToTraverse)
Creates the FocusTraversalPolicy.

Parameters:
components - Components to traverse, in the desired order. Cannot be null.

FocusTraveller

public FocusTraveller(Collection<Component> componentsToTraverse)
Creates the FocusTraversalPolicy for the given components.

Parameters:
componentsToTraverse - Components to traverse. Cannot be null.
Method Detail

indexCycle

private int indexCycle(int index,
                       int delta)
Cycles through valid index values.

Parameters:
index - Current index.
delta - Index of next component, relative to index.
Returns:
Next index value.

cycle

private Component cycle(Component currentComponent,
                        int delta)
Cycles through components.

Parameters:
currentComponent - Cannot be null.
delta - Index of next component, relative to currentComponent.
Returns:
The "next" component in the traversal order.

getComponentAfter

public Component getComponentAfter(Container container,
                                   Component component)
Gets the next component after component.

Specified by:
getComponentAfter in class FocusTraversalPolicy
Parameters:
container - Ignored.
component - Cannot be null.
Returns:
Next component after component.

getComponentBefore

public Component getComponentBefore(Container container,
                                    Component component)
Gets the component before component.

Specified by:
getComponentBefore in class FocusTraversalPolicy
Parameters:
container - Ignored.
component - Cannot be null.
Returns:
The Component before component in traversal order.

getFirstComponent

public Component getFirstComponent(Container container)
Gets the first component.

Specified by:
getFirstComponent in class FocusTraversalPolicy
Parameters:
container - Ignored.
Returns:
The first Component in traversal order.

getLastComponent

public Component getLastComponent(Container container)
Gets the last component.

Specified by:
getLastComponent in class FocusTraversalPolicy
Parameters:
container - Ignored.
Returns:
The last Component in traversal order.

getDefaultComponent

public Component getDefaultComponent(Container container)
Not used. See getFirstComponent(Container).

Specified by:
getDefaultComponent in class FocusTraversalPolicy
Parameters:
container - Ignored.
Returns:
The first Component in traversal order.