/*
* Ext GWT 2.2.4 - Ext for GWT
* Copyright(c) 2007-2010, 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.button.ToolButton;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.google.gwt.user.client.ui.Widget;
public class FieldSetHandler extends FocusHandler {
@Override
public boolean canHandleKeyPress(Component component, PreviewEvent pe) {
return component instanceof FieldSet || (component instanceof ToolButton && component.getParent() instanceof FieldSet);
}
@Override
public void onTab(Component component, PreviewEvent pe) {
FieldSet fs = (FieldSet) ((component instanceof FieldSet) ? component : component.getParent());
if (pe.isShiftKey()) {
Widget w = findPreviousWidget(fs);
if (isContainer(w) && !w.getElement().getClassName().contains("x-panel-collapsed")) {
stepInto(w, pe, false);
} else {
focusWidget(w);
}
} else {
if (!fs.isExpanded()) {
focusNextWidget(fs);
return;
}
stepInto(fs, pe, true);
}
}
}