2012-05-02 53 views
0

使用textcoloumn中的所有值。在GWT中CellTable的列中添加圖標

我想添加圖像單元格。

我不想使用Gwt-Ext或智能客戶端。

我的代碼

private CellTable<FDocument> getDocumentTable() { 
     if (documentTable == null) { 
      documentTable = new CellTable<FDocument>(); 
      documentTable.setSize("600px", "300px"); 
      documentTable.addColumn(nameColumnD, "NAME"); 
      documentTable.addColumn(sizeColumnD, "SIZE"); 
      documentTable.addColumn(modified_by_ColumnD, "MODIFIED BY"); 
      documentTable.addColumn(dateColumnD, "MODIFIED ON"); 
      documentTable.addColumn(majorVersion, "Major Version"); 


     } 
     return documentTable; 
    } 

TextColumn<FDocument> nameColumnD = new TextColumn<FDocument>() { 
      @Override 
      public String getValue(FDocument object) { 
       return object.getName(); 
      } 
     };   
     TextColumn<FDocument> sizeColumnD = new TextColumn<FDocument>() { 
      @Override 
      public String getValue(FDocument object) { 
       return object.getSize();        
      } 
     }; 

..// similarly all the coloumn. 

我要添加到圖像細胞。怎麼做。


在FDocument類編輯

ImageCell imageCell=new ImageCell(); 
     Column<FDocument,String> iconColumn = new Column<FDocument, String>(imageCell){ 

      @Override 
      public String getValue(FDocument object) { 
       // TODO Auto-generated method stub 
       return object.getImageUrl(object); 
      } 

     }; 

公共字符串getImageUrl(FilenetDocument對象){

  if(object.getMimeType().equals("text/plain")){ 
     return "url(Txt16.gif)"; 
    }else{ 
     if(object.getMimeType()=="application/x-filenet-publishtemplate"){ 
      return "url(PublishTemplate16.gif)"; 
     }else{ 
      if(object.getMimeType()=="application/x-filenet-filetype-msg"){ 
       return "url(Msg16.gif)"; 
      }else{ 
       if(object.getMimeType()=="application/x-filenet-workflowdefinition"){ 
        return "url(WorkflowDefinition16.gif)"; 
       }else{ 
        if(object.getMimeType()=="application/msword"){ 
         return "url(Doc16.gif)"; 
        }else{ 
         return "url(Txt16.gif)"; 
        } 

       } 

      } 
     } 
    } 

回答

0

覆蓋render方法,該方法可用於添加任何類型的HTML內容列在CellTable

TextColumn<FDocument> iconColumn = new TextColumn<FDocument>() { 
     @Override 
     public String getValue(FDocument object) { 
      return "";       
     } 

    @Override 
     protected void render(Context context, SafeHtml value, SafeHtmlBuilder sb) { 
     if (value != null) { 
      sb.appendHtmlConstant("<p style=\"textalign:center;\"><img src=\"icon.gif\"\></p>"); 

     } 
     }  
    }; 
+0

有許多像PDF文檔的文檔。他們的respesctive圖標保存在war文件夾中。我能夠顯示文檔除圖標以外的所有值。 我知道每個文檔的MIME類型。 plz chk編輯過的部分代碼。 – NewCodeLearner

+0

我不知道如何渲染將幫助我做出圖標。 並且返回是「」;並在渲染時被調用。 – NewCodeLearner

+0

我編輯了代碼 – NewCodeLearner

0

在你的函數getImageUrl(),返回的是一個css樣式,而不是路徑到圖像...

所以執行一項新小區與您提供的樣式呈現,或將ImageResourceCell用於靜態圖標,或者嘗試使用Hardik Mishra提供的渲染方法,但更新getImageUrl()以將PATH返回到圖像。