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);