TreeViewer构建步骤
TreeViewer中主要通过内容提供器(ITreeContentProvider)和标签提供器 (ILabelProvider)组织树节点的内容和显示的信息。TreeViewer的构建步骤如下。
1. 创建TreeViewer对象,例如“TreeViewer tv = new TreeViewer(composite);”。
2. 设定内容管理器,例如“tv.setContentProvider(new FileTreeContentProvider()); ”。
3. 设定标签提供器,例如“tv.setLabelProvider(new FileTreeLabelProvider());”。
4. 设定TreeViewer的输入数据,例如“tv.setInput("root");”(用户可以通过输入数 据构建树)。
TreeViewer内容提供器
TreeViewer的内容提供器(ITreeContentProvider)构建树中比较复杂的部分,它为树的 显示提供了内容,内容提供器要实现的方法如下。
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的父节点。
5. inputChanged
此函数定义为“public void inputChanged(Viewer viewer, Object oldInput, Object newInput);”,当输入改变时调用此方法。