* make things more idiot-proof

This commit is contained in:
Reinhard Pointner 2013-09-30 04:46:33 +00:00
parent 20aef4e385
commit e29b07c186
3 changed files with 73 additions and 87 deletions

View File

@ -1,7 +1,5 @@
package net.sourceforge.filebot.ui.rename;
import static java.util.Collections.*;
import static javax.swing.JOptionPane.*;
import static net.sourceforge.filebot.Settings.*;
@ -52,32 +50,29 @@ import net.sourceforge.tuned.ui.ProgressDialog;
import net.sourceforge.tuned.ui.ProgressDialog.Cancellable;
import net.sourceforge.tuned.ui.SwingWorkerPropertyChangeAdapter;
class RenameAction extends AbstractAction {
public static final String RENAME_ACTION = "RENAME_ACTION";
private final RenameModel model;
public RenameAction(RenameModel model) {
this.model = model;
resetValues();
}
public void resetValues() {
putValue(RENAME_ACTION, StandardRenameAction.MOVE);
putValue(NAME, "Rename");
putValue(SMALL_ICON, ResourceManager.getIcon("action.rename"));
}
@Override
public void actionPerformed(ActionEvent evt) {
Window window = getWindow(evt.getSource());
try {
if (model.getRenameMap().isEmpty()) {
UILogger.info("Nothing to rename. Please add some files and create matches first.");
return;
}
@ -138,7 +133,6 @@ class RenameAction extends AbstractAction {
window.setCursor(Cursor.getDefaultCursor());
}
public boolean isNativeActionSupported(StandardRenameAction action) {
try {
return NativeRenameAction.isSupported() && NativeRenameAction.valueOf(action.name()) != null;
@ -147,7 +141,6 @@ class RenameAction extends AbstractAction {
}
}
private Map<File, File> checkRenamePlan(List<Entry<File, File>> renamePlan, Window parent) {
// build rename map and perform some sanity checks
Map<File, File> renameMap = new HashMap<File, File>();
@ -207,7 +200,6 @@ class RenameAction extends AbstractAction {
return renameMap;
}
private List<Entry<File, File>> validate(Map<File, String> renameMap, Window parent) {
final List<Entry<File, File>> source = new ArrayList<Entry<File, File>>(renameMap.size());
@ -222,13 +214,11 @@ class RenameAction extends AbstractAction {
return source.get(index).getValue();
}
@Override
public File set(int index, File name) {
return source.get(index).setValue(name);
}
@Override
public int size() {
return source.size();
@ -244,7 +234,6 @@ class RenameAction extends AbstractAction {
return emptyList();
}
protected ProgressDialog createProgressDialog(Window parent, final RenameJob job) {
final ProgressDialog dialog = new ProgressDialog(parent, job);
@ -267,7 +256,6 @@ class RenameAction extends AbstractAction {
}
}
@Override
protected void done(PropertyChangeEvent evt) {
dialog.close();
@ -277,7 +265,6 @@ class RenameAction extends AbstractAction {
return dialog;
}
protected class RenameJob extends SwingWorker<Map<File, File>, Void> implements Cancellable {
protected final net.sourceforge.filebot.RenameAction action;
@ -287,14 +274,12 @@ class RenameAction extends AbstractAction {
protected final Semaphore postprocess = new Semaphore(0);
public RenameJob(Map<File, File> renameMap, net.sourceforge.filebot.RenameAction action) {
this.action = action;
this.renameMap = synchronizedMap(renameMap);
this.renameLog = synchronizedMap(new LinkedHashMap<File, File>());
}
@Override
protected Map<File, File> doInBackground() throws Exception {
try {
@ -322,7 +307,6 @@ class RenameAction extends AbstractAction {
return renameLog;
}
@Override
protected void done() {
try {
@ -360,21 +344,18 @@ class RenameAction extends AbstractAction {
}
}
@Override
public boolean cancel() {
return cancel(true);
}
}
protected class NativeRenameJob extends RenameJob implements Cancellable {
public NativeRenameJob(Map<File, File> renameMap, NativeRenameAction action) {
super(renameMap, action);
}
@Override
protected Map<File, File> doInBackground() throws Exception {
NativeRenameAction shell = (NativeRenameAction) action;
@ -409,7 +390,6 @@ class RenameAction extends AbstractAction {
return renameLog;
}
@Override
public boolean cancel() {
throw new UnsupportedOperationException();

View File

@ -53,6 +53,7 @@ import net.sourceforge.filebot.WebServices;
import net.sourceforge.filebot.similarity.Match;
import net.sourceforge.filebot.ui.Language;
import net.sourceforge.filebot.ui.rename.RenameModel.FormattedFuture;
import net.sourceforge.filebot.ui.transfer.LoadAction;
import net.sourceforge.filebot.web.AudioTrack;
import net.sourceforge.filebot.web.AudioTrackFormat;
import net.sourceforge.filebot.web.Episode;
@ -183,7 +184,12 @@ public class RenamePanel extends JComponent {
@Override
public void actionPerformed(ActionEvent e) {
// show popup on actionPerformed only when names list is empty
if (renameModel.size() > 0 && !renameModel.hasComplement(0)) {
if (renameModel.size() == 0) {
new LoadAction(filesList.getTransferablePolicy()).actionPerformed(e);
if (renameModel.size() > 0) {
fetchPopupAction.actionPerformed(e);
}
} else if (renameModel.size() > 0 && !renameModel.hasComplement(0)) {
fetchPopupAction.actionPerformed(e);
}
}

View File

@ -103,7 +103,7 @@
<div>
<ul>
<li><a href="http://www.filebot.net/forums/">Forums</a></li>
<li><a href="http://www.filebot.net/forums/viewtopic.php?f=3&amp;t=7">FAQ</a></li>
<li><a href="http://www.filebot.net/forums/viewtopic.php?f=3&amp;t=7#p7">Manual</a></li>
<li><a href="http://www.filebot.net/#download">Download</a></li>
</ul>
</div>