如何设置单元格(GWT)中行和列交集的单元格?

时间:2014-03-24 05:59:39

标签: gwt

好的,我的CellTable有3列2行。我希望表中某些特定单元格(不是所有单元格)中的文本都是粗体。

请看这段代码:

ListDataProvider<List<String>> dataProvider = new ListDataProvider<List<String>>();
dataProvider.addDataDisplay(table);
List<List<String>> list = dataProvider.getList();
List<String> sublist1= Arrays.asList("223","546","698");
List<String> sublist2= Arrays.asList("123","876","898");
List<String> sublist2= Arrays.asList("123","896","438");
IndexedColumn column1=new IndexedColumn(0);
table.addColumn(column1, "Col1");
IndexedColumn column2=new IndexedColumn(1);
table.addColumn(column2, "Col2");
IndexedColumn column3=new IndexedColumn(2);
table.addColumn(column3, "Col3");

我试过,差不多完成了,但是......

假设我想设置与以下行索引和列索引的交集的单元格:(注意:索引从0开始,因此column2得到索引= 1)

Row - Col
0   -  1
0   -  2
1   -  1
1   -  2
2   -  2

显然,我只想设置5个单元格。

所以我喜欢你说:

在css文件中:

.boldRow .boldColumn { font-weight: bold; }

然后在java文件中

column2.setCellStyleNames(getView().getRes().css().boldColumn());
column3.setCellStyleNames(getView().getRes().css().boldColumn());

table.setRowStyles(new RowStyles<List<String>>() {
   @Override
   public String getStyleNames(List<String> row, int rowIndex) {


      if(rowIndex==0 || rowIndex==1 || rowIndex==2){
          return getView().getRes().css().boldRow();
      }
      return null;
   }

});

这是结果:

Col1 - Col2 - Col3
223 - 546 - 698
123 - 876 - 898
123 - 896 - 438

显然,我不希望这个单元格(行索引= 2&amp; columm index = 3)加粗。但结果包括它。

那么如何解决呢?

1 个答案:

答案 0 :(得分:1)

找到我的帖子How to style specific cells in CellTable depending the value of that cell (GWT)?

这将解决您的问题。

AbstractCell

中使用以下代码
        ...
        FontWeight weight = FontWeight.BOLD;
        if (context.getColumn()==0 || (context.getIndex()==1 && context.getColumn()==2)) {
            weight = FontWeight.NORMAL;
        }
        ...