From 414ab43cc3c4ad80a7f9a05b4d7eb6ac50618ba2 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Thu, 20 Mar 2008 20:11:08 +0000 Subject: [PATCH] * create temporary folder when creating the first temporary file * use absolute file for relative files used in arguments --- .../ui/FileTransferableMessageHandler.java | 18 ++++++++++++------ .../filebot/ui/panel/list/ListPanel.java | 4 ++-- .../net/sourceforge/tuned/TemporaryFolder.java | 7 +++++-- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/source/net/sourceforge/filebot/ui/FileTransferableMessageHandler.java b/source/net/sourceforge/filebot/ui/FileTransferableMessageHandler.java index d1d6a0c4..ff781232 100644 --- a/source/net/sourceforge/filebot/ui/FileTransferableMessageHandler.java +++ b/source/net/sourceforge/filebot/ui/FileTransferableMessageHandler.java @@ -3,6 +3,7 @@ package net.sourceforge.filebot.ui; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -35,12 +36,17 @@ public class FileTransferableMessageHandler implements MessageHandler { List files = new ArrayList(messages.length); for (String filename : messages) { - File file = new File(filename); - - if (file.exists()) { - files.add(file); - } else { - Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.WARNING, String.format("Invalid File: %s", filename)); + try { + File file = new File(filename); + + if (file.exists()) { + // file might be relative, use absolute file + files.add(file.getCanonicalFile()); + } else { + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.WARNING, String.format("Invalid File: %s", filename)); + } + } catch (IOException e) { + Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, e.toString(), e); } } diff --git a/source/net/sourceforge/filebot/ui/panel/list/ListPanel.java b/source/net/sourceforge/filebot/ui/panel/list/ListPanel.java index 2d879302..d5d8b38f 100644 --- a/source/net/sourceforge/filebot/ui/panel/list/ListPanel.java +++ b/source/net/sourceforge/filebot/ui/panel/list/ListPanel.java @@ -25,8 +25,8 @@ import net.sourceforge.filebot.FileBotUtil; import net.sourceforge.filebot.resources.ResourceManager; import net.sourceforge.filebot.ui.FileBotList; import net.sourceforge.filebot.ui.FileBotPanel; -import net.sourceforge.filebot.ui.MessageManager; import net.sourceforge.filebot.ui.FileTransferableMessageHandler; +import net.sourceforge.filebot.ui.MessageManager; import net.sourceforge.filebot.ui.transfer.LoadAction; import net.sourceforge.filebot.ui.transfer.SaveAction; import net.sourceforge.tuned.MessageBus; @@ -129,7 +129,7 @@ public class ListPanel extends FileBotPanel { Matcher titleMatcher = Pattern.compile("^([\\w\\s]+).*(\\s+\\w*" + Pattern.quote(INDEX_VARIABLE) + ").*").matcher(pattern); if (titleMatcher.matches()) { - list.setTitle(titleMatcher.group(1)); + list.setTitle(titleMatcher.group(1).trim()); } ArrayList entries = new ArrayList(); diff --git a/source/net/sourceforge/tuned/TemporaryFolder.java b/source/net/sourceforge/tuned/TemporaryFolder.java index b796b83e..acaf5491 100644 --- a/source/net/sourceforge/tuned/TemporaryFolder.java +++ b/source/net/sourceforge/tuned/TemporaryFolder.java @@ -32,7 +32,7 @@ public class TemporaryFolder { * Delete all temporary folders on shutdown */ static { - Runtime.getRuntime().addShutdownHook(new Thread() { + Runtime.getRuntime().addShutdownHook(new Thread("TemporaryFolder ShutdownHook") { @Override public void run() { @@ -52,13 +52,16 @@ public class TemporaryFolder { private TemporaryFolder(File root) { this.root = root; - this.root.mkdir(); } public File createFile(String name) throws IOException { + if (!root.exists()) + root.mkdir(); + File file = new File(root, name); file.createNewFile(); + return file; }