core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractRSSPortalPageLayer.java
author dadubrow
Mon, 16 Aug 2010 09:03:23 -0500
changeset 1831 3319dd953212
parent 1824 7e34f628583a
child 1832 aaf2f7bc0609
permissions -rw-r--r--
UI tweaks
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1734
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     1
/*
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     3
* All rights reserved.
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     4
* This component and the accompanying materials are made available
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     6
* which accompanies this distribution, and is available
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     8
*
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
     9
* Initial Contributors:
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
    10
* Nokia Corporation - initial contribution.
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
    11
*
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
    12
* Contributors:
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
    13
*
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
    14
* Description: 
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
    15
*
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
    16
*/
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    17
package com.nokia.carbide.internal.discovery.ui.extension;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    18
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    19
import java.net.URL;
1750
3ebb9339b5ae add pubdate to rss - when parser works
dadubrow
parents: 1734
diff changeset
    20
import java.text.DateFormat;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    21
import java.text.MessageFormat;
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    22
import java.util.ArrayList;
1750
3ebb9339b5ae add pubdate to rss - when parser works
dadubrow
parents: 1734
diff changeset
    23
import java.util.Date;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    24
import java.util.LinkedHashSet;
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    25
import java.util.List;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    26
import java.util.Set;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    27
import java.util.regex.Pattern;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    28
1831
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
    29
import org.eclipse.core.runtime.IProgressMonitor;
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
    30
import org.eclipse.core.runtime.IStatus;
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
    31
import org.eclipse.core.runtime.Status;
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
    32
import org.eclipse.core.runtime.jobs.Job;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    33
import org.eclipse.jface.action.Action;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    34
import org.eclipse.jface.action.IAction;
1831
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
    35
