从向导页面中的列表中选择文件

时间:2015-05-22 12:06:21

标签: eclipse user-interface eclipse-plugin swt jface

我有一个向导页面,它获取了一个IFile列表。我想向用户显示列表并从列表中选择一个文件。然后向导返回所选文件。

我是否可以使用标准文件选择器而不是在WizardPage的createControl()中从头开始构建? (也许类似于表格视图列表,滚动条显示列表。)

2 个答案:

答案 0 :(得分:1)

FilteredResourcesSelectionDialog弹出窗口显示所需的任何资源,最终使用预加载的正则表达式,允许搜索文件,并为您提供根目录:

enter image description here

您致电getResult()以选择对象[]。

如果您只想做一个能够做到这一点的向导,那么我会这样做。 如果列表包含在执行其他操作的向导中,则只需列出所有文件并创建org.eclipse.swt.widgets.List

答案 1 :(得分:1)

虽然没有现成的 FileViewer 等,但您可以使用TableViewerWorkbenchLabelProvider来显示文件列表。

IFile[] files = ...
TableViewer fileViewer = new TableViewer( parent );
fileViewer.setInput( files );
fileViewer.setContentProvider( ArrayContentProvider.getInstance() );
fileViewer.setLabelProvider( new WorkbenchLabelProvider() );

这将创建一个单选表(查看器),显示files数组中的文件。

如果应用了多项选择或更多样式,请使用new TableViewer( parent, SWT.MULTI | ... )创建查看器。

如果需要按名称或类型对文件列表进行排序,则可以使用ResourceComparator插件中的org.eclipse.ui.ide

fileViewer.setComparator( new ResourceComparator( ResourceComparator.NAME ) );

如果您不想要额外的插件依赖项或需要按其他条件排序,它仍可用作模板。