Как добавить видовой экран в макет Аккордеон - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть приложение, использующее макет границы для 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);

Так может ли кто-нибудь помочь мне в этом.

1 Ответ

1 голос
/ 17 ноября 2011

Неправильно добавлять Viewport в любой виджет ... вы должны использовать один Viewport на одной странице.

...