Author: jflesch
Date: 2006-10-22 19:54:18 +0000 (Sun, 22 Oct 2006)
New Revision: 10692

Modified:
   trunk/apps/Thaw/src/thaw/core/FileChooser.java
   trunk/apps/Thaw/src/thaw/plugins/index/IndexEditorPanel.java
   trunk/apps/Thaw/src/thaw/plugins/insertPlugin/InsertPanel.java
Log:
Add recursive support when selecting a file

Modified: trunk/apps/Thaw/src/thaw/core/FileChooser.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/FileChooser.java      2006-10-22 19:34:38 UTC 
(rev 10691)
+++ trunk/apps/Thaw/src/thaw/core/FileChooser.java      2006-10-22 19:54:18 UTC 
(rev 10692)
@@ -69,17 +69,44 @@
                return fileChooser.getSelectedFile();
        }

+
+       protected void expandRecursivly(File file, Vector vec) {
+               if (file.isFile()) {
+                       vec.add(file);
+                       return;
+               }
+
+               File[] files = file.listFiles();
+
+               if (files == null) {
+                       Logger.notice(this, "Unable to parse directory 
'"+file.getPath()+"'");
+                       return;
+               }
+
+               for (int i=0; i < files.length; i++) {
+                       if (files[i].isFile())
+                               vec.add(files[i]);
+                       else
+                               expandRecursivly(files[i],vec);
+               }
+               
+       }

-       protected File[] expandRecursivly(File[] selectedFiles)
+       protected Vector expandRecursivly(File[] selectedFiles)
        {
-               /* TODO */
-               return selectedFiles;
+               Vector files= new Vector();
+
+               for (int i = 0 ; i < selectedFiles.length ; i++) {
+                       expandRecursivly(selectedFiles[i], files);
+               }
+
+               return files;
        }

        /**
         * @return null if nothing choosed.
         */
-       public File[] askManyFiles() {
+       public Vector askManyFiles() {
                fileChooser.setMultiSelectionEnabled(true);

                if(!showDialog())

Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexEditorPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexEditorPanel.java        
2006-10-22 19:34:38 UTC (rev 10691)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexEditorPanel.java        
2006-10-22 19:54:18 UTC (rev 10692)
@@ -14,6 +14,10 @@
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;

+import java.util.Vector;
+import java.util.Iterator;
+
+
 import thaw.core.*;
 import thaw.fcp.*;

@@ -179,7 +183,7 @@
                        fileChooser.setDirectoryOnly(false);
                        fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);

-                       java.io.File[] files = fileChooser.askManyFiles();
+                       Vector files = fileChooser.askManyFiles();

                        if(files == null) {
                                Logger.info(this, "add[andInsert]Button : 
Cancelled");
@@ -188,24 +192,28 @@

                        String category = FileCategory.promptForACategory();

-                       for(int i = 0 ; i < files.length ; i++) {
+                       for(Iterator it = files.iterator();
+                           it.hasNext();) {
+
+                               java.io.File ioFile = (java.io.File)it.next();
+
                                FCPTransferQuery insertion = null;

                                if(e.getSource() == insertAndAddButton) {
-                                       insertion = new FCPClientPut(files[i], 
0, 0, null,
+                                       insertion = new FCPClientPut(ioFile, 0, 
0, null,
                                                                     null, 
DEFAULT_INSERTION_PRIORITY,
                                                                     true, 0, 
false);
                                        
((FCPClientPut)insertion).addObserver(this);
                                        
queueManager.addQueryToThePendingQueue(insertion);
                                } else {
-                                       insertion = new FCPClientPut(files[i], 
0, 0, null,
+                                       insertion = new FCPClientPut(ioFile, 0, 
0, null,
                                                                     null, 
DEFAULT_INSERTION_PRIORITY,
                                                                     true, 2, 
true); /* getCHKOnly */
                                        insertion.start(queueManager);
                                }


-                               thaw.plugins.index.File file = new 
thaw.plugins.index.File(db, files[i].getPath(),
+                               thaw.plugins.index.File file = new 
thaw.plugins.index.File(db, ioFile.getPath(),
                                                                                
           category, (Index)fileList,
                                                                                
           insertion);


Modified: trunk/apps/Thaw/src/thaw/plugins/insertPlugin/InsertPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/insertPlugin/InsertPanel.java      
2006-10-22 19:34:38 UTC (rev 10691)
+++ trunk/apps/Thaw/src/thaw/plugins/insertPlugin/InsertPanel.java      
2006-10-22 19:54:18 UTC (rev 10692)
@@ -21,6 +21,8 @@
 import java.util.Observable;
 import java.util.Vector;

+import java.util.Iterator;
+
 import thaw.core.*;
 import thaw.plugins.InsertPlugin;
 import thaw.fcp.*;
@@ -343,7 +345,7 @@

                if(e.getSource() == browseButton) {
                        FileChooser fileChooser = new FileChooser();
-                       File[] files;
+                       Vector files;

                        
fileChooser.setTitle(I18n.getMessage("thaw.common.selectFile"));
                        fileChooser.setDirectoryOnly(false);
@@ -355,10 +357,19 @@

                        String fileList = "";

-                       for(int i = 0 ; i < files.length ; i++) {
+                       int i;
+
+                       i = 0;
+
+                       for(Iterator it = files.iterator();
+                           it.hasNext(); ) {
+                               File file = (File)it.next();
+
                                if(i >= 1)
                                        fileList = fileList + ";";
-                               fileList = fileList + files[i].getPath();
+                               fileList = fileList + file.getPath();
+
+                               i++;
                        }

                        selectedFiles.setText(fileList);


Reply via email to