在vaadin中有垂直菜单吗?

时间:2013-06-14 07:04:01

标签: vaadin

我经常使用rich-faces来创建用户界面,最近我通过了vaadin。 现在我正在寻找vaadin中的垂直menù,是否有这种组件?

Rich-faces有以下内容:

http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=panelMenu&skin=blueSky

2 个答案:

答案 0 :(得分:1)

如果您使用的是vaadin 6.2+,则可以使用此附加组件:

https://vaadin.com/directory#addon/melodion

但我想你正在使用vaadin 7,所以你可以通过

获得相同的结果

答案 1 :(得分:1)

不幸的是,vaadin只提供了一个菜单栏。

如果您有html和css方面的经验,可以创建自己的垂直菜单,然后使用vaadin CustomLayout将其嵌入到面板中。

例如,您可以尝试这样的事情。

您应该创建一个html文件:

<table width="100%" height="100%">
  <tr height="100%">
    <td>
      <table align="center">
        <tr>
          <td align="left">Menu 1</td>
          <td><div location="menu1"></div></td>
        </tr>
        <tr>
          <td align="right">Menu2</td>
          <td><div location="menu2"></div></td>
        </tr>
      </table>
    </td>
  </tr>
</table>

然后你应该以这种方式将它嵌入vaadin:

// Have a Panel where to put the custom layout.
Panel panel = new Panel("Menu");
panel.setSizeUndefined();
main.addComponent(panel);

// Create custom layout from "yourfile.html" template.
CustomLayout custom = new CustomLayout("layoutname");

//the style name refers the one you should define in css
custom.addStyleName("customlayoutexample");

// Use it as the layout of the Panel.
panel.setContent(custom);

// Create a few components and bind them to the location tags
// in the custom layout.
TextField menu1 = new TextField();
custom.addComponent(menu1, "menu1");


TextField menu2 = new TextField();
custom.addComponent(menu2, "menu2");

注意绑定位置名称和组件名称。

如果你想将一些javascript添加到xml(对于打开/关闭菜单元素),你应该直接在tag属性中编写它。