package org.ovirt.engine.ui.common.view.popup;
/**
* Interface implemented by widgets acting as containers holding focusable child components.
*/
public interface FocusableComponentsContainer {
/**
* Updates tab index for each child component that can gain focus, returning next available tab index.
* <p>
* {@code nextTabIndex} represents the currently available tab index value. Implementations should therefore assign
* {@code nextTabIndex} to the first child component, {@code nextTabIndex+1} to the second one, etc. Method should
* return should the next available tab index value.
* <p>
* For example:
*
* <pre>
* public class ContainerImpl extends Composite implements FocusableComponentsContainer {
*
* @Override
* public int setTabIndexes(int nextTabIndex) {
* // childOne implements FocusableComponentsContainer
* nextTabIndex = childOne.setTabIndexes(nextTabIndex);
*
* // childTwo implements Focusable
* childTwo.setTabIndex(nextTabIndex++);
*
* return nextTabIndex;
* }
*
* }
* </pre>
*
* @param nextTabIndex
* Currently available tab index value.
* @return Next available tab index value.
*/
public int setTabIndexes(int nextTabIndex);
}