From c2add9937f5b49f47049a91656819948d2683cb6 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sun, 31 Jul 2016 13:36:07 +0800 Subject: [PATCH] Refactor --- source/net/filebot/NativeRenameAction.java | 25 ------------- source/net/filebot/StandardRenameAction.java | 37 +++++++++++++++++-- .../net/filebot/ui/rename/RenameAction.java | 2 +- 3 files changed, 34 insertions(+), 30 deletions(-) diff --git a/source/net/filebot/NativeRenameAction.java b/source/net/filebot/NativeRenameAction.java index b3b6dcc3..89d6a315 100644 --- a/source/net/filebot/NativeRenameAction.java +++ b/source/net/filebot/NativeRenameAction.java @@ -1,11 +1,9 @@ package net.filebot; import static java.util.Collections.*; -import static net.filebot.Logging.*; import static net.filebot.util.FileUtilities.*; import java.io.File; -import java.io.IOException; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.CancellationException; @@ -66,27 +64,4 @@ public enum NativeRenameAction implements RenameAction { } } - public static void trash(File file) throws IOException { - // use system trash if possible - try { - if (Platform.isMac()) { - // use com.apple.eio package on OS X platform - if (com.apple.eio.FileManager.moveToTrash(file)) { - return; - } - } else if (com.sun.jna.platform.FileUtils.getInstance().hasTrash()) { - // use com.sun.jna.platform package on Windows and Linux - com.sun.jna.platform.FileUtils.getInstance().moveToTrash(new File[] { file }); - return; - } - } catch (Exception e) { - debug.warning(e::toString); - } - - // delete permanently if necessary - if (file.exists()) { - net.filebot.util.FileUtilities.delete(file); - } - } - } diff --git a/source/net/filebot/StandardRenameAction.java b/source/net/filebot/StandardRenameAction.java index 1efb82b0..96e00a2c 100644 --- a/source/net/filebot/StandardRenameAction.java +++ b/source/net/filebot/StandardRenameAction.java @@ -1,11 +1,17 @@ package net.filebot; +import static net.filebot.Logging.*; + import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.LinkOption; import java.nio.file.attribute.BasicFileAttributes; +import com.apple.eio.FileManager; +import com.sun.jna.Platform; +import com.sun.jna.platform.FileUtils; + import net.filebot.util.FileUtilities; public enum StandardRenameAction implements RenameAction { @@ -149,29 +155,52 @@ public enum StandardRenameAction implements RenameAction { // reverse symlink if (currentAttr.isSymbolicLink() && !originalAttr.isSymbolicLink()) { - NativeRenameAction.trash(current); + trash(current); return original; } // reverse keeplink if (!currentAttr.isSymbolicLink() && originalAttr.isSymbolicLink()) { - NativeRenameAction.trash(original); + trash(original); return FileUtilities.moveRename(current, original); } // reverse copy / hardlink if (currentAttr.isRegularFile() && originalAttr.isRegularFile()) { - NativeRenameAction.trash(current); + trash(current); return original; } // reverse folder copy if (currentAttr.isDirectory() && originalAttr.isDirectory()) { - NativeRenameAction.trash(original); + trash(original); return FileUtilities.moveRename(current, original); } throw new IllegalArgumentException(String.format("Cannot revert file: %s => %s", current, original)); } + public static void trash(File file) throws IOException { + // use system trash if possible + try { + if (Platform.isMac()) { + // use com.apple.eio package on OS X platform + if (FileManager.moveToTrash(file)) { + return; + } + } else if (FileUtils.getInstance().hasTrash()) { + // use com.sun.jna.platform package on Windows and Linux + FileUtils.getInstance().moveToTrash(new File[] { file }); + return; + } + } catch (Exception e) { + debug.warning(e::toString); + } + + // delete permanently if necessary + if (file.exists()) { + FileUtilities.delete(file); + } + } + } diff --git a/source/net/filebot/ui/rename/RenameAction.java b/source/net/filebot/ui/rename/RenameAction.java index fed983af..48a107af 100644 --- a/source/net/filebot/ui/rename/RenameAction.java +++ b/source/net/filebot/ui/rename/RenameAction.java @@ -183,7 +183,7 @@ class RenameAction extends AbstractAction { try { for (File file : deleteFiles) { if (file.exists()) { - NativeRenameAction.trash(file); + StandardRenameAction.trash(file); } } } catch (Throwable e) {