2012-02-09 13 views
1

をいくつかのリンクセルを追加しようと、私は(私はちょうど項目に下線とホバー上でマウスのシンボル変更することにしたい)私のセルテーブルにリンクを追加する私のGWT cellTableで

をしようとしていますし、クリック時に私はしたいですウィンドウアラートを与える。

私はこれらのオプションを試してみましたそのため

:(しかし運)

1)

  final Hyperlink hyp = new Hyperlink("test", "test"); 


    Column<EmployerJobs, Hyperlink> test = new Column<EmployerJobs, Hyperlink>(new HyperLinkCell()) 

    { 
     @Override 
     public Hyperlink getValue(EmployerJobs object) 
     { 
     return hyp; 
     } 
    }; 

オプション1を通報します私がいけないのに対して、それは、ナビゲーション・ページ「テスト」に私をとり、あります私はちょうど窓の警告をしたい他のページに行く。オプション2と

2)

  Column<EmployerJobs, SafeHtml> test = new Column<EmployerJobs, SafeHtml>(new SafeHtmlCell()) 
    { 
     @Override 
     public SafeHtml getValue(EmployerJobs object) 
     { 
      SafeHtmlBuilder sb = new SafeHtmlBuilder(); 
      sb.appendEscaped("test"); 

       return sb.toSafeHtml(); 
     } 
    }; 

問題は、私はまさにここに戻るには、その下線得ていないものを知ってはいけないです。最後に

3)私はオプション3は、いくつかの例外を与えている

final Anchor anc = new Anchor(); 
    ArrayList list = new ArrayList(); 
    list.add(anc); 
    CompositeCell ancCell = new CompositeCell(list); 
    Column testColumn1 = new Column<EmployerJobs, Anchor>(ancCell) { 

     @Override 
     public Anchor getValue(EmployerJobs object) { 


      return anc; 
     }  
    }; 

(理想として私は私の一つのセル3つの異なるアンカーをしたい)compositecellと私のcelltableにアンカーを追加しようとしています。

あなたは私が上記のオプションのいずれかを作業得るのを助けることができる場合、私はあなたが、それは完全に間違ってやっている

おかげ

答えて

3

感謝するでしょう。このようなものにはActionCellを使用するか、独自のセルを作成する必要があります。コード例:あなたがセルウィジェットについて知っておくべきことをほとんどすべてであるので、

ActionCell.Delegate<String> delegate = new ActionCell.Delegate<String>(){ 
     public void execute(String value) { //this method will be executed as soon as someone clicks the cell 
       Window.alert(value); 

     } 
    }; 
    ActionCell<String> cell = new ActionCell<String>(safeHtmlTitle,delegate){ 

     @Override 
     public void render(com.google.gwt.cell.client.Cell.Context context, //we need to render link instead of default button 
       String value, SafeHtmlBuilder sb) { 
      sb.appendHtmlConstant("<a href='#'>"); 
      sb.appendEscaped(value); 
      sb.appendHtmlConstant("</a>"); 
     } 
    }; 

    Column testColumn1 = new Column<EmployerJobs, String>(cell) { 

     @Override 
     public String getValue(EmployerJobs object) { 
      //we have to return a value which will be passed into the actioncell 

      return object.name; 
     }  
    }; 

私は、セルウィジェットの公式documentationを読むことをお勧めします。

関連する問題