From e7d697df0afcdaebe84e09d66eac702d02bd3375 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Tue, 22 Nov 2011 15:21:19 +0000 Subject: [PATCH] * automatically cancel drops of internally-generated files --- .../filebot/ui/transfer/FileTransferablePolicy.java | 10 ++++++++-- source/net/sourceforge/tuned/FileUtilities.java | 11 +++++++++++ source/net/sourceforge/tuned/TemporaryFolder.java | 7 ++++--- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/source/net/sourceforge/filebot/ui/transfer/FileTransferablePolicy.java b/source/net/sourceforge/filebot/ui/transfer/FileTransferablePolicy.java index 2dcbc50b..9cf22505 100644 --- a/source/net/sourceforge/filebot/ui/transfer/FileTransferablePolicy.java +++ b/source/net/sourceforge/filebot/ui/transfer/FileTransferablePolicy.java @@ -3,6 +3,7 @@ package net.sourceforge.filebot.ui.transfer; import static net.sourceforge.filebot.ui.transfer.FileTransferable.*; +import static net.sourceforge.tuned.FileUtilities.*; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; @@ -16,11 +17,16 @@ public abstract class FileTransferablePolicy extends TransferablePolicy { @Override public boolean accept(Transferable tr) throws Exception { try { - return accept(getFilesFromTransferable(tr)); + List files = getFilesFromTransferable(tr); + + if (!containsOnly(files, TEMPORARY)) { + return accept(getFilesFromTransferable(tr)); + } } catch (UnsupportedFlavorException e) { // no file list flavor - return false; } + + return false; } diff --git a/source/net/sourceforge/tuned/FileUtilities.java b/source/net/sourceforge/tuned/FileUtilities.java index 398a02da..349399e2 100644 --- a/source/net/sourceforge/tuned/FileUtilities.java +++ b/source/net/sourceforge/tuned/FileUtilities.java @@ -428,6 +428,17 @@ public final class FileUtilities { } }; + public static final FileFilter TEMPORARY = new FileFilter() { + + private final File TEMP_DIR = new File(System.getProperty("java.io.tmpdir")); + + + @Override + public boolean accept(File file) { + return file.getAbsolutePath().startsWith(TEMP_DIR.getAbsolutePath()); + } + }; + public static class ExtensionFileFilter implements FileFilter { diff --git a/source/net/sourceforge/tuned/TemporaryFolder.java b/source/net/sourceforge/tuned/TemporaryFolder.java index 0ccffd44..2ceeefc7 100644 --- a/source/net/sourceforge/tuned/TemporaryFolder.java +++ b/source/net/sourceforge/tuned/TemporaryFolder.java @@ -13,8 +13,6 @@ import java.util.UUID; public final class TemporaryFolder { - private static final File tmpdir = new File(System.getProperty("java.io.tmpdir")); - private static final Map folders = new HashMap(); @@ -35,7 +33,10 @@ public final class TemporaryFolder { TemporaryFolder folder = folders.get(name); if (folder == null) { - folder = new TemporaryFolder(new File(tmpdir, String.format("%s [%s]", name, UUID.randomUUID()))); + File tmpdir = new File(System.getProperty("java.io.tmpdir")); + String subdir = String.format("%s [%s]", name, UUID.randomUUID()); + + folder = new TemporaryFolder(new File(tmpdir, subdir)); folders.put(name, folder); }