【Eclipse插件开发】TreeViewer的简单使⽤直接上代码,⾄于⾥⾯的内容还是⽐较容易看懂的,有兴趣的可以⾃⼰去探索,附上我的参考地址,侵删。
1,定义⼀个接⼝
package model;
import java.util.List;
public interface Itree {
public String getName();
public void setName(String name);
public void setChildren(List Children);
public List getChildren();
}
2,国家
package model;
import java.util.ArrayList;
import java.util.List;
public class Country implements Itree{
private Long id;
private String name;
private List children = new ArrayList();
public Country(){
}
public Country(String name){
this.name = name;
}
public List getChildren() {
return children;
}
public void setChildren(List children) {
this.children = children;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3,城市
public class City implements Itree{
private Long id;
private String name;
private List children = new ArrayList(); public City(){
}
public City(String name){
this.name = name;
}
public List getChildren() {
return children;
}
public void setChildren(List children) { this.children = children;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) { this.name = name;
}
}
4,⼈
public class People implements Itree{ private Long id;
private String name;
public People(){
}
public People(String name){
this.name = name;
}
public List getChildren() {
return null;
}
public void setChildren(List children) { }
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) { this.name = name;
}
}
5,把这些元素组织起来
package model;
import java.util.ArrayList;
import java.util.List;
青山知可子public class Factory {
@SuppressWarnings("unchecked") public static List createTree(){
/
/⽣成国家
Country cn = new Country("中国"); Country us = new Country("美国"); Country jp = new Country("⽇本"); //⽣成城市
City beijing = new City("北京");
City shanghai = new City("上海"); City newyork = new City("纽约"); City la = new City("洛杉矶");
City tokyo = new City("东京");
City osaka = new City("⼤阪");
//北京⼈
ArrayList list = new ArrayList();
list.add(new People("张三"));
list.add(new People("李四"));
list.add(new People("王五"));
beijing.setChildren(list);
//上海⼈
list = new ArrayList();
list.add(new People("翠花"));
list.add(new People("⼩红"));
list.add(new People("⼩红"));
list.add(new People("⼩崔"));
shanghai.setChildren(list);
//纽约⼈
list = new ArrayList();
list.add(new People("tom"));
list.add(new People("rose"));
list.add(new People("john"));
洛克王国暗夜之光newyork.setChildren(list);
//洛杉矶⼈
list = new ArrayList();
list.add(new People("Sofia"));
list.add(new People("sarah"));
list.add(new People("Jennifer"));
la.setChildren(list);
//东京⼈
list = new ArrayList();
list.add(new People("渡边"));
list.add(new People("⿁冢"));
list.add(new People("⼭本"));
tokyo.setChildren(list);
//⼤阪⼈
list = new ArrayList();
list.add(new People("奈奈⼦"));
list.add(new People("菜菜⼦"));
list.add(new People("新垣结⾐"));
osaka.setChildren(list);
/
/关联城市与国家
//中国
ArrayList citys = new ArrayList();
citys.add(beijing);
citys.add(shanghai);
cn.setChildren(citys);
//美国
citys = new ArrayList();
citys.add(newyork);
citys.add(la);
us.setChildren(citys);
/
/⽇本
citys = new ArrayList();
citys.add(tokyo);
citys.add(osaka);
jp.setChildren(citys);
//国家列表
ArrayList countrys = new ArrayList(); countrys.add(cn);
countrys.add(us);
countrys.add(jp);
return countrys;
}
}
⼆、定义内容器和标签器
1,内容器
import java.util.List;
import model.Itree;
lipse.jface.viewers.IStructuredContentProvider;
lipse.jface.viewers.ITreeContentProvider;
lipse.jface.viewers.Viewer;
public class TreeContentProvider implements IStructuredContentProvider, ITreeContentProvider {
public Object[] getElements(Object inputElement) {
抚州采茶戏种麦if (inputElement instanceof List){
List input = (List)inputElement;
Array();
如何考大专}
return new Object[0];
}
public Object[] getChildren(Object parentElement) {
Itree node = (Itree)parentElement;
List list = Children();
if(list == null){
return new Object[0];
}
Array();
}
10大最丑建筑public boolean hasChildren(Object element) {
Itree node = (Itree)element;
List list = Children();
return !(list == null || list.isEmpty());
}
//以下三个函数根据需要填充
public Object getParent(Object element) {
return null;
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
public void dispose() {
}
}
2,标签器
import model.Itree;
lipse.jface.viewers.ILabelProvider;
lipse.jface.viewers.LabelProvider;
aphics.Image;
public class TreeLabelProvider extends LabelProvider implements ILabelProvider {刘琳老公
public String getText(Object element) {
Itree node = (Itree)element;
Name();
}
public Image getImage(Object element) {
return null;
}
}
发布评论