2012-03-28 13 views
4

非常にうまく動作するVaadinテーブルとして表示するBeanItemContainerがあります。 唯一の問題は、Beanプロパティの1つがURLであり、そのBeanプロパティをリンクにしたいことです。テーブルセル変換へのVaadin beanプロパティのカスタマイズ

)(てsetURL内のURLに「のhref = ...」を追加 - 機能はなく、

  1. それは
  2. 他の発信者が今ストリップする必要があり非常にエレガントなコードとして私に当たらない作品getメソッドを使用した後にそのタグを取得します。テーブルにクリックリスナを追加

が同様に動作しますが、

  1. それは、ポップアップブロッカーによって

を防止することができる代わりに、タブ

  • のウィンドウを開くことですプロセスを制御する方法があります。VaadinはBeanのプロパティ値を表のセルに変換しますか?

  • 答えて

    6

    テーブルでColumnGeneratorを使用し、リンクコンポーネントを生成します。

    table.addGeneratedColumn("link", new Table.ColumnGenerator() { 
        @Override 
        public Object generateCell(Table source, Object itemId, Object columnId) { 
        Item item = source.getItem(itemId); 
        String columnValue = String.valueOf(item.getItemProperty(columnId).getValue()); 
    
        String urlValue = columnValue; // Assume columnValue contains full url including protocol, e.g. http://stackoverflow.com 
        String urlDescription = columnValue; // Description is the same as the 
        return new Link(urlDescription, new ExternalResource(urlValue)); 
        } 
    }) 
    

    は詳細については

    +0

    感謝をdocumentationjavadocを参照してください、それは私が必要なものを正確にです! –

    関連する問題