X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.utils.ui%2Fsrc%2Forg%2Fsimantics%2Futils%2Fui%2Fwidgets%2FFileSelectionWidget.java;fp=bundles%2Forg.simantics.utils.ui%2Fsrc%2Forg%2Fsimantics%2Futils%2Fui%2Fwidgets%2FFileSelectionWidget.java;h=5e35d37d3535cb57d7e6fcc6da9226870576a906;hp=0000000000000000000000000000000000000000;hb=969bd23cab98a79ca9101af33334000879fb60c5;hpb=866dba5cd5a3929bbeae85991796acb212338a08 diff --git a/bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/widgets/FileSelectionWidget.java b/bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/widgets/FileSelectionWidget.java new file mode 100644 index 000000000..5e35d37d3 --- /dev/null +++ b/bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/widgets/FileSelectionWidget.java @@ -0,0 +1,61 @@ +package org.simantics.utils.ui.widgets; + +import java.io.File; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.FileDialog; + +public class FileSelectionWidget extends FileOrDirectorySelectionWidget { + + + String[] filterExtensions = new String[]{"*.*"}; + String[] filterNames = new String[]{"All files"}; + int style = SWT.OPEN; + + public FileSelectionWidget(Composite parent, String name, int style) { + super(parent, name, style&~(SWT.OPEN|SWT.CLOSE)); + this.style = style & (SWT.OPEN|SWT.CLOSE|SWT.MULTI); + } + + @Override + protected String[] openDialog() { + FileDialog dialog = new FileDialog(getShell(),style); + dialog.setFilterExtensions(getFilterExtensions()); + dialog.setFilterNames(getFilterNames()); + String filename = dialog.open(); + if (filename == null) + return null; + String path = dialog.getFilterPath(); + String names[] = dialog.getFileNames(); + String fullpath[] = new String[names.length]; + for (int i = 0; i < names.length; i++) { + fullpath[i] = path + File.separator + names[i]; + } + return fullpath; + } + + @Override + protected boolean isValid(File file) { + boolean accept = file.exists() && file.canRead(); + return accept; + } + + public String[] getFilterExtensions() { + return filterExtensions; + } + + public String[] getFilterNames() { + return filterNames; + } + + public void setFilterExtensions(String[] filterExtensions) { + this.filterExtensions = filterExtensions; + } + + public void setFilterNames(String[] filterNames) { + this.filterNames = filterNames; + } + + +}