newsfeed: new URL, item content, status bar 97/17697/2
Simon Marchetto [Mon, 18 Jan 2016 17:41:31 +0000 (18:41 +0100)]
Change-Id: Ia84392d724906c3fa0de300a89b4f206d9e000c0

scilab/modules/ui_data/etc/newsfeed.xml
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/newsfeed/News.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/newsfeed/NewsFeedTab.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/newsfeed/NewsFeedWidget.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/newsfeed/NewsFetcher.java

index 33ec1c2..10ac65b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <newsfeed>
    <!-- RSS Feed URL -->
-   <url>http://www.scilab.org/rss/feed/news</url>
+   <url>http://scilab.io/category/newsfeed/feed</url>
    <!-- automatic news change interval time (in ms), set to -1 to disable -->
    <newsChangeTimeInterval>-1</newsChangeTimeInterval>
    <!-- periodic feed update interval time (in ms), set to -1 to disable -->
index f394c43..bd34517 100644 (file)
@@ -22,12 +22,14 @@ public class News {
     private String title;
     private Date date;
     private String description;
+    private String content;
     private String link;
 
-    public News(String title, Date date, String description, String link) {
+    public News(String title, Date date, String description, String content, String link) {
         this.title = title;
         this.date = date;
         this.description = description;
+        this.content = content;
         this.link = link;
     }
 
@@ -43,6 +45,10 @@ public class News {
         return description;
     }
 
+    String getContent() {
+        return content;
+    }
+
     String getLink() {
         return link;
     }
index 93b682a..c717ab7 100644 (file)
@@ -19,6 +19,7 @@ import org.scilab.modules.ui_data.newsfeed.actions.UpdateAction;
 import org.scilab.modules.gui.bridge.tab.SwingScilabDockablePanel;
 import org.scilab.modules.gui.bridge.toolbar.SwingScilabToolBar;
 import org.scilab.modules.gui.bridge.window.SwingScilabWindow;
+import org.scilab.modules.gui.textbox.ScilabTextBox;
 import org.scilab.modules.gui.textbox.TextBox;
 import org.scilab.modules.gui.toolbar.ScilabToolBar;
 import org.scilab.modules.gui.toolbar.ToolBar;
@@ -68,6 +69,8 @@ public class NewsFeedTab extends SwingScilabDockablePanel implements SimpleTab {
 
         addMenuBar(createMenuBar());
         addToolBar(createToolBar());
+        TextBox infobar = ScilabTextBox.createTextBox();
+        addInfoBar(infobar);
 
         registerClosingOperation();
         WindowsConfigurationManager.restorationFinished(this);
@@ -101,7 +104,7 @@ public class NewsFeedTab extends SwingScilabDockablePanel implements SimpleTab {
     }
 
     public void addInfoBar(TextBox infoBar) {
-        //setInfoBar(infoBarToAdd);
+        setInfoBar(infoBar);
     }
 
     public void addToolBar(ToolBar toolBar) {
index c3daf05..70bb6a7 100644 (file)
@@ -50,6 +50,7 @@ public class NewsFeedWidget extends JPanel implements NewsFeedEventListener, Hyp
     private static final String NEXT_HTML_ID = "next";\r
     private static final String NEWS_TITLE_HTML_ID = "news_title";\r
     private static final String NEWS_DATE_HTML_ID = "news_date";\r
+    private static final String NEWS_CONTENT_HTML_ID = "news_content";\r
     private static final String NEWS_LINK_HTML_ID = "news_link";\r
     private static final String NEWS_DESCRIPTION_HTML_ID = "news_description";\r
 \r
@@ -137,14 +138,18 @@ public class NewsFeedWidget extends JPanel implements NewsFeedEventListener, Hyp
         String nextLinkHtml = getSpanHtml(getLinkHtml("next", "next", nextIconHtml), NEXT_HTML_ID);\r
         newsHtmlBuilder.append(getDivHtml(String.format("%s %s", previousLinkHtml, nextLinkHtml), NAVIGATION_HTML_ID));\r
 \r
-        // Add news title & date\r
-        String newsTitleHtml = getSpanHtml(news.getTitle(), NEWS_TITLE_HTML_ID);\r
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE dd MMM yyyy HH:mm");\r
-        String dateStr = simpleDateFormat.format(news.getDate());\r
-        String newsDateHtml = getSpanHtml(dateStr, NEWS_DATE_HTML_ID);\r
-        newsHtmlBuilder.append(getDivHtml(String.format("%s - %s", newsTitleHtml, newsDateHtml)));\r
-\r
-        newsHtmlBuilder.append(getDivHtml(news.getDescription(), NEWS_DESCRIPTION_HTML_ID));\r
+        if (news.getContent() != null) {\r
+            // if given, use RSS item content\r
+            newsHtmlBuilder.append(getDivHtml(news.getContent(), NEWS_CONTENT_HTML_ID));\r
+        } else {\r
+            // otherwise get content from title, date, description\r
+            String newsTitleHtml = getSpanHtml(news.getTitle(), NEWS_TITLE_HTML_ID);\r
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE dd MMM yyyy HH:mm");\r
+            String dateStr = simpleDateFormat.format(news.getDate());\r
+            String newsDateHtml = getSpanHtml(dateStr, NEWS_DATE_HTML_ID);\r
+            newsHtmlBuilder.append(getDivHtml(String.format("%s - %s", newsTitleHtml, newsDateHtml)));\r
+            newsHtmlBuilder.append(getDivHtml(news.getDescription(), NEWS_DESCRIPTION_HTML_ID));\r
+        }\r
 \r
         // Add news link if exist\r
         if (news.getLink() != null) {\r
index cc71688..d9a727f 100644 (file)
@@ -66,8 +66,9 @@ public class NewsFetcher {
             String dateStr = getItemValue(item, "pubDate");\r
             Date date = formatter.parse(dateStr);\r
             String description = getItemValue(item, "description");\r
+            String content = getItemValue(item, "content:encoded");\r
             String link = getItemValue(item, "link");\r
-            newsList.add(new News(title, date, description, link));\r
+            newsList.add(new News(title, date, description, content, link));\r
         }\r
         return newsList;\r
     }\r