summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java443
1 files changed, 0 insertions, 443 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java b/bundles/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java
deleted file mode 100644
index f199d3626e..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * Portion Copyright (c) 2009-2010 compeople AG (http://www.compeople.de).
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Compeople AG - QtJambi/Qt based implementation for Windows/Mac OS X/Linux
- *******************************************************************************/
-package org.eclipse.swt.widgets;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.trolltech.qt.gui.QFileDialog;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-
-/**
- * Instances of this class allow the user to navigate the file system and select
- * or enter a file name.
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>SAVE, OPEN, MULTI</dd>
- * <dt><b>Events:</b></dt>
- * <dd>(none)</dd>
- * </dl>
- * <p>
- * Note: Only one of the styles SAVE and OPEN may be specified.
- * </p>
- * <p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em> within the
- * SWT implementation.
- * </p>
- *
- * @see <a href="http://www.eclipse.org/swt/snippets/#filedialog">FileDialog
- * snippets</a>
- * @see <a href="http://www.eclipse.org/swt/examples.php">SWT Example:
- * ControlExample, Dialog tab</a>
- * @see <a href="http://www.eclipse.org/swt/">Sample code and further
- * information</a>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class FileDialog extends Dialog {
- String[] filterNames = new String[0];
- String[] filterExtensions = new String[0];
- String[] fileNames = new String[0];
- String filterPath = "", fileName = "";//$NON-NLS-1$ //$NON-NLS-2$
- int filterIndex = 0;
- boolean overwrite = false;
- static final String FILTER = "*.*";//$NON-NLS-1$
- QFileDialog fd;
-
- /**
- * Constructs a new instance of this class given only its parent.
- *
- * @param parent
- * a shell which will be the parent of the new instance
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
- * </ul>
- * @exception SWTException
- * <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the parent</li>
- * <li>ERROR_INVALID_SUBCLASS - if this class is not an
- * allowed subclass</li>
- * </ul>
- */
- public FileDialog(Shell parent) {
- this(parent, SWT.APPLICATION_MODAL);
- }
-
- /**
- * Constructs a new instance of this class given its parent and a style
- * value describing its behavior and appearance.
- * <p>
- * The style value is either one of the style constants defined in class
- * <code>SWT</code> which is applicable to instances of this class, or must
- * be built by <em>bitwise OR</em>'ing together (that is, using the
- * <code>int</code> "|" operator) two or more of those <code>SWT</code>
- * style constants. The class description lists the style constants that are
- * applicable to the class. Style bits are also inherited from superclasses.
- * </p>
- *
- * @param parent
- * a shell which will be the parent of the new instance
- * @param style
- * the style of dialog to construct
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
- * </ul>
- * @exception SWTException
- * <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the parent</li>
- * <li>ERROR_INVALID_SUBCLASS - if this class is not an
- * allowed subclass</li>
- * </ul>
- */
- public FileDialog(Shell parent, int style) {
- super(parent, checkStyle(parent, style));
- checkSubclass();
- fd = new QFileDialog();
- if ((style & SWT.SAVE) != 0) {
- fd.setFileMode(QFileDialog.FileMode.AnyFile);
- } else if ((style & SWT.MULTI) != 0) {
- fd.setFileMode(QFileDialog.FileMode.ExistingFiles);
- } else {
- fd.setFileMode(QFileDialog.FileMode.ExistingFile);
- }
- }
-
- /**
- * Returns the path of the first file that was selected in the dialog
- * relative to the filter path, or an empty string if no such file has been
- * selected.
- *
- * @return the relative path of the file
- */
- public String getFileName() {
- String[] files = getSplittedFileNames();
- if (files.length == 1) {
- return files[0];
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * Returns a (possibly empty) array with the paths of all files that were
- * selected in the dialog relative to the filter path.
- *
- * @return the relative paths of the files
- */
- public String[] getFileNames() {
- return getSplittedFileNames();
- }
-
- private String[] getSplittedFileNames() {
- String[] split = { null, null };
- List<String> files = fd.selectedFiles();
-
- if (!files.isEmpty()) {
- for (int i = 0; i < files.size(); i++) {
- String file = files.get(i);
- split = file.split("/"); //$NON-NLS-1$
-
- if (split != null) {
- files.set(i, split[split.length - 1]);
- }
- }
- }
- return files.toArray(new String[] {});
- }
-
- /**
- * Returns the file extensions which the dialog will use to filter the files
- * it shows.
- *
- * @return the file extensions filter
- */
- @SuppressWarnings("nls")
- public String[] getFilterExtensions() {
- List<String> filters = fd.nameFilters();
- ArrayList<String> result = new ArrayList<String>();
- String[] split1 = null;
- String[] split2 = null;
- /*
- * just get the extensions out of the nameFilters, not the names (split
- * between "(" and ")"
- */
- for (String filter : filters) {
- split1 = filter.split("\\(");
- split2 = split1[1].split("\\)");
- result.add(split2[0]);
- }
-
- /*
- * replace all " " by ";" because that's the way swt returns the
- * extensions
- */
- for (String r : result) {
- r = r.replaceAll(" ", ";");
- }
-
- return result.toArray(new String[] {});
- }
-
- /**
- * Get the 0-based index of the file extension filter which was selected by
- * the user, or -1 if no filter was selected.
- * <p>
- * This is an index into the FilterExtensions array and the FilterNames
- * array.
- * </p>
- *
- * @return index the file extension filter index
- *
- * @see #getFilterExtensions
- * @see #getFilterNames
- *
- * @since 3.4
- */
- public int getFilterIndex() {
- //TODO see Bug 166
- return filterIndex;
- }
-
- /**
- * Returns the names that describe the filter extensions which the dialog
- * will use to filter the files it shows.
- *
- * @return the list of filter names
- */
- @SuppressWarnings("nls")
- public String[] getFilterNames() {
- List<String> filters = fd.nameFilters();
- ArrayList<String> result = new ArrayList<String>();
- String[] name = null;
-
- /*
- * just get the names out of the nameFilters, not the extensions(split
- * between "("
- */
- for (String filter : filters) {
- name = filter.split("\\(");
- result.add(name[0]);
- }
-
- return result.toArray(new String[] {});
- }
-
- /**
- * Returns the directory path that the dialog will use, or an empty string
- * if this is not set. File names in this path will appear in the dialog,
- * filtered according to the filter extensions.
- *
- * @return the directory path string
- *
- * @see #setFilterExtensions
- */
- public String getFilterPath() {
- return fd.directory().path();
- }
-
- /**
- * Returns the flag that the dialog will use to determine whether to prompt
- * the user for file overwrite if the selected file already exists.
- *
- * @return true if the dialog will prompt for file overwrite, false
- * otherwise
- *
- * @since 3.4
- */
- public boolean getOverwrite() {
- return fd.confirmOverwrite();
- }
-
- /**
- * Makes the dialog visible and brings it to the front of the display.
- *
- * @return a string describing the absolute path of the first selected file,
- * or null if the dialog was cancelled or an error occurred
- *
- * @exception SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the dialog has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the dialog</li>
- * </ul>
- */
- public String open() {
- fd.exec();
- java.util.List<String> files = fd.selectedFiles();
- fileName = null;
- fileNames = new String[files.size()];
- if (files.size() > 0) {
- fileNames[0] = fileName = files.get(0);
- }
- for (int i = 1; i < files.size(); i++) {
- fileNames[i] = files.get(i);
- }
- fd.disposeLater();
- return fileName;
- }
-
- /**
- * Set the initial filename which the dialog will select by default when
- * opened to the argument, which may be null. The name will be prefixed with
- * the filter path when one is supplied.
- *
- * @param string
- * the file name
- */
- public void setFileName(String string) {
- fd.selectFile(string);
- }
-
- /**
- * Set the file extensions which the dialog will use to filter the files it
- * shows to the argument, which may be null.
- * <p>
- * The strings are platform specific. For example, on some platforms, an
- * extension filter string is typically of the form "*.extension", where
- * "*.*" matches all files. For filters with multiple extensions, use
- * semicolon as a separator, e.g. "*.jpg;*.png".
- * </p>
- *
- * @param extensions
- * the file extension filter
- *
- * @see #setFilterNames to specify the user-friendly names corresponding to
- * the extensions
- */
- public void setFilterExtensions(String[] extensions) {
- filterExtensions = extensions;
- makeFilter();
-
- }
-
- /**
- * Set the 0-based index of the file extension filter which the dialog will
- * use initially to filter the files it shows to the argument.
- * <p>
- * This is an index into the FilterExtensions array and the FilterNames
- * array.
- * </p>
- *
- * @param index
- * the file extension filter index
- *
- * @see #setFilterExtensions
- * @see #setFilterNames
- *
- * @since 3.4
- */
- public void setFilterIndex(int index) {
- //TODO see Bug 166
- filterIndex = index;
- }
-
- /**
- * Sets the names that describe the filter extensions which the dialog will
- * use to filter the files it shows to the argument, which may be null.
- * <p>
- * Each name is a user-friendly short description shown for its
- * corresponding filter. The <code>names</code> array must be the same
- * length as the <code>extensions</code> array.
- * </p>
- *
- * @param names
- * the list of filter names, or null for no filter names
- *
- * @see #setFilterExtensions
- */
- public void setFilterNames(String[] names) {
- filterNames = names;
- makeFilter();
- }
-
- /**
- * constructs a filter for the fileDialog like this:
- * "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
- *
- * @param names
- * @return
- */
- private void makeFilter() {
- java.util.ArrayList<String> filters = new java.util.ArrayList<String>();
-
- if (filterNames.length == 0 && filterExtensions.length == 0) {
- // nothing to do
- } else {
- /*
- * If there are more filterNames than filterExtensions, just use as
- * much filterNames as FilterExtensions.length. Ignore the rest.
- */
- for (int i = 0; i < filterExtensions.length; i++) {
- if (filterNames.length >= i + 1) {
- /*
- * If there's a matching filterName for the
- * filterExtension-Field, the filterExtension-Field has to
- * get rid of the ";". The ";" are only allowed, when the
- * filterExtension hasn't a matching name.
- */
- String ex = filterExtensions[i].replace(";", " "); //$NON-NLS-1$ //$NON-NLS-2$
- filters.add(filterNames[i] + "(" + ex + ")"); //$NON-NLS-1$//$NON-NLS-2$
-
- } else {
- /*
- * just a filterExtension without a name
- */
- filters.add(filterExtensions[i]);
- }
- }
-
- fd.setNameFilters(filters);
- }
- }
-
- /**
- * Sets the directory path that the dialog will use to the argument, which
- * may be null. File names in this path will appear in the dialog, filtered
- * according to the filter extensions. If the string is null, then the
- * operating system's default filter path will be used.
- * <p>
- * Note that the path string is platform dependent. For convenience, either
- * '/' or '\' can be used as a path separator.
- * </p>
- *
- * @param string
- * the directory path
- *
- * @see #setFilterExtensions
- */
- public void setFilterPath(String string) {
- fd.setDirectory(string);
- }
-
- /**
- * Sets the flag that the dialog will use to determine whether to prompt the
- * user for file overwrite if the selected file already exists.
- *
- * @param overwrite
- * true if the dialog will prompt for file overwrite, false
- * otherwise
- *
- * @since 3.4
- */
- public void setOverwrite(boolean overwrite) {
- fd.setConfirmOverwrite(overwrite);
- }
-}