代码之家  ›  专栏  ›  技术社区  ›  rmuller

如何在Vaadin流中使用带有网格的ContextMenu?

  •  1
  • rmuller  · 技术社区  · 6 年前

    当使用Vaadin流(11.0.0)时,应该可以使用 Grid 具有 ContextMenu (1.0.0). 见问题 https://github.com/vaadin/vaadin-context-menu-flow/issues/5 .

    到目前为止,我的情况是:

    @Route("menu")
    public class MenuTestView extends VerticalLayout {
    
        public MenuTestView() {
            final Grid<String> g = new Grid<>();
            g.setWidth("20em");
            g.addColumn(s -> s).setHeader("Word");
            g.addColumn(s -> s.length()).setHeader("Length");
            g.setItems("The quick brown fox jumps over the lazy dog".split("\\s+"));
    
            final Label label = new Label();
    
            final ContextMenu contextMenu = new ContextMenu();
            contextMenu.setTarget(g);
    
            contextMenu.addItem("Item 1", e -> label.setText(e.getSource().getText()));
            contextMenu.addItem("Item 2", e -> label.setText(e.getSource().getText()));
    
            add(g, label);
        }
    
    }
    

    问题:

    • 瓦丁有什么例子吗 ?
    • 在我们的用例中 上下文菜单
    • 如何根据激活关联菜单时的鼠标位置选择行?
    1 回复  |  直到 6 年前
        1
  •  3
  •   Jens Jansson    6 年前

    https://github.com/vaadin/vaadin-grid-flow/releases/tag/1.2.0

    通过在pom中添加以下内容,可以将网格升级到1.2。

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-grid-flow</artifactId>
        <version>1.2.0</version>
    </dependency>
    

    下面是测试中的示例用法: https://github.com/vaadin/vaadin-grid-flow/blob/master/src/test/java/com/vaadin/flow/component/grid/it/ContextMenuGridPage.java

        GridContextMenu<Person> contextMenu = grid.addContextMenu();
        contextMenu.addItem("Show name of context menu target item", e -> {
            String name = e.getItem().map(Person::getName)
                    .orElse("no target item");
            message.setText(name);
        });
    
    推荐文章