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();
}

 

你可能感兴趣的:(TeamCenter----窗口开发,Item树结构显示TC原有图标。----------SWT TreeViewer开发实例)