parent
e06c5971b8
commit
e643466653
|
@ -3,10 +3,13 @@ package net.sourceforge.filebot.ui.panel.rename;
|
|||
|
||||
|
||||
import static javax.swing.SwingUtilities.getWindowAncestor;
|
||||
import static net.sourceforge.filebot.FileBotUtilities.isInvalidFileName;
|
||||
import static net.sourceforge.tuned.ui.LoadingOverlayPane.LOADING_PROPERTY;
|
||||
import static net.sourceforge.filebot.FileBotUtilities.*;
|
||||
|
||||
import java.awt.Insets;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -50,7 +53,7 @@ public class RenamePanel extends FileBotPanel {
|
|||
|
||||
private RenameAction renameAction = new RenameAction(model);
|
||||
|
||||
private ActionPopup matchActionPopup = new ActionPopup("Fetch Episode List", ResourceManager.getIcon("action.match.small"));
|
||||
private ActionPopup matchActionPopup = new ActionPopup("Fetch Episode List", ResourceManager.getIcon("action.fetch"));
|
||||
|
||||
|
||||
public RenamePanel() {
|
||||
|
@ -98,7 +101,7 @@ public class RenamePanel extends FileBotPanel {
|
|||
|
||||
setLayout(new MigLayout("fill, insets dialog, gapx 10px", null, "align 33%"));
|
||||
|
||||
add(new LoadingOverlayPane(namesList, this, "28px", "30px"), "grow, sizegroupx list");
|
||||
add(new LoadingOverlayPane(namesList, namesList, "28px", "30px"), "grow, sizegroupx list");
|
||||
|
||||
// make buttons larger
|
||||
matchButton.setMargin(new Insets(3, 14, 2, 14));
|
||||
|
@ -109,6 +112,15 @@ public class RenamePanel extends FileBotPanel {
|
|||
|
||||
add(filesList, "grow, sizegroupx list");
|
||||
|
||||
// set action popup status message while episode list matcher is working
|
||||
namesList.addPropertyChangeListener(LOADING_PROPERTY, new PropertyChangeListener() {
|
||||
|
||||
@Override
|
||||
public void propertyChange(PropertyChangeEvent evt) {
|
||||
matchActionPopup.setStatus((Boolean) evt.getNewValue() ? "in progress" : null);
|
||||
}
|
||||
});
|
||||
|
||||
// repaint on change
|
||||
model.names().addListEventListener(new RepaintHandler<Object>());
|
||||
model.files().addListEventListener(new RepaintHandler<File>());
|
||||
|
@ -128,20 +140,6 @@ public class RenamePanel extends FileBotPanel {
|
|||
}
|
||||
};
|
||||
|
||||
private boolean autoMatchInProgress = false;
|
||||
|
||||
|
||||
protected void setAutoMatchInProgress(boolean flag) {
|
||||
this.autoMatchInProgress = flag;
|
||||
firePropertyChange(LOADING_PROPERTY, !flag, flag);
|
||||
matchActionPopup.setStatus(flag ? "in progress" : null);
|
||||
}
|
||||
|
||||
|
||||
protected boolean isAutoMatchInProgress() {
|
||||
return autoMatchInProgress;
|
||||
}
|
||||
|
||||
|
||||
protected class AutoFetchEpisodeListAction extends AbstractAction {
|
||||
|
||||
|
@ -152,15 +150,27 @@ public class RenamePanel extends FileBotPanel {
|
|||
super(client.getName(), client.getIcon());
|
||||
|
||||
this.client = client;
|
||||
|
||||
// disable action while episode list matcher is working
|
||||
namesList.addPropertyChangeListener(LOADING_PROPERTY, new PropertyChangeListener() {
|
||||
|
||||
@Override
|
||||
public void propertyChange(PropertyChangeEvent evt) {
|
||||
setEnabled(!(Boolean) evt.getNewValue());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent evt) {
|
||||
if (model.files().isEmpty() || isAutoMatchInProgress()) {
|
||||
if (model.files().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// auto-match in progress
|
||||
namesList.firePropertyChange(LOADING_PROPERTY, false, true);
|
||||
|
||||
// clear names list
|
||||
model.names().clear();
|
||||
|
||||
|
@ -168,9 +178,6 @@ public class RenamePanel extends FileBotPanel {
|
|||
|
||||
@Override
|
||||
protected void done() {
|
||||
// background worker is finished
|
||||
setAutoMatchInProgress(false);
|
||||
|
||||
try {
|
||||
List<MutableString> names = new ArrayList<MutableString>();
|
||||
List<File> files = new ArrayList<File>();
|
||||
|
@ -208,14 +215,15 @@ public class RenamePanel extends FileBotPanel {
|
|||
} catch (Exception e) {
|
||||
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCauseMessage(e), e);
|
||||
}
|
||||
|
||||
// auto-match finished
|
||||
namesList.firePropertyChange(LOADING_PROPERTY, true, false);
|
||||
}
|
||||
};
|
||||
|
||||
worker.execute();
|
||||
|
||||
// background worker started
|
||||
setAutoMatchInProgress(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ public class ActionPopup extends JPopupMenu {
|
|||
|
||||
setLayout(new MigLayout("nogrid, fill, insets 0"));
|
||||
|
||||
add(headerLabel, "gapx 4px 4px, gapy 1px, wrap 3px");
|
||||
add(headerLabel, "gapx 5px 5px, gapy 1px, wrap 3px");
|
||||
add(new JSeparator(), "growx, wrap 1px");
|
||||
add(descriptionLabel, "gapx 4px, wrap 3px");
|
||||
add(actionPanel, "gapx 12px 12px, wrap");
|
||||
|
|
|
@ -79,10 +79,10 @@ public class SubsceneSubtitleClientTest {
|
|||
|
||||
@Test
|
||||
public void getSubtitleListSearchResultMany() throws Exception {
|
||||
List<SubtitleDescriptor> subtitleList = subscene.getSubtitleList(lostSearchResult, LanguageResolver.getDefault().getLocale("Vietnamese"));
|
||||
List<SubtitleDescriptor> subtitleList = subscene.getSubtitleList(lostSearchResult, LanguageResolver.getDefault().getLocale("Japanese"));
|
||||
|
||||
// lots of subtitles, but only one is vietnamese
|
||||
assertEquals(1, subtitleList.size());
|
||||
// lots of subtitles, but only a few Japanese ones
|
||||
assertEquals(16, subtitleList.size());
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue