/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.ui.client.aria;
import com.extjs.gxt.ui.client.event.PreviewEvent;
import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.ContentPanel;
public class ContentPanelHandler extends FocusHandler {
@Override
public boolean canHandleKeyPress(Component component, PreviewEvent pe) {
return false;//component instanceof ContentPanel;
}
@Override
public void onEnter(Component component, PreviewEvent pe) {
if (!isManaged()) return;
pe.stopEvent();
ContentPanel panel = (ContentPanel) component;
if (panel.getHeader().getToolCount() > 0) {
focusWidget(panel.getHeader().getTool(0));
return;
}
if (panel.getTopComponent() != null) {
focusWidget(panel.getTopComponent());
} else {
stepInto(panel, pe, true);
}
}
@Override
public void onTab(Component component, PreviewEvent pe) {
if (!isManaged()) {
return;
}
pe.stopEvent();
if (component instanceof ContentPanel) {
focusNextWidget(component);
} else {
ContentPanel panel = (ContentPanel) component.getParent();
if (!pe.isShiftKey() && panel.indexOf(component) == panel.getItemCount() - 1) {
if (panel.getBottomComponent() != null) {
focusWidget(panel.getBottomComponent());
} else if (panel.getHeader().getToolCount() > 0) {
focusWidget(panel.getHeader().getTool(0));
}
return;
}
if (pe.isShiftKey() && panel.indexOf(component) == 0) {
if (panel.getTopComponent() != null) {
focusWidget(panel.getTopComponent());
}
}
}
}
}