* actively discourage people from using the "Load" button and tell them to use Drag-and-Drop instead

This commit is contained in:
Reinhard Pointner 2013-10-02 16:42:52 +00:00
parent ffc629943b
commit ee4e373eb1
1 changed files with 13 additions and 21 deletions

View File

@ -1,7 +1,5 @@
package net.sourceforge.filebot.ui.transfer; package net.sourceforge.filebot.ui.transfer;
import static net.sourceforge.filebot.ui.NotificationLogging.*; import static net.sourceforge.filebot.ui.NotificationLogging.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -16,59 +14,53 @@ import net.sourceforge.filebot.ResourceManager;
import net.sourceforge.filebot.Settings; import net.sourceforge.filebot.Settings;
import net.sourceforge.filebot.ui.transfer.TransferablePolicy.TransferAction; import net.sourceforge.filebot.ui.transfer.TransferablePolicy.TransferAction;
public class LoadAction extends AbstractAction { public class LoadAction extends AbstractAction {
public static final String TRANSFERABLE_POLICY = "transferablePolicy"; public static final String TRANSFERABLE_POLICY = "transferablePolicy";
public LoadAction(TransferablePolicy transferablePolicy) { public LoadAction(TransferablePolicy transferablePolicy) {
this("Load", ResourceManager.getIcon("action.load"), transferablePolicy); this("Load", ResourceManager.getIcon("action.load"), transferablePolicy);
} }
public LoadAction(String name, Icon icon, TransferablePolicy transferablePolicy) { public LoadAction(String name, Icon icon, TransferablePolicy transferablePolicy) {
putValue(NAME, name); putValue(NAME, name);
putValue(SMALL_ICON, icon); putValue(SMALL_ICON, icon);
putValue(TRANSFERABLE_POLICY, transferablePolicy); putValue(TRANSFERABLE_POLICY, transferablePolicy);
} }
public TransferAction getTransferAction(ActionEvent evt) { public TransferAction getTransferAction(ActionEvent evt) {
// if CTRL was pressed when the button was clicked, assume ADD action (same as with dnd) // if CTRL was pressed when the button was clicked, assume ADD action (same as with dnd)
return ((evt.getModifiers() & ActionEvent.CTRL_MASK) != 0) ? TransferAction.ADD : TransferAction.PUT; return ((evt.getModifiers() & ActionEvent.CTRL_MASK) != 0) ? TransferAction.ADD : TransferAction.PUT;
} }
protected File getDefaultFolder() { protected File getDefaultFolder() {
String lastLocation = Settings.forPackage(LoadAction.class).get("load.location"); String lastLocation = Settings.forPackage(LoadAction.class).get("load.location");
if (lastLocation == null || lastLocation.isEmpty()) if (lastLocation == null || lastLocation.isEmpty())
return null; return null;
return new File(lastLocation); return new File(lastLocation);
} }
public void actionPerformed(ActionEvent evt) { public void actionPerformed(ActionEvent evt) {
// get transferable policy from action properties // get transferable policy from action properties
TransferablePolicy transferablePolicy = (TransferablePolicy) getValue(TRANSFERABLE_POLICY); TransferablePolicy transferablePolicy = (TransferablePolicy) getValue(TRANSFERABLE_POLICY);
if (transferablePolicy == null) if (transferablePolicy == null)
return; return;
JFileChooser chooser = new JFileChooser(getDefaultFolder()); JFileChooser chooser = new JFileChooser(getDefaultFolder());
chooser.setFileFilter(new TransferablePolicyFileFilter(transferablePolicy)); chooser.setFileFilter(new TransferablePolicyFileFilter(transferablePolicy));
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setMultiSelectionEnabled(true); chooser.setMultiSelectionEnabled(true);
if (chooser.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) // tell noobs to use drag-n-drop
UILogger.info("Why do you not use drag-and-drop to directly drop in your files?");
if (chooser.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) {
return; return;
}
FileTransferable transferable = new FileTransferable(chooser.getSelectedFiles()); FileTransferable transferable = new FileTransferable(chooser.getSelectedFiles());
try { try {
if (transferablePolicy.accept(transferable)) { if (transferablePolicy.accept(transferable)) {
transferablePolicy.handleTransferable(transferable, getTransferAction(evt)); transferablePolicy.handleTransferable(transferable, getTransferAction(evt));
@ -76,9 +68,9 @@ public class LoadAction extends AbstractAction {
} catch (Exception e) { } catch (Exception e) {
UILogger.log(Level.WARNING, e.getMessage(), e); UILogger.log(Level.WARNING, e.getMessage(), e);
} }
// remember last location // remember last location
Settings.forPackage(LoadAction.class).put("load.location", chooser.getCurrentDirectory().getPath()); Settings.forPackage(LoadAction.class).put("load.location", chooser.getCurrentDirectory().getPath());
} }
} }