core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractRSSPortalPageLayer.java
changeset 1831 3319dd953212
parent 1824 7e34f628583a
child 1832 aaf2f7bc0609
--- a/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractRSSPortalPageLayer.java	Fri Aug 13 15:37:14 2010 -0500
+++ b/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractRSSPortalPageLayer.java	Mon Aug 16 09:03:23 2010 -0500
@@ -26,8 +26,13 @@
 import java.util.Set;
 import java.util.regex.Pattern;
 
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
+import org.eclipse.swt.widgets.Display;
 
 import com.nokia.carbide.discovery.ui.Activator;
 import com.nokia.carbide.discovery.ui.Messages;
@@ -109,14 +114,24 @@
 	}
 
 	protected void readRSS() {
-		URL url = getURL();
+		final URL url = getURL();
 		if (url != null) {
-			try {
-				rss = SimpleRSSReader.readRSS(url);
-				displayRSS();
-			} catch (Exception e) {
-				Activator.logError(MessageFormat.format(Messages.AbstractRSSPortalPageLayer_RSSReadError, url), e);
-			}
+			Job j = new Job("Getting RSS feed") {
+
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					try {
+						rss = SimpleRSSReader.readRSS(url);
+						displayRSS();
+					} catch (Exception e) {
+						Activator.logError(MessageFormat.format(Messages.AbstractRSSPortalPageLayer_RSSReadError, url), e);
+					}
+					return Status.OK_STATUS;
+				}
+				
+			};
+			j.setUser(true);
+			j.schedule();
 		}
 	}
 	
@@ -152,7 +167,13 @@
 			buf.append("</ul>"); //$NON-NLS-1$
 		}
 		buf.append(HTML_BODY_FOOTER);
-		browser.setText(buf.toString());
+		final String s = buf.toString();
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				browser.setText(s);
+			}
+		});
 	}
 
 	private String clean(String s) {