import org.eclipse.swt.widgets.Display;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    36
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    37
import com.nokia.carbide.discovery.ui.Activator;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    38
import com.nokia.carbide.discovery.ui.Messages;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    39
import com.nokia.carbide.internal.discovery.ui.editor.SimpleRSSReader;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    40
import com.nokia.carbide.internal.discovery.ui.editor.SimpleRSSReader.Channel;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    41
import com.nokia.carbide.internal.discovery.ui.editor.SimpleRSSReader.Item;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    42
import com.nokia.carbide.internal.discovery.ui.editor.SimpleRSSReader.Rss;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    43
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    44
public abstract class AbstractRSSPortalPageLayer extends AbstractBrowserPortalPageLayer {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    45
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    46
	private static final List<Pattern> EXCLUDE_TAG_PATTERNS = new ArrayList<Pattern>();
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    47
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    48
	private static final String[] EXCLUDE_TAGS = { 	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    49
		"object", //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    50
		"param", //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    51
		"embed", //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    52
		"script", //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    53
		"img" //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    54
	};
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    55
	
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    56
	private static final String[] EXCLUDE_FORMAT_TAGS = {
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    57
		"b", //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    58
		"i", //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    59
		"em", //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    60
		"strong", //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    61
		"tt", //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    62
		"s", //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    63
		"strike", //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    64
		"p" //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    65
	};
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    66
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    67
	static {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    68
		for (String tagString : EXCLUDE_TAGS) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    69
			StringBuilder sb = new StringBuilder();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    70
			sb.append('<');
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    71
			sb.append(tagString);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    72
			sb.append(" .*</"); //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    73
			sb.append(tagString);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    74
			sb.append('>');
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    75
			EXCLUDE_TAG_PATTERNS.add(Pattern.compile(sb.toString(),
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    76
					Pattern.CASE_INSENSITIVE | Pattern.MULTILINE));
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    77
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    78
		for (String tagString : EXCLUDE_TAGS) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    79
			StringBuilder sb = new StringBuilder();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    80
			sb.append('<');
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    81
			sb.append(tagString);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    82
			sb.append(" .*/>"); //$NON-NLS-1$
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    83
			EXCLUDE_TAG_PATTERNS.add(Pattern.compile(sb.toString(),
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    84
					Pattern.CASE_INSENSITIVE | Pattern.MULTILINE));
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    85
		}
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    86
		for (String formatTag : EXCLUDE_FORMAT_TAGS) {
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    87
			StringBuilder sb = new StringBuilder();
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    88
			sb.append("</?"); //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    89
			sb.append(formatTag);
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    90
			sb.append('>');
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    91
			EXCLUDE_TAG_PATTERNS.add(Pattern.compile(sb.toString(),
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    92
					Pattern.CASE_INSENSITIVE | Pattern.MULTILINE));
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
    93
			
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    94
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    95
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    96
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    97
	private static final String HTML_BODY_HEADER = "<html><head><title></title><style type=\"text/css\">div.item {font-family : sans-serif; font-size : 12px; margin-bottom : 16px;} div.itemBody {padding-top : 3px; padding-bottom : 3px;} div.itemInfo {background-color : #EEEEEE; color : #333333;} div.feedflare {display: none;} a.itemTitle {font-size : 12px; font-weight : bold;} a.markItemRead {font-size : 10px; color : #333333;}</style></head><body>"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    98
	private static final String HTML_BODY_FOOTER = "</body></html>"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    99
	private static final int MAX_ELEM_LEN = 256;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   100
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   101
	private Rss rss;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   102
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   103
	@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   104
	public void init() {
1734
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
   105
		Activator.runInUIThreadWhenProxyDataSet(browser, new Runnable() {
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
   106
			@Override
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
   107
			public void run() {
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   108
				actionBar.hookBrowser();
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   109
				readRSS();
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   110
				actionBar.update();
1822
8fdfd1446ad7 set the focus to layer control
dadubrow
parents: 1814
diff changeset
   111
				browser.setFocus();
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   112
			}
1734
bf670d38123a More portal framework changes:
dadubrow
parents: 1727
diff changeset
   113
		});
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   114
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   115
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   116
	protected void readRSS() {
1831
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   117
		final URL url = getURL();
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   118
		if (url != null) {
1831
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   119
			Job j = new Job("Getting RSS feed") {
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   120
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   121
				@Override
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   122
				protected IStatus run(IProgressMonitor monitor) {
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   123
					try {
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   124
						rss = SimpleRSSReader.readRSS(url);
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   125
						displayRSS();
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   126
					} catch (Exception e) {
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   127
						Activator.logError(MessageFormat.format(Messages.AbstractRSSPortalPageLayer_RSSReadError, url), e);
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   128
					}
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   129
					return Status.OK_STATUS;
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   130
				}
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   131
				
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   132
			};
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   133
			j.setUser(true);
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   134
			j.schedule();
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   135
		}
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   136
	}
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   137
	
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   138
	protected void displayRSS() {
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   139
		StringBuffer buf = new StringBuffer();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   140
		buf.append(HTML_BODY_HEADER);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   141
		for (Channel channel : rss.getChannels()) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   142
			buf.append("<div class=\"channel\"><a class=\"channelName\" href=\""); //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   143
			buf.append(channel.getLink().toString());
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   144
			buf.append("\">"); //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   145
			buf.append(clean(channel.getTitle()));
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   146
			buf.append("</a>"); //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   147
			buf.append("<div class=\"channelBody\">"); //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   148
			buf.append(clean(channel.getDescription()));
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   149
			buf.append("</div><br>"); //$NON-NLS-1$
1727
743cc54fdffe more portal changes - add kits page + pref page links to customize
dadubrow
parents: 1721
diff changeset
   150
			buf.append("<ul>"); //$NON-NLS-1$
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   151
			for (Item item : channel.getItems()) {
1727
743cc54fdffe more portal changes - add kits page + pref page links to customize
dadubrow
parents: 1721
diff changeset
   152
				buf.append("<li><div class=\"item\"><a class=\"itemTitle\" href=\""); //$NON-NLS-1$
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   153
				buf.append(item.getLink().toString());
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   154
				buf.append("\">"); //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   155
				buf.append(clean(item.getTitle()));
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   156
				buf.append("</a>"); //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   157
				buf.append("<div class=\"itemBody\">"); //$NON-NLS-1$
1750
3ebb9339b5ae add pubdate to rss - when parser works
dadubrow
parents: 1734
diff changeset
   158
				Date date = item.getPubDate();
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   159
				if (date != null) {
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   160
					String dateString = DateFormat.getDateTimeInstance().format(date);
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   161
					buf.append(dateString);
1824
7e34f628583a update import wizard and operation
dadubrow
parents: 1822
diff changeset
   162
					buf.append("<br>"); //$NON-NLS-1$
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   163
				}
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   164
				buf.append(clean(item.getDescription()));
1727
743cc54fdffe more portal changes - add kits page + pref page links to customize
dadubrow
parents: 1721
diff changeset
   165
				buf.append("</div></li>"); //$NON-NLS-1$
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   166
			}
1727
743cc54fdffe more portal changes - add kits page + pref page links to customize
dadubrow
parents: 1721
diff changeset
   167
			buf.append("</ul>"); //$NON-NLS-1$
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   168
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   169
		buf.append(HTML_BODY_FOOTER);
1831
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   170
		final String s = buf.toString();
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   171
		Display.getDefault().syncExec(new Runnable() {
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   172
			@Override
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   173
			public void run() {
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   174
				browser.setText(s);
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   175
			}
3319dd953212 UI tweaks
dadubrow
parents: 1824
diff changeset
   176
		});
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   177
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   178
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   179
	private String clean(String s) {
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   180
		String output = s;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   181
		for (Pattern pattern : EXCLUDE_TAG_PATTERNS) {
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   182
			output = pattern.matcher(output).replaceAll(""); //$NON-NLS-1$
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   183
		}
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   184
		output = output.length() > MAX_ELEM_LEN ? output.substring(0, MAX_ELEM_LEN) : output;
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1750
diff changeset
   185
		return output;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   186
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   187
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   188
	@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   189
	public void dispose() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   190
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   191
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   192
	@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   193
	protected Set<IAction> makeActions() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   194
		Set<IAction> actions = new LinkedHashSet<IAction>();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   195
		for (IAction action : super.makeActions()) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   196
			if (action.getText().equals(Messages.AbstractBrowserPortalPage_RefreshLabel)) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   197
				IAction a = new Action(Messages.AbstractBrowserPortalPage_RefreshLabel) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   198
					@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   199
					public void run() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   200
						if (browser != null) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   201
							if (browserHasURL())
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   202
								browser.refresh();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   203
							else
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   204
								readRSS();
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   205
							actionBar.update();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   206
						}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   207
					}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   208
					
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   209
					@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   210
					public boolean isEnabled() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   211
						return browser != null ? !actionBar.isLoading() : false;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   212
					}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   213
				};
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   214
				actions.add(a);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   215
			}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   216
			else
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   217
				actions.add(action);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   218
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   219
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   220
		actions.add(new Action(Messages.AbstractRSSPortalPageLayer_ReturnToFeedLabel) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   221
			@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   222
			public void run() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   223
				displayRSS();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   224
				actionBar.update();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   225
			}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   226
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   227
			@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   228
			public boolean isEnabled() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   229
				return browserHasURL();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   230
			}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   231
		});
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   232
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   233
		return actions;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   234
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   235
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   236
}