|
|
|
@@ -23,25 +23,33 @@ import java.awt.FocusTraversalPolicy;
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public class FocusTraversalOnArray extends FocusTraversalPolicy {
|
|
|
|
public class FocusTraversalOnArray extends FocusTraversalPolicy {
|
|
|
|
private final Component m_Components[];
|
|
|
|
private final Component m_Components[];
|
|
|
|
|
|
|
|
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Constructor
|
|
|
|
// Constructor
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
public FocusTraversalOnArray(Component components[]) {
|
|
|
|
/**
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* FocusTraversalOnArray.
|
|
|
|
|
|
|
|
* @param components a Component
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public FocusTraversalOnArray(final Component[] components) {
|
|
|
|
m_Components = components;
|
|
|
|
m_Components = components;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Utilities
|
|
|
|
// Utilities
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
private int indexCycle(int index, int delta) {
|
|
|
|
private int indexCycle(final int index, final int delta) {
|
|
|
|
int size = m_Components.length;
|
|
|
|
int size = m_Components.length;
|
|
|
|
int next = (index + delta + size) % size;
|
|
|
|
int next = (index + delta + size) % size;
|
|
|
|
return next;
|
|
|
|
return next;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private Component cycle(Component currentComponent, int delta) {
|
|
|
|
|
|
|
|
|
|
|
|
private Component cycle(final Component currentComponent, final int delta) {
|
|
|
|
int index = -1;
|
|
|
|
int index = -1;
|
|
|
|
loop: for (int i = 0; i < m_Components.length; i++) {
|
|
|
|
loop: for (int i = 0; i < m_Components.length; i++) {
|
|
|
|
Component component = m_Components[i];
|
|
|
|
Component component = m_Components[i];
|
|
|
|
@@ -69,24 +77,51 @@ public class FocusTraversalOnArray extends FocusTraversalPolicy {
|
|
|
|
// not found
|
|
|
|
// not found
|
|
|
|
return currentComponent;
|
|
|
|
return currentComponent;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// FocusTraversalPolicy
|
|
|
|
// FocusTraversalPolicy
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
public Component getComponentAfter(Container container, Component component) {
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @param container a Container
|
|
|
|
|
|
|
|
* @param component a Component
|
|
|
|
|
|
|
|
* @return Component
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public final Component getComponentAfter(final Container container, final Component component) {
|
|
|
|
return cycle(component, 1);
|
|
|
|
return cycle(component, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public Component getComponentBefore(Container container, Component component) {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @param container a Container
|
|
|
|
|
|
|
|
* @param component a Component
|
|
|
|
|
|
|
|
* @return Component
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public final Component getComponentBefore(final Container container, final Component component) {
|
|
|
|
return cycle(component, -1);
|
|
|
|
return cycle(component, -1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public Component getFirstComponent(Container container) {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @param container a Container
|
|
|
|
|
|
|
|
* @return Component
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public final Component getFirstComponent(final Container container) {
|
|
|
|
return m_Components[0];
|
|
|
|
return m_Components[0];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public Component getLastComponent(Container container) {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @param container a Container
|
|
|
|
|
|
|
|
* @return Component
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public final Component getLastComponent(final Container container) {
|
|
|
|
return m_Components[m_Components.length - 1];
|
|
|
|
return m_Components[m_Components.length - 1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public Component getDefaultComponent(Container container) {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @param container a Container
|
|
|
|
|
|
|
|
* @return Component
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public final Component getDefaultComponent(final Container container) {
|
|
|
|
return getFirstComponent(container);
|
|
|
|
return getFirstComponent(container);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|