From 9c3f700fc1e4345fc6454476e81b568405d6fbe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toldi=20Bal=C3=A1zs=20=C3=81d=C3=A1m?= Date: Tue, 1 Dec 2020 09:17:52 +0100 Subject: [PATCH] Fixed some bugs - Removed Feed duplication bug - Removed Article duplication in FeedData - Removed table updating in UpdaterThread --- src/main/java/eu/toldi/rss/FeedData.java | 20 +++++++++++++++++-- src/main/java/eu/toldi/rss/FeedFrame.java | 8 ++++---- src/main/java/eu/toldi/rss/UpdaterThread.java | 5 +---- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/eu/toldi/rss/FeedData.java b/src/main/java/eu/toldi/rss/FeedData.java index 91fe650..f601be0 100644 --- a/src/main/java/eu/toldi/rss/FeedData.java +++ b/src/main/java/eu/toldi/rss/FeedData.java @@ -222,6 +222,20 @@ public class FeedData extends AbstractTableModel { '}'; } + /** + * Megnézi hogy egy magadott cikk megtalálható-e a cikklistában + * @param a a keresett cikk + * @return logikai érték az alapján,hogy a megadott cikk meg lett-e találva + * Megjegyzés: Ez egy lineáris keresést hajt végre + */ + public boolean hasAricle(Article a) { + for (Article art : articleList) { + if (art.getURL() != null && art.getURL().equals(a.getURL())) + return true; + } + return false; + } + /** * A listában található összes hírcsatorna frissítése */ @@ -229,7 +243,9 @@ public class FeedData extends AbstractTableModel { for (int i = 0; i < feeds.size(); i++) { feeds.get(i).updateFeed(); for (int j = 0; j < feeds.get(i).getArticleCount(); j++) { - articleList.add(feeds.get(i).get(j)); + Article a = feeds.get(i).get(j); + if(!hasAricle(a)) + articleList.add(feeds.get(i).get(j)); } } } @@ -268,7 +284,7 @@ public class FeedData extends AbstractTableModel { }); xStream.processAnnotations(Article.class); xStream.processAnnotations(Feed.class); - xStream.alias("feedGroup", FeedGroup.class); + xStream.processAnnotations(FeedGroup.class); xStream.addImplicitArray(FeedList.class, "list", Feed.class); return xStream; } diff --git a/src/main/java/eu/toldi/rss/FeedFrame.java b/src/main/java/eu/toldi/rss/FeedFrame.java index 7dde1f6..c812649 100644 --- a/src/main/java/eu/toldi/rss/FeedFrame.java +++ b/src/main/java/eu/toldi/rss/FeedFrame.java @@ -11,7 +11,6 @@ import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.event.*; import java.io.IOException; -import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; @@ -34,7 +33,7 @@ public class FeedFrame extends JFrame { setMinimumSize(new Dimension(900, 600)); initData(); initComponents(); - UpdaterThread updater = new UpdaterThread(data, this); + UpdaterThread updater = new UpdaterThread(data); updater.start(); } @@ -199,12 +198,14 @@ public class FeedFrame extends JFrame { initSearchBar(); initMenuBar(); initTree(); + UpdaterThread updaterThread = new UpdaterThread(data); + updaterThread.start(); } /** * Frissiíti a táblázatot */ - public void updateTable() { + public synchronized void updateTable() { sorter.setModel(data); table.setRowSorter(sorter); table.updateUI(); @@ -231,7 +232,6 @@ public class FeedFrame extends JFrame { } data.addFeed(f); treeRoot.add(f.getTreeNode()); - data.addFeed(f); table.updateUI(); feeds.updateUI(); } diff --git a/src/main/java/eu/toldi/rss/UpdaterThread.java b/src/main/java/eu/toldi/rss/UpdaterThread.java index 497eed8..42a7900 100644 --- a/src/main/java/eu/toldi/rss/UpdaterThread.java +++ b/src/main/java/eu/toldi/rss/UpdaterThread.java @@ -8,13 +8,11 @@ import java.io.IOException; */ public class UpdaterThread extends Thread{ FeedData data; - FeedFrame frame; //Tíz perc várakozás private static long updateInterval = 10*60*1000; - public UpdaterThread(FeedData data,FeedFrame frame){ + public UpdaterThread(FeedData data){ this.data = data; - this.frame =frame; } @Override @@ -26,7 +24,6 @@ public class UpdaterThread extends Thread{ } catch (InterruptedException | IOException e) { e.printStackTrace(); } - frame.updateTable(); } } }