开发者

vaadin application menu

I have a vaadin application that redirect after login to a view with header / left menu and a main panel.

how can I set the menu or any link to switch the main panel according to a specific contents

If I click contact It set ContactLa开发者_Go百科yout in the main panel.

PS: I know how to set a menu like in vaadin documentation but I want to know what to set as command for the menu item.

thanks


I suggest you to keep a Map<MenuItem,AbstractLayout> and when a MenuItem is clicked, remove all the components of your Panel, and add the layout get from the Map.

Visually :

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));
    }

}

}

Hope it will work.

Regards

Éric

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