У меня есть приложение, использующее макет границы для Viewport.
Теперь мне нужно добавить весь этот видовой экран в макет аккордеона, я пытаюсь сделать это, создав панель аккордеона, а затем создал еще одну панель контента с макетом как FitLayout. Добавил Viewport в этой недавно созданной панели, а затем, наконец, добавил эту панель в мою основную панель аккордеона
Соответствующий код:
viewport = new Viewport();
viewport.setLayout(new BorderLayout());
menuBar = new ArmMenuBar();
createNorth();
createWest();
createEast();
createCenter();
createSouth();
//Added for Accordion Layout.
ContentPanel panel = new ContentPanel();
panel.setHeading("AccordionLayout");
panel.setBodyBorder(false);
panel.setLayout(new AccordionLayout());
ContentPanel cp = new ContentPanel();
cp.setAnimCollapse(false);
cp.setHeading("Portfolios Tab");
cp.setLayout(new FitLayout());
// registry serves as a global context
Registry.register(ClientConstant.VIEWPORT, viewport);
Registry.register(ClientConstant.ROOT_WEST_PANEL, west);
Registry.register(ClientConstant.ROOT_CENTER_PANEL, center);
Registry.register(ClientConstant.ROOT_EAST_PANEL, east);
// Registry.register(ClientConstant.ROOT_SOUTH_PANEL, south);
RootPanel.get().add(viewport);
KeyNav<ComponentEvent> key = new KeyNav<ComponentEvent>(viewport);
key.addKeyNavListener(new KeyNavListener() {
@Override
public void onEnter(ComponentEvent ce) {
System.out.println("");
}
});
//Added for Accordion Layout.
cp.add(viewport);
panel.add(cp);
Но я получаю ошибки приведения класса из-под данной строки
((BorderLayout) viewport.getLayout()).hide(LayoutRegion.WEST);
Так может ли кто-нибудь помочь мне в этом.