import javax.swing.BoxLayout;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
+import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
+import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
private GuiReaderBook selectedBook;
private boolean words; // words or authors (secondary info on books)
+ /**
+ * A {@link Runnable} with a {@link Story} parameter.
+ *
+ * @author niki
+ */
+ private interface StoryRunnable {
+ /**
+ * Run the action.
+ *
+ * @param story
+ * the story
+ */
+ public void run(Story story);
+ }
+
/**
* Create a new {@link GuiReaderFrame}.
*
scroll.getVerticalScrollBar().setUnitIncrement(16);
add(scroll, BorderLayout.CENTER);
+ String message = reader.getLibrary().getLibraryName();
+ if (!message.isEmpty()) {
+ JLabel name = new JLabel(message, SwingConstants.CENTER);
+ add(name, BorderLayout.NORTH);
+ }
+
pgBar = new ProgressBar();
add(pgBar, BorderLayout.SOUTH);
public void actionPerformed(ActionEvent e) {
if (selectedBook != null) {
final MetaData meta = selectedBook.getMeta();
- imprt(meta.getUrl(), new Runnable() {
+ imprt(meta.getUrl(), new StoryRunnable() {
@Override
- public void run() {
+ public void run(Story story) {
reader.delete(meta.getLuid());
GuiReaderFrame.this.selectedBook = null;
+ MetaData newMeta = story.getMeta();
+ if (!newMeta.getSource().equals(meta.getSource())) {
+ reader.changeType(newMeta.getLuid(),
+ meta.getSource());
+ }
}
}, "Removing old copy");
}
* @param onSuccess
* Action to execute on success
*/
- private void imprt(final String url, final Runnable onSuccess,
+ private void imprt(final String url, final StoryRunnable onSuccess,
String onSuccessPgName) {
final Progress pg = new Progress();
final Progress pgImprt = new Progress();
@Override
public void run() {
Exception ex = null;
+ Story story = null;
try {
- reader.getLibrary().imprt(BasicReader.getUrl(url), pgImprt);
+ story = reader.getLibrary().imprt(BasicReader.getUrl(url),
+ pgImprt);
} catch (IOException e) {
ex = e;
}
});
} else {
if (onSuccess != null) {
- onSuccess.run();
+ onSuccess.run(story);
}
}
pgOnSuccess.done();