summaryrefslogtreecommitdiff
path: root/javax/swing/filechooser/FileSystemView.java
diff options
context:
space:
mode:
authorRoman Kennke <roman@kennke.org>2005-05-19 11:27:26 +0000
committerRoman Kennke <roman@kennke.org>2005-05-19 11:27:26 +0000
commitc67493a8048a7962062a3b77e56e062d3e989294 (patch)
tree759fbbaa6e92d1cc228b1c625f8c6d5d1e583b71 /javax/swing/filechooser/FileSystemView.java
parente372eecf4059e22483180ec998e924a9ba5186f4 (diff)
downloadclasspath-c67493a8048a7962062a3b77e56e062d3e989294.tar.gz
2005-05-19 Kim Ho <kho@luxsci.net>
* javax/swing/DefaultComboBoxModel.java: (addElement): Set index to be the element of the added item. (removeAllElements): Clear before retrieving new size. Use correct size. * javax/swing/JFileChooser.java: Implemented. * javax/swing/filechooser/FileSystemView.java: Implemented. * javax/swing/filechooser/UnixFileSystemView.java: New file. Implemented. * javax/swing/plaf/basic/BasicComboBoxUI.java: (intervalAdded): Set initial index to start. * javax/swing/plaf/basic/BasicDirectoryModel.java: New file. Implemented. * javax/swing/plaf/basic/BasicFileChooserUI.java: New file. Implemented. * javax/swing/plaf/basic/BasicLookAndFeel.java: Add FileChooserUI. Commented out GIF properties for FileChooser stuff.
Diffstat (limited to 'javax/swing/filechooser/FileSystemView.java')
-rw-r--r--javax/swing/filechooser/FileSystemView.java425
1 files changed, 318 insertions, 107 deletions
diff --git a/javax/swing/filechooser/FileSystemView.java b/javax/swing/filechooser/FileSystemView.java
index f224349a5..6be4773aa 100644
--- a/javax/swing/filechooser/FileSystemView.java
+++ b/javax/swing/filechooser/FileSystemView.java
@@ -1,5 +1,5 @@
/* FileSystemView.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,116 +35,327 @@ 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;
+
/**
- * FileSystemView
- * @author Andrew Selkirk
- * @version 1.0
+ * DOCUMENT ME!
*/
-public abstract class FileSystemView {
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor FileSystemView
- */
- public FileSystemView() {
- // TODO
- } // FileSystemView()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * getFileSystemView
- * @returns FileSystemView
- */
- public static FileSystemView getFileSystemView() {
- return null; // TODO
- } // getFileSystemView()
-
- /**
- * isRoot
- * @param file TODO
- * @returns boolean
- */
- public abstract boolean isRoot(File file);
-
- /**
- * createNewFolder
- * @param file TODO
- * @exception IOException TODO
- * @returns File
- */
- public abstract File createNewFolder(File file) throws IOException;
-
- /**
- * isHiddenFile
- * @param file TODO
- * @returns boolean
- */
- public abstract boolean isHiddenFile(File file);
-
- /**
- * getRoots
- * @returns File[]
- */
- public abstract File[] getRoots();
-
- /**
- * getHomeDirectory
- * @returns File
- */
- public File getHomeDirectory() {
- return null; // TODO
- } // getHomeDirectory()
-
- /**
- * createFileObject
- * @param directory TODO
- * @param filename TODO
- * @returns File
- */
- public File createFileObject(File directory, String filename) {
- return null; // TODO
- } // createFileObject()
-
- /**
- * createFileObject
- * @param path TODO
- * @returns File
- */
- public File createFileObject(String path) {
- return null; // TODO
- } // createFileObject()
-
- /**
- * getFiles
- * @param directory TODO
- * @param fileHiding TODO
- * @returns File[]
- */
- public File[] getFiles(File directory, boolean fileHiding) {
- return null; // TODO
- } // getFiles()
-
- /**
- * getParentDirectory
- * @param directory TODO
- * @returns File
- */
- public File getParentDirectory(File directory) {
- return null; // TODO
- } // getParentDirectory()
-
-
-} // FileSystemView
+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)
+ 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());
+ }
+}