0

私は Vaadin の初心者です。テーブルを作成しました。BeanItemCOntainer を介してその中にデータを入力できます。以下はこのコードです。

public Component getMainContent(ViewChangeListener.ViewChangeEvent event) {
        List<ExecutionPlanVO> executionPlanVOs = executionPlanDelegate.getExecutionPlans(getSearchVO());
        Table table = new Table();
        BeanItemContainer<ExecutionPlanVO> container = new BeanItemContainer<ExecutionPlanVO>(ExecutionPlanVO.class, executionPlanVOs);
        container.addBean(new ExecutionPlanVO());
        table.setContainerDataSource(container);
        table.setVisibleColumns(
                new Object[] {"billOfladingNo" , "containerNo" , "houseBill" , "carrier" , "customer" , "origin" , "pol" , "transshipment" ,
                        "pod" , "destination" , "start" , "completion" , "status"});
        table.setColumnHeaders(
                new String[] {"Bill Of Lading" , "Container No." , "House Bill" , "Carrier" , "Customer" , "Origin" , "POL" , "Transshipment" ,
                        "POD" , "Destination" , "Start (LT)" , "Completion (LT)" , "Status"});
        table.setStyleName("ep-list-table");
        return table;

    }

ここで 2 つの質問があります。1. billOfladingNo 列をリンクとして変更したいと思います。2. いくつかのリンク アイコンを含むもう 1 つの列を追加したいですか?

列を追加する方法を教えてください。

事前にキランに感謝します。

4

2 に答える 2

0

リンクとアイコンを返す ColumnGenerator を実装するクラスを作成できます。以下のサンプルを作成しました

class Linker implements ColumnGenerator{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Override
    public Object generateCell(Table source, Object itemId, Object columnId) {
        // TODO Auto-generated method stub

        Item item = source.getItem(itemId);
        Link link = new Link();
        String linkCaption = item.getItemProperty("billOfladingNo").toString();
        link.setCaption(linkCaption);
        link.setResource(new ExternalResource("http:/www.domain.com/"+linkCaption));
        return link;
    }



}

class LinkIcons implements ColumnGenerator{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Override
    public Object generateCell(Table source, Object itemId, Object columnId) {
        // TODO Auto-generated method stub

        Label icons = new Label();
        icons.setIcon(FontAwesome.LINK);
        return icons;
    }
}
    table.addGeneratedColumn("billOfLading", new Linker());
table.addGeneratedColumn("link", LinkIcons);

必ず、Bean からの Billofflading を非表示にし、生成された列 ID をテーブルの表示 ID に追加してください。

于 2015-06-24T05:41:47.447 に答える
-1

7.XX の場合に使用する vaadin のバージョンによって異なります。

選択した列のタイプをコンテナに設定できます。

container.addContainerProperty("billOfladingNo", new Link, null);

最初のパラメータはあなたの列のプロパティです

2ndは持ちたいタイプ

3 番目がデフォルト値です

それはあなたの列のタイプになります: com.vaadin.ui.Link

ナビゲーション可能な新しいリンクを作成するには:

        Link link = new Link("CAPTION", new ExternalResource("URL"));

2 番目の質問では、HTML を受け入れるようにリンク キャプションを設定してから、FontAwesome アイコン html を設定する必要があります。

    link.setCaptionAsHtml(true);
    link.setCaption(FontAwesome.ANCHOR.getHtml());
于 2015-06-16T17:28:29.610 に答える