Author: dmeikle
Date: Thu Mar 19 01:25:56 2009
New Revision: 755805
URL: http://svn.apache.org/viewvc?rev=755805&view=rev
Log:
TIKA-200 Allow drag and drop of URLs in TikaGUI
Modified:
lucene/tika/trunk/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java
lucene/tika/trunk/src/main/java/org/apache/tika/gui/TikaGUI.java
Modified:
lucene/tika/trunk/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java
URL:
http://svn.apache.org/viewvc/lucene/tika/trunk/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java?rev=755805&r1=755804&r2=755805&view=diff
==============================================================================
---
lucene/tika/trunk/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java
(original)
+++
lucene/tika/trunk/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java
Thu Mar 19 01:25:56 2009
@@ -21,10 +21,12 @@
import java.awt.datatransfer.Transferable;
import java.awt.event.InputEvent;
import java.io.File;
+import java.io.FileInputStream;
import java.util.List;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.net.URI;
+import java.net.URL;
import javax.swing.Icon;
import javax.swing.JComponent;
@@ -40,9 +42,11 @@
private final TikaGUI tika;
private static DataFlavor uriListFlavor;
+ private static DataFlavor urlListFlavor;
static {
try {
uriListFlavor = new
DataFlavor("text/uri-list;class=java.lang.String");
+ urlListFlavor = new
DataFlavor("text/plain;class=java.lang.String");
} catch (ClassNotFoundException e) {
}
}
@@ -54,7 +58,7 @@
public boolean canImport(JComponent component, DataFlavor[] flavors) {
for (DataFlavor flavor : flavors) {
- if (flavor.equals(DataFlavor.javaFileListFlavor) ||
flavor.equals(uriListFlavor)) {
+ if (flavor.equals(DataFlavor.javaFileListFlavor) ||
flavor.equals(uriListFlavor) || flavor.equals(urlListFlavor)) {
return true;
}
}
@@ -64,16 +68,17 @@
public boolean importData(
JComponent component, Transferable transferable) {
try {
- List<?> files = null;
+ List<File> files = null;
if
(transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
- files = (List<?>)
-
transferable.getTransferData(DataFlavor.javaFileListFlavor);
+ files = (List<File>)
transferable.getTransferData(DataFlavor.javaFileListFlavor);
+ } else if (transferable.isDataFlavorSupported(urlListFlavor)) {
+ tika.importStream(new URL((String)
transferable.getTransferData(urlListFlavor)).openStream());
} else if (transferable.isDataFlavorSupported(uriListFlavor)) {
files = uriToFileList((String)
transferable.getTransferData(uriListFlavor));
}
- for (Object file : files) {
- tika.importFile((File) file);
+ for (File file : files) {
+ tika.importStream(new FileInputStream(file));
}
return true;
} catch (Exception e) {
Modified: lucene/tika/trunk/src/main/java/org/apache/tika/gui/TikaGUI.java
URL:
http://svn.apache.org/viewvc/lucene/tika/trunk/src/main/java/org/apache/tika/gui/TikaGUI.java?rev=755805&r1=755804&r2=755805&view=diff
==============================================================================
--- lucene/tika/trunk/src/main/java/org/apache/tika/gui/TikaGUI.java (original)
+++ lucene/tika/trunk/src/main/java/org/apache/tika/gui/TikaGUI.java Thu Mar 19
01:25:56 2009
@@ -128,8 +128,7 @@
this.parser = parser;
}
- public void importFile(File file) throws IOException {
- InputStream input = new FileInputStream(file);
+ public void importStream(InputStream input) throws IOException {
try {
StringWriter htmlBuffer = new StringWriter();
StringWriter textBuffer = new StringWriter();
@@ -141,10 +140,9 @@
getTextContentHandler(textBuffer),
getXmlContentHandler(xmlBuffer));
Metadata md = new Metadata();
- md.set(Metadata.RESOURCE_NAME_KEY, file.getName());
input = new ProgressMonitorInputStream(
- this, "Parsing file " + file.getName(), input);
+ this, "Parsing stream", input);
parser.parse(input, handler, md);
String[] names = md.names();
@@ -173,8 +171,8 @@
tabs.setSelectedIndex(tabs.getTabCount() - 1);
JOptionPane.showMessageDialog(
this,
- "Apache Tika was unable to parse the file "
- + file.getName() + ".\n See the errors tab for"
+ "Apache Tika was unable to parse the file or url.\n "
+ + " See the errors tab for"
+ " the detailed stack trace of this error.",
"Parse error",
JOptionPane.ERROR_MESSAGE);