summaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/swing/filechooser
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-16 00:30:23 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-16 00:30:23 +0000
commitc8875fb97fc03779a5bba09872227b1d08e5d52a (patch)
treea0b991cf5866ae1d616639b906ac001811d74508 /libjava/classpath/javax/swing/filechooser
parentc40c1730800ed292b6db39a83d592476fa59623c (diff)
downloadgcc-c8875fb97fc03779a5bba09872227b1d08e5d52a.tar.gz
Initial revision
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102074 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/javax/swing/filechooser')
-rw-r--r--libjava/classpath/javax/swing/filechooser/FileFilter.java80
-rw-r--r--libjava/classpath/javax/swing/filechooser/FileSystemView.java361
-rw-r--r--libjava/classpath/javax/swing/filechooser/FileView.java114
-rw-r--r--libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java144
-rw-r--r--libjava/classpath/javax/swing/filechooser/package.html47
5 files changed, 746 insertions, 0 deletions
diff --git a/libjava/classpath/javax/swing/filechooser/FileFilter.java b/libjava/classpath/javax/swing/filechooser/FileFilter.java
new file mode 100644
index 00000000000..42770d98186
--- /dev/null
+++ b/libjava/classpath/javax/swing/filechooser/FileFilter.java
@@ -0,0 +1,80 @@
+/* FileFilter.java --
+ Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.filechooser;
+
+import java.io.File;
+
+/**
+ * FileFilter
+ * @author Andrew Selkirk
+ * @version 1.0
+ */
+public abstract class FileFilter {
+
+ //-------------------------------------------------------------
+ // Initialization ---------------------------------------------
+ //-------------------------------------------------------------
+
+ /**
+ * Constructor FileFilter
+ */
+ public FileFilter() {
+ // TODO
+ } // FileFilter()
+
+
+ //-------------------------------------------------------------
+ // Methods ----------------------------------------------------
+ //-------------------------------------------------------------
+
+ /**
+ * accept
+ * @param file TODO
+ * @returns boolean
+ */
+ public abstract boolean accept(File file);
+
+ /**
+ * getDescription
+ * @returns String
+ */
+ public abstract String getDescription();
+
+
+} // FileFilter
diff --git a/libjava/classpath/javax/swing/filechooser/FileSystemView.java b/libjava/classpath/javax/swing/filechooser/FileSystemView.java
new file mode 100644
index 00000000000..ffa41ca07de
--- /dev/null
+++ b/libjava/classpath/javax/swing/filechooser/FileSystemView.java
@@ -0,0 +1,361 @@
+/* FileSystemView.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.swing.filechooser;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import javax.swing.Icon;
+
+
+/**
+ * DOCUMENT ME!
+ */
+public abstract class FileSystemView
+{
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dir DOCUMENT ME!
+ * @param filename DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File createFileObject(File dir, String filename)
+ {
+ return new File(dir, filename);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param path DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File createFileObject(String path)
+ {
+ return new File(path);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected File createFileSystemRoot(File f)
+ {
+ File[] roots = File.listRoots();
+ if (roots == null)
+ return null;
+ return roots[0];
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param containingDir DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ *
+ * @throws IOException DOCUMENT ME!
+ */
+ public abstract File createNewFolder(File containingDir)
+ throws IOException;
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param parent DOCUMENT ME!
+ * @param fileName DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File getChild(File parent, String fileName)
+ {
+ // FIXME: Handle the case when parent and child are special folders.
+ return new File(parent, fileName);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File getDefaultDirectory()
+ {
+ return getHomeDirectory();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dir DOCUMENT ME!
+ * @param useFileHiding DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File[] getFiles(File dir, boolean useFileHiding)
+ {
+ if (dir == null || dir.listFiles() == null)
+ return null;
+ File[] files = dir.listFiles();
+ if (! useFileHiding)
+ return files;
+ ArrayList trim = new ArrayList();
+ for (int i = 0; i < files.length; i++)
+ if (! files[i].isHidden())
+ trim.add(files[i]);
+ File[] value = (File[]) trim.toArray(new File[0]);
+ return value;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public static FileSystemView getFileSystemView()
+ {
+ if (File.separator.equals("/"))
+ return new UnixFileSystemView();
+
+ // else if (File.Separator.equals("\"))
+ // return new Win32FileSystemView();
+ // else
+ // return new GenericFileSystemView();
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File getHomeDirectory()
+ {
+ return createFileObject(System.getProperty("user.home"));
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File getParentDirectory(File f)
+ {
+ if (f == null)
+ return null;
+ return f.getParentFile();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File[] getRoots()
+ {
+ // subclass
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getSystemDisplayName(File f)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Icon getSystemIcon(File f)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getSystemTypeDescription(File f)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dir DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isComputerNode(File dir)
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dir DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isDrive(File dir)
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isFileSystem(File f)
+ {
+ return (f.isFile() || f.isDirectory());
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dir DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isFileSystemRoot(File dir)
+ {
+ File[] roots = File.listRoots();
+ if (roots == null || dir == null)
+ return false;
+ String filename = dir.getAbsolutePath();
+ for (int i = 0; i < roots.length; i++)
+ if (roots[i].getAbsolutePath().equals(filename))
+ return true;
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dir DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isFloppyDrive(File dir)
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isHiddenFile(File f)
+ {
+ return f.isHidden();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param folder DOCUMENT ME!
+ * @param file DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isParent(File folder, File file)
+ {
+ File parent = file.getParentFile();
+ if (parent == null)
+ return false;
+ return folder.equals(parent);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isRoot(File f)
+ {
+ // These are not file system roots.
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Boolean isTraversable(File f)
+ {
+ // Tested. A directory where the user has no permission to rwx is still
+ // traversable. (No files are listed when you traverse the directory)
+ // My best guess is that as long as it's a directory, the file is
+ // traversable.
+ return new Boolean(f.isDirectory());
+ }
+}
diff --git a/libjava/classpath/javax/swing/filechooser/FileView.java b/libjava/classpath/javax/swing/filechooser/FileView.java
new file mode 100644
index 00000000000..c431fd46127
--- /dev/null
+++ b/libjava/classpath/javax/swing/filechooser/FileView.java
@@ -0,0 +1,114 @@
+/* FileView.java --
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.filechooser;
+
+import java.io.File;
+
+import javax.swing.Icon;
+
+/**
+ * FileView
+ * @author Andrew Selkirk
+ * @version 1.0
+ */
+public abstract class FileView {
+
+ //-------------------------------------------------------------
+ // Initialization ---------------------------------------------
+ //-------------------------------------------------------------
+
+ /**
+ * Constructor FileView
+ */
+ public FileView() {
+ // TODO
+ } // FileView()
+
+
+ //-------------------------------------------------------------
+ // Methods ----------------------------------------------------
+ //-------------------------------------------------------------
+
+ /**
+ * getName
+ * @param file TODO
+ * @returns String
+ */
+ public String getName(File file) {
+ return null; // TODO
+ } // getName()
+
+ /**
+ * getDescription
+ * @param value0 TODO
+ * @returns String
+ */
+ public String getDescription(File value0) {
+ return null; // TODO
+ } // getDescription()
+
+ /**
+ * getTypeDescription
+ * @param value0 TODO
+ * @returns String
+ */
+ public String getTypeDescription(File value0) {
+ return null; // TODO
+ } // getTypeDescription()
+
+ /**
+ * getIcon
+ * @param value0 TODO
+ * @returns Icon
+ */
+ public Icon getIcon(File value0) {
+ return null; // TODO
+ } // getIcon()
+
+ /**
+ * isTraversable
+ * @param value0 TODO
+ * @returns Boolean
+ */
+ public Boolean isTraversable(File value0) {
+ return null; // TODO
+ } // isTraversable()
+
+
+} // FileView
diff --git a/libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java b/libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java
new file mode 100644
index 00000000000..f2360ec52f8
--- /dev/null
+++ b/libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java
@@ -0,0 +1,144 @@
+/* UnixFileSystemView.java --
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.swing.filechooser;
+
+import java.io.File;
+import java.io.IOException;
+import javax.swing.Icon;
+
+
+/**
+ * DOCUMENT ME!
+ */
+class UnixFileSystemView extends FileSystemView
+{
+ /** DOCUMENT ME! */
+ private static final String NEW_FOLDER_NAME = "NewFolder";
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param containingDir DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ *
+ * @throws IOException DOCUMENT ME!
+ */
+ public File createNewFolder(File containingDir) throws IOException
+ {
+ int count = 0;
+ File f = null;
+ String filename = containingDir.getAbsolutePath() + File.separator
+ + NEW_FOLDER_NAME;
+ while (f == null)
+ {
+ String full = filename;
+ if (count > 0)
+ full += "." + (count++);
+ f = new File(full);
+ if (f.isDirectory() || f.isFile())
+ {
+ count++;
+ f = null;
+ }
+ }
+ f.mkdir();
+ return f;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File[] getRoots()
+ {
+ return File.listRoots();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getSystemDisplayName(File f)
+ {
+ // FIXME: Implement;
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Icon getSystemIcon(File f)
+ {
+ // FIXME: Implement;
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getSystemTypeDescription(File f)
+ {
+ // FIXME: Implement.
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isRoot(File f)
+ {
+ return isFileSystemRoot(f);
+ }
+}
diff --git a/libjava/classpath/javax/swing/filechooser/package.html b/libjava/classpath/javax/swing/filechooser/package.html
new file mode 100644
index 00000000000..bf897abb5bf
--- /dev/null
+++ b/libjava/classpath/javax/swing/filechooser/package.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<!-- package.html - describes classes in javax.swing.event package.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. -->
+
+<html>
+<head><title>GNU Classpath - javax.swing.filechooser</title></head>
+
+<body>
+<p>Provides support classes for the {@link javax.swing.JFileChooser}
+component.</p>
+
+</body>
+</html>