X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix_swing%2FActions.java;h=ec30d5e4c495302317ed6bf350f13f44c8c16850;hp=10c79dd1d9cd82ff37ceffb8911f6105fc39cb18;hb=e3fef8b566048567da28affadadc66e425561840;hpb=b63e7e0b3a1429dabcae61e938e63145566a878a diff --git a/src/be/nikiroo/fanfix_swing/Actions.java b/src/be/nikiroo/fanfix_swing/Actions.java index 10c79dd..ec30d5e 100644 --- a/src/be/nikiroo/fanfix_swing/Actions.java +++ b/src/be/nikiroo/fanfix_swing/Actions.java @@ -2,18 +2,14 @@ package be.nikiroo.fanfix_swing; import java.awt.BorderLayout; import java.awt.Container; -import java.awt.Toolkit; import java.awt.Window; -import java.awt.datatransfer.DataFlavor; import java.io.File; import java.io.IOException; import java.net.URL; import java.net.UnknownHostException; import javax.swing.JDialog; -import javax.swing.JFileChooser; import javax.swing.JLabel; -import javax.swing.JOptionPane; import javax.swing.SwingWorker; import be.nikiroo.fanfix.Instance; @@ -183,90 +179,41 @@ public class Actions { } } - /** - * Import a {@link Story} into the main {@link LocalLibrary}. - *
- * Should be called inside the UI thread. - * - * @param askUrl - * TRUE for an {@link URL}, false for a {@link File} - */ - static public void imprt(final Container parent, boolean askUrl, - final Runnable onSuccess) { - JFileChooser fc = new JFileChooser(); - - Object url; - if (askUrl) { - String clipboard = ""; - try { - clipboard = ("" + Toolkit.getDefaultToolkit() - .getSystemClipboard().getData(DataFlavor.stringFlavor)) - .trim(); - } catch (Exception e) { - // No data will be handled - } - - if (clipboard == null || !(clipboard.startsWith("http://") || // - clipboard.startsWith("https://"))) { - clipboard = ""; - } - - url = JOptionPane.showInputDialog(parent, - Instance.getInstance().getTransGui() - .getString(StringIdGui.SUBTITLE_IMPORT_URL), - Instance.getInstance().getTransGui() - .getString(StringIdGui.TITLE_IMPORT_URL), - JOptionPane.QUESTION_MESSAGE, null, null, clipboard); - } else if (fc.showOpenDialog(parent) != JFileChooser.CANCEL_OPTION) { - url = fc.getSelectedFile().getAbsolutePath(); - } else { - url = null; - } - - if (url != null && !url.toString().isEmpty()) { - imprt(parent, url.toString(), null, null); - } - } - /** * Actually import the {@link Story} into the main {@link LocalLibrary}. *
- * Should be called inside the UI thread.
+ * Should be called inside the UI thread, will start a worker (i.e., this is
+ * asynchronous).
*
+ * @param parent
+ * a container we can use to show error messages if any
* @param url
* the {@link Story} to import by {@link URL}
+ * @param pg
+ * the optional progress reporter
* @param onSuccess
* Action to execute on success
- * @param onSuccessPgName
- * the name to use for the onSuccess progress bar
*/
static public void imprt(final Container parent, final String url,
- final Runnable onSuccess, String onSuccessPgName) {
- final Progress pg = new Progress();
- final Progress pgImprt = new Progress();
- final Progress pgOnSuccess = new Progress(onSuccessPgName);
- pg.addProgress(pgImprt, 95);
- pg.addProgress(pgOnSuccess, 5);
-
+ final Progress pg, final Runnable onSuccess) {
+ final Progress fpg = pg;
new SwingWorker