6

ブール値をvaadinグリッドのチェックボックスとして表示しようとしています。チェックボックス付きの2つの列が必要なため、複数選択モードを使用できません。チェックボックス シェルの列にはキャプションがありますが、チェックボックス自体のシェルにはキャプションがありません。誰にもアイデアはありますか?

4

3 に答える 3

5

このレポhttps://github.com/vaadin/grid-renderers-collection-addonを使用することをお勧めします。このプロジェクトは Vaadin 開発者によって開発され、CheckboxRenderer クラスを提供します。デモで見ることができますが、使い方はとても簡単です。

まず、リポジトリと依存関係をプロジェクトに追加する必要があります。Maven では次のようになります。

...
<repositories>
    ...
    <repository>
        <id>vaadin-addons</id>
        <url>http://maven.vaadin.com/vaadin-addons</url>
    </repository>
</repositories>
...
<dependencies>
    ...
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>grid-renderers-collection-addon</artifactId>
        <version>0.94</version>
    </dependency>
</dependencies>
...

次に、次のように使用できます。

grid.getColumn(columnName).setRenderer(new CheckboxRenderer());

リスナーを簡単に追加することもできます:

CheckboxRenderer renderer = new CheckboxRenderer();
grid.getColumn(columnName).setRenderer(renderer);
grid.getColumn(columnName).setHeaderCaption("");
renderer.addClickListener(e -> System.out.println("Hello listener!"));
于 2016-12-20T23:14:29.520 に答える
1

チェックボックス用に生成された列を追加する必要があります

    GeneratedPropertyContainer gpcontainer = new GeneratedPropertyContainer(container);
    gpcontainer.addGeneratedProperty("columnName",
        new PropertyValueGenerator<CheckBox>() {
        @Override
        public CheckBox getValue(Item item, Object itemId,
                                Object propertyId) {

            // set checkBox listener etc. in here
            return new CheckBox();
        }

        @Override
        public Class<CheckBox> getType() {
            return CheckBox.class;
        }
    });

Grid grid = new Grid(gpcontainer);

ここの「GeneratedPropertyContainer」セクションで、より詳細な例を見つけることができます。

https://vaadin.com/docs/-/part/framework/datamodel/datamodel-container.html#datamodel.container.gpc

編集:列に「ComponentRenderer」も設定します

mainGrid.addColumn(COLUMN).setRenderer(new ComponentRenderer())
于 2016-11-07T12:24:20.013 に答える