我做了
class ViewContentProvider implements IStructuredContentProvider
提供分层数据,我也做了适当的
class ViewLabelProvider extends LabelProvider implements ITableLabelProvider
然后我写了
public void createPartControl(Composite parent) {
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL);
viewer.setContentProvider(new ViewContentProvider());
viewer.setLabelProvider(new ViewLabelProvider());
// Provide the input to the ContentProvider
viewer.setInput(...
不幸的是,view只显示最顶层节点的成员。它不显示最顶层的节点本身。此外,不显示嵌套的子节点,即显示为无子节点的所有显示节点。
为什么呢?如何使TableView
看起来像是可扩展节点的表格?
答案 0 :(得分:0)
如果要显示具有父子关系的节点,那么您应该使用org.eclipse.jface.viewers.TreeViewer
。
如果必须使用多个列(如表格)显示节点的信息,则可以使用org.eclipse.jface.viewers.TreeViewerColumn
。
答案 1 :(得分:0)
希望这有帮助,
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new BorderLayout(0, 0));
Group grp = new Group(composite, SWT.NONE);
grp.setText(Messages.get().getValue("Some_text"));
grp.setLayout(new FillLayout(SWT.HORIZONTAL));
tree = new Tree(grp, SWT.BORDER);
tree.setLinesVisible(true);
TreeColumn trclmnNewColumn = new TreeColumn(tree, SWT.NONE);
trclmnNewColumn.setWidth(100);
trclmnNewColumn.setText(Messages.get().getValue("Type"));
TreeColumn trclmnNewColumn_1 = new TreeColumn(tree, SWT.CENTER);
trclmnNewColumn_1.setWidth(60);
trclmnNewColumn_1.setText(Messages.get().getValue("Value"));
TreeItem treeItem = new TreeItem(tree, SWT.NONE);
treeItem.setText("Some Value");
TreeItem trtm1 = new TreeItem(treeItem, SWT.NONE);
trtm1.setText("Some Value");
TreeItem trtm2 = new TreeItem(treeItem, SWT.NONE);
trtm2.setText("Some Value");
treeItem.setExpanded(true);