使用TreeViewer取代TableTreeViewer
来源:互联网 发布:淘宝名侦探柯南漫画书 编辑:程序博客网 时间:2024/04/28 03:30
项目需要做一个TableTree形式的内容浏览器,以前开发的时候是基于Eclipse3.0,现在Eclipse3.2对于TableTree控件已经是deprecated了(但是TableTreeViewer还没有注明,会在Eclipse3.3中注明),所以不打算再使用TableTreeViewer了。TableTreeViewe的源码中说明是要从Eclipse3.1后,要是用 Tree, TreeItem 和 TreeColumn。以下的代码是使用Tree来实现TableTree的效果。
package org.talend.sqlbuilder;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableTreeViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
class Connection {
String name;
String reso;
List children = new ArrayList();
}
class Table {
String name;
String reso;
}
class TestProvider extends LabelProvider implements ITableLabelProvider, ITreeContentProvider {
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {
switch (columnIndex) {
case 0:
if (element instanceof Connection) {
Connection c = (Connection) element;
return c.name;
}
if (element instanceof Table) {
Table t = (Table) element;
return t.name;
}
break;
case 1:
if (element instanceof Connection) {
Connection c = (Connection) element;
return c.reso;
}
if (element instanceof Table) {
Table t = (Table) element;
return t.reso;
}
break;
default:
break;
}
return "--";
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
// TODO Auto-generated method stub
}
public Object[] getElements(Object inputElement) {
List list = (List) inputElement;
return list.toArray();
}
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof Connection) {
Connection c = (Connection) parentElement;
return c.children.toArray();
}
return new Object[0];
}
public Object getParent(Object element) {
// TODO Auto-generated method stub
return null;
}
public boolean hasChildren(Object element) {
return true;
}
}
public class TestTreeTable {
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
TableTreeViewer v = new TableTreeViewer(shell);
TreeViewer viewer = new TreeViewer(shell);
Tree tree = viewer.getTree();
tree.setHeaderVisible(true);
tree.setLinesVisible(true);
TreeColumn column1 = new TreeColumn(tree, SWT.CENTER);
column1.setText("Database");
column1.setWidth(200);
TreeColumn column2 = new TreeColumn(tree, SWT.CENTER);
column2.setText("Repository");
column2.setWidth(200);
TestProvider pro = new TestProvider();
viewer.setLabelProvider(pro);
viewer.setContentProvider(pro);
viewer.setInput(getInput());
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private static Object getInput() {
Connection c1 = new Connection();
c1.name = "MySql";
c1.reso = "my sql's repository";
Table t1 = new Table();
t1.name = "User";
t1.reso = "T xxx";
c1.children.add(t1);
Connection c2 = new Connection();
c2.name = "MySql";
c2.reso = "my sql's repository";
Table t2 = new Table();
t2.name = "User xxcv";
t2.reso = "T xxx sdfsf";
c2.children.add(t2);
Table t3 = new Table();
t3.name = "User";
t3.reso = "T xxx";
c2.children.add(t3);
List list = new ArrayList();
list.add(c1);
list.add(c2);
return list;
}
}
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableTreeViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
class Connection {
String name;
String reso;
List children = new ArrayList();
}
class Table {
String name;
String reso;
}
class TestProvider extends LabelProvider implements ITableLabelProvider, ITreeContentProvider {
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {
switch (columnIndex) {
case 0:
if (element instanceof Connection) {
Connection c = (Connection) element;
return c.name;
}
if (element instanceof Table) {
Table t = (Table) element;
return t.name;
}
break;
case 1:
if (element instanceof Connection) {
Connection c = (Connection) element;
return c.reso;
}
if (element instanceof Table) {
Table t = (Table) element;
return t.reso;
}
break;
default:
break;
}
return "--";
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
// TODO Auto-generated method stub
}
public Object[] getElements(Object inputElement) {
List list = (List) inputElement;
return list.toArray();
}
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof Connection) {
Connection c = (Connection) parentElement;
return c.children.toArray();
}
return new Object[0];
}
public Object getParent(Object element) {
// TODO Auto-generated method stub
return null;
}
public boolean hasChildren(Object element) {
return true;
}
}
public class TestTreeTable {
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
TableTreeViewer v = new TableTreeViewer(shell);
TreeViewer viewer = new TreeViewer(shell);
Tree tree = viewer.getTree();
tree.setHeaderVisible(true);
tree.setLinesVisible(true);
TreeColumn column1 = new TreeColumn(tree, SWT.CENTER);
column1.setText("Database");
column1.setWidth(200);
TreeColumn column2 = new TreeColumn(tree, SWT.CENTER);
column2.setText("Repository");
column2.setWidth(200);
TestProvider pro = new TestProvider();
viewer.setLabelProvider(pro);
viewer.setContentProvider(pro);
viewer.setInput(getInput());
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private static Object getInput() {
Connection c1 = new Connection();
c1.name = "MySql";
c1.reso = "my sql's repository";
Table t1 = new Table();
t1.name = "User";
t1.reso = "T xxx";
c1.children.add(t1);
Connection c2 = new Connection();
c2.name = "MySql";
c2.reso = "my sql's repository";
Table t2 = new Table();
t2.name = "User xxcv";
t2.reso = "T xxx sdfsf";
c2.children.add(t2);
Table t3 = new Table();
t3.name = "User";
t3.reso = "T xxx";
c2.children.add(t3);
List list = new ArrayList();
list.add(c1);
list.add(c2);
return list;
}
}
- 使用TreeViewer取代TableTreeViewer
- 使用TreeViewer取代TableTreeViewer
- 使用TreeViewer取代TableTreeViewer
- 使用TreeViewer取代TableTreeViewer
- 使用TreeViewer取代TableTreeViewer
- JFace TreeViewer使用
- JFace TreeViewer使用
- JFace TreeViewer使用
- eclipse treeViewer的使用 (例程)
- Swt/Jface treeViewer的使用
- Swt/Jface treeViewer的使用
- Swt/Jface treeViewer的使用
- Swt/Jface treeViewer的使用
- JFace TreeViewer使用 及内容提供器(IStructuredContentProvider)
- TreeViewer应用实例(ITreeContentProvider与LabelProvider的使用)
- treeviewer 过滤
- Android使用SparseArray取代HashMap
- 使用DIV取代FrameSet:研究鲜果首页
- 在TableViewer中使用ITableColorProvider
- Microsoft.Press.MCITP.Self.Paced.Training.Kit.Exam.70-441
- 【翻译 WSS3.0 SDK系列之一】用户,组和认证
- 如何使用 MFC 嵌入并自动化 Microsoft Excel 工作表
- SWT Layout 的注意项
- 使用TreeViewer取代TableTreeViewer
- 西门子PPI协议的工控通信控件
- 英文里面的反意疑问句的回答
- Eclipse Action 6
- vc中把字符串转换成16进制数的函数(如'7F'->0x7F)
- SWTSwing 和SwingUI 初探
- VB源码之友2006正式发布了,欢迎大家下载使用
- 使用jtds连接SQL2000的方法 (转)
- EoS:Swing之上的Eclipse