fix some potential issues with rss layer
authordadubrow
Thu, 12 Aug 2010 09:17:41 -0500
changeset 1814 837f2f0d0b21
parent 1810 2ccd3660a736
child 1815 32e6452eb8d3
fix some potential issues with rss layer
core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/editor/SimpleRSSReader.java
core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractRSSPortalPageLayer.java
--- a/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/editor/SimpleRSSReader.java	Wed Aug 11 15:25:32 2010 -0500
+++ b/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/editor/SimpleRSSReader.java	Thu Aug 12 09:17:41 2010 -0500
@@ -89,9 +89,9 @@
 		}
 		
 		protected void setField(String element, String value) {
-			if (RSSHandler.TITLE.equals(element))
+			if (RSSHandler.TITLE.equalsIgnoreCase(element))
 				title = value;
-			else if (RSSHandler.LINK.equals(element)) {
+			else if (RSSHandler.LINK.equalsIgnoreCase(element)) {
 				try {
 					link = new URL(value);
 				} catch (MalformedURLException e) {
@@ -99,12 +99,12 @@
 					Activator.logError("Bad URL", e);
 				}
 			}
-			else if (RSSHandler.DESCRIPTION.equals(element) || RSSHandler.SUMMARY.equals(element))
+			else if (RSSHandler.DESCRIPTION.equalsIgnoreCase(element) || RSSHandler.SUMMARY.equalsIgnoreCase(element))
 				description = value;
-			else if (RSSHandler.PUBDATE.equals(element)) {
+			else if (RSSHandler.PUBDATE.equalsIgnoreCase(element)) {
 				pubDate = parseRFC822Date(value);
 			}
-			else if (RSSHandler.CATEGORY.equals(element))
+			else if (RSSHandler.CATEGORY.equalsIgnoreCase(element))
 				categories.add(value);
 		}
 
@@ -158,12 +158,12 @@
 		private static final String CATEGORY = "category"; //$NON-NLS-1$
 		private static final Set<String> charsElements = new HashSet<String>();
 		static {
-			charsElements.add(TITLE);
-			charsElements.add(LINK);
-			charsElements.add(DESCRIPTION);
-			charsElements.add(SUMMARY);
-			charsElements.add(PUBDATE);
-			charsElements.add(CATEGORY);
+			charsElements.add(TITLE.toLowerCase());
+			charsElements.add(LINK.toLowerCase());
+			charsElements.add(DESCRIPTION.toLowerCase());
+			charsElements.add(SUMMARY.toLowerCase());
+			charsElements.add(PUBDATE.toLowerCase());
+			charsElements.add(CATEGORY.toLowerCase());
 		}
 
 		private Channel curChannel;
@@ -177,26 +177,26 @@
 		
 		@Override
 		public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-			if (charsElements.contains(qName)) {
+			if (charsElements.contains(qName.toLowerCase())) {
 				charsBuf = new StringBuffer();
 			}
-			if (CHANNEL.equals(qName)) {
+			if (CHANNEL.equalsIgnoreCase(qName)) {
 				curChannel = new Channel();
 			}
-			else if (ITEM.equals(qName) && curChannel != null) {
+			else if (ITEM.equalsIgnoreCase(qName) && curChannel != null) {
 				curItem = new Item(curChannel);
 			}
 		}
 
 		@Override
 		public void endElement(String uri, String localName, String qName) throws SAXException {
-			if (CHANNEL.equals(qName)) {
+			if (CHANNEL.equalsIgnoreCase(qName)) {
 				if (curChannel != null && curChannel.isValid() && curChannel.hasItems())
 					rss.addChannel(curChannel);
 				curChannel = null;
 				curItem = null;
 			}
-			else if (ITEM.equals(qName)) {
+			else if (ITEM.equalsIgnoreCase(qName)) {
 				if (curChannel != null && curItem != null && curItem.isValid())
 					curChannel.addItem(curItem);
 				curItem = null;
--- a/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractRSSPortalPageLayer.java	Wed Aug 11 15:25:32 2010 -0500
+++ b/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractRSSPortalPageLayer.java	Thu Aug 12 09:17:41 2010 -0500
@@ -100,22 +100,26 @@
 		Activator.runInUIThreadWhenProxyDataSet(browser, new Runnable() {
 			@Override
 			public void run() {
-				URL url = getURL();
-				if (url != null) {
-					try {
-						rss = SimpleRSSReader.readRSS(url);
-						displayRSS();
-						actionBar.hookBrowser();
-					} catch (Exception e) {
-						Activator.logError(MessageFormat.format(Messages.AbstractRSSPortalPageLayer_RSSReadError, url), e);
-					}
-					actionBar.update();
-				}
+				actionBar.hookBrowser();
+				readRSS();
+				actionBar.update();
 			}
 		});
 	}
 
-	private void displayRSS() {
+	protected void readRSS() {
+		URL url = getURL();
+		if (url != null) {
+			try {
+				rss = SimpleRSSReader.readRSS(url);
+				displayRSS();
+			} catch (Exception e) {
+				Activator.logError(MessageFormat.format(Messages.AbstractRSSPortalPageLayer_RSSReadError, url), e);
+			}
+		}
+	}
+	
+	protected void displayRSS() {
 		StringBuffer buf = new StringBuffer();
 		buf.append(HTML_BODY_HEADER);
 		for (Channel channel : rss.getChannels()) {
@@ -175,7 +179,7 @@
 							if (browserHasURL())
 								browser.refresh();
 							else
-								displayRSS();
+								readRSS();
 							actionBar.update();
 						}
 					}