基础之“CheckboxTreeViewer的使用”

1.创建方式

viewer = new CheckboxTreeViewer(container/*, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER*/);
viewer.setContentProvider(new ViewContentProvider());//实现IStructuredContentProvider,ITreeContentProvider
viewer.setLabelProvider(new ViewLabelProvider());//extends LabelProvider
viewer.setInput(dataList);


2.事件

viewer.getTree().addSelectionListener(new TreeSelectionListener());//extends SelectionAdapter 右键菜单
viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
viewer.addDoubleClickListener(new IDoubleClickListener(){});//双击事件
viewer.addCheckStateListener(new TreeCheckStateListener());//implements ICheckStateListener 父子极联选中


3.事件详情

a.TreeCheckStateListener
Object obj = event.getElement();

if (!(obj instanceof TreeObject)) {
return;
}
TreeObject element = (TreeObject) obj;
boolean check = viewer.getChecked(obj);
switch(element.getLevel()){}
常用方法:viewer.getChecked(Objectxxx)
viewer.expandToLevel(parentElement, 2);
viewer.setChecked(child, check);
b.TreeSelectionListener
TreeItem item = (TreeItem) e.item;
if (item == null) {
return;
}

Object obj = item.getData();

MenuManager menuManager = new MenuManager();

if(!(obj instanceof TreeObject)){
return ;
}

TreeObject treeObj = (TreeObject)obj;
if(2 == treeObj.getLevel()){
menuManager.add(deleteAction);
}else if(1 == treeObj.getLevel()){
menuManager.add(newAction);
menuManager.add(deleteAction);
}else{
return ;
}

Menu menu = menuManager.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
c.IDoubleClickListener
IStructuredSelection selection = (IStructuredSelection)viewer.getSelection();
if (selection == null){
return null;
}
Object obj = selection.getFirstElement();
TreeObject element = null;
if (obj instanceof TreeObject){
element = (TreeObject)obj;
}
//next open xxx handle

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值