⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeviewercontentprovider.java

📁 SWTJFace篇项目源程序该项目包含 包含了Eclipse下构建swt的基本工程
💻 JAVA
字号:
package cn.com.chengang.jface.treeviewer;

import java.util.List;

import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;

//内容器。由它决定哪些对象记录应该输出在TreeViewer里显示
public class TreeViewerContentProvider implements ITreeContentProvider {
	// 由此方法决定树的“第一级”结点显示哪些对象。inputElement是用tv.setInput()方法输入的那个对象。
	// Object[]一个数组,数组中一个元素就是一个结点
	public Object[] getElements(Object inputElement) {
		if (inputElement instanceof List) {
			List input = (List) inputElement;
			return input.toArray();
		}
		return new Object[0]; // 空数组
	}

	// 判断参数element结点是否有子结点。
	// 返回true表示element有子结点,则其前面会显示有“+”号图标。
	public boolean hasChildren(Object element) {
		ITreeEntry entry = (ITreeEntry) element;
		List list = entry.getChildren();
		return !(list == null || list.isEmpty()); // 判断list是否有子
	}

	// 当界面中单击某结点时,由此方法决定被单击结点应该显示哪些子结点。
	// parentElement就是被单击的结点对象。返回的数组就是应显示的子结点
	public Object[] getChildren(Object parentElement) {
		ITreeEntry entry = (ITreeEntry) parentElement;
		List list = entry.getChildren();
		// 虽然通过界面单击方式,有子的结点才会执行到此方法,但仍然要做非空判断,因为在调用TreeViewer的某些方法时其内部会附带调用此方法。
		if (list == null)
			return new Object[0];
		return list.toArray();
	}

	// --------------以下方法无用,空实现----------------
	public Object getParent(Object element) {
		return null;
	}

	public void dispose() {}

	public void inputChanged(Viewer v, Object oldInput, Object newInput) {}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -