меню приложений vaadin - PullRequest
       21

меню приложений vaadin

0 голосов
/ 25 августа 2011

У меня есть приложение vaadin, которое перенаправляет после входа в систему представление с заголовком / левым меню и главной панелью.

как настроить меню или любую ссылку для переключения главной панели в соответствии с определенным содержимым

Если я нажимаю контакт, он устанавливает ContactLayout на главной панели.

PS: я знаю, как настроить меню, как в документации vaadin , но я хочу знать, чтоустановить в качестве команды для пункта меню.

спасибо

1 Ответ

1 голос
/ 27 августа 2011

Я предлагаю вам сохранить Map<MenuItem,AbstractLayout>, а когда вы щелкнете по пункту меню, удалите все компоненты вашей панели и добавьте макет, полученный с карты.

Визуально:

public class TestApplication extends Application {

private VerticalLayout contactLayout;

private Panel mainPanel;

Map<MenuItem, AbstractLayout> swapContentMap;

@Override
public void init() {
    Window mainWindow = new Window("Test Application");


    mainPanel = new Panel("Main Panel");
    mainWindow.addComponent(mainPanel);

    // Create all of your layout 
    // For now,  I just create a fake contact layout
    contactLayout = new VerticalLayout();

    // Here add your default layout to the right panel
    mainPanel.addComponent(contactLayout);


    Command myCommand = new MyCommand();
    MenuBar menuBar = new MenuBar();
    MenuItem menuItem = menuBar.addItem("Contact", myCommand);
    //add your other menu item

    swapContentMap = new HashMap<MenuBar.MenuItem, AbstractLayout>();
    swapContentMap.put(menuItem, contactLayout);
    //add your other menu item to the map.


    setMainWindow(mainWindow);
}

private class MyCommand implements Command
{

    public void menuSelected(MenuItem selectedItem) 
    {
        TestApplication.this.mainPanel.removeAllComponents();
        TestApplication.this.mainPanel.addComponent(swapContentMap.get(selectedItem));
    }

}

}

Надеюсь, это сработает.

С уважением

Эрик

...