Update nikiroo-utils (Progress) + GuiReader perf
[fanfix.git] / src / be / nikiroo / fanfix / reader / GuiReader.java
index 932425838629c945309cfd3979f285ee5b1d0e9a..8559cf112eb34b47dd923cf14b0011c2c4ae561b 100644 (file)
@@ -70,6 +70,7 @@ class GuiReader extends BasicReader {
                localLibrary = new LocalLibrary(dir, text, images);
        }
 
+       @Override
        public void read() throws IOException {
                MetaData meta = getMeta();
 
@@ -92,21 +93,8 @@ class GuiReader extends BasicReader {
         *             in case of I/O error
         */
        public void imprt(String luid, Progress pg) throws IOException {
-               Progress pgGetStory = new Progress();
-               Progress pgSave = new Progress();
-               if (pg != null) {
-                       pg.setMax(2);
-                       pg.addProgress(pgGetStory, 1);
-                       pg.addProgress(pgSave, 1);
-               }
-
                try {
-                       Story story = getLibrary().getStory(luid, pgGetStory);
-                       if (story != null) {
-                               story = localLibrary.save(story, luid, pgSave);
-                       } else {
-                               throw new IOException("Cannot find story in Library: " + luid);
-                       }
+                       localLibrary.imprt(getLibrary(), luid, pg);
                } catch (IOException e) {
                        throw new IOException(
                                        "Cannot import story from library to LocalReader library: "
@@ -127,6 +115,7 @@ class GuiReader extends BasicReader {
                return localLibrary.getInfo(luid) != null;
        }
 
+       @Override
        public void browse(String type) {
                // TODO: improve presentation of update message
                final VersionCheck updates = VersionCheck.check();
@@ -154,6 +143,7 @@ class GuiReader extends BasicReader {
 
                        // handle link events
                        updateMessage.addHyperlinkListener(new HyperlinkListener() {
+                               @Override
                                public void hyperlinkUpdate(HyperlinkEvent e) {
                                        if (e.getEventType().equals(
                                                        HyperlinkEvent.EventType.ACTIVATED))
@@ -172,6 +162,7 @@ class GuiReader extends BasicReader {
 
                final String typeFinal = type;
                EventQueue.invokeLater(new Runnable() {
+                       @Override
                        public void run() {
                                if (updates.isNewVersionAvailable()) {
                                        int rep = JOptionPane.showConfirmDialog(null,
@@ -201,7 +192,9 @@ class GuiReader extends BasicReader {
        // delete from main library
        void delete(String luid) {
                try {
-                       localLibrary.delete(luid);
+                       if (localLibrary.getInfo(luid) != null) {
+                               localLibrary.delete(luid);
+                       }
                        getLibrary().delete(luid);
                } catch (IOException e) {
                        Instance.syserr(e);
@@ -222,7 +215,9 @@ class GuiReader extends BasicReader {
 
        void changeType(String luid, String newSource) {
                try {
-                       localLibrary.changeSource(luid, newSource, null);
+                       if (localLibrary.getInfo(luid) != null) {
+                               localLibrary.changeSource(luid, newSource, null);
+                       }
                        getLibrary().changeSource(luid, newSource, null);
                } catch (IOException e) {
                        Instance.syserr(e);