TableViewer--续

1、根据每一行的对象动态显示ComboBoxCellEditor列表中的数据

在继承ICellModifier的类中的canModify()方法中添加

   public boolean canModify(Object element, String property) {
       //设置同一列的不同行中的下拉列表的内容不同

            //BusinessField 是一个实体类
            BusinessField o = (BusinessField) element;
            String[] items=o.getFieldAttributes();

           //tv.getCellEditors()[1]是一个ComboBoxCellEditor
             tv.getCellEditors()[1]=new ComboBoxCellEditor(tv.getTable(), items, SWT.READ_ONLY); 
            return true;
 }

 

2、访问TableViewer中绑定的每一个对象

TableItem[] children = tv.getTable().getItems();
    for (int i = 0; i < children.length; i++) {
              TableItem item = children[i];
              if(item.getData() instanceof BusinessField){
               BusinessField bf = (BusinessField)item.getData();

              ............

    }

 

3、CellEditor为CheckboxCellEditor时如何显示CheckBox 

 
  修改前

    修改后


 

   在LabelProvider里根据属性值True/False显示不同的图片即可(,)(鼠标右键另存为可下载).

 

 public Image getColumnImage(Object element, int columnIndex) {
       if(element instanceof BusinessField){
             BusinessField bf = (BusinessField)element;
             switch(columnIndex){
             case 0:
                String imageStr0="";
                if(bf.getIsSelected())
                     imageStr0 = "icons/checked.gif";
                else
                   imageStr0 = "icons/unchecked.gif";
                return AbstractUIPlugin.imageDescriptorFromPlugin("your plugin name", imageStr0).createImage();
              default:
                return null;
              }
            }
            return null;
      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值