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

File Selection from List in a Wizard page

我有一个获取 IFile 列表的向导页面。我想向用户显示列表和列表中的 select 一个文件。然后向导 returns selected 文件。

在 WizardPage 的 createControl() 中,是否可以使用标准文件选择器来代替从头开始构建? (可能类似于 table 使用滚动条显示列表的视图列表。)

有一个 FilteredResourcesSelectionDialog 弹出窗口显示任何想要的资源,最终带有预加载的正则表达式,允许搜索文件,你给他一个根目录:

您调用 getResult() 将选择检索为对象[]。

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

虽然没有现成的FileViewer之类的,你可以用一个TableViewer和一个WorkbenchLabelProvider来显示列表文件。

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

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

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

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

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

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