--- /dev/null
+package org.simantics.utils.ui.wizard;\r
+\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.jface.wizard.WizardPage;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.simantics.utils.ui.widgets.FileOrDirectorySelectionWidget;\r
+import org.simantics.utils.ui.widgets.FileSelectionListener;\r
+import org.simantics.utils.ui.widgets.FileSelectionWidget;\r
+\r
+\r
+public class FileSelectionPage extends WizardPage implements FileSelectionListener{\r
+ \r
+ FileSelectionWidget fileSelectionWidget;\r
+ Composite composite;\r
+ String[] filterExtensions = new String[]{"*.*"};\r
+ String[] filterNames = new String[]{"All files"};\r
+ int style = SWT.OPEN;\r
+\r
+ public FileSelectionPage() {\r
+ this("Select a file",null);\r
+ }\r
+ \r
+ @Override\r
+ public void createControl(Composite parent) {\r
+ composite = new Composite(parent,SWT.NONE);\r
+ composite.setLayout(new GridLayout(1,false));\r
+ fileSelectionWidget = new FileSelectionWidget(composite, getGroupName(), style);\r
+ fileSelectionWidget.setFilterNames(filterNames);\r
+ fileSelectionWidget.setFilterExtensions(filterExtensions);\r
+ fileSelectionWidget.addListener(this);\r
+ setControl(composite);\r
+ setPageComplete(false);\r
+ }\r
+ \r
+ protected String getGroupName() {\r
+ return "File:";\r
+ }\r
+ \r
+ public FileSelectionPage(String title, ImageDescriptor image) {\r
+ this("FileSelection",title,image);\r
+ }\r
+ \r
+ public FileSelectionPage(String pageName,String title, ImageDescriptor image) {\r
+ super(pageName,title,image);\r
+ }\r
+ \r
+ public String[] getFilterExtensions() {\r
+ return filterExtensions;\r
+ }\r
+ \r
+ public String[] getFilterNames() {\r
+ return filterNames;\r
+ }\r
+ \r
+ public void setFilterExtensions(String[] filterExtensions) {\r
+ this.filterExtensions = filterExtensions;\r
+ }\r
+ \r
+ public void setFilterNames(String[] filterNames) {\r
+ this.filterNames = filterNames;\r
+ }\r
+ \r
+ public int getStyle() {\r
+ return style;\r
+ }\r
+ \r
+ public void setStyle(int style) {\r
+ this.style = style;\r
+ }\r
+ \r
+ public String[] getFilename() {\r
+ return fileSelectionWidget.getFilename();\r
+ }\r
+ \r
+ @Override\r
+ public void fileSelected(FileOrDirectorySelectionWidget source, String[] filename) {\r
+ setPageComplete(filename != null && filename.length > 0);\r
+ }\r
+\r
+}\r