您的位置:首页 > 其它

jface的CheckboxTreeViewer实现单选

2015-12-22 20:04 411 查看
需求:使用FilteredTree实现一个下面这样的Dialog,要求Check框单选,即只能选择一个:当选择新的时候,旧的不选。说明:FilteredTree自带一个文本输入框。

public class ChooseProjectEntryLabelProvider extends LabelProvider implements ITableLabelProvider{

@Override
public Image getColumnImage(Object element, int columnIndex) {
return null;
}

@Override
public String getColumnText(Object element, int columnIndex) {

if(element instanceof FuncItem){
FuncItem func = (FuncItem)element;
switch(columnIndex){
case 0:
return func.***;
case 1:
return func.***;
case 2:
return String.valueOf(func.***);
default:
return "";
}
}

return getText(element);
}

}


代码如下
注意这里实现的是ITableLabelProvider接口。

我自己用checkboxTreeViewer.setChecked(element, state)无法设置event.getElement()【checkStateChanged方法中】元素的状态,

但是使用checkboxTreeViewer.setAllChecked(state)可以设置所有元素的状态为checked或者unchecked,

没办法,我又需要使用FilteredTree,又无法使用setChecked办法设置指定元素状态(我单步调试进入setChecked方法里面看了看,应该是event.getElement()元素的问题),只好想出上面的馊办法,希望对读者有用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: