X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2FLocalReader.java;h=6c6150318b38917958579a4fbaf87a5f1489ff05;hb=b0e88ebd20f8b2950c382694e936da76ac3596b6;hp=45fca8c10a41feb43e2fb9d13bf406241de4e88b;hpb=edd4628984f5f06e955606651fc828ac839f7f43;p=nikiroo-utils.git
diff --git a/src/be/nikiroo/fanfix/reader/LocalReader.java b/src/be/nikiroo/fanfix/reader/LocalReader.java
index 45fca8c..6c61503 100644
--- a/src/be/nikiroo/fanfix/reader/LocalReader.java
+++ b/src/be/nikiroo/fanfix/reader/LocalReader.java
@@ -4,19 +4,35 @@ import java.awt.Desktop;
import java.awt.EventQueue;
import java.io.File;
import java.io.IOException;
+import java.net.URISyntaxException;
+
+import javax.swing.JEditorPane;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.event.HyperlinkEvent;
+import javax.swing.event.HyperlinkListener;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.Library;
+import be.nikiroo.fanfix.VersionCheck;
import be.nikiroo.fanfix.bundles.UiConfig;
-import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.fanfix.data.Story;
import be.nikiroo.fanfix.output.BasicOutput.OutputType;
import be.nikiroo.utils.Progress;
+import be.nikiroo.utils.Version;
+import be.nikiroo.utils.ui.UIUtils;
class LocalReader extends BasicReader {
- private Library lib;
+ static private boolean nativeLookLoaded;
+
+ private Library localLibrary;
public LocalReader() throws IOException {
+ if (!nativeLookLoaded) {
+ UIUtils.setLookAndFeel();
+ nativeLookLoaded = true;
+ }
+
File dir = Instance.getReaderDir();
dir.mkdirs();
if (!dir.exists()) {
@@ -50,7 +66,7 @@ class LocalReader extends BasicReader {
key, value), e);
}
- lib = new Library(dir, text, images);
+ localLibrary = new Library(dir, text, images);
}
@Override
@@ -91,7 +107,7 @@ class LocalReader extends BasicReader {
try {
Story story = Instance.getLibrary().getStory(luid, pgGetStory);
if (story != null) {
- story = lib.save(story, luid, pgSave);
+ story = localLibrary.save(story, luid, pgSave);
} else {
throw new IOException("Cannot find story in Library: " + luid);
}
@@ -102,29 +118,6 @@ class LocalReader extends BasicReader {
}
}
- /**
- * Get the target file related to this {@link Story}.
- *
- * @param luid
- * the LUID of the {@link Story}
- * @param pg
- * the optional progress reporter
- *
- * @return the target file
- *
- * @throws IOException
- * in case of I/O error
- */
- public File getTarget(String luid, Progress pg) throws IOException {
- File file = lib.getFile(luid);
- if (file == null) {
- imprt(luid, pg);
- file = lib.getFile(luid);
- }
-
- return file;
- }
-
/**
* Check if the {@link Story} denoted by this Library UID is present in the
* {@link LocalReader} cache.
@@ -135,61 +128,97 @@ class LocalReader extends BasicReader {
* @return TRUE if it is
*/
public boolean isCached(String luid) {
- return lib.getInfo(luid) != null;
+ return localLibrary.getInfo(luid) != null;
}
@Override
- public void start(String type) {
+ public void browse(String type) {
+ // TODO: improve presentation of update message
+ final VersionCheck updates = VersionCheck.check();
+ StringBuilder builder = new StringBuilder();
+
+ final JEditorPane updateMessage = new JEditorPane("text/html", "");
+ if (updates.isNewVersionAvailable()) {
+ builder.append("A new version of the program is available at https://github.com/nikiroo/fanfix/releases");
+ builder.append("
");
+ builder.append("
");
+ for (Version v : updates.getNewer()) {
+ builder.append("\tVersion " + v + "");
+ builder.append("
");
+ builder.append("