/*
* 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 java.util.ArrayList;
import java.util.List;
import com.extjs.gxt.ui.client.widget.CollapsePanel;
import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Header;
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
import com.google.gwt.user.client.ui.Widget;
public class ContentPanelNavigationHandler implements NavigationHandler {
public List<Widget> getOrderedWidgets(Widget widget) {
ContentPanel panel = null;
if (widget instanceof HorizontalPanel) {
panel = (ContentPanel)widget.getParent().getParent();
} else if (widget.getParent() instanceof ContentPanel){
panel = (ContentPanel) widget.getParent();
} else {
panel = (ContentPanel) widget;
}
List<Widget> widgets = new ArrayList<Widget>();
Header header = panel.getHeader();
for (int i = 0, len = header.getTools().size(); i < len; i++) {
widgets.add(header.getTool(i));
}
if (panel.getTopComponent() != null) {
widgets.add(panel.getTopComponent());
}
for (int i = 0, len = panel.getItemCount(); i < len; i++) {
widgets.add(panel.getItem(i));
}
if (panel.getBottomComponent() != null) {
widgets.add(panel.getBottomComponent());
}
if (panel.getButtonBar() != null && panel.getButtonBar().getItemCount() > 0 ) {
widgets.add(panel.getButtonBar());
}
if (panel instanceof CollapsePanel) {
widgets.add(((CollapsePanel)panel).getCollapseButton());
}
return widgets;
}
public boolean canHandleTabKey(Component comp) {
if (comp instanceof HorizontalPanel) {
return comp.getParent() instanceof Header;
}
return comp instanceof ContentPanel;
}
}