Hi Russell,
I've been playing with this from time to time.
You're spot on about the changes and I've bugged a couple of the issues with
Sun.

Here are the changes that I've made - it seems to work OK - hope I haven't
missed anything ;)

Cheers,
Justin.

Index: src/java/org/apache/webdav/ui/filechooser/SPFileChooser.java
===================================================================
RCS file: 
/home/cvs/jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/SPFileChooser.java,v
retrieving revision 1.5
diff -u -r1.5 SPFileChooser.java
--- src/java/org/apache/webdav/ui/filechooser/SPFileChooser.java    28 
Mar 2002 06:23:09 -0000  1.5
+++ src/java/org/apache/webdav/ui/filechooser/SPFileChooser.java    22 
Jul 2002 07:30:14 -0000
@@ -221,6 +221,7 @@
         return (SPFile) directoryService.getHomeDirectory();
     }

+
     public void gotoDirectory(SPFile aFile)  {
    SPFile currentDir = (!aFile.isTraversable())
                    ? (SPFile) aFile.getParentFile()
@@ -273,6 +274,12 @@
         }
         return isCorrect;
       }
+
+    public void setCurrentDirectory(File dir) {
+        if (dir==null)
+            dir = getDirectoryService().getRoot();
+        super.setCurrentDirectory(dir);
+    }

 }// End of SPFileChooser class




Index: src/java/org/apache/webdav/ui/filechooser/dir/SPFile.java
===================================================================
RCS file: 
/home/cvs/jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/dir/SPFile.java,v
retrieving revision 1.8
diff -u -r1.8 SPFile.java
--- src/java/org/apache/webdav/ui/filechooser/dir/SPFile.java   28 Mar 
2002 06:23:10 -0000  1.8
+++ src/java/org/apache/webdav/ui/filechooser/dir/SPFile.java   22 Jul 
2002 07:30:17 -0000
@@ -65,6 +65,8 @@

 import java.io.*;
 import java.util.*;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
 import javax.swing.JOptionPane;

 import org.apache.webdav.lib.*;
@@ -73,6 +75,7 @@
 import org.apache.commons.httpclient.HttpException;
 import org.apache.commons.httpclient.HttpStatus;
 import org.apache.commons.httpclient.HttpClient;
+import org.apache.webdav.ui.lib.properties.SPProperty;

 /**
  * Title:        SPFile.java
@@ -84,7 +87,16 @@

 public class SPFile extends File {
     private SPDirectoryService directoryService;
-    private SPResourceNode _resourceNode;
+    private SPResourceNode _resourceNode=null;
+
+    private static SimpleDateFormat formats [] = {
+        new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz"),
+        new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"),
+        new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz"),
+        new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy"),
+        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"),
+        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'")
+    };

 @@ -239,17 +256,53 @@


     public long getContentLength()  {
+        /*
         GetContentLengthProperty prop = (GetContentLengthProperty)
                getResourceNode().getProperty("getcontentlength");
        return prop.getLength();
+        */
+        SPProperty prop = 
getResourceNode().getProperty("getcontentlength");
+        if (prop!=null)
+            return Integer.parseInt(prop.getPropertyAsString());
+        return 0;
+    }
+
+
+    public long lastModified() {
+        SPProperty prop = getResourceNode().getProperty("getlastmodified");
+        if (prop!=null) {
+            Date date = null;
+            int index =0;
+            for (index=0; (date==null && index<formats.length); index++) {
+                try {
+                    date = 
formats[index].parse(prop.getPropertyAsString());
+                } catch (ParseException pe) {
+                    ;
+                }
+            }
+            // Make sure things are optimised...
+            if (index>0) {
+                SimpleDateFormat nonOptimal = formats[0];
+                formats[0] = formats[index];
+                formats[index] = nonOptimal;
+            }
+            if (date!=null)
+                return date.getTime();
+        }
+        return 0;
     }

