TeamCenter----窗口开发,Item树结构显示TC原有图标。----------SWT TreeViewer开发实例

第一步:搭建TreeViewer结构

1.创建TreeViewer对象, TreeViewer tv=new TreeViewer(composite);

2.设置内容管理标签:

   tv.setLabelProvider(new TreeViewerLabelProvider());

   tv.setContentProvider(new TreeViewerContentProvider());

tv.setCellModifier(new TreeViewerCellModifier());

TreeViewerLabelProvider    该标签是用来显示节点的相关信息,包括显示内容和图标。

重写getImage()方法可以得到节点图标;

例如:

class TreeViewerLabelProvider extends LabelProvider implements ITableLabelProvider,ITableColorProvider{

@Override

public Image getColumnImage(Object element, int col){ //Object 是节点,col是列数---例如第一列就是1,以此类推

TreeEntry entry=(TreeEntry)element;

switch(col){

case 0:return TCTypeRenderer.getImage(entry.bopline.getTtemRevision()) ;

}

 

}

 

}

这里  TreeEntry 是自己针对实际情况创建的类;

TCTypeRenderer是TC的图片库,还有很多得到图片的方法,参数都有很多种。传入版本或传入类型名称。

TreeViewerContentProvider是提供树节点显示的内容

1. getElements
此函数定义为“public Object[] getElements(Object inputElement);”,当程序开始构建树
时,首先调用getElements 返回一个对象的数组,此数组对象表示当前树的根节点,inputElement
参数为TreeViewer 的输入(setInput 的输入数据)。
2. hasChildren
此函数定义为“public boolean hasChildren(Object element);”,当TreeViewer 显示一个节
点后,会调用hasChildren 函数判断当前节点是否有子节点,如果有子节点则显示“+”,element
参数为要判断是否有子节点的节点。
3. getChildren
此函数定义为“public Object[] getChildren(Object parentElement);”,当用户选择节点打
开子节点时,会调用getChildren 函数返回下一层子节点,parentElement 参数为选择的节点。
4. getParent
此函数定义为“public Object getParent(Object element);”,可以通过此方法返回element
的父节点。

class TreeViewerContentProvider implements ITreeContentProvider {
public Object[] getChildren(Object arg0) {
//返回树的下一级节点
return ((File) arg0).listFiles();
}
public Object getParent(Object arg0) {
//返回树的上一级节点
return ((File) arg0).getParentFile();
}
public boolean hasChildren(Object arg0) {
Object[] obj = getChildren(arg0);
//判断树是否有下一级节点,true 为在节点显示"+"信息
return obj == null ? false : obj.length > 0;
}
public Object[] getElements(Object arg0) {
//打印出树的输入信息,通常用户可以通过输入信息构建树
System.out.println(arg0);
// File.listRoots()作为树的根节点
return File.listRoots();
}

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值