From 12cf2f741163c3f175e5866adcfc46c0733d25a4 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Tue, 9 Apr 2013 17:55:54 +0000 Subject: [PATCH] + added --mode option to force a mode in the GUI (e.g. --mode rename) and only display a specified panel --- source/net/sourceforge/filebot/Main.java | 21 ++++++++++++------- .../sourceforge/filebot/cli/ArgumentBean.java | 11 ++-------- .../net/sourceforge/filebot/ui/MainFrame.java | 2 +- .../filebot/ui/SinglePanelFrame.java | 4 ++-- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/source/net/sourceforge/filebot/Main.java b/source/net/sourceforge/filebot/Main.java index 409e2b51..9f5eba73 100644 --- a/source/net/sourceforge/filebot/Main.java +++ b/source/net/sourceforge/filebot/Main.java @@ -59,9 +59,8 @@ import net.sourceforge.filebot.format.ExpressionFormat; import net.sourceforge.filebot.gio.GVFS; import net.sourceforge.filebot.media.MediaDetection; import net.sourceforge.filebot.ui.MainFrame; +import net.sourceforge.filebot.ui.PanelBuilder; import net.sourceforge.filebot.ui.SinglePanelFrame; -import net.sourceforge.filebot.ui.sfv.SfvPanelBuilder; -import net.sourceforge.filebot.ui.transfer.FileTransferable; import net.sourceforge.filebot.web.CachedResource; import net.sourceforge.tuned.ByteBufferInputStream; import net.sourceforge.tuned.PreferencesMap.PreferencesEntry; @@ -239,15 +238,21 @@ public class Main { private static void startUserInterface(ArgumentBean args) { - JFrame frame; + JFrame frame = null; - if (args.openSFV()) { - // single panel frame - FileTransferable files = new FileTransferable(args.getFiles(false)); - frame = new SinglePanelFrame(new SfvPanelBuilder()).publish(files); - } else { + if (args.mode == null) { // default frame frame = new MainFrame(); + } else { + // single panel frame + for (PanelBuilder it : MainFrame.createPanelBuilders()) { + if (args.mode.equalsIgnoreCase(it.getName())) { + frame = new SinglePanelFrame(it); + } + } + if (frame == null) { + throw new IllegalArgumentException("Illegal mode: " + args.mode); + } } frame.setLocationByPlatform(true); diff --git a/source/net/sourceforge/filebot/cli/ArgumentBean.java b/source/net/sourceforge/filebot/cli/ArgumentBean.java index 668dbcf7..37a4b180 100644 --- a/source/net/sourceforge/filebot/cli/ArgumentBean.java +++ b/source/net/sourceforge/filebot/cli/ArgumentBean.java @@ -13,8 +13,6 @@ import java.util.Map.Entry; import java.util.logging.Level; import java.util.logging.Logger; -import net.sourceforge.filebot.MediaTypes; - import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.Option; import org.kohsuke.args4j.spi.ExplicitBooleanOptionHandler; @@ -94,8 +92,8 @@ public class ArgumentBean { @Option(name = "-r", usage = "Resolve folders recursively") public boolean recursive = false; - @Option(name = "-open", usage = "Open file in GUI", metaVar = "file") - public boolean open = false; + @Option(name = "--mode", usage = "Open GUI with the specified mode only", metaVar = "[rename, sfv, etc]") + public String mode = null; @Option(name = "-clear-cache", usage = "Clear cached and temporary data") public boolean clearCache = false; @@ -127,11 +125,6 @@ public class ArgumentBean { } - public boolean openSFV() { - return open && containsOnly(getFiles(false), MediaTypes.getDefaultFilter("verification")); - } - - public boolean printVersion() { return version; } diff --git a/source/net/sourceforge/filebot/ui/MainFrame.java b/source/net/sourceforge/filebot/ui/MainFrame.java index 622f279d..9514b4c1 100644 --- a/source/net/sourceforge/filebot/ui/MainFrame.java +++ b/source/net/sourceforge/filebot/ui/MainFrame.java @@ -118,7 +118,7 @@ public class MainFrame extends JFrame { } - protected PanelBuilder[] createPanelBuilders() { + public static PanelBuilder[] createPanelBuilders() { return new PanelBuilder[] { new ListPanelBuilder(), new RenamePanelBuilder(), new AnalyzePanelBuilder(), new EpisodeListPanelBuilder(), new SubtitlePanelBuilder(), new SfvPanelBuilder() }; } diff --git a/source/net/sourceforge/filebot/ui/SinglePanelFrame.java b/source/net/sourceforge/filebot/ui/SinglePanelFrame.java index 1fea1165..5440c9c9 100644 --- a/source/net/sourceforge/filebot/ui/SinglePanelFrame.java +++ b/source/net/sourceforge/filebot/ui/SinglePanelFrame.java @@ -12,6 +12,7 @@ import javax.swing.JFrame; import net.miginfocom.swing.MigLayout; import net.sourceforge.filebot.ResourceManager; +import net.sourceforge.filebot.Settings; import net.sourceforge.filebot.ui.transfer.TransferablePolicy; import net.sourceforge.filebot.ui.transfer.TransferablePolicy.TransferAction; import net.sourceforge.tuned.ExceptionUtilities; @@ -23,8 +24,7 @@ public class SinglePanelFrame extends JFrame { public SinglePanelFrame(PanelBuilder builder) { - super(builder.getName()); - + super(Settings.getApplicationName() + " - " + builder.getName()); panel = builder.create(); // set taskbar / taskswitch icons