+    public long length() {
+        return getContentLength();
+    }
+
+
     /*
      * Returns null if the resource node is not found in server
      */
     public SPResourceNode getResourceNode()  {
         if (_resourceNode!=null)
-            return _resourceNode;
+            return _resourceNode;


    SPResourceNode theNode=null;



Index: 
src/java/org/apache/webdav/ui/filechooser/plafui/SPMetalFileChooserUI.java
===================================================================
RCS file: 
/home/cvs/jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui/SPMetalFileChooserUI.java,v
retrieving revision 1.3
diff -u -r1.3 SPMetalFileChooserUI.java
--- 
src/java/org/apache/webdav/ui/filechooser/plafui/SPMetalFileChooserUI.java  
28 Mar 2002 06:23:10 -0000  1.3
+++ 
src/java/org/apache/webdav/ui/filechooser/plafui/SPMetalFileChooserUI.java  
22 Jul 2002 07:30:21 -0000
@@ -77,7 +77,6 @@
 import org.apache.webdav.ui.filechooser.dir.*;
 import org.apache.webdav.ui.filechooser.*;

-
 public class SPMetalFileChooserUI extends MetalFileChooserUI {

     private Action approveAction = new ApproveAction();
@@ -114,6 +113,7 @@
    return new MetalDoubleClickListener(list);
     }

+
     protected class MetalDoubleClickListener extends MouseAdapter {
    protected JList list;

@@ -170,11 +170,16 @@
            && (chooser.isFilterNaming())
            && (fFilter instanceof SPFileFilter) )  {
            SPFileFilter filter = (SPFileFilter) fFilter;
+            if (!filename.endsWith((String) filter.getFileExtension(0)))
+                filename = filename.concat(
+                     (String) filter.getFileExtension(0));
+            /*
            int dotIndex = filename.indexOf(".");
            if (dotIndex < 0)  {
                filename = filename.concat(
                    (String) filter.getFileExtension(0));
            }
+            */
        }

        // check for directory change action
@@ -253,6 +258,7 @@
        return this;
    }
     }//MetalFileRenderer inner class
+

     private SPFileChooser getSPFileChooser()  {
         return (SPFileChooser) getFileChooser();



Index: 
src/java/org/apache/webdav/ui/filechooser/plafui/SPWindowsFileChooserUI.java
===================================================================
RCS file: 
/home/cvs/jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui/SPWindowsFileChooserUI.java,v
retrieving revision 1.3
diff -u -r1.3 SPWindowsFileChooserUI.java
--- 
src/java/org/apache/webdav/ui/filechooser/plafui/SPWindowsFileChooserUI.java    
28 Mar 2002 06:23:10 -0000  1.3
+++ 
src/java/org/apache/webdav/ui/filechooser/plafui/SPWindowsFileChooserUI.java    
22 Jul 2002 07:30:22 -0000
@@ -169,11 +169,16 @@
            && (chooser.isFilterNaming())
            && (fFilter instanceof SPFileFilter) )  {
            SPFileFilter filter = (SPFileFilter) fFilter;
+            if (!filename.endsWith((String) filter.getFileExtension(0)))
+                    filename = filename.concat(
+                        (String) filter.getFileExtension(0));
+            /*
            int dotIndex = filename.indexOf(".");
            if (dotIndex < 0)  {
                filename = filename.concat(
                    (String) filter.getFileExtension(0));
            }
+            */
        }

        // check for directory change action



Thamm, Russell wrote:

>Hi,
>
>has anybody looked at the incompatibilities between SPFileChooser and JDK
>1.4?
>
>The current code keeps being passed a Win32ShellFolder object when it
>expects a SPFile
>object. 
>
>I gather that most of the problems are due to the extensive changes made to
>javax.swing.filechooser.FileSystemView class.
>
>The other problem appears to be the model for the Directory ComboBox. This
>automatically
>adds ShellFolder objects to the ComboBox. I cannot work out how to override
>this model.
>
>Russell Thamm
>
>
>--
>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
>


-- 
SPEEDLEGAL

Melbourne & San Francisco
Tel +61 (0)3 9670 0141
Fax +61 (0)3 9670 0142
www.speedlegal.com

SmartPrecedent(R) software
The most intelligent way to create documents





--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to