Bug 547304 - [cleanup] Fix wrong space/tab indentation

This change fixes space or mixed tab/space indentations in all Java
files. This also includes two or three space indentations and even fix
most stray single spaces in indentations.
The change includes only whitespace formatting and no code changes.

Change-Id: Ie21edf6dba7384276d834e9fd10805b1f304403f
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/BaseHelpSystem.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/BaseHelpSystem.java
index caddf42..2e26d18 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/BaseHelpSystem.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/BaseHelpSystem.java
@@ -173,9 +173,9 @@
 		}
 
 		/*
-         * Assigns the provider responsible for providing help
-         * document content.
-         */
+		 * Assigns the provider responsible for providing help
+		 * document content.
+		 */
 		HelpPlugin.getDefault().setHelpProvider(new HelpProvider());
 	}
 
@@ -197,7 +197,7 @@
 	public static URL resolve(String href, boolean documentOnly) {
 		String url = null;
 		if (href == null || href.contains("://") //$NON-NLS-1$
-				   || isFileProtocol(href))
+					|| isFileProtocol(href))
 			url = href;
 		else {
 			BaseHelpSystem.ensureWebappRunning();
@@ -217,7 +217,7 @@
 	public static URL resolve(String href, String servlet) {
 		String url = null;
 		if (href == null || href.contains("://") //$NON-NLS-1$
-		   || isFileProtocol(href)) {
+			|| isFileProtocol(href)) {
 			url = href;
 		}
 		else {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpDisplay.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpDisplay.java
index 28ebfd1..9e72762 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpDisplay.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpDisplay.java
@@ -301,13 +301,13 @@
 	}
 
 	private static AbstractHelpDisplay getHelpDisplay() {
-    	if (helpDisplay == null) {
-    		createHelpDisplay();
-    	}
-    	if (helpDisplay == null) {
-    		helpDisplay = new DefaultDisplay();
-    	}
-    	return helpDisplay;
-    }
+		if (helpDisplay == null) {
+			createHelpDisplay();
+		}
+		if (helpDisplay == null) {
+			helpDisplay = new DefaultDisplay();
+		}
+		return helpDisplay;
+	}
 
 }
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/IHelpBaseConstants.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/IHelpBaseConstants.java
index ca8f014..8a3bd7b 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/IHelpBaseConstants.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/IHelpBaseConstants.java
@@ -38,6 +38,6 @@
 	String P_KEY_REMOTE_HELP_ICEnabled = "remoteHelpICEnabled"; //$NON-NLS-1$
 	String P_KEY_SHOW_SEARCH_DESCRIPTION = "showSearchDescription"; //$NON-NLS-1$
 	String P_KEY_SHOW_SEARCH_CATEGORIES = "showSearchCategories"; //$NON-NLS-1$
-    String P_SHOW_BREADCRUMBS = "showBreadcrumbs"; //$NON-NLS-1$
-    String P_PAGE_NOT_FOUND = "page_not_found"; //$NON-NLS-1$
+	String P_SHOW_BREADCRUMBS = "showBreadcrumbs"; //$NON-NLS-1$
+	String P_PAGE_NOT_FOUND = "page_not_found"; //$NON-NLS-1$
 }
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/MissingContentManager.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/MissingContentManager.java
index b371139..fc9d47a 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/MissingContentManager.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/MissingContentManager.java
@@ -76,7 +76,7 @@
 
 	private static MissingContentManager instance;
 	private List<Placeholder> placeholders;
-    private Set<String> bundlesToIgnore; // A set of bundles the user does not want to see reference to
+	private Set<String> bundlesToIgnore; // A set of bundles the user does not want to see reference to
 
 	public static MissingContentManager getInstance() {
 		if ( instance == null ) {
@@ -89,13 +89,13 @@
 	 * Read the extension registry
 	 */
 	private MissingContentManager() {
-        IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
 		placeholders = new ArrayList<>();
 		bundlesToIgnore = new HashSet<>();
-        if ( BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER ) {
-        	return; // Placeholders are not shown for infocenters
-        }
-        // Read the placeholders from the extension registry
+		if ( BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER ) {
+			return; // Placeholders are not shown for infocenters
+		}
+		// Read the placeholders from the extension registry
 		IConfigurationElement[] elements = registry
 				.getConfigurationElementsFor(EXTENSION_POINT_ID_TOC);
 		for (int i = 0; i < elements.length; ++i) {
@@ -127,7 +127,7 @@
 	}
 
 	/**
-     * Called when a page cannot be found
+	 * Called when a page cannot be found
 	 * @param path the path of the page that could not be loaded
 	 * @return a place holder page if defined, otherwise an error page
 	 */
@@ -136,9 +136,9 @@
 			Placeholder placeholder = iter.next();
 			if (path.startsWith(placeholder.path) && Platform.getBundle(placeholder.bundle) == null) {
 				if ( showPlaceholderPage) {
-				    return placeholder.placeholderPage;
+					return placeholder.placeholderPage;
 				} else {
-				    return "/org.eclipse.help.webapp/" + MISSING_TOPIC_PATH + path.substring(HELP_PROTOCOL.length()); //$NON-NLS-1$
+					return "/org.eclipse.help.webapp/" + MISSING_TOPIC_PATH + path.substring(HELP_PROTOCOL.length()); //$NON-NLS-1$
 				}
 			}
 		}
@@ -166,10 +166,10 @@
 	public String getHelpMissingPage(boolean isHelpView) {
 		Placeholder[] unresolvedPlaceHolders = getUnresolvedPlaceholders();
 		if (unresolvedPlaceHolders.length == 0) {
-		    	return null;
+				return null;
 		} else {
-			    String suffix = isHelpView ? MISSING_BOOKS_HELP_VIEW_HREF : MISSING_BOOKS_HREF;
-		    	return "/org.eclipse.help.webapp" + '/'+ suffix; //$NON-NLS-1$
+				String suffix = isHelpView ? MISSING_BOOKS_HELP_VIEW_HREF : MISSING_BOOKS_HREF;
+				return "/org.eclipse.help.webapp" + '/'+ suffix; //$NON-NLS-1$
 		}
 	}
 
@@ -178,7 +178,7 @@
 	 */
 	public String getRemoteHelpUnavailablePage(boolean isHelpView) {
 		if ( BaseHelpSystem.getMode()!=BaseHelpSystem.MODE_INFOCENTER ) {
-		    String suffix = isHelpView ? REMOTE_STATUS_HELP_VIEW_HREF : REMOTE_STATUS_HREF;
+			String suffix = isHelpView ? REMOTE_STATUS_HELP_VIEW_HREF : REMOTE_STATUS_HREF;
 			return "/org.eclipse.help.webapp/" + suffix; //$NON-NLS-1$
 		}
 		return null;
@@ -191,9 +191,9 @@
 			Placeholder ph = iter.next();
 			String bundle = ph.bundle;
 			if (bundle != null && !bundlesToIgnore.contains(bundle) ) {
-			    if (Platform.getBundle(bundle) == null ) {
-			    	unresolved.add(ph);
-			    }
+				if (Platform.getBundle(bundle) == null ) {
+					unresolved.add(ph);
+				}
 			}
 		}
 		return unresolved.toArray(new Placeholder[unresolved.size()]);
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java
index 2b7f61c..a0054d7 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java
@@ -61,10 +61,10 @@
 		try {
 			URL url = new URL(thisProtocol, thisHost, Integer.valueOf(thisPort) .intValue(),
 					thisPath + PATH_TOC + '?' + PARAM_LANG + '=' + locale);
-	        return getHttpsStream(url);
+			return getHttpsStream(url);
 		} catch (Exception e) {
 			e.printStackTrace();
-	        return null;
+			return null;
 		}
 	}
 
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/PreferenceFileHandler.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/PreferenceFileHandler.java
index e20ac63..0d9e25e 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/PreferenceFileHandler.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/PreferenceFileHandler.java
@@ -47,17 +47,17 @@
 		// TODO: Decide if comma is a good delimiter, or if we should use a different delimiter.
 
 		namePreference = Platform.getPreferencesService().getString
-		    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_NAME, "", null); //$NON-NLS-1$
+			(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_NAME, "", null); //$NON-NLS-1$
 		hostPreference = Platform.getPreferencesService().getString
-		    (HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_HOST, "", null); //$NON-NLS-1$
+			(HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_HOST, "", null); //$NON-NLS-1$
 		pathPreference = Platform.getPreferencesService().getString
-		    (HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_PATH, "", null); //$NON-NLS-1$
+			(HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_PATH, "", null); //$NON-NLS-1$
 		protocolPreference = Platform.getPreferencesService().getString
-	    (HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_PROTOCOL, "", null); //$NON-NLS-1$
+		(HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_PROTOCOL, "", null); //$NON-NLS-1$
 		portPreference = Platform.getPreferencesService().getString
-		    (HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_PORT, "", null); //$NON-NLS-1$
+			(HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_PORT, "", null); //$NON-NLS-1$
 		icEnabledPreference =Platform.getPreferencesService().getString
-		    (HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_ICEnabled, "", null); //$NON-NLS-1$
+			(HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_REMOTE_HELP_ICEnabled, "", null); //$NON-NLS-1$
 
 		//Get host array first, and initialize values
 		if(hostPreference.length()==0)
@@ -230,10 +230,10 @@
 
 	public static int getEmbeddedHelpOption() {
 		boolean isRemoteOn = Platform.getPreferencesService().getBoolean
-	    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON, false, null);
+		(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON, false, null);
 
 		boolean isRemotePreferred = Platform.getPreferencesService().getBoolean
-	    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PREFERRED, false, null);
+		(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PREFERRED, false, null);
 
 		if(!isRemoteOn)
 		{
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java
index 8c08eb8..5e297af 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java
@@ -52,7 +52,7 @@
 		if (RemoteHelp.isEnabled()) {
 
 			int numICs = host.length; // Total number of hosts
-		    //Loop through remote InfoCenters and return first CSH match found
+			//Loop through remote InfoCenters and return first CSH match found
 			URL url=null;
 			for (int i = 0; i < numICs; i++) {
 
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIC.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIC.java
index c0e1aef..253efb1 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIC.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIC.java
@@ -31,22 +31,22 @@
 
 	public RemoteIC(boolean enabled, String name, String host, String path, String port){
 
-    	this.enabled = enabled;
-	    this.name    = name;
-	    this.host    = host;
-	    this.path    = path;
-	    this.port    = port;
-	    this.protocol    = PROTOCOL_HTTP;
+		this.enabled = enabled;
+		this.name    = name;
+		this.host    = host;
+		this.path    = path;
+		this.port    = port;
+		this.protocol    = PROTOCOL_HTTP;
 	}
 
 	public RemoteIC(boolean enabled, String name, String host, String path, String protocol, String port){
 
-    	this.enabled = enabled;
-	    this.name    = name;
-	    this.host    = host;
-	    this.path    = path;
-	    this.protocol = protocol;
-	    this.port    = port;
+		this.enabled = enabled;
+		this.name    = name;
+		this.host    = host;
+		this.path    = path;
+		this.protocol = protocol;
+		this.port    = port;
 
 	}
 	public String getHost() {
@@ -100,24 +100,24 @@
 
 	//I added this method, which overrides the original "equal" method in the class Object
 
-   @Override
+	@Override
 public boolean equals(Object anotherObject)throws ClassCastException {
-        if (!(anotherObject instanceof RemoteIC))
-            return false;
-        if ( !(((RemoteIC) anotherObject).getName().equals(this.getName())))
-            return false;
-        if ( !(((RemoteIC) anotherObject).getHost().equals(this.getHost())))
-        	return false;
-        if ( !(((RemoteIC) anotherObject).getPath().equals(this.getPath())))
-        	return false;
-        if ( !(((RemoteIC) anotherObject).getProtocol().equals(this.getProtocol())))
-        	return false;
-        if ( !(((RemoteIC) anotherObject).getPort().equals(this.getPort())))
-            return false;
-        if ( !(((RemoteIC) anotherObject).isEnabled()==this.isEnabled()))
-        	return false;
+		if (!(anotherObject instanceof RemoteIC))
+			return false;
+		if ( !(((RemoteIC) anotherObject).getName().equals(this.getName())))
+			return false;
+		if ( !(((RemoteIC) anotherObject).getHost().equals(this.getHost())))
+			return false;
+		if ( !(((RemoteIC) anotherObject).getPath().equals(this.getPath())))
+			return false;
+		if ( !(((RemoteIC) anotherObject).getProtocol().equals(this.getProtocol())))
+			return false;
+		if ( !(((RemoteIC) anotherObject).getPort().equals(this.getPort())))
+			return false;
+		if ( !(((RemoteIC) anotherObject).isEnabled()==this.isEnabled()))
+			return false;
 
-        //if we made it here, the the objects are the same
-          return true;
-   }
+		//if we made it here, the the objects are the same
+		return true;
+	}
 }
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java
index b57b272..bf20265 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java
@@ -116,9 +116,9 @@
 									currentContributions.length);
 						}
 					} catch (Throwable t) {
-				        String msg = "Internal error while reading TOC contents from remote server"; //$NON-NLS-1$
-				        HelpBasePlugin.logError(msg, t);
-				        RemoteHelp.setError(t);
+						String msg = "Internal error while reading TOC contents from remote server"; //$NON-NLS-1$
+						HelpBasePlugin.logError(msg, t);
+						RemoteHelp.setError(t);
 					} finally {
 						if (in != null) {
 							try {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/CriteriaHelpScope.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/CriteriaHelpScope.java
index 2eb4184..e71b860 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/CriteriaHelpScope.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/CriteriaHelpScope.java
@@ -106,7 +106,7 @@
 	private Map<String, Set<String>> getCriteriaInfo(ICriteria[] criteria) {
 		Map<String, Set<String>> criteriaMap = new HashMap<>();
 		CriteriaUtilities.addCriteriaToMap(criteriaMap, criteria);
-	    return criteriaMap;
+		return criteriaMap;
 	}
 
 	@Override
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeUtils.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeUtils.java
index 36b8137..d1fe946 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeUtils.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeUtils.java
@@ -87,7 +87,7 @@
 			}
 		}
 		return false;
-    }
+	}
 
 	/*
 	 * Returns true if one of the children meets the conditions
@@ -101,7 +101,7 @@
 			}
 		}
 		return false;
-    }
+	}
 
 	/*
 	 * Returns true if one of the children meets the conditions
@@ -118,7 +118,7 @@
 		IIndexEntry[] entries = entry.getSubentries();
 		for (int e = 0; e < entries.length; e++) {
 			if (showInTree(entries[e], scope)) {
-                return true;
+				return true;
 			}
 		}
 		if (entry instanceof IIndexEntry2) {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/WorkingSetScope.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/WorkingSetScope.java
index 7e0e474..35f7856 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/WorkingSetScope.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/WorkingSetScope.java
@@ -81,7 +81,7 @@
 				if (parent instanceof AdaptableHelpResource) {
 					adaptable = (AdaptableHelpResource) parent;
 				} else {
-				    adaptable = null;
+					adaptable = null;
 				}
 			}
 		}
@@ -132,7 +132,7 @@
 	private Map<String, Set<String>> getCriteriaInfo(ICriteria[] criteria) {
 		Map<String, Set<String>> criteriaMap = new HashMap<>();
 		CriteriaUtilities.addCriteriaToMap(criteriaMap, criteria);
-	    return criteriaMap;
+		return criteriaMap;
 	}
 
 	@Override
@@ -157,7 +157,7 @@
 					return isHrefInScope(topic.getHref());
 				} else {
 					if (uae instanceof ITopic) {
-					    topics.add(uae);
+						topics.add(uae);
 					}
 					uae = uae.getParentElement();
 				}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/CriteriaUtilities.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/CriteriaUtilities.java
index f9d0ab2..9457f60 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/CriteriaUtilities.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/CriteriaUtilities.java
@@ -25,22 +25,22 @@
 
 public class CriteriaUtilities {
 
-    public static List<String> getCriteriaValues(String rawValues) {
+	public static List<String> getCriteriaValues(String rawValues) {
 		List<String> result = new ArrayList<>();
-    	if (rawValues != null) {
-    		String[] values = rawValues.split(","); //$NON-NLS-1$
-    		for(int j = 0; j < values.length; ++j){
-    			String value = values[j].trim();
-    			if (value.length() > 0) {
-    				result.add(value);
-    			}
-    		}
-    	}
+		if (rawValues != null) {
+			String[] values = rawValues.split(","); //$NON-NLS-1$
+			for(int j = 0; j < values.length; ++j){
+				String value = values[j].trim();
+				if (value.length() > 0) {
+					result.add(value);
+				}
+			}
+		}
 		return result;
-    }
+	}
 
-    public static void addCriteriaToMap(Map<String, Set<String>> map, ICriteria[] criteria) {
-    	for (int i = 0; i < criteria.length; ++i) {
+	public static void addCriteriaToMap(Map<String, Set<String>> map, ICriteria[] criteria) {
+		for (int i = 0; i < criteria.length; ++i) {
 			ICriteria criterion = criteria[i];
 			String name = criterion.getName();
 			List<String> values = CriteriaUtilities.getCriteriaValues(criterion.getValue());
@@ -54,10 +54,10 @@
 				map.put(name, existingValueSet);
 			}
 		}
-    }
+	}
 
-    public static void addCriteriaToMap(Map<String, Set<String>> map, CriterionResource[] criteria) {
-    	for(int i = 0; i < criteria.length; ++ i){
+	public static void addCriteriaToMap(Map<String, Set<String>> map, CriterionResource[] criteria) {
+		for(int i = 0; i < criteria.length; ++ i){
 			CriterionResource criterion = criteria[i];
 			String criterionName = criterion.getCriterionName();
 			List<String> criterionValues = criterion.getCriterionValues();
@@ -68,6 +68,6 @@
 			existedValueSet.addAll(criterionValues);
 			map.put(criterionName, existedValueSet);
 		}
-    }
+	}
 
 }
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/IndexUtils.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/IndexUtils.java
index 8996fea..abf6144 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/IndexUtils.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/util/IndexUtils.java
@@ -49,7 +49,7 @@
 				String entryKeyword = indexEntry.getKeyword();
 				if (path[depth].equals(entryKeyword)) {
 					if (path.length == depth + 1) {
-					    return new IIndexEntry[] { indexEntry };
+						return new IIndexEntry[] { indexEntry };
 					}
 					IIndexEntry[] targets = findSeeTargets(indexEntry, see, depth + 1);
 					IIndexEntry[] result = new IIndexEntry[targets.length + 1];
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/browser/CustomBrowser.java b/org.eclipse.help.base/src/org/eclipse/help/internal/browser/CustomBrowser.java
index c6b5124..90f1b30 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/browser/CustomBrowser.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/browser/CustomBrowser.java
@@ -37,7 +37,7 @@
 	@Override
 	public void displayURL(String url) throws Exception {
 		String path =  Platform.getPreferencesService().getString
-		   (HelpBasePlugin.PLUGIN_ID, CustomBrowser.CUSTOM_BROWSER_PATH_KEY, "", null); //$NON-NLS-1$
+			(HelpBasePlugin.PLUGIN_ID, CustomBrowser.CUSTOM_BROWSER_PATH_KEY, "", null); //$NON-NLS-1$
 		String[] command = prepareCommand(path, url);
 
 		try {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java b/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java
index 04f1758..b4bcaa0 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java
@@ -87,7 +87,7 @@
 
 	public HelpURLConnection(URL url, boolean localOnly) {
 		super(url);
-        this.localOnly = localOnly;
+		this.localOnly = localOnly;
 		String urlFile = url.getFile();
 
 		// Strip off everything before and including the PLUGINS_ROOT
@@ -136,16 +136,16 @@
 		if (plugin != null && (helpOption==PreferenceFileHandler.LOCAL_HELP_ONLY || helpOption==PreferenceFileHandler.LOCAL_HELP_PRIORITY)) {
 			in = getLocalHelp(plugin);
 		}
-        if (in == null && (helpOption==PreferenceFileHandler.LOCAL_HELP_PRIORITY || helpOption==PreferenceFileHandler.REMOTE_HELP_PRIORITY)) {
+		if (in == null && (helpOption==PreferenceFileHandler.LOCAL_HELP_PRIORITY || helpOption==PreferenceFileHandler.REMOTE_HELP_PRIORITY)) {
 
-        	in = openFromRemoteServer(getHref(), getLocale());
-        	if( in != null ){
-        		in = new RemoteHelpInputStream(in);
-        	}
-        	if(in==null && plugin!=null && helpOption==PreferenceFileHandler.REMOTE_HELP_PRIORITY)
-        	{
-        		in = getLocalHelp(plugin);
-        	}
+			in = openFromRemoteServer(getHref(), getLocale());
+			if( in != null ){
+				in = new RemoteHelpInputStream(in);
+			}
+			if(in==null && plugin!=null && helpOption==PreferenceFileHandler.REMOTE_HELP_PRIORITY)
+			{
+				in = getLocalHelp(plugin);
+			}
 		}
 		if (in == null) {
 			throw new IOException("Resource not found."); //$NON-NLS-1$
@@ -405,7 +405,7 @@
 			if (remoteURL == null) {
 				in = tryOpeningAllServers(pathSuffix);
 			} else {
-			    in = openRemoteStream(remoteURL, pathSuffix);
+				in = openRemoteStream(remoteURL, pathSuffix);
 			}
 
 			return in;
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java
index cdc550e..6948153 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java
@@ -58,7 +58,7 @@
 		if ( stopWords == null ) {
 			stopWords = new HashSet<>();
 			for (int i = 0; i < STOP_WORDS.length; i++) {
-			    stopWords.add(STOP_WORDS[i]);
+				stopWords.add(STOP_WORDS[i]);
 			}
 		}
 		return stopWords;
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/LimitedSizeCharArrayWriter.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LimitedSizeCharArrayWriter.java
index deca309..5dad1d9 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/LimitedSizeCharArrayWriter.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LimitedSizeCharArrayWriter.java
@@ -29,7 +29,7 @@
 
 	@Override
 	public void write(char[] c, int off, int len) {
-        size += len;
+		size += len;
 		super.write(c, off, len);
 	}
 
@@ -37,23 +37,23 @@
 	public void write(char[] cbuf) throws IOException {
 		size += cbuf.length;
 		if (size < maxSize) {
-		    super.write(cbuf);
+			super.write(cbuf);
 		}
 	}
 
 	@Override
 	public void write(String str, int off, int len) {
-        size += len;
-        if (size < maxSize) {
-		    super.write(str, off, len);
-        }
+		size += len;
+		if (size < maxSize) {
+			super.write(str, off, len);
+		}
 	}
 
 	@Override
 	public void write(int c) {
 		size += 1;
 		if (size < maxSize) {
-		    super.write(c);
+			super.write(c);
 		}
 	}
 
@@ -61,7 +61,7 @@
 	public void write(String str) throws IOException {
 		size += str.length();
 		if (size < maxSize) {
-		    super.write(str);
+			super.write(str);
 		}
 	}
 
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java
index a46cf4b..c03c2f3 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java
@@ -365,7 +365,7 @@
 		HashSet<String> set = new HashSet<>();
 		addSearchBindings(set);
 		// must ask global search participants directly
-	    SearchParticipant[] gps = getGlobalParticipants();
+		SearchParticipant[] gps = getGlobalParticipants();
 		for (int i = 0; i < gps.length; i++) {
 			Set<String> ids;
 			try {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
index b90bc3f..6b32c1e 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
@@ -400,7 +400,7 @@
 			}
 		} else {
 			fields = new String[fieldNames.size() + 2];
-	        boosts = new float[fieldNames.size() + 2];
+			boosts = new float[fieldNames.size() + 2];
 			Iterator<String> fieldNamesIt = fieldNames.iterator();
 			for (int i = 0; i < fieldNames.size(); i++) {
 				fields[i] = fieldNamesIt.next();
@@ -408,8 +408,8 @@
 			}
 			fields[fieldNames.size()] = "contents"; //$NON-NLS-1$
 			boosts[fieldNames.size()] = 1.0f;
-            fields[fieldNames.size()+1] = "title"; //$NON-NLS-1$
-	        boosts[fieldNames.size()+1] = 1.0f;
+			fields[fieldNames.size()+1] = "title"; //$NON-NLS-1$
+			boosts[fieldNames.size()+1] = 1.0f;
 		}
 		Query query = getLuceneQuery(fields, boosts);
 		query = improveRankingForUnqotedPhrase(query, fields, boosts);
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java
index 1070766..688dc54 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java
@@ -1045,7 +1045,7 @@
 		}
 		if (raf != null ) {
 			try {
-			    raf.close();
+				raf.close();
 			} catch (IOException ioe) {
 			}
 			raf = null;
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchProgressMonitor.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchProgressMonitor.java
index 7f4635e..0f0eb89 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchProgressMonitor.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchProgressMonitor.java
@@ -51,7 +51,7 @@
 
 			@Override
 			public void addQTCException(QueryTooComplexException exception) throws QueryTooComplexException {
-                throw exception;
+				throw exception;
 			}
 		};
 	}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java
index 8e96555..720a0b8 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java
@@ -193,8 +193,8 @@
 		if (scope == null) {
 			return null;
 		}
-        String href = scope.getHref();
-        IToc toc=scope.getAdapter(IToc.class);
+		String href = scope.getHref();
+		IToc toc=scope.getAdapter(IToc.class);
 		if (toc != null){
 			href=toc.getTopic(null).getHref();
 		}
@@ -245,7 +245,7 @@
 			if (toc != null) {
 				foundInToc = true;
 				if (filter == null || filter.inScope(toc)) {
-				    return toc;
+					return toc;
 				}
 			}
 		}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/XHTMLSearchParticipant.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/XHTMLSearchParticipant.java
index 59af087..1114fa0 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/XHTMLSearchParticipant.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/XHTMLSearchParticipant.java
@@ -42,27 +42,27 @@
 
 	@Override
 	protected void handleStartElement(String name, Attributes attributes, IParsedXMLContent data) {
-	    title = null;
-	    if (META_TAG.equalsIgnoreCase(name)) {
-	    	String nameAttribute = attributes.getValue(NAME_ATTRIBUTE);
-	    	if (DESCRIPTION.equalsIgnoreCase(nameAttribute)) {
-	    		String descriptionAttribute = attributes.getValue(CONTENT_ATTRIBUTE);
-	    		if (descriptionAttribute != null) {
-	    			hasDescriptionMetaTag = true;
-		    		data.addToSummary(descriptionAttribute);
-	    			data.addText(" "); //$NON-NLS-1$
-		    		data.addText(descriptionAttribute);
-	    			data.addText(" "); //$NON-NLS-1$
-	    		}
-	    	} else if (KEYWORDS.equalsIgnoreCase(nameAttribute)) {
-	    		String keywordsAttribute = attributes.getValue(CONTENT_ATTRIBUTE);
-	    		if (keywordsAttribute != null) {
-	    			data.addText(" "); //$NON-NLS-1$
-		    		data.addText(keywordsAttribute);
-	    			data.addText(" "); //$NON-NLS-1$
-	    		}
-	    	}
-	    }
+		title = null;
+		if (META_TAG.equalsIgnoreCase(name)) {
+			String nameAttribute = attributes.getValue(NAME_ATTRIBUTE);
+			if (DESCRIPTION.equalsIgnoreCase(nameAttribute)) {
+				String descriptionAttribute = attributes.getValue(CONTENT_ATTRIBUTE);
+				if (descriptionAttribute != null) {
+					hasDescriptionMetaTag = true;
+					data.addToSummary(descriptionAttribute);
+					data.addText(" "); //$NON-NLS-1$
+					data.addText(descriptionAttribute);
+					data.addText(" "); //$NON-NLS-1$
+				}
+			} else if (KEYWORDS.equalsIgnoreCase(nameAttribute)) {
+				String keywordsAttribute = attributes.getValue(CONTENT_ATTRIBUTE);
+				if (keywordsAttribute != null) {
+					data.addText(" "); //$NON-NLS-1$
+					data.addText(keywordsAttribute);
+					data.addText(" "); //$NON-NLS-1$
+				}
+			}
+		}
 	}
 
 	@Override
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/federated/IndexerJob.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/federated/IndexerJob.java
index 432b8f4..055c7e2 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/federated/IndexerJob.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/federated/IndexerJob.java
@@ -30,12 +30,12 @@
 		try {
 			long start = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_SEARCH) {
-			    System.out.println("Start to update search index"); //$NON-NLS-1$
+				System.out.println("Start to update search index"); //$NON-NLS-1$
 			}
 			BaseHelpSystem.getLocalSearchManager().ensureIndexUpdated(monitor, index);
 			long stop = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_SEARCH) {
-			    System.out.println("Milliseconds to update search index =  = " + (stop - start)); //$NON-NLS-1$
+				System.out.println("Milliseconds to update search index =  = " + (stop - start)); //$NON-NLS-1$
 			}
 			return Status.OK_STATUS;
 		}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java b/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
index c492a3b..1056b76 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
@@ -232,7 +232,7 @@
 			return true;
 		}
 		String host = HelpBasePlugin.getBundleContext().getProperty("server_host"); //$NON-NLS-1$
-        return host != null && host.trim().length() > 0;
+		return host != null && host.trim().length() > 0;
 	}
 
 }
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/server/WebappManager.java b/org.eclipse.help.base/src/org/eclipse/help/internal/server/WebappManager.java
index 9b4e9b8..5b56bf0 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/server/WebappManager.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/server/WebappManager.java
@@ -27,15 +27,15 @@
 	private static final String SERVER_EXTENSION_ID = "org.eclipse.help.base.server"; //$NON-NLS-1$
 	private static final String SERVER_CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
 
-    private static HelpServer getHelpServer() {
-    	if (server == null) {
-    		createWebappServer();
-    	}
-    	if (server == null) {
-    		server = new JettyHelpServer();
-    	}
-    	return server;
-    }
+	private static HelpServer getHelpServer() {
+		if (server == null) {
+			createWebappServer();
+		}
+		if (server == null) {
+			server = new JettyHelpServer();
+		}
+		return server;
+	}
 
 	public static void start(String webappName) throws Exception {
 		getHelpServer().start(webappName);
@@ -50,7 +50,7 @@
 	}
 
 	public static String getHost() {
-        return getHelpServer().getHost();
+		return getHelpServer().getHost();
 	}
 
 	private static void createWebappServer() {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/validation/TocValidator.java b/org.eclipse.help.base/src/org/eclipse/help/internal/validation/TocValidator.java
index 8569c36..339b5d7 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/validation/TocValidator.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/validation/TocValidator.java
@@ -54,7 +54,7 @@
 	}
 
 	public static abstract class Filter {
-	     abstract public boolean isIncluded(String href);
+		abstract public boolean isIncluded(String href);
 	}
 
 	public static class PassThroughFilter extends Filter {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/server/HelpServer.java b/org.eclipse.help.base/src/org/eclipse/help/server/HelpServer.java
index 601ac56..a43bac8 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/server/HelpServer.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/server/HelpServer.java
@@ -44,13 +44,13 @@
 	 * @param webappName the name of a running web application
 	 * @throws CoreException If there was any error during stopping.
 	 */
-    public abstract void stop(String webappName) throws CoreException ;
+	public abstract void stop(String webappName) throws CoreException ;
 
 	/**
 	* Returns the port number the app server listens on
 	* @return integer port number, 0 if server not started
 	*/
-    public abstract int getPort();
+	public abstract int getPort();
 
 
 	/**
@@ -59,5 +59,5 @@
 	* @return String representation of host name of IP, null if server not
 	*         started yet
 	*/
-    public abstract String getHost();
+	public abstract String getHost();
 }
diff --git a/org.eclipse.help.base/src_ant/org/eclipse/help/internal/base/ant/BuildHelpIndex.java b/org.eclipse.help.base/src_ant/org/eclipse/help/internal/base/ant/BuildHelpIndex.java
index d13c6a1..2c1cde1 100644
--- a/org.eclipse.help.base/src_ant/org/eclipse/help/internal/base/ant/BuildHelpIndex.java
+++ b/org.eclipse.help.base/src_ant/org/eclipse/help/internal/base/ant/BuildHelpIndex.java
@@ -59,8 +59,8 @@
 		builder.setDestination(target);
 		IProgressMonitor monitor = (IProgressMonitor) getProject()
 				.getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR);
-        if (monitor == null)
-            monitor = new NullProgressMonitor();
+		if (monitor == null)
+			monitor = new NullProgressMonitor();
 		try {
 			builder.execute(monitor);
 		} catch (CoreException e) {
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/RootScopePage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/RootScopePage.java
index 807e8c5..50a0765 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/RootScopePage.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/RootScopePage.java
@@ -85,8 +85,8 @@
 	@Override
 	protected final Control createContents(Composite parent) {
 		initializeDefaults(getPreferenceStore());
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-	     "org.eclipse.help.ui.searchScope"); //$NON-NLS-1$
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
+		 "org.eclipse.help.ui.searchScope"); //$NON-NLS-1$
 		contentContainer = new Composite(parent, SWT.NULL);
 		GridLayout layout = new GridLayout();
 		GridData gd;
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java
index 46b0569..a697da6 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java
@@ -224,8 +224,8 @@
 		}
 		if (styledText == null && context.getText() != null) {
 			styledText = context.getText();
-		    styledText= styledText.replaceAll("<b>","<@#\\$b>"); //$NON-NLS-1$ //$NON-NLS-2$
-		    styledText= styledText.replaceAll("</b>", "</@#\\$b>"); //$NON-NLS-1$ //$NON-NLS-2$
+			styledText= styledText.replaceAll("<b>","<@#\\$b>"); //$NON-NLS-1$ //$NON-NLS-2$
+			styledText= styledText.replaceAll("</b>", "</@#\\$b>"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		if (styledText == null) { // no description found in context objects.
 			styledText = Messages.ContextHelpPart_noDescription;
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
index b99562e..af046ff 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
@@ -197,7 +197,7 @@
 			IWorkbenchPage page = window.getActivePage();
 			if (page != null) {
 				boolean searchFromBrowser = Platform.getPreferencesService().getBoolean
-				    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SEARCH_FROM_BROWSER, false, null);
+					(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SEARCH_FROM_BROWSER, false, null);
 				if (searchFromBrowser) {
 					String parameters = "tab=search"; //$NON-NLS-1$
 					if (expression != null) {
@@ -239,9 +239,9 @@
 
 	public static void showIndex() {
 		HelpView helpView = getHelpView();
-        if (helpView != null) {
-		    helpView.showIndex();
-        }
+		if (helpView != null) {
+			helpView.showIndex();
+		}
 	}
 
 	private static HelpView getHelpView() {
@@ -310,9 +310,9 @@
 		if (context == null)
 			return;
 		boolean winfopop = Platform.getPreferencesService().getBoolean
-		        (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_WINDOW_INFOPOP, false, null);
+				(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_WINDOW_INFOPOP, false, null);
 		boolean dinfopop = Platform.getPreferencesService().getBoolean
-		        (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_DIALOG_INFOPOP, false, null)  || FontUtils.isFontTooLargeForTray();
+				(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_DIALOG_INFOPOP, false, null)  || FontUtils.isFontTooLargeForTray();
 
 		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
 		Shell activeShell = getActiveShell();
@@ -333,7 +333,7 @@
 					IHelpResource[] topics = context.getRelatedTopics();
 					boolean isSingleChoiceWithoutDescription = contextText == null && topics.length == 1;
 					String openMode = Platform.getPreferencesService().getString
-					    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE, IHelpBaseConstants.P_IN_PLACE, null);
+						(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE, IHelpBaseConstants.P_IN_PLACE, null);
 					if (isSingleChoiceWithoutDescription && IHelpBaseConstants.P_IN_EDITOR.equals(openMode)) {
 						showInWorkbenchBrowser(topics[0].getHref(), true);
 					} else if (isSingleChoiceWithoutDescription && IHelpBaseConstants.P_IN_BROWSER.equals(openMode)) {
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DynamicHelpAction.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DynamicHelpAction.java
index 6d1ce50..df4a489 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DynamicHelpAction.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DynamicHelpAction.java
@@ -21,23 +21,23 @@
 
 public class DynamicHelpAction implements IWorkbenchWindowActionDelegate {
 
-    public DynamicHelpAction() {
-    }
+	public DynamicHelpAction() {
+	}
 
 	@Override
 	public void dispose() {
-    }
+	}
 
 	@Override
 	public void init(IWorkbenchWindow window) {
-    }
+	}
 
 	@Override
 	public void run(IAction action) {
-        PlatformUI.getWorkbench().getHelpSystem().displayDynamicHelp();
-    }
+		PlatformUI.getWorkbench().getHelpSystem().displayDynamicHelp();
+	}
 
 	@Override
 	public void selectionChanged(IAction action, ISelection selection) {
-    }
+	}
 }
\ No newline at end of file
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ExecuteCommandAction.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ExecuteCommandAction.java
index 714408a..fb71572 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ExecuteCommandAction.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ExecuteCommandAction.java
@@ -131,10 +131,10 @@
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
 			Object serviceObject = wb.getAdapter(IHandlerService.class);
-		    if (serviceObject != null) {
-			    IHandlerService service = (IHandlerService)serviceObject;
-			    return service;
-		    }
+			if (serviceObject != null) {
+				IHandlerService service = (IHandlerService)serviceObject;
+				return service;
+			}
 		}
 		return null;
 	}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
index d57eef2..249a676 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
@@ -153,10 +153,10 @@
 
 			IConfigurationElement[] configElements = extensionsFound[i].getConfigurationElements();
 			for(int j=0; j < configElements.length; j++){
-           	  if (configElements[j].getName().equals(TOC_ICON_ELEMENT)){
-           		   IConfigurationElement iconElem = configElements[j];
-           		   String attrs[] = iconElem.getAttributeNames();
-           		   String contributorID = iconElem.getContributor().getName();
+				if (configElements[j].getName().equals(TOC_ICON_ELEMENT)){
+					IConfigurationElement iconElem = configElements[j];
+					String attrs[] = iconElem.getAttributeNames();
+					String contributorID = iconElem.getContributor().getName();
 
 					for (int k=0; k < attrs.length; k++){
 						if(attrs[k].equals(OPEN_ICON_PATH))
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/SearchAction.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/SearchAction.java
index 8a4f3c2..ff6f5ac 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/SearchAction.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/SearchAction.java
@@ -21,23 +21,23 @@
 
 public class SearchAction implements IWorkbenchWindowActionDelegate {
 
-    public SearchAction() {
-    }
+	public SearchAction() {
+	}
 
 	@Override
 	public void dispose() {
-    }
+	}
 
 	@Override
 	public void init(IWorkbenchWindow window) {
-    }
+	}
 
 	@Override
 	public void run(IAction action) {
-        PlatformUI.getWorkbench().getHelpSystem().displaySearch();
-    }
+		PlatformUI.getWorkbench().getHelpSystem().displaySearch();
+	}
 
 	@Override
 	public void selectionChanged(IAction action, ISelection selection) {
-    }
+	}
 }
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
index 8799fc3..bd00246 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
@@ -392,7 +392,7 @@
 	private static String getWindowTitle() {
 		if (Platform.getPreferencesService().getBoolean(HelpUIPlugin.PLUGIN_ID, "windowTitlePrefix", false, null)) { //$NON-NLS-1$
 			return NLS.bind(Messages.browserTitle, BaseHelpSystem
-            .getProductName());
+			.getProductName());
 		}
 		return BaseHelpSystem.getProductName();
 	}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java
index 0df7938..d815416 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java
@@ -72,8 +72,8 @@
 		/* only attempt to use a second thread if the Browser's native renderer is IE */
 		boolean useUIThread2 = BaseHelpSystem.getMode() == BaseHelpSystem.MODE_WORKBENCH
 				&& Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS())
-		        && !Constants.WS_WPF.equalsIgnoreCase(SWT.getPlatform())
-		        && "ie".equalsIgnoreCase(browserType); //$NON-NLS-1$
+				&& !Constants.WS_WPF.equalsIgnoreCase(SWT.getPlatform())
+				&& "ie".equalsIgnoreCase(browserType); //$NON-NLS-1$
 		if (useUIThread2) {
 			if (secondThread == null) {
 				secondThread = new UIThread2();
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/handlers/ShowIndexHandler.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/handlers/ShowIndexHandler.java
index f0ba180..d149636 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/handlers/ShowIndexHandler.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/handlers/ShowIndexHandler.java
@@ -34,10 +34,10 @@
 	 * Currently returns true, could be controlled by a preference
 	 * in the future
 	 */
-    private boolean isOpenInHelpView() {
-    	boolean searchFromBrowser =
-    		Platform.getPreferencesService().getBoolean(HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_SEARCH_FROM_BROWSER, false, null);
-	    return !searchFromBrowser;
+	private boolean isOpenInHelpView() {
+		boolean searchFromBrowser =
+			Platform.getPreferencesService().getBoolean(HelpBasePlugin.PLUGIN_ID,IHelpBaseConstants.P_KEY_SEARCH_FROM_BROWSER, false, null);
+		return !searchFromBrowser;
 	}
 
 	@Override
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpContentPreferencePage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpContentPreferencePage.java
index 082731d..2418bd4 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpContentPreferencePage.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpContentPreferencePage.java
@@ -122,7 +122,7 @@
 		List<IC> ics = table.getICs();
 		ICPreferences.setICs(ics);
 
-    	RemoteHelp.notifyPreferenceChange();
+		RemoteHelp.notifyPreferenceChange();
 		return super.performOk();
 	}
 
@@ -137,7 +137,7 @@
 		searchLocalHelpOnly.addListener(SWT.Selection, changeListener);
 
 		boolean isRemoteOn = Platform.getPreferencesService().getBoolean
-		    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON, false, null);
+			(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON, false, null);
 
 		searchLocalHelpOnly.setSelection(!isRemoteOn);
 		Dialog.applyDialogFont(searchLocalHelpOnly);
@@ -149,9 +149,9 @@
 		searchLocalHelpFirst.addListener(SWT.Selection, changeListener);
 
 		boolean isRemoteOn = Platform.getPreferencesService().getBoolean
-	    	(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON, false, null);
+			(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON, false, null);
 		boolean isRemotePreferred = Platform.getPreferencesService().getBoolean
-	    	(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PREFERRED, false, null);
+			(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PREFERRED, false, null);
 
 		searchLocalHelpFirst.setSelection(isRemoteOn && !isRemotePreferred);
 		Dialog.applyDialogFont(searchLocalHelpFirst);
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java
index 54a8c7e..b62b908 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java
@@ -121,21 +121,21 @@
 		searchLocationCombo.add(Messages.HelpPreferencePage_openInBrowser);
 		searchLocationCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
 		boolean searchFromBrowser = Platform.getPreferencesService().getBoolean
-		    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SEARCH_FROM_BROWSER, false, null);
+			(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SEARCH_FROM_BROWSER, false, null);
 		searchLocationCombo.setText(searchFromBrowser ? Messages.HelpPreferencePage_openInBrowser : Messages.HelpPreferencePage_view);
 	}
 
 	private void createOpenContents(Composite mainComposite) {
 		if (BrowserManager.getInstance().isEmbeddedBrowserPresent()) {
-		    Label isExternalLabel = new Label(mainComposite, SWT.NONE);
-		    isExternalLabel.setText(Messages.HelpPreferencePage_openContents);
-		    isExternalLabel.setLayoutData(createLabelData());
+			Label isExternalLabel = new Label(mainComposite, SWT.NONE);
+			isExternalLabel.setText(Messages.HelpPreferencePage_openContents);
+			isExternalLabel.setLayoutData(createLabelData());
 			useExternalCombo = new Combo(mainComposite, SWT.READ_ONLY);
 			useExternalCombo.add(Messages.HelpPreferencePage_helpBrowser);
 			useExternalCombo.add(Messages.HelpPreferencePage_externalBrowser);
 			useExternalCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
 			boolean useExternal = Platform.getPreferencesService().getBoolean
-			    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_ALWAYS_EXTERNAL_BROWSER, false, null);
+				(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_ALWAYS_EXTERNAL_BROWSER, false, null);
 			useExternalCombo.setText(useExternal ? Messages.HelpPreferencePage_externalBrowser : Messages.HelpPreferencePage_helpBrowser);
 		}
 	}
@@ -181,7 +181,7 @@
 		dialogHelpCombo.add(Messages.HelpPreferencePage_infopop);
 		dialogHelpCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
 		boolean dinfopop = Platform.getPreferencesService().getBoolean
-		    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_DIALOG_INFOPOP, false, null);
+			(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_DIALOG_INFOPOP, false, null);
 		dialogHelpCombo.setText(dinfopop ? Messages.HelpPreferencePage_infopop : Messages.HelpPreferencePage_tray);
 	}
 
@@ -195,7 +195,7 @@
 		windowHelpCombo.add(Messages.HelpPreferencePage_infopop);
 		windowHelpCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
 		boolean winfopop = Platform.getPreferencesService().getBoolean
-		    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_WINDOW_INFOPOP, false, null);
+			(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_WINDOW_INFOPOP, false, null);
 		windowHelpCombo.setText(winfopop ? Messages.HelpPreferencePage_infopop : Messages.HelpPreferencePage_view);
 	}
 
@@ -248,9 +248,9 @@
 		dialogHelpCombo.setText(dinfopop ? Messages.HelpPreferencePage_infopop : Messages.HelpPreferencePage_tray);
 
 		if (openModeCombo !=null) {
-		   String openMode = defaults.get(
+			String openMode = defaults.get(
 						IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE, IHelpBaseConstants.P_IN_PLACE);
-		   openModeCombo.setText(openModeToString(openMode));
+			openModeCombo.setText(openModeToString(openMode));
 		}
 
 		super.performDefaults();
@@ -288,20 +288,20 @@
 	}
 
 	private String openModeToString(String openMode) {
-	    if (IHelpBaseConstants.P_IN_BROWSER.equals(openMode)) {
-		    return Messages.HelpPreferencePage_openInBrowser;
-	   } else if (IHelpBaseConstants.P_IN_EDITOR.equals(openMode)) {
-		    return Messages.HelpPreferencePage_openInEditor;
+		if (IHelpBaseConstants.P_IN_BROWSER.equals(openMode)) {
+			return Messages.HelpPreferencePage_openInBrowser;
+		} else if (IHelpBaseConstants.P_IN_EDITOR.equals(openMode)) {
+			return Messages.HelpPreferencePage_openInEditor;
 		} else {
 			return Messages.HelpPreferencePage_openInPlace;
 		}
 	}
 
 	private String openModeFromString(String openMode) {
-	    if (Messages.HelpPreferencePage_openInBrowser.equals(openMode)) {
-		    return IHelpBaseConstants.P_IN_BROWSER;
-	   } else if (Messages.HelpPreferencePage_openInEditor.equals(openMode)) {
-		    return IHelpBaseConstants.P_IN_EDITOR;
+		if (Messages.HelpPreferencePage_openInBrowser.equals(openMode)) {
+			return IHelpBaseConstants.P_IN_BROWSER;
+		} else if (Messages.HelpPreferencePage_openInEditor.equals(openMode)) {
+			return IHelpBaseConstants.P_IN_EDITOR;
 		} else {
 			return IHelpBaseConstants.P_IN_PLACE;
 		}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICButtons.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICButtons.java
index da9d204..5786895 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICButtons.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICButtons.java
@@ -154,10 +154,10 @@
 		}
 
 		boolean shouldRemove =
-	          MessageDialog.openQuestion(
-	        	page.getShell(),
-	            NLS.bind(Messages.HelpContentBlock_rmvTitle ,""), //$NON-NLS-1$
-	            NLS.bind(Messages.HelpContentBlock_rmvLabel ,remove));
+			  MessageDialog.openQuestion(
+				page.getShell(),
+				NLS.bind(Messages.HelpContentBlock_rmvTitle ,""), //$NON-NLS-1$
+				NLS.bind(Messages.HelpContentBlock_rmvLabel ,remove));
 
 		if (shouldRemove)
 		{
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICDialog.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICDialog.java
index 1734424..6708687 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICDialog.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICDialog.java
@@ -250,7 +250,7 @@
 
 	@Override
 	public void handleEvent(Event event) {
-		  updateValidity();
+		updateValidity();
 	}
 
 	@Override
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICTable.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICTable.java
index a34cd3d..99c7f90 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICTable.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/ICTable.java
@@ -96,29 +96,29 @@
 
 
 		ColumnLayoutData[] fTableColumnLayouts= {
-		        new ColumnWeightData(85),
-		        new ColumnWeightData(165),
-		        new ColumnWeightData(60)
+				new ColumnWeightData(85),
+				new ColumnWeightData(165),
+				new ColumnWeightData(60)
 		};
 
 		TableColumn column;
 
 		tableLayout.addColumnData(fTableColumnLayouts[0]);
-	    column = new TableColumn(table, SWT.NONE, 0);
-	    column.setResizable(fTableColumnLayouts[0].resizable);
-	    column.setText(NAME_COLUMN);
+		column = new TableColumn(table, SWT.NONE, 0);
+		column.setResizable(fTableColumnLayouts[0].resizable);
+		column.setText(NAME_COLUMN);
 
-	    tableLayout.addColumnData(fTableColumnLayouts[1]);
-	    column = new TableColumn(table, SWT.NONE, 1);
-	    column.setResizable(fTableColumnLayouts[1].resizable);
-	    column.setText(LOCATION_COLUMN);
+		tableLayout.addColumnData(fTableColumnLayouts[1]);
+		column = new TableColumn(table, SWT.NONE, 1);
+		column.setResizable(fTableColumnLayouts[1].resizable);
+		column.setText(LOCATION_COLUMN);
 
-	    tableLayout.addColumnData(fTableColumnLayouts[2]);
-	    column = new TableColumn(table, SWT.NONE, 2);
-	    column.setResizable(fTableColumnLayouts[2].resizable);
-	    column.setText(STATUS_COLUMN);
+		tableLayout.addColumnData(fTableColumnLayouts[2]);
+		column = new TableColumn(table, SWT.NONE, 2);
+		column.setResizable(fTableColumnLayouts[2].resizable);
+		column.setText(STATUS_COLUMN);
 
-	    return table;
+		return table;
 	}
 
 	/**
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpCriteriaContentProvider.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpCriteriaContentProvider.java
index dda2fb3..52639d3 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpCriteriaContentProvider.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpCriteriaContentProvider.java
@@ -120,7 +120,7 @@
 			CriterionName parentCriterion = (CriterionName) parentElement;
 
 			String[] values = BaseHelpSystem.getWorkingSetManager().getCriterionValueIds(parentCriterion.getId());
-		    CriterionValue[] criterionValues = new CriterionValue[values.length];
+			CriterionValue[] criterionValues = new CriterionValue[values.length];
 			for (int i = 0; i < values.length; i++) {
 				criterionValues[i] = new CriterionValue(values[i], parentElement);
 			}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterSearchScopeFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterSearchScopeFactory.java
index 1d4e65b..7b0e93b 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterSearchScopeFactory.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterSearchScopeFactory.java
@@ -34,32 +34,32 @@
 	@Override
 	public ISearchScope createSearchScope(IPreferenceStore store, String engineId,
 			Dictionary<String, Object> parameters) {
-        String url = getProperty(P_URL, store, engineId, parameters);
-        String ssvalue = getProperty(P_SEARCH_SELECTED, store, engineId, parameters);
-        boolean searchSelected = ssvalue!=null && ssvalue.equalsIgnoreCase("true"); //$NON-NLS-1$
-        String [] tocs=null;
-        if (searchSelected) {
-        	String tvalue = getProperty(P_TOCS, store, engineId, parameters);
-        	if (tvalue!=null && tvalue.length()>0) {
-        		StringTokenizer stok = new StringTokenizer(tvalue, TOC_SEPARATOR);
-        		ArrayList<String> list = new ArrayList<>();
-        		while (stok.hasMoreTokens()) {
-        			String toc = stok.nextToken();
-        			list.add(toc);
-        		}
-        		if (list.size()>0)
+		String url = getProperty(P_URL, store, engineId, parameters);
+		String ssvalue = getProperty(P_SEARCH_SELECTED, store, engineId, parameters);
+		boolean searchSelected = ssvalue!=null && ssvalue.equalsIgnoreCase("true"); //$NON-NLS-1$
+		String [] tocs=null;
+		if (searchSelected) {
+			String tvalue = getProperty(P_TOCS, store, engineId, parameters);
+			if (tvalue!=null && tvalue.length()>0) {
+				StringTokenizer stok = new StringTokenizer(tvalue, TOC_SEPARATOR);
+				ArrayList<String> list = new ArrayList<>();
+				while (stok.hasMoreTokens()) {
+					String toc = stok.nextToken();
+					list.add(toc);
+				}
+				if (list.size()>0)
 					tocs = list.toArray(new String[list.size()]);
-        	}
-        }
-        return new InfoCenter.Scope(url, searchSelected, tocs);
-    }
+			}
+		}
+		return new InfoCenter.Scope(url, searchSelected, tocs);
+	}
 
 	private String getProperty(String key, IPreferenceStore store, String engineId,
 			Dictionary<String, Object> parameters) {
-    	// try the store first
-    	String value = store.getString(engineId+"."+key); //$NON-NLS-1$
-    	if (value!=null && value.length()>0) return value;
-    	// try the parameters
+		// try the store first
+		String value = store.getString(engineId+"."+key); //$NON-NLS-1$
+		if (value!=null && value.length()>0) return value;
+		// try the parameters
 		return (String) parameters.get(key);
-    }
+	}
 }
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalHelpPage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalHelpPage.java
index 9cb0e56..d7d07de 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalHelpPage.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalHelpPage.java
@@ -99,7 +99,7 @@
 			public void widgetSelected(SelectionEvent e) {
 				contentTree.getTree().setEnabled(false);
 				if (criteriaTree != null) {
-				    criteriaTree.getTree().setEnabled(false);
+					criteriaTree.getTree().setEnabled(false);
 				}
 			}
 		});
@@ -115,7 +115,7 @@
 			public void widgetSelected(SelectionEvent e) {
 				contentTree.getTree().setEnabled(true);
 				if (criteriaTree != null) {
-				    criteriaTree.getTree().setEnabled(true);
+					criteriaTree.getTree().setEnabled(true);
 
 				}
 			}
@@ -146,7 +146,7 @@
 					| GridData.VERTICAL_ALIGN_CENTER);
 			gd.horizontalSpan = 2;
 			criteriaLabel.setLayoutData(gd);
-		    createCriteriaTree(parent, font);
+			createCriteriaTree(parent, font);
 		}
 
 		initializeCheckedState();
@@ -265,7 +265,7 @@
 	}
 
 	void updateParentState(Object child, boolean baseChildState,
-			               CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
+						   CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
 		if (child == null)
 			return;
 
@@ -293,7 +293,7 @@
 
 	void setSubtreeChecked(Object parent, boolean state,
 			boolean checkExpandedState,
-            CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
+			CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
 
 		Object[] children = contentProvider.getChildren(parent);
 		for (int i = children.length - 1; i >= 0; i--) {
@@ -310,7 +310,7 @@
 
 	@SuppressWarnings({ "unchecked", "rawtypes" })
 	private void findCheckedElements(java.util.List checkedResources, Object parent,
-            CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
+			CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
 		Object[] children = contentProvider.getChildren(parent);
 		for (int i = 0; i < children.length; i++) {
 			if (tree.getGrayed(children[i]))
@@ -321,7 +321,7 @@
 	}
 
 	private CriterionResource[] findCheckedCriteria(Object parent,
-            CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
+			CheckboxTreeViewer tree, ITreeContentProvider contentProvider) {
 		Object[] children = contentProvider.getChildren(parent);
 		List<CriterionResource> resources = new ArrayList<>();
 		for (int i = 0; i < children.length; i++) {
@@ -331,8 +331,8 @@
 			Object[] grandChildren = contentProvider.getChildren(name);
 			for (int j = 0; j < grandChildren.length; j++) {
 				if (tree.getChecked(grandChildren[j])) {
-				    CriterionValue value = (CriterionValue) grandChildren[j];
-				    resource.addCriterionValue(value.getId());
+					CriterionValue value = (CriterionValue) grandChildren[j];
+					resource.addCriterionValue(value.getId());
 				}
 			}
 			if (resource.getCriterionValues().size() > 0) {
@@ -343,7 +343,7 @@
 	}
 
 	void handleCheckStateChange(final CheckStateChangedEvent event,
-            final CheckboxTreeViewer tree, final ITreeContentProvider contentProvider) {
+			final CheckboxTreeViewer tree, final ITreeContentProvider contentProvider) {
 		BusyIndicator.showWhile(getShell().getDisplay(), () -> {
 			Object element = event.getElement();
 			boolean state = event.getChecked();
@@ -424,7 +424,7 @@
 			for (Iterator<String> iter = values.iterator(); iter.hasNext();) {
 				String valueString = iter.next();
 				CriterionValue value = new CriterionValue(valueString, name);
-			    criteriaTree.setChecked(value, true);
+				criteriaTree.setChecked(value, true);
 				updateParentState(value, true, criteriaTree, criteriaTreeContentProvider);
 			}
 		}
@@ -436,7 +436,7 @@
 		searchSelected.setSelection(false);
 		contentTree.setCheckedElements(new Object[0]);
 		if (criteriaTree != null) {
-		    criteriaTree.setCheckedElements(new Object[0]);
+			criteriaTree.setCheckedElements(new Object[0]);
 		}
 		super.performDefaults();
 	}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalSearchScopeFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalSearchScopeFactory.java
index e3aab0f..9cf6b99 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalSearchScopeFactory.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalSearchScopeFactory.java
@@ -26,17 +26,17 @@
  * Creates the scope for local search using the help working sets
  */
 public class LocalSearchScopeFactory implements ISearchScopeFactory {
-    public final static String P_WORKING_SET = "workingSet"; //$NON-NLS-1$
-    public final static String P_CAPABILITY_FILTERING = "capabilityFiltering";  //$NON-NLS-1$
+	public final static String P_WORKING_SET = "workingSet"; //$NON-NLS-1$
+	public final static String P_CAPABILITY_FILTERING = "capabilityFiltering";  //$NON-NLS-1$
 
 	@Override
 	public ISearchScope createSearchScope(IPreferenceStore store, String engineId,
 			Dictionary<String, Object> parameters) {
-        String name = store.getString(engineId+"."+P_WORKING_SET); //$NON-NLS-1$
-        WorkingSet workingSet = null;
-        if (name != null)
-            workingSet = BaseHelpSystem.getWorkingSetManager().getWorkingSet(name);
-        boolean capabilityFiltering = store.getBoolean(engineId+"."+P_CAPABILITY_FILTERING); //$NON-NLS-1$
-        return new LocalHelpScope(workingSet, capabilityFiltering);
-    }
+		String name = store.getString(engineId+"."+P_WORKING_SET); //$NON-NLS-1$
+		WorkingSet workingSet = null;
+		if (name != null)
+			workingSet = BaseHelpSystem.getWorkingSetManager().getWorkingSet(name);
+		boolean capabilityFiltering = store.getBoolean(engineId+"."+P_CAPABILITY_FILTERING); //$NON-NLS-1$
+		return new LocalHelpScope(workingSet, capabilityFiltering);
+	}
 }
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchScopeFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchScopeFactory.java
index ce86bd5..863e1db 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchScopeFactory.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchScopeFactory.java
@@ -29,16 +29,16 @@
 	@Override
 	public ISearchScope createSearchScope(IPreferenceStore store, String engineId,
 			Dictionary<String, Object> parameters) {
-        String urlTemplate = getProperty(store, engineId, parameters);
-        return new WebSearch.Scope(urlTemplate);
-    }
+		String urlTemplate = getProperty(store, engineId, parameters);
+		return new WebSearch.Scope(urlTemplate);
+	}
 
 	private String getProperty(IPreferenceStore store, String engineId,
 			Dictionary<String, Object> parameters) {
-    	// try the store first
-    	String value = store.getString(engineId+"."+P_URL); //$NON-NLS-1$
-    	if (value!=null && value.length()>0) return value;
-    	// try the parameters
-    	return (String)parameters.get(P_URL);
-    }
+		// try the store first
+		String value = store.getString(engineId+"."+P_URL); //$NON-NLS-1$
+		if (value!=null && value.length()>0) return value;
+		// try the parameters
+		return (String)parameters.get(P_URL);
+	}
 }
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/FontUtils.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/FontUtils.java
index c267363..6acfcba 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/FontUtils.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/FontUtils.java
@@ -44,7 +44,7 @@
 		String scaleString = percent/100 + "." + (percent % 100) / 10; //$NON-NLS-1$
 		String os = Platform.getOS();
 		if (Constants.WS_WIN32.equalsIgnoreCase(os) ||
-		    Constants.OS_MACOSX.equalsIgnoreCase(os)) {
+			Constants.OS_MACOSX.equalsIgnoreCase(os)) {
 			return "document.body.style.zoom = " + scaleString; //$NON-NLS-1$
 		}
 		return null;  // No rescale in Mozilla browsers
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BrowserPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BrowserPart.java
index e9b8275..3556d0c 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BrowserPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BrowserPart.java
@@ -56,7 +56,7 @@
 	private final static String QUERY = "BrowserPartQuery:"; //$NON-NLS-1$
 	private final static String HIGHLIGHT_ON = "highlight-on"; //$NON-NLS-1$
 	private final static String HELP_VIEW_SCALE = "help_view_scale"; //$NON-NLS-1$
-    private final static String EMPTY_PAGE = "<html><head></head><body></body></html>"; //$NON-NLS-1$
+	private final static String EMPTY_PAGE = "<html><head></head><body></body></html>"; //$NON-NLS-1$
 
 	private ReusableHelpPart parent;
 
@@ -160,7 +160,7 @@
 				}
 				lastProgress = -1;
 				if (fontScalePercentage != 100) {
-				    rescale();
+					rescale();
 				}
 				String value = executeQuery("document.title"); //$NON-NLS-1$
 				BrowserPart.this.title = value != null ? value : "N/A"; //$NON-NLS-1$
@@ -286,7 +286,7 @@
 			fontScalePercentage = Platform.getPreferencesService().getInt(HelpBasePlugin.PLUGIN_ID,
 					HELP_VIEW_SCALE, 100, null);
 			if (menuManager != null) {
-			    addMenuActions(menuManager);
+				addMenuActions(menuManager);
 			}
 		}
 	}
@@ -462,8 +462,8 @@
 
 	private void enableButtons() {
 		if (magnifyAction != null) {
-		    magnifyAction.setEnabled(fontScalePercentage < SCALE_MAX);
-	        reduceAction.setEnabled(fontScalePercentage > SCALE_MIN);
+			magnifyAction.setEnabled(fontScalePercentage < SCALE_MAX);
+			reduceAction.setEnabled(fontScalePercentage > SCALE_MIN);
 		}
 	}
 
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java
index 9f13120..5125134 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java
@@ -153,7 +153,7 @@
 				if (href.startsWith(MORE_HREF)) {
 					doMore(href.substring(MORE_HREF.length()));
 				}  else {
-				   doOpenLink(e.getHref());
+					doOpenLink(e.getHref());
 				}
 			}
 
@@ -172,12 +172,12 @@
 
 			@Override
 			public void getName(AccessibleEvent e) {
-		        if (e.childID == ACC.CHILDID_SELF) {
-		            String currentName = e.result;
-		            e.result = Messages.ReusableHelpPart_contextHelpPage_name
-		              + ' ' + getSection().getText()+ ' ' +currentName;
-		        }
-		    }
+				if (e.childID == ACC.CHILDID_SELF) {
+					String currentName = e.result;
+					e.result = Messages.ReusableHelpPart_contextHelpPage_name
+					  + ' ' + getSection().getText()+ ' ' +currentName;
+				}
+			}
 		});
 
 	}
@@ -279,10 +279,10 @@
 		if (lastProvider != null) {
 			String providerSearchExpression = lastProvider.getSearchExpression(lastControl);
 				if (providerSearchExpression != null) {
-				    updateSearchExpression(providerSearchExpression, lastControl);
-			        return;
+					updateSearchExpression(providerSearchExpression, lastControl);
+					return;
 				}
-	    }
+		}
 		if (lastContext instanceof IContext2) {
 			String title = ((IContext2)lastContext).getTitle();
 			if (title!=null) {
@@ -312,8 +312,8 @@
 		lastPart = part;
 		if (provider!= null && (context==null || ((context instanceof Context) && IWorkbenchHelpContextIds.MISSING.equals(((Context)context).getId())))) {
 			if (HelpPlugin.DEBUG_CONTEXT) {
-			    System.out.println("Getting context from provider"); //$NON-NLS-1$
-		    }
+				System.out.println("Getting context from provider"); //$NON-NLS-1$
+			}
 			lastContext = provider.getContext(c);
 		}
 		updateSearchExpression();
@@ -322,18 +322,18 @@
 		if (lastContext!=null) {
 			helpText = formatHelpContext(lastContext);
 			if (HelpPlugin.DEBUG_CONTEXT) {
-			    System.out.println("Context Activation, context =  " + lastContext.getText()); //$NON-NLS-1$
-		    }
+				System.out.println("Context Activation, context =  " + lastContext.getText()); //$NON-NLS-1$
+			}
 		} else {
 			if (HelpPlugin.DEBUG_CONTEXT) {
-			    System.out.println("Context Activation on control"); //$NON-NLS-1$
-		    }
+				System.out.println("Context Activation on control"); //$NON-NLS-1$
+			}
 			helpText = createContextHelp(c);
 		}
 		updateTitle(c);
 		updateDescription(helpText);
 		if (RelatedTopicsPart.isUseDynamicHelp()) {
-		    updateDynamicHelp();
+			updateDynamicHelp();
 		}
 	}
 
@@ -394,7 +394,7 @@
 		if (expression == null) {
 			searchTerms = computeSearchTerms(c);
 		} else {
-		    searchTerms = new String[] { expression };
+			searchTerms = new String[] { expression };
 		}
 	}
 
@@ -404,8 +404,8 @@
 		if (part != null) {
 			if (searchTerms != null) {
 				if (HelpPlugin.DEBUG_CONTEXT) {
-				    System.out.println("Dynamic help - search for " + searchTerms); //$NON-NLS-1$
-			    }
+					System.out.println("Dynamic help - search for " + searchTerms); //$NON-NLS-1$
+				}
 				part.startSearch(buildSearchExpression(searchTerms), lastContext);
 			}
 		}
@@ -469,12 +469,12 @@
 											.getSite().getRegisteredName()));
 						} else if (part instanceof IEditorPart) {
 							if (part.getSite() != null && part.getSite().getRegisteredName() != null) {
-							    searchTerms.add(part.getSite().getRegisteredName());
+								searchTerms.add(part.getSite().getRegisteredName());
 							}
 						}
 					}
 					/*
-                    // Searching by perspective seems counterproductive - CG
+					// Searching by perspective seems counterproductive - CG
 					IPerspectiveDescriptor persp = page.getPerspective();
 					if (persp != null) {
 						searchTerms.add(NLS.bind(
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpSorter.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpSorter.java
index b871aa3..bf16140 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpSorter.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpSorter.java
@@ -36,7 +36,7 @@
 			IHelpResource r1 = (IHelpResource) elements[i];
 			String c1 = context.getCategory(r1);
 			if (!list.contains(c1)) {
-			    list.add(c1);
+				list.add(c1);
 			}
 		}
 		super.sort(viewer, elements);
@@ -50,8 +50,8 @@
 		if (!(e1 instanceof IHelpResource)) {
 			return 1;
 		}
-	    IHelpResource r1 = (IHelpResource) e1;
-	    IHelpResource r2 = (IHelpResource) e2;
+		IHelpResource r1 = (IHelpResource) e1;
+		IHelpResource r2 = (IHelpResource) e2;
 		String c1 = context.getCategory(r1);
 		String c2 = context.getCategory(r2);
 		int i1 = list.indexOf(c1);
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeDescriptor.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeDescriptor.java
index 8ff970c..37e0f28 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeDescriptor.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeDescriptor.java
@@ -126,7 +126,7 @@
 					}
 				}
 				catch (CoreException e) {
-                    HelpUIPlugin.logError("Scope factory " + fclass + " cannot be instantiated", null); //$NON-NLS-1$ //$NON-NLS-2$
+					HelpUIPlugin.logError("Scope factory " + fclass + " cannot be instantiated", null); //$NON-NLS-1$ //$NON-NLS-2$
 				}
 			}
 		}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeWizardPage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeWizardPage.java
index 90073bf..5664871 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeWizardPage.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeWizardPage.java
@@ -86,7 +86,7 @@
 	public void createControl(Composite parent) {
 		Font font = parent.getFont();
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-	     "org.eclipse.help.ui.searchScope"); //$NON-NLS-1$
+		 "org.eclipse.help.ui.searchScope"); //$NON-NLS-1$
 		Composite container = new Composite(parent, SWT.NULL);
 		GridLayout layout = new GridLayout();
 		container.setLayout(layout);
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/FederatedSearchSorter.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/FederatedSearchSorter.java
index a750051..615b2c2 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/FederatedSearchSorter.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/FederatedSearchSorter.java
@@ -35,17 +35,17 @@
 				return 5;
 			}
 		}
-        return super.category(element);
-    }
+		return super.category(element);
+	}
 
 
 	@Override
 	public int compare(Viewer viewer, Object e1, Object e2) {
-	    int cat1 = category(e1);
-	    int cat2 = category(e2);
+		int cat1 = category(e1);
+		int cat2 = category(e2);
 
-	    if (cat1 != cat2)
-	    	return cat1 - cat2;
+		if (cat1 != cat2)
+			return cat1 - cat2;
 		try {
 			ISearchEngineResult r1 = (ISearchEngineResult) e1;
 			ISearchEngineResult r2 = (ISearchEngineResult) e2;
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpView.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpView.java
index 31e553d..765bc8f 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpView.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpView.java
@@ -75,7 +75,7 @@
 		reusableHelpPart.setDefaultContextHelpText(Messages.HelpView_defaultText);
 		reusableHelpPart.showPage(getFirstPage());
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-	         "org.eclipse.help.ui.helpView"); //$NON-NLS-1$
+			 "org.eclipse.help.ui.helpView"); //$NON-NLS-1$
 		IWorkbenchWindow window = getSite().getPage().getWorkbenchWindow();
 		if (window == null)
 			return;
@@ -124,13 +124,13 @@
 
 	@Override
 	public void saveState(IMemento memento) {
-    	if (reusableHelpPart!=null && memento!=null) {
-    		String pageId = reusableHelpPart.getCurrentPageId();
-    		if (pageId!=null)
-    			memento.putString("pageId", pageId); //$NON-NLS-1$
-    		reusableHelpPart.saveState(memento);
-    	}
-    }
+		if (reusableHelpPart!=null && memento!=null) {
+			String pageId = reusableHelpPart.getCurrentPageId();
+			if (pageId!=null)
+				memento.putString("pageId", pageId); //$NON-NLS-1$
+			reusableHelpPart.saveState(memento);
+		}
+	}
 
 	private void handlePartActivation(IWorkbenchPartReference ref) {
 		if (reusableHelpPart == null)
@@ -157,12 +157,12 @@
 		} else {
 			if (HelpPlugin.DEBUG_CONTEXT) {
 				if (c == null) {
-				    System.out.println("Context: focus control is null " ); //$NON-NLS-1$
+					System.out.println("Context: focus control is null " ); //$NON-NLS-1$
 				}
 				if (!c.isVisible()) {
-				    System.out.println("Context: focus control not visible " ); //$NON-NLS-1$
+					System.out.println("Context: focus control not visible " ); //$NON-NLS-1$
 				}
-		    }
+			}
 		}
 	}
 
@@ -238,8 +238,8 @@
 			selectionChanged(null);
 		} else {
 			if (HelpPlugin.DEBUG_CONTEXT) {
-			    System.out.println("Help View: activation of " + partRef.getPartName() + " part"); //$NON-NLS-1$ //$NON-NLS-2$
-		    }
+				System.out.println("Help View: activation of " + partRef.getPartName() + " part"); //$NON-NLS-1$ //$NON-NLS-2$
+			}
 			handlePartActivation(partRef);
 		}
 	}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HyperlinkTreePart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HyperlinkTreePart.java
index 607101e..143251a 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HyperlinkTreePart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HyperlinkTreePart.java
@@ -286,7 +286,7 @@
 	public void init(ReusableHelpPart parent, String id, IMemento memento) {
 		this.parent = parent;
 		this.id = id;
-	    refilter();
+		refilter();
 	}
 
 	@Override
@@ -404,7 +404,7 @@
 		for (int i = 0; i < engineDescriptors.length; i++) {
 			final EngineDescriptor ed = engineDescriptors[i];
 			if (ed.getEngineTypeId().equals("org.eclipse.help.ui.localSearch") //$NON-NLS-1$
-				  && ed.getEngine() != null) {
+					&& ed.getEngine() != null) {
 				scope = ed.createSearchScope(set.getPreferenceStore());
 			}
 		}
@@ -414,7 +414,7 @@
 		treeViewer.resetFilters();
 		if (workingSet != null) {
 			WorkingSetScope helpScope = new WorkingSetScope(workingSet, set.getName());
-		    treeViewer.addFilter(new ScopeFilter(helpScope));
+			treeViewer.addFilter(new ScopeFilter(helpScope));
 		}
 		treeViewer.refresh();
 	}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexPart.java
index 1b40bdf..2c1bc1a 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexPart.java
@@ -228,7 +228,7 @@
 		IHelpResource[] topics = entry.getTopics();
 		IIndexEntry[] subentries = entry.getSubentries();
 		IIndexSee[] sees = entry instanceof IIndexEntry2 ? ((IIndexEntry2)entry).getSees() :
-			               new IIndexSee[0];
+						   new IIndexSee[0];
 
 		if (topics.length <= 1 && subentries.length == 0 && sees.length == 0) {
 			// Entries with only one topic do not show children
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/LocalScopeDialog.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/LocalScopeDialog.java
index 8f9266a..256c35d 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/LocalScopeDialog.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/LocalScopeDialog.java
@@ -55,11 +55,11 @@
 		}
 		String id = localSearchDesc.getEngineTypeId();
 		localHelpPage = localSearchDesc.createRootPage(scopeSet.getName());
-    	localHelpPage.setTitle(localSearchDesc.getLabel() + '_' + id);
-    	localHelpPage.setImageDescriptor(localSearchDesc.getImageDescriptor());
-    	localHelpPage.setDescription(localSearchDesc.getDescription());
-    	localHelpPage.setPreferenceStore(preferenceStore);
-    	localHelpPage.createControl(parent);
+		localHelpPage.setTitle(localSearchDesc.getLabel() + '_' + id);
+		localHelpPage.setImageDescriptor(localSearchDesc.getImageDescriptor());
+		localHelpPage.setDescription(localSearchDesc.getDescription());
+		localHelpPage.setPreferenceStore(preferenceStore);
+		localHelpPage.createControl(parent);
 		Control helpPageControl = localHelpPage.getControl();
 		GridData layoutData = new GridData(GridData.FILL_BOTH);
 		helpPageControl.setLayoutData(layoutData);
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/MissingContentPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/MissingContentPart.java
index 2725a6a..aae7f1f 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/MissingContentPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/MissingContentPart.java
@@ -72,7 +72,7 @@
 			createHelpMissingLink(container, toolkit, Dialog.DLG_IMG_MESSAGE_WARNING, Messages.remoteHelpUnavailable,
 			        MissingContentManager.getInstance().getRemoteHelpUnavailablePage(true), true);
 		} else if ( isUnresolvedPlaceholders) {
-		    createHelpMissingLink(container, toolkit, Dialog.DLG_IMG_MESSAGE_INFO, Messages.ReusableHelpPart_missingContent,
+			createHelpMissingLink(container, toolkit, Dialog.DLG_IMG_MESSAGE_INFO, Messages.ReusableHelpPart_missingContent,
 					MissingContentManager.getInstance().getHelpMissingPage(true), false);
 		}
 		toolkit.dispose();
@@ -86,7 +86,7 @@
 		paddingData.heightHint = 2;
 		padding.setLayoutData(paddingData);
 		toolkit.adapt(padding);
-        Image warningImage = JFaceResources.getImage(imageKey);
+		Image warningImage = JFaceResources.getImage(imageKey);
 		statusLink = toolkit.createImageHyperlink(container, SWT.NULL);
 		statusLink.setText(linkText);
 		statusLink.setImage(warningImage);
@@ -96,9 +96,9 @@
 			public void linkActivated(HyperlinkEvent e) {
 				helpPart.showURL(target);
 				if ( isRemote ) {
-				    helpPart.checkRemoteStatus();
+					helpPart.checkRemoteStatus();
 				} else {
-				    helpPart.checkPlaceholderStatus();
+					helpPart.checkPlaceholderStatus();
 				}
 			}
 		});
@@ -108,7 +108,7 @@
 
 	private void disposeLink() {
 		if (statusLink != null) {
-		    statusLink.dispose();
+			statusLink.dispose();
 		}
 		statusLink = null;
 	}
@@ -140,7 +140,7 @@
 	@Override
 	public void setVisible(boolean visible) {
 		if (container != null) {
-		    container.setVisible(visible);
+			container.setVisible(visible);
 		}
 	}
 
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RelatedTopicsPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RelatedTopicsPart.java
index f22e5a0..7be698d 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RelatedTopicsPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RelatedTopicsPart.java
@@ -60,7 +60,7 @@
 					hHint, flushCache);
 
 			Point botSize = dynamicHelpPart == null ? new Point(0, 0) :
-			    dynamicHelpPart.getControl().computeSize(wHint,
+				dynamicHelpPart.getControl().computeSize(wHint,
 					hHint, flushCache);
 			Point size = new Point(0, 0);
 			size.x = Math.max(topSize.x, botSize.x);
@@ -74,13 +74,13 @@
 			Point topSize = contextHelpPart.getControl().computeSize(
 					carea.width, SWT.DEFAULT, flushCache);
 			Point botSize = dynamicHelpPart == null ? new Point(0, 0) :
-			    dynamicHelpPart.getControl().computeSize(
+				dynamicHelpPart.getControl().computeSize(
 					carea.width, SWT.DEFAULT, flushCache);
 			int y = VSPACE;
 			contextHelpPart.getControl().setBounds(0, y, carea.width, topSize.y);
 			y += topSize.y + VSPACE;
 			if (dynamicHelpPart != null) {
-			    dynamicHelpPart.getControl().setBounds(0, y, carea.width, botSize.y);
+				dynamicHelpPart.getControl().setBounds(0, y, carea.width, botSize.y);
 			}
 		}
 
@@ -116,7 +116,7 @@
 		contextHelpPart = new ContextHelpPart(form.getBody(), toolkit);
 		if (isUseDynamicHelp()) {
 		     dynamicHelpPart = new DynamicHelpPart(form.getBody(), toolkit);
-	    }
+		}
 	}
 
 	@Override
@@ -126,8 +126,8 @@
 		contextHelpPart.init(parent, IHelpUIConstants.HV_CONTEXT_HELP, memento);
 		mform.addPart(contextHelpPart);
 		if (isUseDynamicHelp()) {
-		    dynamicHelpPart.init(parent, IHelpUIConstants.HV_SEARCH_RESULT, memento);
-		    mform.addPart(dynamicHelpPart);
+			dynamicHelpPart.init(parent, IHelpUIConstants.HV_SEARCH_RESULT, memento);
+			mform.addPart(dynamicHelpPart);
 		}
 		mform.initialize();
 	}
@@ -184,7 +184,7 @@
 	public void stop() {
 		contextHelpPart.stop();
 		if (dynamicHelpPart != null) {
-		    dynamicHelpPart.stop();
+			dynamicHelpPart.stop();
 		}
 	}
 
@@ -225,14 +225,14 @@
 	}
 
 	public static boolean isUseDynamicHelp() {
-	    if (!dynamicHelpPreferenceRead) {
-	    	dynamicHelpPreferenceRead = true;
-	    	// Preference created in case anyone complains about the removal of
-	    	// the dynamic help section. This is not API, not documented and may
-	    	// be removed in a future release.
-	    	useDynamicHelp =
-	    		Platform.getPreferencesService().getBoolean(HelpBasePlugin.PLUGIN_ID, "show_dynamic_help", false, null); //$NON-NLS-1$
-	    }
+		if (!dynamicHelpPreferenceRead) {
+			dynamicHelpPreferenceRead = true;
+			// Preference created in case anyone complains about the removal of
+			// the dynamic help section. This is not API, not documented and may
+			// be removed in a future release.
+			useDynamicHelp =
+				Platform.getPreferencesService().getBoolean(HelpBasePlugin.PLUGIN_ID, "show_dynamic_help", false, null); //$NON-NLS-1$
+		}
 		return useDynamicHelp;
 	}
 }
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RenameDialog.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RenameDialog.java
index 00d5234..3574637 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RenameDialog.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RenameDialog.java
@@ -39,11 +39,11 @@
 	private IStatus status;
 	private boolean isCaseSensitive;
 
-    /**
-     * Create a new rename dialog instance for the given window.
-     * @param shell The parent of the dialog
-     * @param oldName Current name of the item being renamed
-     */
+	/**
+	 * Create a new rename dialog instance for the given window.
+	 * @param shell The parent of the dialog
+	 * @param oldName Current name of the item being renamed
+	 */
 	public RenameDialog(Shell shell, String oldName) {
 		super(shell);
 		this.isCaseSensitive = false;
@@ -51,13 +51,13 @@
 		setOldName(oldName);
 	}
 
-    /**
-     * Create a new rename dialog instance for the given window.
-     * @param shell The parent of the dialog
-     * @param isCaseSensitive Flags whether dialog will perform case sensitive checks against old names
-     * @param names Set of names which the user should not be allowed to rename to
-     * @param oldName Current name of the item being renamed
-     */
+	/**
+	 * Create a new rename dialog instance for the given window.
+	 * @param shell The parent of the dialog
+	 * @param isCaseSensitive Flags whether dialog will perform case sensitive checks against old names
+	 * @param names Set of names which the user should not be allowed to rename to
+	 * @param oldName Current name of the item being renamed
+	 */
 	public RenameDialog(Shell shell, boolean isCaseSensitive, String[] names, String oldName){
 		super(shell);
 		this.isCaseSensitive = isCaseSensitive;
@@ -91,7 +91,7 @@
 		Composite container = new Composite(parent, SWT.NULL);
 		GridLayout layout = new GridLayout();
 		layout.numColumns = 2;
-        layout.marginHeight = layout.marginWidth = 9;
+		layout.marginHeight = layout.marginWidth = 9;
 		container.setLayout(layout);
 
 		GridData gd = new GridData(GridData.FILL_BOTH);
@@ -113,8 +113,8 @@
 	public int open() {
 		text.setText(oldName);
 		text.selectAll();
-        setOkStatus();
-        textChanged(oldName, false);
+		setOkStatus();
+		textChanged(oldName, false);
 		return super.open();
 	}
 
@@ -139,7 +139,7 @@
 		}
 		okButton.setEnabled(true);
 		if (setStatus) {
-		    setOkStatus();
+			setOkStatus();
 		}
 	}
 
@@ -179,6 +179,6 @@
 
 	@Override
 	public void setTitle(String title) {
-        getShell().setText(title);
-    }
+		getShell().setText(title);
+	}
 }
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
index f4128df..ec5366a 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
@@ -331,8 +331,8 @@
 					subMenuManager = new SubMenuManager(
 						ReusableHelpPart.this.menuManager);
 				} else {
-			        subMenuManager = null;
-			    }
+					subMenuManager = null;
+				}
 			}
 		}
 
@@ -352,7 +352,7 @@
 				try {
 					((SubToolBarManager) subToolBarManager).disposeManager();
 					if (subMenuManager != null) {
-					    ((SubMenuManager)subMenuManager).disposeManager();
+						((SubMenuManager)subMenuManager).disposeManager();
 					}
 				} catch (RuntimeException e) {
 					// Bug 218079
@@ -535,7 +535,7 @@
 			} else {
 				((SubToolBarManager) subToolBarManager).setVisible(visible);
 				if (subMenuManager != null) {
-				    ((SubMenuManager)subMenuManager).setVisible(visible);
+					((SubMenuManager)subMenuManager).setVisible(visible);
 				}
 				ReusableHelpPart.this.toolBarManager.update(true);
 				getControl().getParent().layout();
@@ -574,8 +574,8 @@
 				PartRec rec = partRecs.get(focusPart);
 				String partId = rec.part.getId();
 				if ( partId != IHelpUIConstants.HV_SEE_ALSO && partId != IHelpUIConstants.HV_MISSING_CONTENT) {
-				    rec.part.setFocus();
-				    return;
+					rec.part.setFocus();
+					return;
 				}
 			}
 		}
@@ -1331,9 +1331,9 @@
 				if (aurl.endsWith("&noframes=true") || aurl.endsWith("?noframes=true")) //$NON-NLS-1$ //$NON-NLS-2$
 					aurl = aurl.substring(0, aurl.length() - 14);
 				DefaultHelpUI.showInWorkbenchBrowser(aurl, false);
-                */
+				*/
 
-			    PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(aurl);
+				PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(aurl);
 
 			} catch (Exception e) {
 				HelpUIPlugin.logError("Error opening browser", e); //$NON-NLS-1$
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceManager.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceManager.java
index 4e02384..ec5f968 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceManager.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceManager.java
@@ -35,16 +35,16 @@
 
 		@Override
 		public void createPage() {
-	    	try {
-	    		Object obj = config.createExecutableExtension(IHelpUIConstants.ATT_CLASS);
-	    		IPreferencePage page = (IPreferencePage)obj;
-	    		setPage(page);
-	    		page.setTitle(getLabelText());
-	    	}
-	    	catch (CoreException e) {
-	    		HelpUIPlugin.logError("Unable to create executable extension", e); //$NON-NLS-1$
-	    	}
-	    }
+			try {
+				Object obj = config.createExecutableExtension(IHelpUIConstants.ATT_CLASS);
+				IPreferencePage page = (IPreferencePage)obj;
+				setPage(page);
+				page.setTitle(getLabelText());
+			}
+			catch (CoreException e) {
+				HelpUIPlugin.logError("Unable to create executable extension", e); //$NON-NLS-1$
+			}
+		}
 	}
 	class EnginePreferenceNode extends PreferenceNode {
 		private EngineDescriptor desc;
@@ -59,12 +59,12 @@
 
 		@Override
 		public void createPage() {
-	    	IPreferencePage page = desc.createRootPage(set.getName());
-	    	setPage(page);
-	    	page.setTitle(desc.getLabel());
-	    	page.setImageDescriptor(desc.getImageDescriptor());
-	    	page.setDescription(desc.getDescription());
-	    }
+			IPreferencePage page = desc.createRootPage(set.getName());
+			setPage(page);
+			page.setTitle(desc.getLabel());
+			page.setImageDescriptor(desc.getImageDescriptor());
+			page.setDescription(desc.getDescription());
+		}
 	}
 	/**
 	 *
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSelectPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSelectPart.java
index 0758358..cf827f6 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSelectPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSelectPart.java
@@ -64,7 +64,7 @@
 
 			@Override
 			public void linkActivated(HyperlinkEvent e) {
-			    doChangeScopeSet();
+				doChangeScopeSet();
 			}
 		});
 		toolkit.adapt(scopeSetLink, true, true);
@@ -177,7 +177,7 @@
 	@Override
 	public void dispose() {
 		if (scopeObserver != null) {
-		    ScopeState.getInstance().getScopeSetManager().deleteObserver(scopeObserver);
+			ScopeState.getInstance().getScopeSetManager().deleteObserver(scopeObserver);
 		}
 		super.dispose();
 	}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetDialog.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetDialog.java
index 9656482..f7af292 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetDialog.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetDialog.java
@@ -93,8 +93,8 @@
 	private ILabelProvider labelProvider;
 	private Object input;
 	private TableViewer viewer;
-    private int widthInChars = 55;
-    private int heightInChars = 15;
+	private int widthInChars = 55;
+	private int heightInChars = 15;
 	private ScopeSet initialSelection;
 	private Object[] result;
 	private boolean localOnly;
@@ -234,65 +234,65 @@
 
 	@Override
 	protected Control createDialogArea(Composite container) {
-    	Composite innerContainer = (Composite)super.createDialogArea(container);
-    	createRadioButtons(innerContainer);
-    	createTable(innerContainer);
-    	enableTable();
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(innerContainer,
+		Composite innerContainer = (Composite)super.createDialogArea(container);
+		createRadioButtons(innerContainer);
+		createTable(innerContainer);
+		enableTable();
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(innerContainer,
 		     "org.eclipse.help.ui.searchScope"); //$NON-NLS-1$
-    	createEditingButtons(innerContainer);
+		createEditingButtons(innerContainer);
 		viewer.addSelectionChangedListener(event -> updateButtons());
-    	ViewerFilter[] filters = { new NonDefaultFilter() };
+		ViewerFilter[] filters = { new NonDefaultFilter() };
 		viewer.setFilters(filters );
-    	return innerContainer;
-    }
+		return innerContainer;
+	}
 
 	private void createRadioButtons(Composite parent) {
 		boolean showAll = initialSelection != null  && initialSelection.isDefault();
 		showAllRadio = new Button(parent, SWT.RADIO);
-    	showAllRadio.setText(Messages.ScopeSet_selectAll);
+		showAllRadio.setText(Messages.ScopeSet_selectAll);
 
-    	showSelectedRadio = new Button(parent, SWT.RADIO);
-    	showSelectedRadio.setText(Messages.ScopeSet_selectWorkingSet);
-    	showAllRadio.addSelectionListener(new ShowAllListener());
-    	showAllRadio.setSelection(showAll);
-    	showSelectedRadio.setSelection(!showAll);
+		showSelectedRadio = new Button(parent, SWT.RADIO);
+		showSelectedRadio.setText(Messages.ScopeSet_selectWorkingSet);
+		showAllRadio.addSelectionListener(new ShowAllListener());
+		showAllRadio.setSelection(showAll);
+		showSelectedRadio.setSelection(!showAll);
 	}
 
-    private void createTable(Composite parent) {
-        viewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-        viewer.setContentProvider(contentProvider);
-        viewer.setLabelProvider(labelProvider);
-        viewer.setInput(input);
+	private void createTable(Composite parent) {
+		viewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		viewer.setContentProvider(contentProvider);
+		viewer.setLabelProvider(labelProvider);
+		viewer.setInput(input);
 		viewer.addDoubleClickListener(event -> okPressed());
-        if (initialSelection != null) {
+		if (initialSelection != null) {
 			viewer.setSelection(new StructuredSelection(initialSelection));
 		}
-        GridData gd = new GridData(GridData.FILL_BOTH);
-        gd.heightHint = convertHeightInCharsToPixels(heightInChars);
-        gd.widthHint = convertWidthInCharsToPixels(widthInChars);
-        Table table = viewer.getTable();
-        table.setLayoutData(gd);
-        table.setFont(parent.getFont());
-    }
+		GridData gd = new GridData(GridData.FILL_BOTH);
+		gd.heightHint = convertHeightInCharsToPixels(heightInChars);
+		gd.widthHint = convertWidthInCharsToPixels(widthInChars);
+		Table table = viewer.getTable();
+		table.setLayoutData(gd);
+		table.setFont(parent.getFont());
+	}
 
 	private void enableTable() {
 		if (viewer != null) {
-		    boolean showSelected = showSelectedRadio.getSelection();
+			boolean showSelected = showSelectedRadio.getSelection();
 			viewer.getTable().setEnabled(showSelected);
-		    viewer.refresh();
-		    // Ensure that a scope is selected unless there are no
-		    // user defined scopes
-		    if (showSelected && viewer.getSelection().isEmpty()) {
-		    	Object firstElement = viewer.getElementAt(0);
-		    	if ( firstElement != null ) {
-		    		viewer.setSelection(new StructuredSelection(firstElement));
-		    	}
-		    }
+			viewer.refresh();
+			// Ensure that a scope is selected unless there are no
+			// user defined scopes
+			if (showSelected && viewer.getSelection().isEmpty()) {
+				Object firstElement = viewer.getElementAt(0);
+				if ( firstElement != null ) {
+					viewer.setSelection(new StructuredSelection(firstElement));
+				}
+			}
 		}
 	}
 
-    private void createEditingButtons(Composite composite) {
+	private void createEditingButtons(Composite composite) {
 		Composite buttonComposite= new Composite(composite, SWT.RIGHT);
 		GridLayout layout= new GridLayout();
 		layout.numColumns= 2;
@@ -300,12 +300,12 @@
 		GridData data= new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL);
 		data.grabExcessHorizontalSpace= true;
 		composite.setData(data);
-    	createButton(buttonComposite, NEW_ID, Messages.ScopeSetDialog_new, false);
-       	renameButton = createButton(buttonComposite, RENAME_ID, Messages.ScopeSetDialog_rename, false);
-       	editButton = createButton(buttonComposite, EDIT_ID, Messages.ScopeSetDialog_edit, false);
-       	removeButton = createButton(buttonComposite, REMOVE_ID, Messages.ScopeSetDialog_remove, false);
-       	updateButtons();
-    }
+		createButton(buttonComposite, NEW_ID, Messages.ScopeSetDialog_new, false);
+		renameButton = createButton(buttonComposite, RENAME_ID, Messages.ScopeSetDialog_rename, false);
+		editButton = createButton(buttonComposite, EDIT_ID, Messages.ScopeSetDialog_edit, false);
+		removeButton = createButton(buttonComposite, REMOVE_ID, Messages.ScopeSetDialog_remove, false);
+		updateButtons();
+	}
 
 	public ScopeSet getActiveSet() {
 		if (result!=null && result.length>0)
@@ -315,22 +315,22 @@
 
 	@Override
 	protected void okPressed() {
-    	if (operations!=null) {
-    		for (int i=0; i<operations.size(); i++) {
+		if (operations!=null) {
+			for (int i=0; i<operations.size(); i++) {
 				PendingOperation operation = operations.get(i);
-    			operation.commit();
-    		}
-    		operations = null;
-    	}
-    	if (showAllRadio.getSelection()) {
-    		setResult(manager.getDefaultScope());
-    	} else {
-            // Build a list of selected children.
+				operation.commit();
+			}
+			operations = null;
+		}
+		if (showAllRadio.getSelection()) {
+			setResult(manager.getDefaultScope());
+		} else {
+			// Build a list of selected children.
 			IStructuredSelection selection = viewer.getStructuredSelection();
-            setResult(selection.toList());
-    	}
-    	super.okPressed();
-    }
+			setResult(selection.toList());
+		}
+		super.okPressed();
+	}
 
 	private void setResult(ScopeSet scope) {
 		result = new Object[] { scope };
@@ -347,13 +347,13 @@
 
 	@Override
 	protected void cancelPressed() {
-    	if (operations!=null) {
-    		for (int i=0; i<operations.size(); i++) {
+		if (operations!=null) {
+			for (int i=0; i<operations.size(); i++) {
 				PendingOperation operation = operations.get(i);
-    			operation.cancel();
-    		}
-    		operations = null;
-    	}
+				operation.cancel();
+			}
+			operations = null;
+		}
 		super.cancelPressed();
 	}
 
@@ -394,15 +394,15 @@
 		Set<String> namesInUse = new HashSet<>();
 		for (int i=0; i<sets.size(); i++) {
 			ScopeSet set = sets.get(i);
-		    namesInUse.add(set.getName().toLowerCase());
-	    }
+			namesInUse.add(set.getName().toLowerCase());
+		}
 		for (int i = 1; i < 1000; i++) {
 			String name = Messages.ScopeSetDialog_defaultName + i;
 			if (!namesInUse.contains(name.toLowerCase())) {
 				return name;
 			}
 		}
-	    return ""; //$NON-NLS-1$
+		return ""; //$NON-NLS-1$
 	}
 
 
@@ -415,7 +415,7 @@
 		PreferenceManager manager = new ScopePreferenceManager(descManager, set);
 
 		if (!localOnly) {
-		    PreferenceDialog dialog = new ScopePreferenceDialog(getShell(), manager, descManager, set.isEditable());
+			PreferenceDialog dialog = new ScopePreferenceDialog(getShell(), manager, descManager, set.isEditable());
 			dialog.setPreferenceStore(set.getPreferenceStore());
 			dialog.create();
 			dialog.getShell().setText(NLS.bind(Messages.ScopePreferenceDialog_wtitle, set.getName()));
@@ -455,7 +455,7 @@
 		dialog.create();
 		String dialogTitle = isRename ?
 		  Messages.RenameDialog_wtitle : Messages.NewDialog_wtitle;
-	    dialog.getShell().setText(dialogTitle);
+		dialog.getShell().setText(dialogTitle);
 		if (dialog.open()==RenameDialog.OK) {
 			return dialog.getNewName();
 		}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
index eb4aa12..ba9bdc5 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
@@ -237,7 +237,7 @@
 				if (e.character == '\r') {
 					if (goButton.isEnabled())  {
 						doSearch(searchWordCombo.getText());
-				    }
+					}
 				}
 			}
 		});
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchResultsPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchResultsPart.java
index 2cb87c0..ac23b1f 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchResultsPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchResultsPart.java
@@ -130,17 +130,17 @@
 		 */
 
 		boolean descOn = Platform.getPreferencesService().getBoolean
-			    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SHOW_SEARCH_DESCRIPTION, false, null);
+				(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SHOW_SEARCH_DESCRIPTION, false, null);
 		boolean showCategories = Platform.getPreferencesService().getBoolean
-			    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SHOW_SEARCH_CATEGORIES, false, null);
+				(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SHOW_SEARCH_CATEGORIES, false, null);
 		showCategoriesAction = new Action() {
 
 			@Override
 			public void run() {
 				updateResultSections();
-			    IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpBasePlugin.PLUGIN_ID);
-			    pref.putBoolean(IHelpBaseConstants.P_KEY_SHOW_SEARCH_CATEGORIES, showCategoriesAction.isChecked());
-			    try {
+				IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpBasePlugin.PLUGIN_ID);
+				pref.putBoolean(IHelpBaseConstants.P_KEY_SHOW_SEARCH_CATEGORIES, showCategoriesAction.isChecked());
+				try {
 					pref.flush();
 				} catch (BackingStoreException e) {
 				}
@@ -159,8 +159,8 @@
 			public void run() {
 				updateResultSections();
 				IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpBasePlugin.PLUGIN_ID);
-			    pref.putBoolean(IHelpBaseConstants.P_KEY_SHOW_SEARCH_DESCRIPTION, showDescriptionAction.isChecked());
-			    try {
+				pref.putBoolean(IHelpBaseConstants.P_KEY_SHOW_SEARCH_DESCRIPTION, showDescriptionAction.isChecked());
+				try {
 					pref.flush();
 				} catch (BackingStoreException e) {
 				}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SeeAlsoPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SeeAlsoPart.java
index 3d90abe..9c1e4a5 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SeeAlsoPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SeeAlsoPart.java
@@ -85,7 +85,7 @@
 			if (isCurrentPage) {
 				link.setFont(JFaceResources.getBannerFont());
 			} else {
-	            link.setFont(JFaceResources.getDefaultFont());
+				link.setFont(JFaceResources.getDefaultFont());
 			}
 			data.exclude = false;
 			link.setVisible(!data.exclude);
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/StatusProducer.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/StatusProducer.java
index 15065a4..9c63cb3 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/StatusProducer.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/StatusProducer.java
@@ -107,11 +107,11 @@
 		// check to see if a predefined error page exists
 		// in the preferences
 		if (href.equalsIgnoreCase(MissingContentManager.MISSING_TOPIC_HREF)){
-            String errorPage = Platform.getPreferencesService().getString(
-            		HelpBasePlugin.PLUGIN_ID,
-            		"page_not_found",  //$NON-NLS-1$
-            		null,
-            		null);
+			String errorPage = Platform.getPreferencesService().getString(
+					HelpBasePlugin.PLUGIN_ID,
+					"page_not_found",  //$NON-NLS-1$
+					null,
+					null);
 			if (errorPage != null && errorPage.length() > 0) {
 
 				URL helpURL;
@@ -302,7 +302,7 @@
 		}
 		pageBuffer.append(tab(3)+ "</ul>\n"); //$NON-NLS-1$
 		if (isHelpView) {
-            pageBuffer.append(tab(3)+"<br/><p>\n"); //$NON-NLS-1$
+			pageBuffer.append(tab(3)+"<br/><p>\n"); //$NON-NLS-1$
 			pageBuffer.append(tab(4)+ "<a href=helpview:ignoreMissingBooks>"+ //$NON-NLS-1$
 					WebappResources.getString("ignoreMissingBooks", locale) + "</a>\n"); //$NON-NLS-1$ //$NON-NLS-2$
 			pageBuffer.append(tab(3)+ "</p>\n"); //$NON-NLS-1$
@@ -310,8 +310,8 @@
 			pageBuffer.append(tab(3)+"<br/><p>\n"); //$NON-NLS-1$
 			//pageBuffer.append("<img src=\"PLUGINS_ROOT/org.eclipse.help/command_link.png\"/>");  //$NON-NLS-1$
 			pageBuffer.append("<a class=\"command-link\""  //$NON-NLS-1$
-			   + " href='javascript:executeCommand(\"org.eclipse.help.ui.ignoreMissingPlaceholders\")'>" //$NON-NLS-1$
-			   +  WebappResources.getString("ignoreMissingBooks", locale)+"</a>"); //$NON-NLS-1$ //$NON-NLS-2$
+				+ " href='javascript:executeCommand(\"org.eclipse.help.ui.ignoreMissingPlaceholders\")'>" //$NON-NLS-1$
+				+  WebappResources.getString("ignoreMissingBooks", locale)+"</a>"); //$NON-NLS-1$ //$NON-NLS-2$
 			pageBuffer.append(tab(3)+ "</p>\n"); //$NON-NLS-1$
 		}
 		pageBuffer.append(END_BODY_HTML);
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/CookiesData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/CookiesData.java
index 9a3a10d..f6e85b4 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/CookiesData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/CookiesData.java
@@ -36,16 +36,16 @@
 	public boolean isSynchToc() {
 		Cookie[] cookies = request.getCookies();
 		if (cookies != null) {
-        		for (Cookie cookie : cookies) {
-        			if ("synchToc".equals(cookie.getName())) { //$NON-NLS-1$
-        				return String.valueOf(true).equals(cookie.getValue());
-        			}
-        		}
+				for (Cookie cookie : cookies) {
+					if ("synchToc".equals(cookie.getName())) { //$NON-NLS-1$
+						return String.valueOf(true).equals(cookie.getValue());
+					}
+				}
 		}
 		boolean isSynchToc = Platform.getPreferencesService().getBoolean
-		    (HelpBasePlugin.PLUGIN_ID, "advanced.syncDefault", false, null); //$NON-NLS-1$
+			(HelpBasePlugin.PLUGIN_ID, "advanced.syncDefault", false, null); //$NON-NLS-1$
 		CookieUtil.setCookieValue("synchToc", Boolean.toString(isSynchToc), request, response); //$NON-NLS-1$
 		return isSynchToc;
-    }
+	}
 
 }
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/EnabledTopicUtils.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/EnabledTopicUtils.java
index 9554f24..616c8db 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/EnabledTopicUtils.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/EnabledTopicUtils.java
@@ -64,7 +64,7 @@
 	 */
 	public static boolean isEnabled(IToc toc) {
 		if (!HelpBasePlugin.getActivitySupport().isEnabled(toc.getHref()) ||
-		    UAContentFilter.isFiltered(toc, HelpEvaluationContext.getContext())) {
+			UAContentFilter.isFiltered(toc, HelpEvaluationContext.getContext())) {
 			return false;
 		}
 		// A toc is enabled only if at least one subtopic is enabled
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/IconFinder.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/IconFinder.java
index a0b9330..2983782 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/IconFinder.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/IconFinder.java
@@ -84,10 +84,10 @@
 		String suffix;
 
 		switch(type){
-		  case 0:suffix = OPEN;break;
-		  case 1:suffix = CLOSED;break;
-		  case 2:suffix = LEAF;break;
-		  default: suffix = OPEN; break;
+			case 0:suffix = OPEN;break;
+			case 1:suffix = CLOSED;break;
+			case 2:suffix = LEAF;break;
+			default: suffix = OPEN; break;
 		}
 		String result = lookupImagePath(iconId + suffix);
 		if (result != null) {
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/LayoutData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/LayoutData.java
index a10db3e..e66c37e 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/LayoutData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/LayoutData.java
@@ -221,7 +221,7 @@
 				BundleContext bundleContext = HelpWebappPlugin.getContext();
 				ServiceReference<?> ref = bundleContext.getServiceReference(BundleLocalization.class.getName());
 				BundleLocalization localization = (BundleLocalization) bundleContext.getService(ref);
-                return localization.getLocalization(bundle, locale).getString(resource);
+				return localization.getLocalization(bundle, locale).getString(resource);
 			} catch (Exception e) {
 				// Fall through
 			}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/PrintData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/PrintData.java
index 0bfecd2..5e5eedf 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/PrintData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/PrintData.java
@@ -164,10 +164,10 @@
 	public void generateResources(Writer out) throws IOException, ServletException {
 		// check resource allocation
 		if (!getConnection()) {
-            RequestDispatcher rd = context.getRequestDispatcher("/advanced/printError.jsp"); //$NON-NLS-1$
-            request.setAttribute("msg", "noConnection"); //$NON-NLS-1$ //$NON-NLS-2$
-            rd.forward(request, response);
-            return;
+			RequestDispatcher rd = context.getRequestDispatcher("/advanced/printError.jsp"); //$NON-NLS-1$
+			request.setAttribute("msg", "noConnection"); //$NON-NLS-1$ //$NON-NLS-2$
+			rd.forward(request, response);
+			return;
 		}
 
 
@@ -196,17 +196,17 @@
 		}
 	}
 
-    private static synchronized boolean getConnection() {
-        if (allowedConnections > 0) {
-            allowedConnections--;
-            return true;
-        }
-        return false;
-    }
+	private static synchronized boolean getConnection() {
+		if (allowedConnections > 0) {
+			allowedConnections--;
+			return true;
+		}
+		return false;
+	}
 
-    private static synchronized void releaseConnection() {
-    	allowedConnections++;
-    }
+	private static synchronized void releaseConnection() {
+		allowedConnections++;
+	}
 
 	/*
 	 * Calculate the amount of topics to print in one request
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/RequestScope.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/RequestScope.java
index d841f57..539fea1 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/RequestScope.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/RequestScope.java
@@ -144,7 +144,7 @@
 			}
 		} else {
 			IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpBasePlugin.PLUGIN_ID);
-		    pref.put(IHelpBaseConstants.P_KEY_HELP_SCOPE, scope);
+			pref.put(IHelpBaseConstants.P_KEY_HELP_SCOPE, scope);
 			try {
 				pref.flush();
 			} catch (BackingStoreException e) {
@@ -171,12 +171,12 @@
 
 	private static String getScopeFromPreferences() {
 		String scope = Platform.getPreferencesService().getString
-	         (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_HELP_SCOPE, null, null);
+			 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_HELP_SCOPE, null, null);
 		return scope;
 	}
 
 	public static boolean filterBySearchScope(HttpServletRequest request) {
-        return true;
+		return true;
 	}
 
 	public static boolean getFlag(HttpServletRequest request, String flagName ) {
@@ -185,26 +185,26 @@
 			value = getValueFromCookies(request, flagName);
 		} else {
 			value = Platform.getPreferencesService().getString
-				    (HelpBasePlugin.PLUGIN_ID, flagName + "Webapp", null, null); //$NON-NLS-1$
+					(HelpBasePlugin.PLUGIN_ID, flagName + "Webapp", null, null); //$NON-NLS-1$
 		}
 		if (value == null) {
 			return Platform.getPreferencesService().getBoolean
-				    (HelpBasePlugin.PLUGIN_ID, flagName, false, null);
+					(HelpBasePlugin.PLUGIN_ID, flagName, false, null);
 		}
 		return "true".equalsIgnoreCase(value); //$NON-NLS-1$
 	}
 
 	public static void setFlag(HttpServletRequest request,
-			                   HttpServletResponse response,
-			                   String flagName,
-			                   boolean value)
+							   HttpServletResponse response,
+							   String flagName,
+							   boolean value)
 	{
 		if (HelpSystem.isShared()) {
-		  CookieUtil.setCookieValueWithoutPath(flagName, Boolean.toString(value), request, response);
+			CookieUtil.setCookieValueWithoutPath(flagName, Boolean.toString(value), request, response);
 		} else {
 			IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpBasePlugin.PLUGIN_ID);
-		    pref.putBoolean(flagName  + "Webapp", value ); //$NON-NLS-1$
-		    try {
+			pref.putBoolean(flagName  + "Webapp", value ); //$NON-NLS-1$
+			try {
 				pref.flush();
 			} catch (BackingStoreException e) {
 			}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ScopeSavingSearchData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ScopeSavingSearchData.java
index 33b7e2b..fd8a667 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ScopeSavingSearchData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ScopeSavingSearchData.java
@@ -27,7 +27,7 @@
 
 	@Override
 	protected boolean canSaveScope() {
-        return true;
+		return true;
 	}
 
 }
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/SearchData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/SearchData.java
index a4bdbb8..b41de42 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/SearchData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/SearchData.java
@@ -113,7 +113,7 @@
 		if (isScopeRequest()) {
 			workingSetName = request.getParameter("workingSet"); //$NON-NLS-1$
 			if ( canSaveScope() ) {
-			    saveWorkingSet(workingSetName);
+				saveWorkingSet(workingSetName);
 			}
 		}
 
@@ -122,7 +122,7 @@
 	}
 
 	protected boolean canSaveScope() {
-        // Scope is only saved from scopeState.jsp
+		// Scope is only saved from scopeState.jsp
 		// This prevents cookies from being saved with a /advanced path
 		return false;
 	}
@@ -329,15 +329,15 @@
 	public boolean isShowDescriptions() {
 		Cookie[] cookies = request.getCookies();
 		if (cookies != null) {
-        		for (Cookie cookie : cookies) {
-        			if ("showDescriptions".equals(cookie.getName())) { //$NON-NLS-1$
-        				return String.valueOf(true).equals(cookie.getValue());
-        			}
-        		}
+				for (Cookie cookie : cookies) {
+					if ("showDescriptions".equals(cookie.getName())) { //$NON-NLS-1$
+						return String.valueOf(true).equals(cookie.getValue());
+					}
+				}
 		}
 		// get default from preferences
 		return Platform.getPreferencesService().getBoolean
-			    (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SHOW_SEARCH_DESCRIPTION, true, null);
+				(HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_SHOW_SEARCH_DESCRIPTION, true, null);
 	}
 
 	/**
@@ -398,7 +398,7 @@
 		if (workingSetName != null && workingSetName.length() != 0)
 			return workingSetName;
 
-        if (isSearchRequest()) {
+		if (isSearchRequest()) {
 			workingSetName = request.getParameter("scope"); //$NON-NLS-1$
 			// if we have already set the working set, then use it.
 			if (workingSetName == null) {
@@ -617,22 +617,22 @@
 	}
 
 	public String getNotFoundMessage() {
-	    String scope = getScope();
-	    if (scope.equals(ServletResources.getString("All", request))) { //$NON-NLS-1$
-		    return ServletResources.getString("Nothing_found", request); //$NON-NLS-1$
+		String scope = getScope();
+		if (scope.equals(ServletResources.getString("All", request))) { //$NON-NLS-1$
+			return ServletResources.getString("Nothing_found", request); //$NON-NLS-1$
 		} else {
-		    return NLS.bind(ServletResources.getString("Nothing_found_in_scope", request), scope); //$NON-NLS-1$
+			return NLS.bind(ServletResources.getString("Nothing_found_in_scope", request), scope); //$NON-NLS-1$
 		}
 	}
 
 	public String getScopeActiveMessage() {
-	    String scope = getScope();
+		String scope = getScope();
 		return NLS.bind(ServletResources.getString("activeScope", request), scope); //$NON-NLS-1$
 	}
 
 	public String getMatchesInScopeMessage() {
-	    String scope = getScope();
-	    return NLS.bind(ServletResources.getString("matchesInScope", request), "" + getResultsCount(), scope); //$NON-NLS-1$ //$NON-NLS-2$
+		String scope = getScope();
+		return NLS.bind(ServletResources.getString("matchesInScope", request), "" + getResultsCount(), scope); //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
 	public String getPreProcessorResults()
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServerState.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServerState.java
index ecda6ba..fd6fe28 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServerState.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServerState.java
@@ -27,9 +27,9 @@
 	 * situation where the Webapp is run without being launched on the built in server
 	 * in which case we set the mode to infocenter.
 	 */
-    public static void webappStarted(ServletContext context, HttpServletRequest request,
+	public static void webappStarted(ServletContext context, HttpServletRequest request,
 			HttpServletResponse response) {
-    	    BaseHelpSystem.checkMode();
-    }
+			BaseHelpSystem.checkMode();
+	}
 
 }
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServletResources.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServletResources.java
index 6fd6b38..7166ff0 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServletResources.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ServletResources.java
@@ -138,8 +138,8 @@
 		}
 		int amp = property.indexOf('&');
 		if (amp <0 || amp >= property.length() - 1) {
-            return null;
-        }
+			return null;
+		}
 		return ("" + property.charAt(amp +1)).toLowerCase(Locale.ENGLISH); //$NON-NLS-1$
 	}
 
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TocData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TocData.java
index 7230c0d..46d1403 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TocData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TocData.java
@@ -233,7 +233,7 @@
 			TopicFinder finder = new TopicFinder("/nav/" + completePath, tocs, scope); //$NON-NLS-1$
 			topicPath = finder.getTopicPath();
 			selectedToc = finder.getSelectedToc();
-		    numericPath = finder.getNumericPath();
+			numericPath = finder.getNumericPath();
 		} else {
 			// toc not specified as parameter
 			// try obtaining the TOC from the topic
@@ -258,7 +258,7 @@
 				}
 			}
 			if (selectedToc != -1) {
-		        topicPath = decodePath(path, tocs[selectedToc], scope);
+				topicPath = decodePath(path, tocs[selectedToc], scope);
 			}
 		} else {
 			selectedToc = -1;
@@ -336,49 +336,49 @@
 		return childTopics;
 	}
 	private void generateTopicLinks(ITopic topic, Writer w, int indent) {
-        String topicHref = topic.getHref();
-        try {
-            if (indent == 0)
-                w.write("<b>"); //$NON-NLS-1$
-            for (int tab = 0; tab < indent; tab++) {
-                w.write("&nbsp;&nbsp;"); //$NON-NLS-1$
-            }
-            if (topicHref != null && topicHref.length() > 0) {
-                w.write("<a href=\""); //$NON-NLS-1$
-                if ('/' == topicHref.charAt(0)) {
-                    w.write("topic"); //$NON-NLS-1$
-                }
-                w.write(topicHref);
-                w.write("\">"); //$NON-NLS-1$
-                w.write(UrlUtil.htmlEncode(topic.getLabel()));
-                w.write("</a>"); //$NON-NLS-1$
-            } else {
-                w.write(UrlUtil.htmlEncode(topic.getLabel()));
-            }
-            w.write("<br>\n"); //$NON-NLS-1$
-            if (indent == 0)
-                w.write("</b>"); //$NON-NLS-1$
-        } catch (IOException ioe) {
-        }
-        ITopic[] topics = topic.getSubtopics();
-        for (ITopic topic2 : topics) {
-            generateTopicLinks(topic2, w, indent + 1);
-        }
-    }
+		String topicHref = topic.getHref();
+		try {
+			if (indent == 0)
+				w.write("<b>"); //$NON-NLS-1$
+			for (int tab = 0; tab < indent; tab++) {
+				w.write("&nbsp;&nbsp;"); //$NON-NLS-1$
+			}
+			if (topicHref != null && topicHref.length() > 0) {
+				w.write("<a href=\""); //$NON-NLS-1$
+				if ('/' == topicHref.charAt(0)) {
+					w.write("topic"); //$NON-NLS-1$
+				}
+				w.write(topicHref);
+				w.write("\">"); //$NON-NLS-1$
+				w.write(UrlUtil.htmlEncode(topic.getLabel()));
+				w.write("</a>"); //$NON-NLS-1$
+			} else {
+				w.write(UrlUtil.htmlEncode(topic.getLabel()));
+			}
+			w.write("<br>\n"); //$NON-NLS-1$
+			if (indent == 0)
+				w.write("</b>"); //$NON-NLS-1$
+		} catch (IOException ioe) {
+		}
+		ITopic[] topics = topic.getSubtopics();
+		for (ITopic topic2 : topics) {
+			generateTopicLinks(topic2, w, indent + 1);
+		}
+	}
 
-    public void generateLinks(Writer out) {
-        for (IToc toc : tocs) {
-            ITopic tocTopic = toc.getTopic(null);
-            generateTopicLinks(tocTopic, out, 0);
-            ITopic[] topics = toc.getTopics();
-            for (ITopic topic : topics) {
-                generateTopicLinks(topic, out, 1);
-            }
-        }
+	public void generateLinks(Writer out) {
+		for (IToc toc : tocs) {
+			ITopic tocTopic = toc.getTopic(null);
+			generateTopicLinks(tocTopic, out, 0);
+			ITopic[] topics = toc.getTopics();
+			for (ITopic topic : topics) {
+				generateTopicLinks(topic, out, 1);
+			}
+		}
 
-    }
+	}
 
-    public ITopic[] getTopicPathFromRootPath(IToc toc) {
+	public ITopic[] getTopicPathFromRootPath(IToc toc) {
 		ITopic[] topicPath;
 		// Determine the topicPath from the path passed in as a parameter
 		int[] rootPath = getRootPath();
@@ -400,23 +400,23 @@
 		return topicPath;
 	}
 
-    public ITopic[] getTopicPath() {
-    	return topicPath;
-    }
+	public ITopic[] getTopicPath() {
+		return topicPath;
+	}
 
-    public int[] getRootPath() {
-    	return rootPath;
-    }
+	public int[] getRootPath() {
+		return rootPath;
+	}
 
-    public String getTopicHref() {
-    	return topicHref;
-    }
+	public String getTopicHref() {
+		return topicHref;
+	}
 
-    public String getNumericPath() {
-    	return numericPath;
-    }
+	public String getNumericPath() {
+		return numericPath;
+	}
 
-    public boolean isExpandPath() {
-        return expandPathParam != null;
-    }
+	public boolean isExpandPath() {
+		return expandPathParam != null;
+	}
 }
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ToolbarData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ToolbarData.java
index abc6b95..3e0cc15 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ToolbarData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/ToolbarData.java
@@ -131,7 +131,7 @@
 					toolbarName = request.getParameter("toolbar"); //$NON-NLS-1$
 				}
 				if (button.isAddedToToolbar(toolbarName)) {
-				    extensionButtons.add(button);
+					extensionButtons.add(button);
 				}
 			}
 		}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TopicFinder.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TopicFinder.java
index 476a0e1..cc01fa5 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TopicFinder.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/TopicFinder.java
@@ -62,10 +62,10 @@
 				}
 				// if there was an anchor, search again without it
 			} while (foundTopicPath == null && index != -1);
-	    } else {
-	    	selectedToc = -1;
+		} else {
+			selectedToc = -1;
 			foundTopicPath = null;
-	    }
+		}
 	}
 
 	public ITopic[] getTopicPathFromNav(String nav) {
@@ -90,22 +90,22 @@
 		}
 	}
 
-    public ITopic[] getTopicPath() {
+	public ITopic[] getTopicPath() {
 		return foundTopicPath;
 	}
 
-    public int getSelectedToc() {
-    	return selectedToc;
-    }
+	public int getSelectedToc() {
+		return selectedToc;
+	}
 
-    public String getNumericPath() {
-    	return numericPath;
-    }
+	public String getNumericPath() {
+		return numericPath;
+	}
 
 	/*
-     * Finds a path of ITopics in the given IToc to the given topic. If the
-     * toc doesn't contain the topic, returns null.
-     */
+	 * Finds a path of ITopics in the given IToc to the given topic. If the
+	 * toc doesn't contain the topic, returns null.
+	 */
 	private ITopic[] getTopicPathInToc(ITopic topicToFind, IToc toc) {
 		if (topicToFind.getLabel().equals(toc.getLabel())) {
 			return new ITopic[0];
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/UrlUtil.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/UrlUtil.java
index 727b94c..b24570c 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/UrlUtil.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/UrlUtil.java
@@ -205,9 +205,9 @@
 		}
 
 		if (new WebappPreferences().isRestrictTopicParameter()) {
-		    if (path.contains(":/")) {  //$NON-NLS-1$
-			    return false;
-		    }
+			if (path.contains(":/")) {  //$NON-NLS-1$
+				return false;
+			}
 		}
 		return true;
 	}
@@ -261,14 +261,14 @@
 	}
 
 	public static boolean isBot(HttpServletRequest request) {
-        String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-        if (agent==null)
-		    return false;
-        agent=agent.toLowerCase(Locale.ENGLISH);
+		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
+		if (agent==null)
+			return false;
+		agent=agent.toLowerCase(Locale.ENGLISH);
 		// sample substring Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
 		return agent.contains("bot") || agent.contains("crawl")//$NON-NLS-1$ //$NON-NLS-2$
-                || request.getParameter("bot") != null;//$NON-NLS-1$
-    }
+				|| request.getParameter("bot") != null;//$NON-NLS-1$
+	}
 
 	public static boolean isGecko(HttpServletRequest request) {
 		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
@@ -277,7 +277,7 @@
 
 	public static boolean isGecko(String agent) {
 		if (agent==null)
-		    return false;
+			return false;
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		// sample substring Gecko/20020508
 		if (agent.contains("like gecko")) { //$NON-NLS-1$
@@ -293,7 +293,7 @@
 
 	public static boolean isIE(String agent) {
 		if (agent==null)
-		    return false;
+			return false;
 		agent=agent.toLowerCase(Locale.ENGLISH);
 
 		// When accessing with Bobby identified Bobby return 5.5 to allow
@@ -313,7 +313,7 @@
 
 	public static String getIEVersion(String agent) {
 		if (agent==null)
-		    return "0"; //$NON-NLS-1$
+			return "0"; //$NON-NLS-1$
 
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		// When accessing with Bobby identified Bobby return 5.5 to allow
@@ -339,7 +339,7 @@
 
 	public static boolean isKonqueror(String agent) {
 		if (agent==null)
-		    return false;
+			return false;
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		return agent.contains("konqueror"); //$NON-NLS-1$
 	}
@@ -357,7 +357,7 @@
 
 	public static boolean isMozilla(String agent) {
 		if (agent==null)
-		    return false;
+			return false;
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		return agent.contains("mozilla/5"); //$NON-NLS-1$
 	}
@@ -369,7 +369,7 @@
 
 	public static String getMozillaVersion(String agent) {
 		if (agent==null)
-		    return "0"; //$NON-NLS-1$
+			return "0"; //$NON-NLS-1$
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		if (!agent.contains("mozilla/5")) //$NON-NLS-1$
 			return "0"; //$NON-NLS-1$
@@ -389,14 +389,14 @@
 
 	public static boolean isOpera(String agent) {
 		if (agent==null)
-		    return false;
+			return false;
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		return agent.contains("opera"); //$NON-NLS-1$
 	}
 
 	public static String getOperaVersion(String agent) {
 		if (agent==null)
-		    return "0"; //$NON-NLS-1$
+			return "0"; //$NON-NLS-1$
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		final String OperaPrefix = "opera/"; //$NON-NLS-1$
 		int start = agent.indexOf(OperaPrefix) + OperaPrefix.length();
@@ -415,7 +415,7 @@
 
 	public static boolean isSafari(String agent) {
 		if (agent==null)
-		    return false;
+			return false;
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		return agent.contains("safari/"); //$NON-NLS-1$
 	}
@@ -428,7 +428,7 @@
 	public static String getSafariVersion(String agent) {
 		String version = "0"; //$NON-NLS-1$
 		if (agent==null)
-		    return version;
+			return version;
 		agent=agent.toLowerCase(Locale.ENGLISH);
 		Matcher m = safariPattern.matcher(agent);
 		boolean matched = m.find();
@@ -580,12 +580,12 @@
 			// check if locale was passed earlier in this session
 			Cookie[] cookies = request.getCookies();
 			if (cookies != null) {
-        			for (Cookie cookie : cookies) {
-        				if ("lang".equals(cookie.getName())) { //$NON-NLS-1$
-        					forcedLocale = cookie.getValue();
-        					break;
-        				}
-        			}
+					for (Cookie cookie : cookies) {
+						if ("lang".equals(cookie.getName())) { //$NON-NLS-1$
+							forcedLocale = cookie.getValue();
+							break;
+						}
+					}
 			}
 		}
 
@@ -651,7 +651,7 @@
 		// if no locales from command line, get them from preferences
 		if (infocenterLocales.isEmpty()) {
 			String preferredLocales = Platform.getPreferencesService().getString
-			    (HelpBasePlugin.PLUGIN_ID, ("locales"), "", null); //$NON-NLS-1$ //$NON-NLS-2$
+				(HelpBasePlugin.PLUGIN_ID, ("locales"), "", null); //$NON-NLS-1$ //$NON-NLS-2$
 			StringTokenizer tokenizer = new StringTokenizer(preferredLocales,
 					" ,\t"); //$NON-NLS-1$
 			while (tokenizer.hasMoreTokens()) {
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/View.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/View.java
index 014540b..4966ec1 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/View.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/View.java
@@ -19,7 +19,7 @@
 import org.eclipse.help.webapp.AbstractView ;
 
 public class View extends AbstractView {
-    public static char NO_SHORTCUT = (char)0;
+	public static char NO_SHORTCUT = (char)0;
 	private String name;
 	private String url;
 	private String imageURL;
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java
index 5aa3c3d..8b5e673 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java
@@ -195,7 +195,7 @@
 				return name;
 			}
 		}
-	    return ""; //$NON-NLS-1$
+		return ""; //$NON-NLS-1$
 	}
 
 	public boolean isCriteriaScopeEnabled(){
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AboutService.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AboutService.java
index 2e72397..3bb7be7 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AboutService.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AboutService.java
@@ -187,17 +187,17 @@
 
 		Bundle[] bundles = HelpWebappPlugin.getContext().getBundles();
 		for (Bundle bundle : bundles) {
-         	plugins.add(pluginDetails(bundle));
-        }
+			plugins.add(pluginDetails(bundle));
+		}
 
-        Comparator<PluginDetails> pluginComparator = new PluginComparator(sortColumn);
+		Comparator<PluginDetails> pluginComparator = new PluginComparator(sortColumn);
 		Collections.sort(plugins, pluginComparator );
 
 		String[] headerColumns = new String[]{
-		    "provider", //$NON-NLS-1$
-		    "pluginName", //$NON-NLS-1$
-		    "version", //$NON-NLS-1$
-		    "pluginId" //$NON-NLS-1$
+			"provider", //$NON-NLS-1$
+			"pluginName", //$NON-NLS-1$
+			"version", //$NON-NLS-1$
+			"pluginId" //$NON-NLS-1$
 		};
 
 		for (String headerColumn : headerColumns) {
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AdvancedSearchService.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AdvancedSearchService.java
index 5e264fc..2c167c5 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AdvancedSearchService.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/service/AdvancedSearchService.java
@@ -127,7 +127,7 @@
 			}
 		}
 
-        // Call after the catch.
+		// Call after the catch.
 		// An empty JSON is created if any Exception is thrown
 		// Else returns the complete JSON
 		return searchParser.toJSON();
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/BreadcrumbsFilter.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/BreadcrumbsFilter.java
index e6690b9..532e8c6 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/BreadcrumbsFilter.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/BreadcrumbsFilter.java
@@ -73,7 +73,7 @@
 		if (pathParam != null && pathParam.length() > 0) {
 			breadcrumbPath = "/nav/" + pathParam; //$NON-NLS-1$
 		} else {
-		    breadcrumbPath= servletPath + pathInfo;
+			breadcrumbPath= servletPath + pathInfo;
 		}
 		int[] path = UrlUtil.getTopicPath(breadcrumbPath, locale );
 		if (path != null && path.length > 1) {
@@ -83,7 +83,7 @@
 				String bodyContent = getBodyContent(path,
 						backpath, isNarrow, locale);
 				String headContent = HEAD_CONTENT1 + backpath + HEAD_CONTENT2 + backpath +
-				    HEAD_CONTENT3;
+					HEAD_CONTENT3;
 				return new FilterHTMLHeadAndBodyOutputStream(out, headContent
 						.getBytes(StandardCharsets.US_ASCII), bodyContent);
 			}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ChildLinkInserter.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ChildLinkInserter.java
index eb73ee8..c3231ac 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ChildLinkInserter.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ChildLinkInserter.java
@@ -47,11 +47,11 @@
 
 	public void addContents(String encoding) throws IOException {
 		String path = req.getParameter(TocData.COMPLETE_PATH_PARAM);
-	    ITopic[] subtopics = getSubtopics();
-	    if (subtopics.length == 0) {
-	    	return;
-	    }
-	    StringBuilder links = new StringBuilder("\n<ul class=\"childlinks\">\n"); //$NON-NLS-1$
+		ITopic[] subtopics = getSubtopics();
+		if (subtopics.length == 0) {
+			return;
+		}
+		StringBuilder links = new StringBuilder("\n<ul class=\"childlinks\">\n"); //$NON-NLS-1$
 		for (int i=0;i<subtopics.length;++i) {
 			if (ScopeUtils.showInTree(subtopics[i], scope)) {
 				links.append("\n<li><a href=\""); //$NON-NLS-1$
@@ -66,7 +66,7 @@
 				else {
 					href = XMLGenerator.xmlEscape(href);
 					if (path != null && path.length() > 0) {
-					    href = TocFragmentServlet.fixupHref(href, path + '_' + i);
+						href = TocFragmentServlet.fixupHref(href, path + '_' + i);
 					}
 				}
 				links.append(getBackpath(req.getPathInfo()));
@@ -78,9 +78,9 @@
 		String linkString = links.toString();
 		try {
 			if (encoding != null) {
-			    out.write(linkString.getBytes(encoding));
+				out.write(linkString.getBytes(encoding));
 			} else {
-			    out.write(linkString.getBytes(StandardCharsets.UTF_8));
+				out.write(linkString.getBytes(StandardCharsets.UTF_8));
 			}
 		} catch (UnsupportedEncodingException e) {
 			out.write(linkString.getBytes());
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
index d04ec18..f208dcf 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
@@ -103,8 +103,8 @@
 		Cookie cookie = new Cookie(name, ""); //$NON-NLS-1$
 		String requestURI = request.getRequestURI();
 		if (!(requestURI.startsWith(cookiePath) && requestURI.indexOf('/', cookiePath.length() + 1) == -1)) {
-		     cookie.setPath(cookiePath);
-	    }
+			cookie.setPath(cookiePath);
+		}
 		cookie.setMaxAge(0);
 		response.addCookie(cookie);
 	}
@@ -115,11 +115,11 @@
 		HashSet<String> cookiesToDelete = new HashSet<>();
 		if (cookies != null) {
 			for (Cookie cookie : cookies) {
-				    String name = cookie.getName();
-				    if (isObsoleteCookie(name) || cookiesToKeep.contains(name)) {
-				    	cookiesToDelete.add(name);
-				    }
-					cookiesToKeep.add(name);
+				String name = cookie.getName();
+				if (isObsoleteCookie(name) || cookiesToKeep.contains(name)) {
+					cookiesToDelete.add(name);
+				}
+				cookiesToKeep.add(name);
 			}
 
 			for (String name : cookiesToDelete) {
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java
index e7aaf9b..dc44545 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java
@@ -67,9 +67,9 @@
 	private ServletContext context;
 	private static INotFoundCallout notFoundCallout = null; // For JUnit Testing
 
- 	public EclipseConnector(ServletContext context) {
+	public EclipseConnector(ServletContext context) {
 		this.context= context;
- 	}
+	}
 
 
 	public void transfer(HttpServletRequest req, HttpServletResponse resp)
@@ -86,7 +86,7 @@
 
 		try {
 
-		    //System.out.println("Transfer " + url); //$NON-NLS-1$
+			//System.out.println("Transfer " + url); //$NON-NLS-1$
 			// Redirect if the request includes PLUGINS_ROOT and is not a content request
 			int index = url.lastIndexOf(HelpURLConnection.PLUGINS_ROOT);
 			if (index!= -1 && !url.contains("content/" + HelpURLConnection.PLUGINS_ROOT)) {  //$NON-NLS-1$
@@ -125,39 +125,39 @@
 			try {
 				is = con.getInputStream();
 			} catch (IOException ioe) {
-			    pageNotFound = true;
-			    if (notFoundCallout != null) {
-			    	notFoundCallout.notFound(url);
-			    }
+				pageNotFound = true;
+				if (notFoundCallout != null) {
+					notFoundCallout.notFound(url);
+				}
 
-			    boolean isRTopicPath = isRTopicPath(req.getServletPath());
+				boolean isRTopicPath = isRTopicPath(req.getServletPath());
 
-			    if (requiresErrorPage(lowerCaseuRL) && !isRTopicPath) {
+				if (requiresErrorPage(lowerCaseuRL) && !isRTopicPath) {
 
-			    	String errorPage = null;
-			    	if (RemoteStatusData.isAnyRemoteHelpUnavailable()) {
-			            errorPage = '/'+HelpWebappPlugin.PLUGIN_ID+'/'+ MissingContentManager.MISSING_TOPIC_HREF;
-			    	} else {
-				        errorPage = MissingContentManager.getInstance().getPageNotFoundPage(url, false);
-			    	}
-			        if (errorPage != null && errorPage.length() > 0) {
+					String errorPage = null;
+					if (RemoteStatusData.isAnyRemoteHelpUnavailable()) {
+						errorPage = '/'+HelpWebappPlugin.PLUGIN_ID+'/'+ MissingContentManager.MISSING_TOPIC_HREF;
+					} else {
+						errorPage = MissingContentManager.getInstance().getPageNotFoundPage(url, false);
+					}
+					if (errorPage != null && errorPage.length() > 0) {
 						con = createConnection(req, resp, "help:" + errorPage); //$NON-NLS-1$
 						resp.setContentType("text/html"); //$NON-NLS-1$
 						try {
-						    is = con.getInputStream();
+							is = con.getInputStream();
 						} catch (IOException ioe2) {
 							// Cannot open error page
-						    resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
+							resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
 							return;
 						}
 					} else {
 						// Error page not defined
-					    resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
+						resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
 						return;
 					}
 				} else {
 					// Non HTML file
-				    resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
+					resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
 					return;
 				}
 			}
@@ -202,7 +202,7 @@
 
 			transferContent(is, out);
 			try {
-			    out.close();
+				out.close();
 			} catch (IOException ioe) {
 				//  Bug 314324 - do not report an error
 			}
@@ -229,7 +229,7 @@
 		}
 		if (!contentType.startsWith("text")) {  //$NON-NLS-1$
 				return false;
-	    }
+		}
 		if (contentType.equals("text/css")) { //$NON-NLS-1$
 			return false;
 		}
@@ -273,12 +273,12 @@
 
 	private boolean useMimeType(HttpServletRequest req, String mimeType) {
 		if  ( mimeType == null ) {
-	        return false;
-        }
-        if (mimeType.equals("application/xhtml+xml") && !UrlUtil.isMozilla(req)) { //$NON-NLS-1$
-        	return false;
-        }
-        return true;
+			return false;
+		}
+		if (mimeType.equals("application/xhtml+xml") && !UrlUtil.isMozilla(req)) { //$NON-NLS-1$
+			return false;
+		}
+		return true;
 	}
 
 	/**
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ExtraFilters.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ExtraFilters.java
index ce150b5..d27623a 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ExtraFilters.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ExtraFilters.java
@@ -36,7 +36,7 @@
 
 	public ExtraFilters() {
 		if (filters == null) {
-		    readFilters();
+			readFilters();
 		}
 	}
 
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java
index 8a765ab..a183499 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java
@@ -199,8 +199,8 @@
 					String bodyRecoded = new String(bodyBytes, encoding);
 					if (bodyRecoded.equals(bodyContent)) {
 						out.write('\n');
-					    out.write(bodyBytes);
-					    out.write('\n');
+						out.write(bodyBytes);
+						out.write('\n');
 					} else {
 						// Some characters could not be encoded
 						// Write one character at a time using an entity if necessary
@@ -213,11 +213,11 @@
 								out.write(codedChar);
 							} else {
 								int value = bodyContent.charAt(i);
-							    String code = "&#" + value + ';'; //$NON-NLS-1$
-							    out.write(code.getBytes());
+								String code = "&#" + value + ';'; //$NON-NLS-1$
+								out.write(code.getBytes());
 							}
 						}
-					    out.write('\n');
+						out.write('\n');
 					}
 				}
 				areaState = STATE_DONE;
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java
index 6667233..4024abf 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java
@@ -29,8 +29,8 @@
  */
 public class FramesetFilter implements IFilter {
 	private static final String scriptPart1 = "<script type=\"text/javascript\">\nif( self == top ){" //$NON-NLS-1$
-		    + "\n  var  anchorParam = location.hash.length > 0 ? '"  //$NON-NLS-1$
-		    + UrlUtil.JavaScriptEncode("&") + "anchor=' + location.hash.substr(1) : '';" //$NON-NLS-1$ //$NON-NLS-2$
+			+ "\n  var  anchorParam = location.hash.length > 0 ? '"  //$NON-NLS-1$
+			+ UrlUtil.JavaScriptEncode("&") + "anchor=' + location.hash.substr(1) : '';" //$NON-NLS-1$ //$NON-NLS-2$
 			+ "\n  window.location.replace( \""; //$NON-NLS-1$
 	private static final String scriptPart3 = "\" + anchorParam);\n}\n</script>"; //$NON-NLS-1$
 
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/IndexFragmentServlet.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/IndexFragmentServlet.java
index 6b97462..4655447 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/IndexFragmentServlet.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/IndexFragmentServlet.java
@@ -89,7 +89,7 @@
 		sizeParameter = req.getParameter(SIZE);
 		if (sizeParameter != null) {
 			try {
-			    size = Integer.parseInt(sizeParameter);
+				size = Integer.parseInt(sizeParameter);
 			} catch (NumberFormatException n) {
 			}
 		}
@@ -98,7 +98,7 @@
 		entryParameter = req.getParameter(ENTRY);
 		if (entryParameter != null) {
 			try {
-			    entry = Integer.parseInt(entryParameter);
+				entry = Integer.parseInt(entryParameter);
 			} catch (NumberFormatException n) {
 			}
 		}
@@ -226,10 +226,10 @@
 			}
 			int nextEntry = 0;
 			while (nextEntry < entries.length) {
-			    String keyword = entries[nextEntry].getKeyword().toLowerCase();
+				String keyword = entries[nextEntry].getKeyword().toLowerCase();
 				if (keyword != null) {
 					if (compare(startParameter, keyword) <= 0) {
-				        break;
+						break;
 					}
 				}
 				nextEntry++;
@@ -241,9 +241,9 @@
 			while (nextEntry < entries.length) {
 				int entrySize = enabledEntryCount(entries[nextEntry]);
 				if (remaining == size || remaining > entrySize) {
-                    entryList.add(Integer.valueOf(nextEntry));
-                    setFlags(nextEntry);
-                    remaining -= entrySize;
+					entryList.add(Integer.valueOf(nextEntry));
+					setFlags(nextEntry);
+					remaining -= entrySize;
 				} else {
 					break;
 				}
@@ -257,10 +257,10 @@
 			while (nextEntry >= 0) {
 				int entrySize = enabledEntryCount(entries[nextEntry]);
 				if (remaining == size || remaining > entrySize) {
-                    entryList.add(0, Integer.valueOf(nextEntry));
+					entryList.add(0, Integer.valueOf(nextEntry));
 
-                    setFlags(nextEntry);
-                    remaining -= entrySize;
+					setFlags(nextEntry);
+					remaining -= entrySize;
 				} else {
 					break;
 				}
@@ -284,10 +284,10 @@
 				return 0;
 			}
 			int count = 1;
-		    int topicCount = enabledTopicCount(entry);
+			int topicCount = enabledTopicCount(entry);
 
 			IIndexEntry[] subentries = entry.getSubentries();
-		    int subentryCount = 0;
+			int subentryCount = 0;
 			for (IIndexEntry subentrie : subentries) {
 				count += enabledEntryCount(subentrie);
 			}
@@ -305,17 +305,17 @@
 			}
 			count += subentryCount;
 			count += seeCount;
-            return count;
+			return count;
 		}
 
 		private int enabledTopicCount(IIndexEntry entry) {
 			int topicCount = 0;
-		    ITopic[] topics = entry.getTopics();
-		    for (ITopic topic : topics) {
-		    	if (scope.inScope(topic)) {
-		    		topicCount++;
-		    	}
-		    }
+			ITopic[] topics = entry.getTopics();
+			for (ITopic topic : topics) {
+				if (scope.inScope(topic)) {
+					topicCount++;
+				}
+			}
 			return topicCount;
 		}
 
@@ -353,8 +353,8 @@
 				String href;
 				if (singleTopic) {
 					href = UrlUtil.getHelpURL((topics[0]).getHref());
-				    buf.append('\n' + "      href=\"" +  //$NON-NLS-1$
-				    	XMLGenerator.xmlEscape(href) + "\""); //$NON-NLS-1$
+					buf.append('\n' + "      href=\"" +  //$NON-NLS-1$
+						XMLGenerator.xmlEscape(href) + "\""); //$NON-NLS-1$
 				}
 				buf.append(">\n"); //$NON-NLS-1$
 
@@ -403,8 +403,8 @@
 		}
 
 		private void generateSees(IIndexSee[] sees) {
-	        for (IIndexSee see : sees) {
-	        	if (ScopeUtils.showInTree(see, scope)) {
+			for (IIndexSee see : sees) {
+				if (ScopeUtils.showInTree(see, scope)) {
 					//
 					String key = see.isSeeAlso() ? "SeeAlso" : "See"; //$NON-NLS-1$ //$NON-NLS-2$
 					String seePrefix = WebappResources.getString(key, UrlUtil
@@ -428,8 +428,8 @@
 							+ XMLGenerator.xmlEscape(href) + "\""); //$NON-NLS-1$
 					buf.append(">\n"); //$NON-NLS-1$
 					buf.append("</node>\n"); //$NON-NLS-1$
-	        	}
-	        }
+				}
+			}
 		}
 	}
 
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
index 857148a..d220d6d 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
@@ -180,7 +180,7 @@
 					if (suffixStart > 0) {
 						previousToc = decodedName.substring(0, suffixStart);
 					} else if (suffixStart == 0) {
-					    decodedName = previousToc + decodedName;
+						decodedName = previousToc + decodedName;
 					}
 					elements[e] = getAdaptableTopic(decodedName);
 				}
@@ -211,14 +211,14 @@
 				continue;
 			}
 			String name = URLCoder.decode(nameAndCriteria[0]);
-		    List<CriterionResource> criteriaResource = new ArrayList<>();
+			List<CriterionResource> criteriaResource = new ArrayList<>();
 			for (int j = 1; j < nameAndCriteria.length; ++j) {
 				String criterion = nameAndCriteria[j];
 				String[] keyAndValue = criterion.split("#", -1); //$NON-NLS-1$
 				if(keyAndValue.length != 2)
 					continue;
 				String key = URLCoder.decode(keyAndValue[0]);
-			    String value = URLCoder.decode(keyAndValue[1]);
+				String value = URLCoder.decode(keyAndValue[1]);
 				String[] criterionValues = value.split(",", -1); //$NON-NLS-1$
 				if(criterionValues.length < 1)
 					continue;
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java
index 2bff3b9..e9f4e53 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java
@@ -80,8 +80,8 @@
 		}
 
 		boolean enabled = isUnfiltered || isNav
-		    || HelpBasePlugin.getActivitySupport().isRoleEnabled(pathInfo)
-		    || isRemote;
+			|| HelpBasePlugin.getActivitySupport().isRoleEnabled(pathInfo)
+			|| isRemote;
 		if ("/ntopic".equals(req.getServletPath())) { //$NON-NLS-1$
 			addNarrow = true;
 			CssUtil.addCssFiles(NARROW_CSS, cssIncludes);
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/NavServlet.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/NavServlet.java
index b2a9132..ba611fa 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/NavServlet.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/NavServlet.java
@@ -84,25 +84,25 @@
 	private void showPageNotFoundPage(HttpServletRequest req,
 			HttpServletResponse resp) {
 		String errorPage = MissingContentManager.getInstance().getPageNotFoundPage(req.getServletPath(), false);
-        if (errorPage != null && errorPage.length() > 0) {
-        	String href = req.getRequestURL().toString();
-        	int navIndex = href.indexOf("/nav"); //$NON-NLS-1$
-        	if (navIndex >= 0 ) {
-        		href = href.substring(0, navIndex);
-        		href += "/nftopic"; //$NON-NLS-1$
-        		if (errorPage.charAt(0) != '/') {
-        			href += '/';
-        		}
-        		href += errorPage;
-        		try {
+		if (errorPage != null && errorPage.length() > 0) {
+			String href = req.getRequestURL().toString();
+			int navIndex = href.indexOf("/nav"); //$NON-NLS-1$
+			if (navIndex >= 0 ) {
+				href = href.substring(0, navIndex);
+				href += "/nftopic"; //$NON-NLS-1$
+				if (errorPage.charAt(0) != '/') {
+					href += '/';
+				}
+				href += errorPage;
+				try {
 					resp.sendRedirect(href);
 					return;
 				} catch (IOException e) {
 					// Fall through
 				}
-        	}
-	    }
-	    resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
+			}
+		}
+		resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
 	}
 
 	protected Locale getLocale (HttpServletRequest req, HttpServletResponse resp) {
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootFilter.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootFilter.java
index 12cebd9..299d4ca 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootFilter.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootFilter.java
@@ -27,11 +27,11 @@
  */
 public class PluginsRootFilter implements IFilter {
 
-    @Override
+	@Override
 	public OutputStream filter(HttpServletRequest req, OutputStream out) {
 		String pathPrefix = FilterUtils.getRelativePathPrefix(req);
 		if (pathPrefix.length() >= 3) {
-		    return new PluginsRootResolvingStream(out, req, pathPrefix.substring(0, pathPrefix.length() - 3));
+			return new PluginsRootResolvingStream(out, req, pathPrefix.substring(0, pathPrefix.length() - 3));
 		}
 		return out;
 	}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootResolvingStream.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootResolvingStream.java
index b977ed1..4385c83 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootResolvingStream.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PluginsRootResolvingStream.java
@@ -48,7 +48,7 @@
 	private String pathPrefix;
 	private StringBuilder tag;
 	private ByteArrayOutputStream metaTagBuffer;
-    private boolean tagRead;
+	private boolean tagRead;
 	private HttpServletRequest req;
 	private String charset;
 
@@ -61,17 +61,17 @@
 	@Override
 	public void write(int b) throws IOException {
 		switch(state) {
-	    case INITIAL_STATE:
-	    	if (b == '<') {
-	    		state = IN_TAG;
-	    		charsMatched = 0;
-	    		tag = new StringBuilder();
-	    		tagRead = false;
-	    	} else {
-	    	    out.write(b);
-	    	}
-	    	break;
-	    case IN_TAG:
+		case INITIAL_STATE:
+			if (b == '<') {
+				state = IN_TAG;
+				charsMatched = 0;
+				tag = new StringBuilder();
+				tagRead = false;
+			} else {
+				out.write(b);
+			}
+			break;
+		case IN_TAG:
 			if (charsMatched == 0) {
 				if (b == '!') {
 					state = MAY_BE_INCLUDE;
@@ -86,96 +86,96 @@
 					out.write('<');
 				}
 			}
-	    	if (b == '>') {
-	    		state = INITIAL_STATE;
-	    	} else if (b == '"') {
-	    		state = IN_QUOTE;
-	    		charsMatched = 0;
-	    	} else {
-	    		charsMatched++;
-	    		if (!tagRead) {
-	    			if (b >= 0 && b < 128 && tag.length() < 20) {
-	    				// ASCII
-	    				char c = (char)b;
-	    				if (Character.isLetter(c)) {
-	    					tag.append(c);
-	    				} else if (Character.isWhitespace(c)) {
-	    					tagRead = true;
-	    					if (tag.toString().equalsIgnoreCase("meta")) { //$NON-NLS-1$
-	    						state = IN_METATAG;
-	    						metaTagBuffer = new ByteArrayOutputStream(7);
-	    						metaTagBuffer.write("<meta ".getBytes()); //$NON-NLS-1$
-	    					}
-	    				} else  {
-	    					tag.append(c);
-	    				}
-	    			}
-	    		}
-	    	}
-	    	out.write(b);
-	    	break;
-	    case IN_QUOTE_NOT_PLUGINS_ROOT:
-	    	if (b == '>') {
-	    		state = INITIAL_STATE;
-	    	} else if (b == '"') {
-	    		state = IN_TAG;
-	    		charsMatched = 1;
-	    	}
-	    	out.write(b);
-	    	break;
-	    case IN_QUOTE:
-	    	// In a quote which may start with PLUGINS_ROOT
-	    	if (b == PLUGINS_ROOT.charAt(charsMatched)) {
-	    		charsMatched++;
-	    		if (charsMatched == PLUGINS_ROOT.length()) {
-	    			out.write(pathPrefix.getBytes());
-	    			state = IN_QUOTE_NOT_PLUGINS_ROOT;
-	    		}
-	    	} else {
-	    		// We just discovered that this is not "PLUGINS_ROOT/
-	    		// flush out the characters
-	    		state = IN_QUOTE_NOT_PLUGINS_ROOT;
-	    		flushPluginsRootCharacters();
-	    		out.write(b);
-	    	}
-	    	break;
-	    case MAY_BE_INCLUDE:
-	    	// Compare against all possible keywords
-	    	boolean canStillMatch = false;
-	    	int perfectMatch = -1;
-	    	for (int i = 0; i < keywords.length; i++) {
-	    		if (possibleKeywordMatches[i]) {
-	    			if (keywords[i].charAt(charsMatched) == b) {
-	    				canStillMatch = true;
-	    				lastKeywordMatch = i;
-	    				if (keywords[i].length() == charsMatched + 1) {
-	    					perfectMatch = i;
-	    				}
-	    			} else {
-	    				possibleKeywordMatches[i] = false;
-	    			}
-	    		}
-	    	}
-	    	if (perfectMatch != -1) {
-	    		insertBasedOnKeyword(perfectMatch);
-	    		state=INITIAL_STATE;
-	    	} else if (canStillMatch) {
-		    	charsMatched++;
-	    	} else {
-	    		state = INITIAL_STATE;
-	    		flushKeywordCharacters();
-	            out.write(b);
-	    	}
-	    	break;
-	    case IN_METATAG:
-	    	out.write(b);
-	    	metaTagBuffer.write(b);
+			if (b == '>') {
+				state = INITIAL_STATE;
+			} else if (b == '"') {
+				state = IN_QUOTE;
+				charsMatched = 0;
+			} else {
+				charsMatched++;
+				if (!tagRead) {
+					if (b >= 0 && b < 128 && tag.length() < 20) {
+						// ASCII
+						char c = (char)b;
+						if (Character.isLetter(c)) {
+							tag.append(c);
+						} else if (Character.isWhitespace(c)) {
+							tagRead = true;
+							if (tag.toString().equalsIgnoreCase("meta")) { //$NON-NLS-1$
+								state = IN_METATAG;
+								metaTagBuffer = new ByteArrayOutputStream(7);
+								metaTagBuffer.write("<meta ".getBytes()); //$NON-NLS-1$
+							}
+						} else  {
+							tag.append(c);
+						}
+					}
+				}
+			}
+			out.write(b);
+			break;
+		case IN_QUOTE_NOT_PLUGINS_ROOT:
+			if (b == '>') {
+				state = INITIAL_STATE;
+			} else if (b == '"') {
+				state = IN_TAG;
+				charsMatched = 1;
+			}
+			out.write(b);
+			break;
+		case IN_QUOTE:
+			// In a quote which may start with PLUGINS_ROOT
+			if (b == PLUGINS_ROOT.charAt(charsMatched)) {
+				charsMatched++;
+				if (charsMatched == PLUGINS_ROOT.length()) {
+					out.write(pathPrefix.getBytes());
+					state = IN_QUOTE_NOT_PLUGINS_ROOT;
+				}
+			} else {
+				// We just discovered that this is not "PLUGINS_ROOT/
+				// flush out the characters
+				state = IN_QUOTE_NOT_PLUGINS_ROOT;
+				flushPluginsRootCharacters();
+				out.write(b);
+			}
+			break;
+		case MAY_BE_INCLUDE:
+			// Compare against all possible keywords
+			boolean canStillMatch = false;
+			int perfectMatch = -1;
+			for (int i = 0; i < keywords.length; i++) {
+				if (possibleKeywordMatches[i]) {
+					if (keywords[i].charAt(charsMatched) == b) {
+						canStillMatch = true;
+						lastKeywordMatch = i;
+						if (keywords[i].length() == charsMatched + 1) {
+							perfectMatch = i;
+						}
+					} else {
+						possibleKeywordMatches[i] = false;
+					}
+				}
+			}
+			if (perfectMatch != -1) {
+				insertBasedOnKeyword(perfectMatch);
+				state=INITIAL_STATE;
+			} else if (canStillMatch) {
+				charsMatched++;
+			} else {
+				state = INITIAL_STATE;
+				flushKeywordCharacters();
+				out.write(b);
+			}
+			break;
+		case IN_METATAG:
+			out.write(b);
+			metaTagBuffer.write(b);
 			if (b=='>') {
 				parseMetaTag(metaTagBuffer);
 				metaTagBuffer = null;
 				state = INITIAL_STATE;
 			}
-	    	break;
+			break;
 		default:
 			out.write(b);
 		}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PreferenceWriter.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PreferenceWriter.java
index 584902b..c41ddbd 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PreferenceWriter.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/PreferenceWriter.java
@@ -53,49 +53,49 @@
 
 	private void writePreference(String plugin) {
 		try {
-		    IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(plugin);
+			IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(plugin);
 			Set<String> keySet = new HashSet<>();
-		    prefs = DefaultScope.INSTANCE.getNode(plugin);
+			prefs = DefaultScope.INSTANCE.getNode(plugin);
 			keySet.addAll(Arrays.asList(prefs.keys()));
 			String[] allKeys = keySet.toArray(new String[keySet.size()]);
 			if (allKeys.length > 0) {
-			    Arrays.sort(allKeys);
+				Arrays.sort(allKeys);
 
-			    if (!isXML) {
-			    	buf.append("\n<h3>"); //$NON-NLS-1$
-			    	buf.append(plugin);
-			    	buf.append("</h3>\n"); //$NON-NLS-1$
-			    	buf.append("<table>");  //$NON-NLS-1$
-			    } else {
+				if (!isXML) {
+					buf.append("\n<h3>"); //$NON-NLS-1$
+					buf.append(plugin);
+					buf.append("</h3>\n"); //$NON-NLS-1$
+					buf.append("<table>");  //$NON-NLS-1$
+				} else {
 					buf.append("\n    <plugin\n          title=\""); //$NON-NLS-1$
 					buf.append(XMLGenerator.xmlEscape(plugin));
 					buf.append("\">"); //$NON-NLS-1$
-			    }
-			    for (String key : allKeys) {
-			    	String value = Platform.getPreferencesService().getString
-			    			(plugin, key, "", null); //$NON-NLS-1$
-			    	if (!isXML) {
-				    	buf.append("\n    <tr>\n"); //$NON-NLS-1$
-				    	buf.append("        <td>"); //$NON-NLS-1$
-				    	buf.append(UrlUtil.htmlEncode(key));
-				    	buf.append("</td>\n        <td>"); //$NON-NLS-1$
+				}
+				for (String key : allKeys) {
+					String value = Platform.getPreferencesService().getString
+							(plugin, key, "", null); //$NON-NLS-1$
+					if (!isXML) {
+						buf.append("\n    <tr>\n"); //$NON-NLS-1$
+						buf.append("        <td>"); //$NON-NLS-1$
+						buf.append(UrlUtil.htmlEncode(key));
+						buf.append("</td>\n        <td>"); //$NON-NLS-1$
 						buf.append(UrlUtil.htmlEncode(value));
 						buf.append("</td>\n    </tr>"); //$NON-NLS-1$
-			    	} else {
-				    	buf.append("\n        <"); //$NON-NLS-1$
-			    		buf.append(key);
-			    		buf.append(">"); //$NON-NLS-1$
+					} else {
+						buf.append("\n        <"); //$NON-NLS-1$
+						buf.append(key);
+						buf.append(">"); //$NON-NLS-1$
 						buf.append(value);
-				    	buf.append("</"); //$NON-NLS-1$
-			    		buf.append(key);
-			    		buf.append(">"); //$NON-NLS-1$
-			    	}
-			    }
-			    if (!isXML) {
-			    	buf.append("\n</table>"); //$NON-NLS-1$
-			    } else {
-			    	buf.append("\n    </plugin>"); //$NON-NLS-1$
-			    }
+						buf.append("</"); //$NON-NLS-1$
+						buf.append(key);
+						buf.append(">"); //$NON-NLS-1$
+					}
+				}
+				if (!isXML) {
+					buf.append("\n</table>"); //$NON-NLS-1$
+				} else {
+					buf.append("\n    </plugin>"); //$NON-NLS-1$
+				}
 			}
 		} catch (BackingStoreException e) {
 			buf.append(WebappResources.getString("badPreferences", locale)); //$NON-NLS-1$
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ServletPrintWriter.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ServletPrintWriter.java
index 92d842d..291163c 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ServletPrintWriter.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ServletPrintWriter.java
@@ -25,66 +25,66 @@
 		buffer = new StringBuilder();
 	}
 
-    /**
-     * Writes a single character.
-     * @param c int specifying a character to be written.
-     */
-    @Override
+	/**
+	 * Writes a single character.
+	 * @param c int specifying a character to be written.
+	 */
+	@Override
 	public void write(int c) {
-	    synchronized (lock) {
-	    	buffer.append((char)(c));
-	    }
-    }
+		synchronized (lock) {
+			buffer.append((char)(c));
+		}
+	}
 
-    /**
-     * Writes A Portion of an array of characters.
-     * @param buf Array of characters
-     * @param off Offset from which to start writing characters
-     * @param len Number of characters to write
-     */
-    @Override
+	/**
+	 * Writes A Portion of an array of characters.
+	 * @param buf Array of characters
+	 * @param off Offset from which to start writing characters
+	 * @param len Number of characters to write
+	 */
+	@Override
 	public void write(char buf[], int off, int len) {
-	    synchronized (lock) {
-	    	buffer.append(buf, off, len);
-	    }
-    }
+		synchronized (lock) {
+			buffer.append(buf, off, len);
+		}
+	}
 
-    /**
-     * Writes an array of characters.  This method cannot be inherited from the
-     * Writer class because it must suppress I/O exceptions.
-     * @param buf Array of characters to be written
-     */
-    @Override
+	/**
+	 * Writes an array of characters.  This method cannot be inherited from the
+	 * Writer class because it must suppress I/O exceptions.
+	 * @param buf Array of characters to be written
+	 */
+	@Override
 	public void write(char buf[]) {
-    	write(buf, 0, buf.length);
-    }
+		write(buf, 0, buf.length);
+	}
 
-    /**
-     * Writes a portion of a string.
-     * @param s A String
-     * @param off Offset from which to start writing characters
-     * @param len Number of characters to write
-     */
-    @Override
+	/**
+	 * Writes a portion of a string.
+	 * @param s A String
+	 * @param off Offset from which to start writing characters
+	 * @param len Number of characters to write
+	 */
+	@Override
 	public void write(String s, int off, int len) {
-	    synchronized (lock) {
-	    	buffer.append(s.toCharArray(), off, off+len);
-	    }
-    }
+		synchronized (lock) {
+			buffer.append(s.toCharArray(), off, off+len);
+		}
+	}
 
-    /**
-     * Writes a string.  This method cannot be inherited from the Writer class
-     * because it must suppress I/O exceptions.
-     * @param s String to be written
-     */
-    @Override
+	/**
+	 * Writes a string.  This method cannot be inherited from the Writer class
+	 * because it must suppress I/O exceptions.
+	 * @param s String to be written
+	 */
+	@Override
 	public void write(String s) {
 	write(s, 0, s.length());
-    }
+	}
 
-    @Override
+	@Override
 	public String toString()
-    {
-    	return buffer.toString();
-    }
+	{
+		return buffer.toString();
+	}
 }
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/TocFragmentServlet.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/TocFragmentServlet.java
index c9712ee..99f95b8 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/TocFragmentServlet.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/TocFragmentServlet.java
@@ -59,9 +59,9 @@
 			throws ServletException, IOException {
 		String locale = UrlUtil.getLocale(req, resp);
 		req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$
-	    resp.setHeader("Cache-Control","no-cache");   //$NON-NLS-1$//$NON-NLS-2$
-	    resp.setHeader("Pragma","no-cache");  //$NON-NLS-1$ //$NON-NLS-2$
-	    resp.setDateHeader ("Expires", 0); 	 //$NON-NLS-1$
+		resp.setHeader("Cache-Control","no-cache");   //$NON-NLS-1$//$NON-NLS-2$
+		resp.setHeader("Pragma","no-cache");  //$NON-NLS-1$ //$NON-NLS-2$
+		resp.setDateHeader ("Expires", 0); 	 //$NON-NLS-1$
 		TocData data = new TocData(this.getServletContext(), req, resp);
 
 		readParameters(req);
@@ -120,7 +120,7 @@
 			} else if (requestKind == REQUEST_SHOW_IN_TOC) {
 				generateNumericPath();
 			} else {
-			    serializeTocs();
+				serializeTocs();
 			}
 			buf.append("</tree_data>\n"); //$NON-NLS-1$
 			return buf.toString();
@@ -129,9 +129,9 @@
 
 		private void generateNumericPath() {
 			int selectedToc = tocData.getSelectedToc();
-		    if (selectedToc < 0) {
-		    	addError(WebappResources.getString("CannotSync", locale)); //$NON-NLS-1$
-		    } else {
+			if (selectedToc < 0) {
+				addError(WebappResources.getString("CannotSync", locale)); //$NON-NLS-1$
+			} else {
 				// Count the number of enabled tocs
 				int enabled = 0;
 				for (int i = 0; i <= selectedToc; i++) {
@@ -139,38 +139,38 @@
 						enabled++;
 					}
 				}
-			    String fullNumericPath = "" + (enabled - 1); //$NON-NLS-1$
-			    String numericPath = tocData.getNumericPath();
+				String fullNumericPath = "" + (enabled - 1); //$NON-NLS-1$
+				String numericPath = tocData.getNumericPath();
 				if (numericPath != null) {
-			    	fullNumericPath = fullNumericPath +  '_' + numericPath;
-			    }
-		    	buf.append("<numeric_path path=\"" + fullNumericPath + "\"/>\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		    }
+					fullNumericPath = fullNumericPath +  '_' + numericPath;
+				}
+				buf.append("<numeric_path path=\"" + fullNumericPath + "\"/>\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			}
 		}
 
 		private void addError(String message) {
 			if (!isErrorSuppress) {
-			    buf.append("<error>"); //$NON-NLS-1$
+				buf.append("<error>"); //$NON-NLS-1$
 				buf.append(XMLGenerator.xmlEscape(message));
 				buf.append("</error>"); //$NON-NLS-1$
 			}
 		}
 
 		private void serializeTocs() {
- 			ITopic[] topicPath = tocData.getTopicPath();
+			ITopic[] topicPath = tocData.getTopicPath();
 
 			int selectedToc = tocData.getSelectedToc();
 			// Iterate over all tocs - if there is a selected toc only generate that
 			// toc, otherwise generate the root of every toc.
 			for (int toc=0; toc< tocData.getTocCount(); toc++) {
 				boolean shouldLoad = requestKind == REQUEST_SHOW_TOCS || toc == selectedToc;
-	            if (shouldLoad) {
-	            	boolean isSelected = false; // Should this node be selected in the tree
-	            	if (requestKind == REQUEST_SHOW_TOCS) {
-	            		isSelected = toc == 0;
-	            	} else if (requestKind == REQUEST_SHOW_CHILDREN) {
-	            		isSelected = tocData.getRootPath() == null;
-	            	}
+				if (shouldLoad) {
+					boolean isSelected = false; // Should this node be selected in the tree
+					if (requestKind == REQUEST_SHOW_TOCS) {
+						isSelected = toc == 0;
+					} else if (requestKind == REQUEST_SHOW_CHILDREN) {
+						isSelected = tocData.getRootPath() == null;
+					}
 					serializeToc(tocData.getTocs()[toc], toc, topicPath, isSelected);
 				}
 			}
@@ -217,9 +217,9 @@
 		}
 
 		private void serializeTopic(ITopic topic, ITopic[] topicPath, boolean isSelected, String parentPath)  {
-		    ITopic[] subtopics = topic.getSubtopics();
-		     boolean isLeaf = !ScopeUtils.hasInScopeDescendent(topic, scope);
-		    buf.append("<node"); //$NON-NLS-1$
+			ITopic[] subtopics = topic.getSubtopics();
+			boolean isLeaf = !ScopeUtils.hasInScopeDescendent(topic, scope);
+			buf.append("<node"); //$NON-NLS-1$
 			if (topic.getLabel() != null) {
 				buf.append('\n'	+ "      title=\"" + XMLGenerator.xmlEscape(topic.getLabel()) + '"'); //$NON-NLS-1$
 			}
@@ -250,11 +250,11 @@
 				String icon = ((Toc) toc).getIcon();
 
 				if (IconFinder.isIconDefined(icon)) {
-				    String openIcon = IconFinder.getImagePathFromId(icon, IconFinder.TYPEICON_OPEN);
+					String openIcon = IconFinder.getImagePathFromId(icon, IconFinder.TYPEICON_OPEN);
 					String closedIcon = IconFinder.getImagePathFromId(icon, IconFinder.TYPEICON_CLOSED);
 					String imageTags = '\n' + "      openImage=\"/"+ openIcon + "\""; //$NON-NLS-1$ //$NON-NLS-2$
 					if (!openIcon.equals(closedIcon)) {
-					    imageTags += '\n' + "      closedImage=\"/" + closedIcon + "\""; //$NON-NLS-1$ //$NON-NLS-2$
+						imageTags += '\n' + "      closedImage=\"/" + closedIcon + "\""; //$NON-NLS-1$ //$NON-NLS-2$
 					}
 					String altText = IconFinder.getIconAltFromId(icon);
 					if(altText != null) {
@@ -269,20 +269,20 @@
 		private String createTopicImageTags(ITopic topic, boolean isLeaf) {
 			if (topic instanceof Topic) {
 				String icon = ((Topic) topic).getIcon();
-			    String altText = IconFinder.getIconAltFromId(icon);
+				String altText = IconFinder.getIconAltFromId(icon);
 
 				if (IconFinder.isIconDefined(icon)) {
 					String imageTags;
 					if (isLeaf) {
 						imageTags = '\n' + "      openImage=\"/" +IconFinder.getImagePathFromId(icon, IconFinder.TYPEICON_LEAF) + "\"";   //$NON-NLS-1$//$NON-NLS-2$
 					} else {
-					    String openIcon = IconFinder.getImagePathFromId(icon, IconFinder.TYPEICON_OPEN);
+						String openIcon = IconFinder.getImagePathFromId(icon, IconFinder.TYPEICON_OPEN);
 						String closedIcon = IconFinder.getImagePathFromId(icon, IconFinder.TYPEICON_CLOSED);
 						imageTags = '\n' + "      openImage=\"/" + openIcon+ "\""; //$NON-NLS-1$ //$NON-NLS-2$
 						if (!openIcon.equals(closedIcon)) {
-						    imageTags += '\n' + "      closedImage=\"/" +  closedIcon + "\""; //$NON-NLS-1$ //$NON-NLS-2$
+							imageTags += '\n' + "      closedImage=\"/" +  closedIcon + "\""; //$NON-NLS-1$ //$NON-NLS-2$
 						}
-				    }
+					}
 					if(altText != null) {
 						imageTags += '\n' + "      imageAlt=\""+ altText + "\""; //$NON-NLS-1$ //$NON-NLS-2$
 					}
@@ -305,22 +305,22 @@
 			if (parentIsSelected && requestKind == REQUEST_SHOW_CHILDREN) {
 				// Show the children of this node
 				for (int subtopic = 0; subtopic < childTopics.length; subtopic++) {
-				    ITopic childTopic = childTopics[subtopic];
-				    if (ScopeUtils.showInTree(childTopic, scope)) {
-					    serializeTopic(childTopic, null, false, addSuffix(parentPath, subtopic));
-				    }
+					ITopic childTopic = childTopics[subtopic];
+					if (ScopeUtils.showInTree(childTopic, scope)) {
+						serializeTopic(childTopic, null, false, addSuffix(parentPath, subtopic));
+					}
 				}
 			} else if (topicPath != null) {
 				for (int subtopic = 0; subtopic < childTopics.length; subtopic++) {
 					ITopic childTopic = childTopics[subtopic];
-				    if (ScopeUtils.showInTree(childTopic, scope)) {
+					if (ScopeUtils.showInTree(childTopic, scope)) {
 						if (topicPath[0].getLabel().equals(childTopic.getLabel())) {
 							ITopic[] newPath = null;
 							if (topicPath.length > 1) {
 								newPath = new ITopic[topicPath.length - 1];
 								System.arraycopy(topicPath, 1, newPath, 0, topicPath.length - 1);
 							}
-					        serializeTopic(childTopic, newPath, topicPath.length == 1, addSuffix(parentPath, subtopic));
+							serializeTopic(childTopic, newPath, topicPath.length == 1, addSuffix(parentPath, subtopic));
 						} else {
 							serializeTopic(childTopic, null, false, addSuffix(parentPath, subtopic));
 						}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractButton.java b/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractButton.java
index ce11762..a83a0e0 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractButton.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractButton.java
@@ -28,104 +28,104 @@
 	 * generated HTML
 	 * @return a string that consists of alphanumeric characters only with no spaces
 	 */
-    public abstract String getId();
+	public abstract String getId();
 
-    /**
-     * @return a URL relative to /help which is the location
-     * of the 16x16 image icon which will appear in the tab
-     */
-    public abstract String getImageURL();
+	/**
+	 * @return a URL relative to /help which is the location
+	 * of the 16x16 image icon which will appear in the tab
+	 */
+	public abstract String getImageURL();
 
-    /**
-     * A user visible description of the button which will appear in the tooltip
-     * @param locale the locale of the client
-     * @return the tooltip text to be used in this locale
-     */
-    public abstract String getTooltip(Locale locale);
+	/**
+	 * A user visible description of the button which will appear in the tooltip
+	 * @param locale the locale of the client
+	 * @return the tooltip text to be used in this locale
+	 */
+	public abstract String getTooltip(Locale locale);
 
-    /**
-     * a JavaScript function which will be called when the button is pressed
-     * @return the name of a JavaScript function
-     */
-    public abstract String getAction();
+	/**
+	 * a JavaScript function which will be called when the button is pressed
+	 * @return the name of a JavaScript function
+	 */
+	public abstract String getAction();
 
-    /**
-     * The state of a button which is visible but not depressed
-     */
-    public final static String BUTTON_OUT = "off"; //$NON-NLS-1$
+	/**
+	 * The state of a button which is visible but not depressed
+	 */
+	public final static String BUTTON_OUT = "off"; //$NON-NLS-1$
 
-    /**
-     * The state of a button which is visible and depressed
-     */
-    public final static String BUTTON_IN = "on"; //$NON-NLS-1$
+	/**
+	 * The state of a button which is visible and depressed
+	 */
+	public final static String BUTTON_IN = "on"; //$NON-NLS-1$
 
-    /**
-     * The state of a button which is hidden
-     */
-    public final static String BUTTON_HIDDEN = "hidden"; //$NON-NLS-1$
+	/**
+	 * The state of a button which is hidden
+	 */
+	public final static String BUTTON_HIDDEN = "hidden"; //$NON-NLS-1$
 
-    /**
-     * Get the state of a button
-     * @return one of <code>BUTTON_OUT</code>, <code>BUTTON_IN</code>, or
-     * <code>BUTTON_HIDDEN</code>.
-     */
-    public String getState() {
-    	return BUTTON_OUT;
-    }
+	/**
+	 * Get the state of a button
+	 * @return one of <code>BUTTON_OUT</code>, <code>BUTTON_IN</code>, or
+	 * <code>BUTTON_HIDDEN</code>.
+	 */
+	public String getState() {
+		return BUTTON_OUT;
+	}
 
-    /**
-     * Get the location of the a javascript file to be included in any
-     * jsp file which uses this button
-     * @return a URL path, relative to /help or <code>null</code> if there.
-     */
-    public String getJavaScriptURL() {
-    	return null;
-    }
+	/**
+	 * Get the location of the a javascript file to be included in any
+	 * jsp file which uses this button
+	 * @return a URL path, relative to /help or <code>null</code> if there.
+	 */
+	public String getJavaScriptURL() {
+		return null;
+	}
 
-    /**
-     * Toolbar name for the content pane, which shows help pages
-     */
-    public static final String CONTENT_TOOLBAR = "content"; //$NON-NLS-1$
+	/**
+	 * Toolbar name for the content pane, which shows help pages
+	 */
+	public static final String CONTENT_TOOLBAR = "content"; //$NON-NLS-1$
 
-    /**
-     * Toolbar name for the table of contents
-     */
-    public static final String TOC_TOOLBAR = "toc"; //$NON-NLS-1$
+	/**
+	 * Toolbar name for the table of contents
+	 */
+	public static final String TOC_TOOLBAR = "toc"; //$NON-NLS-1$
 
-    /**
-     * Toolbar name for the keyword index
-     */
-    public static final String INDEX_TOOLBAR = "index"; //$NON-NLS-1$
+	/**
+	 * Toolbar name for the keyword index
+	 */
+	public static final String INDEX_TOOLBAR = "index"; //$NON-NLS-1$
 
-    /**
-     * Toolbar name for search results
-     */
-    public static final String SEARCH_TOOLBAR = "search"; //$NON-NLS-1$
+	/**
+	 * Toolbar name for search results
+	 */
+	public static final String SEARCH_TOOLBAR = "search"; //$NON-NLS-1$
 
-    /**
-     * Toolbar name for bookmarks
-     */
-    public static final String BOOKMARKS_TOOLBAR = "bookmarks"; //$NON-NLS-1$
+	/**
+	 * Toolbar name for bookmarks
+	 */
+	public static final String BOOKMARKS_TOOLBAR = "bookmarks"; //$NON-NLS-1$
 
-    /**
-     * Determines whether this button should be true if the button should be added
-     * to particular toolbar
-     * @param toolbarName Name of the toolbar.
-     * @return true
-     */
-    public boolean isAddedToToolbar(String toolbarName) {
-    	return true;
-    }
+	/**
+	 * Determines whether this button should be true if the button should be added
+	 * to particular toolbar
+	 * @param toolbarName Name of the toolbar.
+	 * @return true
+	 */
+	public boolean isAddedToToolbar(String toolbarName) {
+		return true;
+	}
 
-    /**
+	/**
 	 * @since 3.7
 	 */
-    @Override
+	@Override
 	final public int compareTo(AbstractButton o) {
-    	if (o != null) {
-    		String objectName = o.getId();
+		if (o != null) {
+			String objectName = o.getId();
 			return (getId().compareTo(objectName));
-    	}
-    	return 0;
-    }
+		}
+		return 0;
+	}
 }
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractFrame.java b/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractFrame.java
index 8496719..20dcd43 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractFrame.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractFrame.java
@@ -38,47 +38,47 @@
 	 *
 	 * @return a non translated name which is the name of this frame
 	 */
-    public abstract String getName();
+	public abstract String getName();
 
-    /**
-     * @return a URL path, relative to /help which is the
-     * location of the jsp files in the advanced presentation
-     */
-    public abstract String getURL();
+	/**
+	 * @return a URL path, relative to /help which is the
+	 * location of the jsp files in the advanced presentation
+	 */
+	public abstract String getURL();
 
-    /**
-     * @return a string which will be used in the rows or cols attribute of a
-     * frameset in the html
-     */
-    public String getSize() {
-    	return "*"; //$NON-NLS-1$
-    }
+	/**
+	 * @return a string which will be used in the rows or cols attribute of a
+	 * frameset in the html
+	 */
+	public String getSize() {
+		return "*"; //$NON-NLS-1$
+	}
 
-    /**
-     * @return true if the frame should be shown in the advanced presentation
-     */
-    public boolean isVisible() {
-        return true;
-    }
+	/**
+	 * @return true if the frame should be shown in the advanced presentation
+	 */
+	public boolean isVisible() {
+		return true;
+	}
 
-    /**
-     * allows the attributes of this frame other than name and src to be specified
-     * @return a list of attributes
-     */
-    public String getFrameAttributes() {
-    	return "\"marginwidth=\"1\" marginheight=\"1\" frameborder=\"1\" scrolling=\"no\""; //$NON-NLS-1$
-    }
+	/**
+	 * allows the attributes of this frame other than name and src to be specified
+	 * @return a list of attributes
+	 */
+	public String getFrameAttributes() {
+		return "\"marginwidth=\"1\" marginheight=\"1\" frameborder=\"1\" scrolling=\"no\""; //$NON-NLS-1$
+	}
 
-    /**
+	/**
 	 * @since 3.7
 	 */
-    @Override
+	@Override
 	final public int compareTo(AbstractFrame o) {
-    	if (o != null) {
-    		String objectName = o.getName();
+		if (o != null) {
+			String objectName = o.getName();
 			return (getName().compareTo(objectName));
-    	}
-    	return 0;
-    }
+		}
+		return 0;
+	}
 
 }
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractView.java b/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractView.java
index 8e867ed..5a31b50 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractView.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/webapp/AbstractView.java
@@ -30,67 +30,67 @@
 	 * is toc the help system will look for the files tocView.jsp
 	 * and tocToolbar.jsp
 	 */
-    public abstract String getName();
+	public abstract String getName();
 
-    /**
-     * @return a URL path, relative to /help which is the
-     * location of the jsp files in the advanced presentation
-     */
-    public abstract String getURL();
+	/**
+	 * @return a URL path, relative to /help which is the
+	 * location of the jsp files in the advanced presentation
+	 */
+	public abstract String getURL();
 
-    /**
-     * @return a URL path, relative to /help which is the
-     * location of the jsp files in the basic presentation
-     * @deprecated Help webapp no longer has basic view.
-     */
-    @Deprecated
+	/**
+	 * @return a URL path, relative to /help which is the
+	 * location of the jsp files in the basic presentation
+	 * @deprecated Help webapp no longer has basic view.
+	 */
+	@Deprecated
 	public String getBasicURL() {
-    	return getURL();
-    }
+		return getURL();
+	}
 
-    /**
-     * @return a URL relative to /help which is the location
-     * of the 16x16 image icon which will appear in the tab
-     */
-    public abstract String getImageURL();
+	/**
+	 * @return a URL relative to /help which is the location
+	 * of the 16x16 image icon which will appear in the tab
+	 */
+	public abstract String getImageURL();
 
-    /**
-     * @return a character which can be used as an accesskey to
-     * navigate directly to this view, or (char)0 if no
-     * acceskey is specified
-     */
-    public abstract char getKey();
+	/**
+	 * @return a character which can be used as an accesskey to
+	 * navigate directly to this view, or (char)0 if no
+	 * acceskey is specified
+	 */
+	public abstract char getKey();
 
-    /**
-     * Used to allow for views whose loading is deferred until
-     * their contents are visible
-     * @return true if this view has deferred loading
-     */
-    public boolean isDeferred() {
-    	return false;
-    }
+	/**
+	 * Used to allow for views whose loading is deferred until
+	 * their contents are visible
+	 * @return true if this view has deferred loading
+	 */
+	public boolean isDeferred() {
+		return false;
+	}
 
-    /**
-     * A user visible title for the view which will appear in the tooltip
-     * @param locale the locale of the client
-     * @return the tooltip text to be used in this locale
-     */
-    public abstract String getTitle(Locale locale);
+	/**
+	 * A user visible title for the view which will appear in the tooltip
+	 * @param locale the locale of the client
+	 * @return the tooltip text to be used in this locale
+	 */
+	public abstract String getTitle(Locale locale);
 
-    /**
-     * @return true if the view should be shown in the advanced presentation
-     */
-    public boolean isVisible() {
-        return true;
-    }
+	/**
+	 * @return true if the view should be shown in the advanced presentation
+	 */
+	public boolean isVisible() {
+		return true;
+	}
 
-    /**
-     * @return true if the view should be shown in the basic presentation
-     * @deprecated Help webapp no longer has basic view.
-     */
-    @Deprecated
+	/**
+	 * @return true if the view should be shown in the basic presentation
+	 * @deprecated Help webapp no longer has basic view.
+	 */
+	@Deprecated
 	public boolean isVisibleBasic() {
-        return true;
-    }
+		return true;
+	}
 
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/ICriterionDefinition.java b/org.eclipse.help/src/org/eclipse/help/ICriterionDefinition.java
index 1b13645..6094808 100644
--- a/org.eclipse.help/src/org/eclipse/help/ICriterionDefinition.java
+++ b/org.eclipse.help/src/org/eclipse/help/ICriterionDefinition.java
@@ -22,24 +22,24 @@
  */
 public interface ICriterionDefinition extends IUAElement{
 
-    /**
-     * Returns the id that this criterion definition is associated with
-     *
-     * @return the id
-     */
-    public String getId();
+	/**
+	 * Returns the id that this criterion definition is associated with
+	 *
+	 * @return the id
+	 */
+	public String getId();
 
-    /**
-     * Obtains the display name associated with this criterion definition.
-     *
-     * @return the name
-     */
-    public String getName();
+	/**
+	 * Obtains the display name associated with this criterion definition.
+	 *
+	 * @return the name
+	 */
+	public String getName();
 
-    /**
-     * Obtains the criterion value definitions contained in the criterion.
-     *
-     * @return array of ICriterionValueDefinition
-     */
-    public ICriterionValueDefinition[] getCriterionValueDefinitions();
+	/**
+	 * Obtains the criterion value definitions contained in the criterion.
+	 *
+	 * @return array of ICriterionValueDefinition
+	 */
+	public ICriterionValueDefinition[] getCriterionValueDefinitions();
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/ICriterionValueDefinition.java b/org.eclipse.help/src/org/eclipse/help/ICriterionValueDefinition.java
index 7051c73..bc85989 100644
--- a/org.eclipse.help/src/org/eclipse/help/ICriterionValueDefinition.java
+++ b/org.eclipse.help/src/org/eclipse/help/ICriterionValueDefinition.java
@@ -22,17 +22,17 @@
  */
 public interface ICriterionValueDefinition extends IUAElement {
 
-    /**
-     * Returns the id that this criterion value
-     *
-     * @return the id
-     */
-    public String getId();
+	/**
+	 * Returns the id that this criterion value
+	 *
+	 * @return the id
+	 */
+	public String getId();
 
-    /**
-     * Obtains the display name associated with this criterion value.
-     *
-     * @return the name
-     */
-    public String getName();
+	/**
+	 * Obtains the display name associated with this criterion value.
+	 *
+	 * @return the name
+	 */
+	public String getName();
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/IIndexEntry.java b/org.eclipse.help/src/org/eclipse/help/IIndexEntry.java
index fa11800..6cd378b 100644
--- a/org.eclipse.help/src/org/eclipse/help/IIndexEntry.java
+++ b/org.eclipse.help/src/org/eclipse/help/IIndexEntry.java
@@ -22,24 +22,24 @@
  */
 public interface IIndexEntry extends IUAElement {
 
-    /**
-     * Returns the keyword that this entry is associated with
-     *
-     * @return the keyword
-     */
-    public String getKeyword();
+	/**
+	 * Returns the keyword that this entry is associated with
+	 *
+	 * @return the keyword
+	 */
+	public String getKeyword();
 
-    /**
-     * Obtains topics assosiated with this index entry (i.e. keyword).
-     *
-     * @return array of ITopic
-     */
-    public ITopic[] getTopics();
+	/**
+	 * Obtains topics assosiated with this index entry (i.e. keyword).
+	 *
+	 * @return array of ITopic
+	 */
+	public ITopic[] getTopics();
 
-    /**
-     * Obtains the index subentries contained in the entry.
-     *
-     * @return the index subentries
-     */
-    public IIndexEntry[] getSubentries();
+	/**
+	 * Obtains the index subentries contained in the entry.
+	 *
+	 * @return the index subentries
+	 */
+	public IIndexEntry[] getSubentries();
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/IIndexEntry2.java b/org.eclipse.help/src/org/eclipse/help/IIndexEntry2.java
index 9b3c801..8bb18c0 100644
--- a/org.eclipse.help/src/org/eclipse/help/IIndexEntry2.java
+++ b/org.eclipse.help/src/org/eclipse/help/IIndexEntry2.java
@@ -20,11 +20,11 @@
  */
 public interface IIndexEntry2 extends IIndexEntry {
 
-    /**
-     * Obtains see references for this entry
-     *
-     * @return array of ITopic
-     */
-    public IIndexSee[] getSees();
+	/**
+	 * Obtains see references for this entry
+	 *
+	 * @return array of ITopic
+	 */
+	public IIndexSee[] getSees();
 
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/CachedEntityResolver.java b/org.eclipse.help/src/org/eclipse/help/internal/CachedEntityResolver.java
index 4e6162b..4e3467b 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/CachedEntityResolver.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/CachedEntityResolver.java
@@ -34,15 +34,15 @@
 
 	@Override
 	public InputSource resolveEntity(String publicId, String systemId) {
-        int index = systemId.lastIndexOf("/"); //$NON-NLS-1$
-        File cachedCopy = null;
-        if (index != -1) {
-        	cachedCopy = new File(HelpPlugin.getConfigurationDirectory(), "/DTDs"); //$NON-NLS-1$
-        	cachedCopy.mkdirs();
-        	cachedCopy = new File(cachedCopy, systemId.substring(index));
-        }
-        if (cachedCopy != null) {
-        	if (!cachedCopy.exists()) {
+		int index = systemId.lastIndexOf("/"); //$NON-NLS-1$
+		File cachedCopy = null;
+		if (index != -1) {
+			cachedCopy = new File(HelpPlugin.getConfigurationDirectory(), "/DTDs"); //$NON-NLS-1$
+			cachedCopy.mkdirs();
+			cachedCopy = new File(cachedCopy, systemId.substring(index));
+		}
+		if (cachedCopy != null) {
+			if (!cachedCopy.exists()) {
 				try {
 					URL system = new URL(systemId);
 					URLConnection sc = system.openConnection();
@@ -57,15 +57,15 @@
 					}
 				} catch (IOException e) {
 				}
-        	}
-	        try {
-	        	InputSource is = new InputSource(new FileReader(cachedCopy));
-	        	is.setSystemId(systemId);
-	        	is.setPublicId(publicId);
-	        	return is;
-	        } catch (FileNotFoundException e) {}
-        }
-    	return new InputSource(new StringReader("")); //$NON-NLS-1$
+			}
+			try {
+				InputSource is = new InputSource(new FileReader(cachedCopy));
+				is.setSystemId(systemId);
+				is.setPublicId(publicId);
+				return is;
+			} catch (FileNotFoundException e) {}
+		}
+		return new InputSource(new StringReader("")); //$NON-NLS-1$
 	}
 
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/HelpData.java b/org.eclipse.help/src/org/eclipse/help/internal/HelpData.java
index 0ac3212..5b14dda 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/HelpData.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/HelpData.java
@@ -72,19 +72,19 @@
 			}
 			String helpDataFile = Platform.getPreferencesService().getString(HelpPlugin.PLUGIN_ID, HelpPlugin.HELP_DATA_KEY, "", null); //$NON-NLS-1$
 			if (helpDataFile.length() > 0) {
-			    if (helpDataFile.startsWith(PLUGINS_ROOT_SLASH)) {
-				    int nextSlash = helpDataFile.indexOf('/', PLUGINS_ROOT_SLASH.length());
-				    if (nextSlash > 0) {
-					    pluginId = helpDataFile.substring(PLUGINS_ROOT_SLASH.length(), nextSlash);
-				        helpDataFile = helpDataFile.substring(nextSlash + 1);
-				    }
+				if (helpDataFile.startsWith(PLUGINS_ROOT_SLASH)) {
+					int nextSlash = helpDataFile.indexOf('/', PLUGINS_ROOT_SLASH.length());
+					if (nextSlash > 0) {
+						pluginId = helpDataFile.substring(PLUGINS_ROOT_SLASH.length(), nextSlash);
+						helpDataFile = helpDataFile.substring(nextSlash + 1);
+					}
 				}
 			}
 			if (helpDataFile.length() > 0 && pluginId != null) {
 				Bundle bundle = Platform.getBundle(pluginId);
 				if (bundle != null) {
-				    URL helpDataUrl = bundle.getEntry(helpDataFile);
-				    productHelpData = new HelpData(helpDataUrl);
+					URL helpDataUrl = bundle.getEntry(helpDataFile);
+					productHelpData = new HelpData(helpDataUrl);
 				}
 			}
 			if (productHelpData == null) {
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/UAElement.java b/org.eclipse.help/src/org/eclipse/help/internal/UAElement.java
index 85d4614..ef37b0c 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/UAElement.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/UAElement.java
@@ -52,13 +52,13 @@
 	protected List<UAElement> children;
 	private Filter[] filters;
 	private Expression enablementExpression;
-    private IUAElement src;
+	private IUAElement src;
 
 	private class Filter {
 		public Filter(String name, String value, boolean isNegated) {
-            this.name = name;
-            this.value = value;
-            this.isNegated = isNegated;
+			this.name = name;
+			this.value = value;
+			this.isNegated = isNegated;
 		}
 		String name;
 		String value;
@@ -76,9 +76,9 @@
 	public UAElement(String name, IUAElement src) {
 		this(name);
 		if (src instanceof UAElement) {
-		    copyFilters(src);
+			copyFilters(src);
 		} else {
-		    this.src = src;
+			this.src = src;
 		}
 	}
 
@@ -86,11 +86,11 @@
 		UAElement sourceElement = (UAElement)src;
 		String filter = sourceElement.getAttribute(ATTRIBUTE_FILTER);
 		if (filter != null && filter.length() > 0) {
-		    this.setAttribute(ATTRIBUTE_FILTER, filter);
+			this.setAttribute(ATTRIBUTE_FILTER, filter);
 		}
 		filters = sourceElement.getFilterElements();
 		this.enablementExpression = sourceElement.enablementExpression;
-	    this.src = sourceElement.src;
+		this.src = sourceElement.src;
 	}
 
 	private Filter[] getFilterElements() {
@@ -237,7 +237,7 @@
 		importElement(newChild);
 		element.insertBefore(newChild.element, refChild.element);
 		newChild.parent = this;
-        getChildren();
+		getChildren();
 		if (children != null) {
 			int index = children.indexOf(refChild);
 			if (index < 0) {
@@ -267,19 +267,19 @@
 				return false;
 			}
 		}
-        if (enablementExpression != null) {
-		    try {
+		if (enablementExpression != null) {
+			try {
 				return enablementExpression.evaluate(context) == EvaluationResult.TRUE;
 			} catch (CoreException e) {
 				return false;
 			}
-        }
+		}
 		return true;
 	}
 
 	public void removeChild(UAElement elementToRemove) {
 
-	    element.removeChild(elementToRemove.element);
+		element.removeChild(elementToRemove.element);
 		elementToRemove.parent = null;
 
 		if (children != null) {
@@ -299,11 +299,11 @@
 		Document ownerDocument = element.getOwnerDocument();
 		if (!ownerDocument.equals(elementToImport.getOwnerDocument()) ) {
 			elementToImport = (Element)ownerDocument.importNode(elementToImport, true);
-		    uaElementToImport.children = null;
+			uaElementToImport.children = null;
 		}  else {
 			if (elementToImport.getParentNode() != null) {
 				elementToImport = (Element)ownerDocument.importNode(elementToImport, true);
-			    uaElementToImport.children = null;
+				uaElementToImport.children = null;
 			} else {
 			}
 		}
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/context/Context.java b/org.eclipse.help/src/org/eclipse/help/internal/context/Context.java
index 4766a31..633cf73 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/context/Context.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/context/Context.java
@@ -49,7 +49,7 @@
 	}
 
 	public void mergeContext(IContext src) {
-	    String text = src.getText();
+		String text = src.getText();
 		if (getText() == null || getText().length() == 0) {
 			setText(text);
 		}
@@ -149,9 +149,9 @@
 			node = node.getNextSibling();
 		}
 		if (text != null) {
-		    Document document = getElement().getOwnerDocument();
-		    Node description = getElement().appendChild(document.createElement(ELEMENT_DESCRIPTION));
-		    description.appendChild(document.createTextNode(text));
+			Document document = getElement().getOwnerDocument();
+			Node description = getElement().appendChild(document.createElement(ELEMENT_DESCRIPTION));
+			description.appendChild(document.createTextNode(text));
 		}
 	}
 
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/context/ContextFileProvider.java b/org.eclipse.help/src/org/eclipse/help/internal/context/ContextFileProvider.java
index c6f8a34..3e8b017 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/context/ContextFileProvider.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/context/ContextFileProvider.java
@@ -103,10 +103,10 @@
 		default:
 			// Merge the contexts - this is the least common case
 			Context newContext = new Context(matches.get(0), shortContextId);
-		    for (int i = 1; i < matches.size(); i++) {
-		    	newContext.mergeContext(matches.get(i));
-		    }
-		    return newContext;
+			for (int i = 1; i < matches.size(); i++) {
+				newContext.mergeContext(matches.get(i));
+			}
+			return newContext;
 		}
 	}
 
@@ -197,11 +197,11 @@
 	private Map<String, Context> loadContexts(ContextFile descriptor, String locale) {
 		// load the file
 		try (InputStream in = ResourceLocator.openFromPlugin(descriptor.getBundleId(), descriptor.getFile(), locale)) {
-	    	if (in != null) {
+			if (in != null) {
 				return loadContextsFromInputStream(descriptor, locale, in);
 			} else {
-	    		throw new FileNotFoundException();
-	    	}
+				throw new FileNotFoundException();
+			}
 		} catch (Throwable t) {
 			String msg = "Error reading context-sensitive help file /\"" + getErrorPath(descriptor, locale) + "\" (skipping file)"; //$NON-NLS-1$ //$NON-NLS-2$
 			HelpPlugin.logError(msg, t);
@@ -238,7 +238,7 @@
 					if (id != null) {
 						Object existingContext =  contexts.get(id);
 						if (existingContext==null)
-						    contexts.put(id, context);
+							contexts.put(id, context);
 						else
 						{
 							((Context)existingContext).mergeContext(context);
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionDocumentReader.java b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionDocumentReader.java
index 278a316..6272401 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionDocumentReader.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionDocumentReader.java
@@ -46,7 +46,7 @@
 					fixCriterionId((Element)node);
 				}
 				prune(node);
-			    node = node.getNextSibling();
+				node = node.getNextSibling();
 			} else {
 				node = node.getNextSibling();
 			}
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFile.java b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFile.java
index f46a1f2..43c801d 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFile.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFile.java
@@ -21,32 +21,32 @@
 
 public class CriteriaDefinitionFile {
 
-    private String pluginId;
-    private String file;
-    private String locale;
+	private String pluginId;
+	private String file;
+	private String locale;
 
-    public CriteriaDefinitionFile(String pluginId, String file, String locale) {
-        this.pluginId = pluginId;
-        this.file = file;
-        this.locale = locale;
-    }
+	public CriteriaDefinitionFile(String pluginId, String file, String locale) {
+		this.pluginId = pluginId;
+		this.file = file;
+		this.locale = locale;
+	}
 
-    public String getFile() {
-        return file;
-    }
+	public String getFile() {
+		return file;
+	}
 
-    public String getLocale() {
-        return locale;
-    }
+	public String getLocale() {
+		return locale;
+	}
 
-    public String getPluginId() {
-        return pluginId;
-    }
+	public String getPluginId() {
+		return pluginId;
+	}
 
-    public InputStream getInputStream() throws IOException {
-        if (pluginId != null)
-            return ResourceLocator.openFromPlugin(pluginId, file, locale);
-        else
-        	return new FileInputStream(file);
-    }
+	public InputStream getInputStream() throws IOException {
+		if (pluginId != null)
+			return ResourceLocator.openFromPlugin(pluginId, file, locale);
+		else
+			return new FileInputStream(file);
+	}
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileParser.java b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileParser.java
index 9a1b4ab..eedef31 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileParser.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileParser.java
@@ -26,7 +26,7 @@
 
 	private DocumentReader reader;
 
-    public CriteriaDefinitionContribution parse(CriteriaDefinitionFile criteriaDefinitionFile) throws IOException, SAXException, ParserConfigurationException {
+	public CriteriaDefinitionContribution parse(CriteriaDefinitionFile criteriaDefinitionFile) throws IOException, SAXException, ParserConfigurationException {
 		if (reader == null) {
 			reader = new CriteriaDefinitionDocumentReader();
 		}
@@ -34,13 +34,13 @@
 		if (in != null) {
 			CriteriaDefinition criteria = (CriteriaDefinition)reader.read(in);
 			CriteriaDefinitionContribution contrib = new CriteriaDefinitionContribution();
-	    	contrib.setId('/' + criteriaDefinitionFile.getPluginId() + '/' + criteriaDefinitionFile.getFile());
+			contrib.setId('/' + criteriaDefinitionFile.getPluginId() + '/' + criteriaDefinitionFile.getFile());
 			contrib.setCriteriaDefinition(criteria);
 			contrib.setLocale(criteriaDefinitionFile.getLocale());
 			return contrib;
 		}
-    	else {
-    		throw new FileNotFoundException();
-    	}
-    }
+		else {
+			throw new FileNotFoundException();
+		}
+	}
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileProvider.java b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileProvider.java
index b2da5d7..7bd8b4e 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileProvider.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionFileProvider.java
@@ -49,17 +49,17 @@
 				StringBuilder buffer = new StringBuilder(ERROR_READING_HELP_CRITERIA_DEFINITION_FILE);
 				buffer.append(getCriteriaDefinitionFilePath(criteriaDefinitionFile));
 				buffer.append("\" at line "); //$NON-NLS-1$
-			    buffer.append(spe.getLineNumber());
-			    buffer.append(". "); //$NON-NLS-1$
-	            buffer.append(spe.getMessage());
+				buffer.append(spe.getLineNumber());
+				buffer.append(". "); //$NON-NLS-1$
+				buffer.append(spe.getMessage());
 
-	            // Use the contained exception.
-	            Exception x = spe;
-	            if (spe.getException() != null)
-	                x = spe.getException();
-	            HelpPlugin.logError(buffer.toString(), x);
+				// Use the contained exception.
+				Exception x = spe;
+				if (spe.getException() != null)
+					x = spe.getException();
+				HelpPlugin.logError(buffer.toString(), x);
 
-	        }
+			}
 			catch (Throwable t) {
 				String msg = ERROR_READING_HELP_CRITERIA_DEFINITION_FILE + getCriteriaDefinitionFilePath(criteriaDefinitionFile) + "\" (skipping file)"; //$NON-NLS-1$
 				HelpPlugin.logError(msg, t);
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionManager.java b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionManager.java
index 4927035..8eafad2 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionManager.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriteriaDefinitionManager.java
@@ -47,7 +47,7 @@
 			HelpPlugin.getTocManager().getTocs(locale);
 			long start = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_CRITERIA) {
-			    System.out.println("Start to update criteria definition for locale " + locale); //$NON-NLS-1$
+				System.out.println("Start to update criteria definition for locale " + locale); //$NON-NLS-1$
 			}
 			List<CriteriaDefinitionContribution> contributions = new ArrayList<>(
 					Arrays.asList(readCriteriaDefinitionContributions(locale)));
@@ -56,7 +56,7 @@
 			criteriaDefinitionsByLocale.put(locale, criteriaDefinition);
 			long stop = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_CRITERIA) {
-			    System.out.println("Milliseconds to update criteria definition for locale " + locale +  " = " + (stop - start)); //$NON-NLS-1$ //$NON-NLS-2$
+				System.out.println("Milliseconds to update criteria definition for locale " + locale +  " = " + (stop - start)); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		return criteriaDefinition;
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriterionResource.java b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriterionResource.java
index ddc017e..d585a62 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriterionResource.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/criteria/CriterionResource.java
@@ -86,8 +86,8 @@
 							continue outer;
 						}
 					}
-				    CriterionResource criterionResource = new CriterionResource(elementName, values);
-				    criteriaList.add(criterionResource);
+					CriterionResource criterionResource = new CriterionResource(elementName, values);
+					criteriaList.add(criterionResource);
 				}
 			}
 		}
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentReader.java b/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentReader.java
index ef39d88..2993f24 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentReader.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentReader.java
@@ -73,7 +73,7 @@
 			cachedBuilder = createManagedBuilder();
 		}
 		cachedBuilder.inUse = true;
-        return cachedBuilder;
+		return cachedBuilder;
 	}
 
 	private ManagedBuilder createManagedBuilder() throws FactoryConfigurationError, ParserConfigurationException {
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentWriter.java b/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentWriter.java
index 9fd270b..eee9127 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentWriter.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/dynamic/DocumentWriter.java
@@ -39,17 +39,17 @@
 	}
 
 	public String writeString(Element element, boolean xmlDecl) throws TransformerException, TransformerConfigurationException {
-        byte[] bytes = writeBytes(element, xmlDecl);
-        String encoding = transformer.getOutputProperty(OutputKeys.ENCODING);
-        if (encoding == null) {
-        	encoding = "UTF-8"; //$NON-NLS-1$
-        }
-        try {
-        	return new String(bytes, encoding);
-        }
-        catch (UnsupportedEncodingException e) {
-        	return new String(bytes);
-        }
+		byte[] bytes = writeBytes(element, xmlDecl);
+		String encoding = transformer.getOutputProperty(OutputKeys.ENCODING);
+		if (encoding == null) {
+			encoding = "UTF-8"; //$NON-NLS-1$
+		}
+		try {
+			return new String(bytes, encoding);
+		}
+		catch (UnsupportedEncodingException e) {
+			return new String(bytes);
+		}
 	}
 
 	public byte[] writeBytes(UAElement element, boolean xmlDecl) throws TransformerException, TransformerConfigurationException {
@@ -59,8 +59,8 @@
 	public byte[] writeBytes(Element element, boolean xmlDecl) throws TransformerException, TransformerConfigurationException {
 		Document document = element.getOwnerDocument();
 		if (transformer == null) {
-	        TransformerFactory factory = TransformerFactory.newInstance();
-	        transformer = factory.newTransformer();
+			TransformerFactory factory = TransformerFactory.newInstance();
+			transformer = factory.newTransformer();
 			transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
 		}
 		DocumentType docType = document.getDoctype();
@@ -77,9 +77,9 @@
 		transformer.setOutputProperties(props);
 
 		DOMSource source = new DOMSource(element);
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        StreamResult result = new StreamResult(out);
-        transformer.transform(source, result);
-        return out.toByteArray();
+		ByteArrayOutputStream out = new ByteArrayOutputStream();
+		StreamResult result = new StreamResult(out);
+		transformer.transform(source, result);
+		return out.toByteArray();
 	}
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/entityresolver/LocalEntityResolver.java b/org.eclipse.help/src/org/eclipse/help/internal/entityresolver/LocalEntityResolver.java
index 070957d..8c7f434 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/entityresolver/LocalEntityResolver.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/entityresolver/LocalEntityResolver.java
@@ -33,20 +33,20 @@
 	public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
 		int index = systemId.lastIndexOf("/"); //$NON-NLS-1$
 		if (index >= 0) {
-		    Bundle helpBundle = HelpPlugin.getDefault().getBundle();
-		    String dtdPath = "dtds/internal" + systemId.substring(index); //$NON-NLS-1$
-		    URL dtdURL = FileLocator.find(helpBundle, new Path(dtdPath), null);
-		    if (dtdURL != null) {
-		    	InputStream stream = dtdURL.openStream();
-		    	if (stream != null) {
+			Bundle helpBundle = HelpPlugin.getDefault().getBundle();
+			String dtdPath = "dtds/internal" + systemId.substring(index); //$NON-NLS-1$
+			URL dtdURL = FileLocator.find(helpBundle, new Path(dtdPath), null);
+			if (dtdURL != null) {
+				InputStream stream = dtdURL.openStream();
+				if (stream != null) {
 					InputSource is = new InputSource(stream);
-		        	is.setSystemId(systemId);
-		        	is.setPublicId(publicId);
+					is.setSystemId(systemId);
+					is.setPublicId(publicId);
 					return is;
 				}
-		    }
+			}
 		}
-	    return new InputSource(new StringReader("")); //$NON-NLS-1$
+		return new InputSource(new StringReader("")); //$NON-NLS-1$
 	}
 
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/extension/ContentExtensionFileParser.java b/org.eclipse.help/src/org/eclipse/help/internal/extension/ContentExtensionFileParser.java
index b4beb61..e14a375 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/extension/ContentExtensionFileParser.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/extension/ContentExtensionFileParser.java
@@ -47,10 +47,10 @@
 	/*
 	 * Parses the specified content extension XML file into model elements.
 	 */
-    public ContentExtension[] parse(Bundle bundle, String path) throws IOException, SAXException, ParserConfigurationException {
-    	if (reader == null) {
-    		reader = new DocumentReader();
-    	}
+	public ContentExtension[] parse(Bundle bundle, String path) throws IOException, SAXException, ParserConfigurationException {
+		if (reader == null) {
+			reader = new DocumentReader();
+		}
 		URL url= FileLocator.find(bundle, new Path(path), null);
 		if (url != null) {
 			InputStream in = url.openStream();
@@ -64,12 +64,12 @@
 			IUAElement[] children = extension.getChildren();
 			ContentExtension[] result = new ContentExtension[children.length];
 			System.arraycopy(children, 0, result, 0, children.length);
-	    	return result;
+			return result;
 		}
 		else {
 			throw new FileNotFoundException();
 		}
-    }
+	}
 
 	private Map<String, String[]> getRequiredAttributes() {
 		if (requiredAttributes == null) {
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java
index 490a3a7..c7b5d69 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java
@@ -221,7 +221,7 @@
 				}
 				String title = element.getAttribute("title"); //$NON-NLS-1$
 				if (title != null) {
-			        topic.setLabel(title);
+					topic.setLabel(title);
 				}
 			}
 			return UNHANDLED;
@@ -240,9 +240,9 @@
 			int c1 = getCategory(o1);
 			int c2 = getCategory(o2);
 			if (c1 == c2) {
-                if (o1 instanceof IndexSee) {
-                	return ((IndexSee)o1).compareTo(o2);
-                }
+				if (o1 instanceof IndexSee) {
+					return ((IndexSee)o1).compareTo(o2);
+				}
 				// same type of object; compare alphabetically
 				String s1 = getLabel(o1);
 				String s2 = getLabel(o2);
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexDocumentReader.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexDocumentReader.java
index a35976f..f5d8314 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexDocumentReader.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexDocumentReader.java
@@ -42,7 +42,7 @@
 					fixTopicAttributes((Element)node);
 				}
 				prune(node);
-			    node = node.getNextSibling();
+				node = node.getNextSibling();
 			} else {
 				node = node.getNextSibling();
 			}
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFile.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFile.java
index d97febe..2aca05f 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFile.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFile.java
@@ -22,32 +22,32 @@
 
 public class IndexFile {
 
-    private String pluginId;
-    private String file;
-    private String locale;
+	private String pluginId;
+	private String file;
+	private String locale;
 
-    public IndexFile(String pluginId, String file, String locale) {
-        this.pluginId = pluginId;
-        this.file = file;
-        this.locale = locale;
-    }
+	public IndexFile(String pluginId, String file, String locale) {
+		this.pluginId = pluginId;
+		this.file = file;
+		this.locale = locale;
+	}
 
-    public String getFile() {
-        return file;
-    }
+	public String getFile() {
+		return file;
+	}
 
-    public String getLocale() {
-        return locale;
-    }
+	public String getLocale() {
+		return locale;
+	}
 
-    public String getPluginId() {
-        return pluginId;
-    }
+	public String getPluginId() {
+		return pluginId;
+	}
 
-    public InputStream getInputStream() throws IOException {
-        if (pluginId != null)
-            return ResourceLocator.openFromPlugin(pluginId, file, locale);
-        else
-        	return new FileInputStream(file);
-    }
+	public InputStream getInputStream() throws IOException {
+		if (pluginId != null)
+			return ResourceLocator.openFromPlugin(pluginId, file, locale);
+		else
+			return new FileInputStream(file);
+	}
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileParser.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileParser.java
index 9444037..ccdd180 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileParser.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileParser.java
@@ -29,7 +29,7 @@
 
 	private DocumentReader reader;
 
-    public IndexContribution parse(IndexFile indexFile) throws IOException, SAXException, ParserConfigurationException {
+	public IndexContribution parse(IndexFile indexFile) throws IOException, SAXException, ParserConfigurationException {
 		if (reader == null) {
 			reader = new IndexDocumentReader();
 		}
@@ -45,5 +45,5 @@
 				throw new FileNotFoundException();
 			}
 		}
-    }
+	}
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileProvider.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileProvider.java
index 5db130a..d08483f 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileProvider.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexFileProvider.java
@@ -49,17 +49,17 @@
 				StringBuilder buffer = new StringBuilder(ERROR_READING_HELP_KEYWORD_INDEX_FILE);
 				buffer.append(getIndexFilePath(indexFile));
 				buffer.append("\" at line "); //$NON-NLS-1$
-			    buffer.append(spe.getLineNumber());
-			    buffer.append(". "); //$NON-NLS-1$
-	            buffer.append(spe.getMessage());
+				buffer.append(spe.getLineNumber());
+				buffer.append(". "); //$NON-NLS-1$
+				buffer.append(spe.getMessage());
 
-	            // Use the contained exception.
-	            Exception x = spe;
-	            if (spe.getException() != null)
-	                x = spe.getException();
-	            HelpPlugin.logError(buffer.toString(), x);
+				// Use the contained exception.
+				Exception x = spe;
+				if (spe.getException() != null)
+					x = spe.getException();
+				HelpPlugin.logError(buffer.toString(), x);
 
-	        }
+			}
 			catch (Throwable t) {
 				String msg = ERROR_READING_HELP_KEYWORD_INDEX_FILE + getIndexFilePath(indexFile) + "\" (skipping file)"; //$NON-NLS-1$
 				HelpPlugin.logError(msg, t);
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexManager.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexManager.java
index 45e3adc..3e189fb 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexManager.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexManager.java
@@ -53,7 +53,7 @@
 			HelpPlugin.getTocManager().getTocs(locale);  // Ensure Tocs and index not built simultaneously
 			long start = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_INDEX) {
-			    System.out.println("Start to update keyword index for locale " + locale); //$NON-NLS-1$
+				System.out.println("Start to update keyword index for locale " + locale); //$NON-NLS-1$
 			}
 			List<IndexContribution> contributions = new ArrayList<>(Arrays.asList(readIndexContributions(locale)));
 			filterIndexContributions(contributions);
@@ -62,7 +62,7 @@
 			indexesByLocale.put(locale, index);
 			long stop = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_INDEX) {
-			    System.out.println("Milliseconds to update keyword index for locale " + locale +  " = " + (stop - start)); //$NON-NLS-1$ //$NON-NLS-2$
+				System.out.println("Milliseconds to update keyword index for locale " + locale +  " = " + (stop - start)); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		return index;
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexSee.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexSee.java
index a617295..b8aef02 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexSee.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexSee.java
@@ -79,9 +79,9 @@
 				if (i >= targetPath.length) {
 					return 1;
 				}
-                if (getCategory(path[i]) != getCategory(targetPath[i])) {
-                	return getCategory(path[i]) - getCategory(targetPath[i]);
-                }
+				if (getCategory(path[i]) != getCategory(targetPath[i])) {
+					return getCategory(path[i]) - getCategory(targetPath[i]);
+				}
 				int result = collator.compare(path[i], targetPath[i]);
 				if (result != 0) {
 					return result;
@@ -105,7 +105,7 @@
 			result += subpaths[i].getKeyword().hashCode();
 		}
 		return result;
-    }
+	}
 
 	@Override
 	public boolean isSeeAlso() {
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocAssembler.java b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocAssembler.java
index ec267bc..0cfcff2 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocAssembler.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocAssembler.java
@@ -104,15 +104,15 @@
 			boolean isLinkedId = linkedContributionIds.containsKey(contrib.getId());
 			if (!isValidLinkTo && !isLinkedId) {
 				if (contrib.isPrimary()) {
-				    books.add(contrib);
-				    if (HelpPlugin.DEBUG_TOC) {
+					books.add(contrib);
+					if (HelpPlugin.DEBUG_TOC) {
 						String msg = "Primary Toc Found: " + contrib.getId(); //$NON-NLS-1$
 						String linkTo = contrib.getLinkTo();
 						if (linkTo != null) {
 							msg += " - cannot find link to: "; //$NON-NLS-1$
 							msg += linkTo;
 						}
-					    System.out.println(msg);
+						System.out.println(msg);
 					}
 				} else {
 					if (HelpPlugin.DEBUG_TOC) {
@@ -171,7 +171,7 @@
 			try {
 				String id = contrib.getId();
 				if (!tocsToFilter.contains(id)) {
-				    processor.process((Toc)contrib.getToc(), id);
+					processor.process((Toc)contrib.getToc(), id);
 				}
 			}
 			catch (Throwable t) {
@@ -389,7 +389,7 @@
 			if (element instanceof Anchor) {
 				if (tocsToFilter.contains(id)) {
 					return UNHANDLED;
-			    }
+				}
 				Anchor anchor = (Anchor)element;
 				UAElement parent = anchor.getParentElement();
 				if (parent != null) {
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileParser.java b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileParser.java
index 4223191..5cb49fd 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileParser.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileParser.java
@@ -47,5 +47,5 @@
 				throw new FileNotFoundException();
 			}
 		}
-    }
+	}
 }
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileProvider.java b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileProvider.java
index 6e8a471..fe992d1 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileProvider.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocFileProvider.java
@@ -53,7 +53,7 @@
 				if (t instanceof SAXParseException) {
 					SAXParseException spe = (SAXParseException) t;
 					locationInfo = " at line " + spe.getLineNumber()  //$NON-NLS-1$
-					             + ", column " + spe.getColumnNumber(); //$NON-NLS-1$
+								 + ", column " + spe.getColumnNumber(); //$NON-NLS-1$
 				}
 				String pluginId = tocFiles[i].getPluginId();
 				String file = tocFiles[i].getFile();
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocManager.java b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocManager.java
index a6138c7..d7f9a66 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocManager.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocManager.java
@@ -65,7 +65,7 @@
 		if (tocs == null) {
 			long start = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_TOC) {
-			    System.out.println("Start to build toc for locale " + locale); //$NON-NLS-1$
+				System.out.println("Start to build toc for locale " + locale); //$NON-NLS-1$
 			}
 			Set<String> tocsToFilter = getIgnoredTocContributions();
 			TocContribution[] raw = getRootTocContributions(locale, tocsToFilter);
@@ -92,7 +92,7 @@
 			tocsByLocale.put(locale, tocs);
 			long stop = System.currentTimeMillis();
 			if (HelpPlugin.DEBUG_TOC) {
-			    System.out.println("Milliseconds to update toc for locale " + locale +  " = " + (stop - start)); //$NON-NLS-1$ //$NON-NLS-2$
+				System.out.println("Milliseconds to update toc for locale " + locale +  " = " + (stop - start)); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		return tocs;
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocSorter.java b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocSorter.java
index 1583d19..46f92a1 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/toc/TocSorter.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/toc/TocSorter.java
@@ -80,7 +80,7 @@
 			}
 			map.put(key, toc.getToc().getLabel());
 		}
-	    return map;
+		return map;
 	}
 
 	/*
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java b/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java
index d203cb9..333638c 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java
@@ -35,7 +35,7 @@
 		}
 		if (toc.isSorted()) {
 			sort(toc, toc.getTopics());
-	    }
+		}
 		ITopic[] childTopics = toc.getTopics();
 		for (int i = 0; i < childTopics.length; i++) {
 			sortChildren((Topic)childTopics[i]);
@@ -45,7 +45,7 @@
 	private void sortChildren(Topic topic) {
 		if (topic.isSorted()) {
 			sort(topic, topic.getSubtopics());
-	    }
+		}
 		ITopic[] childTopics = topic.getSubtopics();
 		for (int i = 0; i < childTopics.length; i++) {
 			sortChildren((Topic)childTopics[i]);
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/util/ProductPreferences.java b/org.eclipse.help/src/org/eclipse/help/internal/util/ProductPreferences.java
index 02728b2..3062c59 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/util/ProductPreferences.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/util/ProductPreferences.java
@@ -133,7 +133,7 @@
 				int nextSlash = helpDataFile.indexOf('/', PLUGINS_ROOT_SLASH.length());
 				if (nextSlash > 0) {
 					helpDataPluginId = helpDataFile.substring(PLUGINS_ROOT_SLASH.length(), nextSlash);
-				    helpDataPath = helpDataFile.substring(nextSlash + 1);
+					helpDataPath = helpDataFile.substring(nextSlash + 1);
 				}
 			}
 			Bundle bundle = null;
@@ -141,9 +141,9 @@
 				bundle = Platform.getBundle(helpDataPluginId);
 			}
 			if (bundle != null) {
-			    URL helpDataUrl = bundle.getEntry(helpDataPath);
-			    HelpData helpData = new HelpData(helpDataUrl);
-			    return helpData.getTocOrder();
+				URL helpDataUrl = bundle.getEntry(helpDataPath);
+				HelpData helpData = new HelpData(helpDataUrl);
+				return helpData.getTocOrder();
 			}
 		}
 		else {
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/util/ResourceLocator.java b/org.eclipse.help/src/org/eclipse/help/internal/util/ResourceLocator.java
index f8cf419..4a57d21 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/util/ResourceLocator.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/util/ResourceLocator.java
@@ -152,7 +152,7 @@
 			return null;
 		}
 
-	    checkForDuplicateExtensionElements(elements);
+		checkForDuplicateExtensionElements(elements);
 
 		for (int i = 0; i < elements.length; i++) {
 			IConfigurationElement element = elements[i];
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/util/URLCoder.java b/org.eclipse.help/src/org/eclipse/help/internal/util/URLCoder.java
index 97dd70c..b94b6d3 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/util/URLCoder.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/util/URLCoder.java
@@ -47,7 +47,7 @@
 
 	private static boolean isAlphaNumericOrDot(byte b) {
 		return (b >= '0' && b <= '9') || (b >= 'a' && b <= 'z') || ( b >= 'A' && b <= 'Z')
-		   || b == '.';
+			|| b == '.';
 	}
 
 	private static byte[] urlDecode(String encodedURL) {
diff --git a/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF b/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF
index f4f3d7c..3cbb416 100644
--- a/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF
+++ b/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Doc
 Bundle-SymbolicName: org.eclipse.ua.tests.doc;singleton:=true
-Bundle-Version: 1.0.600.qualifier
+Bundle-Version: 1.0.700.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.equinox.http.registry;bundle-version="1.0.200",
diff --git a/org.eclipse.ua.tests.doc/pom.xml b/org.eclipse.ua.tests.doc/pom.xml
index 781c9dc..5c24c5d 100644
--- a/org.eclipse.ua.tests.doc/pom.xml
+++ b/org.eclipse.ua.tests.doc/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.ua</groupId>
   <artifactId>org.eclipse.ua.tests.doc</artifactId>
-  <version>1.0.600-SNAPSHOT</version>
+  <version>1.0.700-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
   <properties>
diff --git a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckLinkAction.java b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckLinkAction.java
index 37cfd50..7605b5f 100644
--- a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckLinkAction.java
+++ b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckLinkAction.java
@@ -84,17 +84,17 @@
 			if (!opened) {
 				String containingPage = links.get(next);
 				System.out.println("Cannot open link from " + trimPath(containingPage)
-				       + " to " + trimPath(next));
+						+ " to " + trimPath(next));
 			}
 		}
 		//EclipseConnector.setNotFoundCallout(null);
-	    setPageNotFoundPreference(errorPage);
+		setPageNotFoundPreference(errorPage);
 		links = new HashMap<>();
 		System.out.println("End check links");
 	}
 
 	private String trimPath(String next) {
-        String result = next;
+		String result = next;
 		int htIndex = result.indexOf(HELP_TOPIC);
 		if (htIndex >  0) {
 			result = result.substring(htIndex + HELP_TOPIC.length());
diff --git a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckTocAction.java b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckTocAction.java
index ae6674e..62cc9b4 100644
--- a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckTocAction.java
+++ b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/CheckTocAction.java
@@ -32,11 +32,11 @@
 	private IWorkbenchWindow window;
 	public static List<BrokenLink> errors = new ArrayList<>();
 
-    public static void showErrors() {
-    	if (errors.size() == 0) {
-    		reportStatus("No errors detected in load");
-    	}
-    	for (int i = 0; i < errors.size(); i++) {
+	public static void showErrors() {
+		if (errors.size() == 0) {
+			reportStatus("No errors detected in load");
+		}
+		for (int i = 0; i < errors.size(); i++) {
 			BrokenLink link = errors.get(i);
 			reportStatus("Invalid link in \"" + link.getTocID() + "\": " + link.getHref());
 		}
@@ -67,7 +67,7 @@
 			return;
 		}
 		Toc[] tocsToCheck = dlg.getTocsToCheck();
-	    checkTocFilesExist(tocsToCheck);
+		checkTocFilesExist(tocsToCheck);
 
 	}
 
diff --git a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/LoadTocAction.java b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/LoadTocAction.java
index ec5cd88..f75f4ca 100644
--- a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/LoadTocAction.java
+++ b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/actions/LoadTocAction.java
@@ -48,7 +48,7 @@
 	private static List<String> errors = new ArrayList<>();
 	private String lastPage;
 
-    private class MonitorThread extends Thread {
+	private class MonitorThread extends Thread {
 		String lastHref;
 		int timesSame = 0;
 		boolean isComplete = false;
@@ -77,7 +77,7 @@
 		}
 	}
 
-    public static void showErrors() {
+	public static void showErrors() {
 		if (errors == null) return;
 		if (errors.size() == 0) {
 			reportStatus("Testing complete, no errors found");
@@ -101,7 +101,7 @@
 		@Override
 		public void notFound(String url) {
 			if (errors != null) {
-			    errors.add("Error opening " + lastPage + "\n   cannot load " + url);
+				errors.add("Error opening " + lastPage + "\n   cannot load " + url);
 			}
 		}
 	}
@@ -183,9 +183,9 @@
 		firstHref = null;
 		topicList = new ArrayList<>();
 		for (Toc toc : tocsToCheck) {
-		    reportStatus("Test level = " + testKind + " testing " + toc.getTocContribution().getId());
-		    ITopic[] topics = toc.getTopics();
-		    addTopics(topics);
+			reportStatus("Test level = " + testKind + " testing " + toc.getTocContribution().getId());
+			ITopic[] topics = toc.getTopics();
+			addTopics(topics);
 		}
 		lastPage = "No pages read";
 		LinkProvider linkProvider = new LinkProvider(topicList);
@@ -194,7 +194,7 @@
 		errors = new ArrayList<>();
 		if (linkProvider.hasNext()) {
 			firstHref = linkProvider.next();
-		    PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(firstHref);
+			PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(firstHref);
 			new MonitorThread().start();
 		} else {
 			reportStatus("No pages to check");
@@ -210,10 +210,10 @@
 	private void addTopic(ITopic nextTopic) {
 		String href = nextTopic.getHref();
 		if (href != null && !isFiltered(href)) {
-		    if (firstHref == null) {
-		    	firstHref = href;
-		    }
-		    topicList.add(href);
+			if (firstHref == null) {
+				firstHref = href;
+			}
+			topicList.add(href);
 		}
 		addTopics(nextTopic.getSubtopics());
 	}
diff --git a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/dialogs/SelectTocDialog.java b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/dialogs/SelectTocDialog.java
index 1a72904..248ae8d 100644
--- a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/dialogs/SelectTocDialog.java
+++ b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/dialogs/SelectTocDialog.java
@@ -99,7 +99,7 @@
 	public Toc[] getTocsToCheck() {
 		ArrayList<Toc> selected = new ArrayList<>();
 		for (int selectedToc : selectedTocs) {
-		    selected.add(tocs[selectedToc]);
+			selected.add(tocs[selectedToc]);
 		}
 		Toc[] tocsToCheck = selected.toArray(new Toc[0]) ;
 		return tocsToCheck;
diff --git a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/linkchecker/OnLoadFilter.java b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/linkchecker/OnLoadFilter.java
index 895605e..e5cbdda 100644
--- a/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/linkchecker/OnLoadFilter.java
+++ b/org.eclipse.ua.tests.doc/src/org/eclipse/ua/tests/doc/internal/linkchecker/OnLoadFilter.java
@@ -28,7 +28,7 @@
 
 	private static long uniqueId = 0;
 
-    private class OutFilter extends OutputStream {
+	private class OutFilter extends OutputStream {
 
 		private OutputStream out;
 
@@ -45,41 +45,41 @@
 				state = 3;
 			} else if (state == 3 && (b == 'd' || b == 'D')) {
 				state = 4;
-		    } else if (state == 4 && (b == 'y' || b == 'Y')) {
-			   state = 20;
-			   out.write(b);
-			   if (linkProvider.hasNext()) {
-			       String location = linkProvider.next();
-			       String onload = getOnloadText(pathPrefix + location, testKind);
-				   out.write(onload.getBytes());
-				   //System.out.println("Onload = " + onload);
-			   } else {
-				   linkProvider = null;
-				   String announceComplete = getCompletionText(testKind);
-				   out.write(announceComplete.getBytes());
-				   //System.out.println("announceComplete = " + announceComplete);
-			   }
-		    } else if (state == 20 && b == '>') {
-			   state = 21;
-		    } else if (state == 1 && (b == 'h' || b == 'H')) {
-				state = 11;
-		    } else if (state == 11 && (b == 'e' || b == 'e')) {
-				state = 12;
-		    } else if (state == 12 && (b == 'a' || b == 'a')) {
-				state = 13;
-		    } else if (state == 13 && (b == 'm' || b == 'M')) {
-				state = 14;
-		    } else if (state == 14 && (b == 'e' || b == 'E')) {
-				state = 15;
-		    } else if (state == 15 && (b == 's' || b == 'S')) {
-				state = 16;
-		    } else if (state == 16 && (b == 'e' || b == 'E')) {
-				state = 17;
-		    } else if (state == 17 && (b == 't' || b == 'T')) {
+			} else if (state == 4 && (b == 'y' || b == 'Y')) {
 				state = 20;
-		    } else if (state > 0 && state < 20) {
-		    	state = 0;
-		    }
+				out.write(b);
+				if (linkProvider.hasNext()) {
+					String location = linkProvider.next();
+					String onload = getOnloadText(pathPrefix + location, testKind);
+					out.write(onload.getBytes());
+					//System.out.println("Onload = " + onload);
+				} else {
+					linkProvider = null;
+					String announceComplete = getCompletionText(testKind);
+					out.write(announceComplete.getBytes());
+					//System.out.println("announceComplete = " + announceComplete);
+				}
+			} else if (state == 20 && b == '>') {
+				state = 21;
+			} else if (state == 1 && (b == 'h' || b == 'H')) {
+				state = 11;
+			} else if (state == 11 && (b == 'e' || b == 'e')) {
+				state = 12;
+			} else if (state == 12 && (b == 'a' || b == 'a')) {
+				state = 13;
+			} else if (state == 13 && (b == 'm' || b == 'M')) {
+				state = 14;
+			} else if (state == 14 && (b == 'e' || b == 'E')) {
+				state = 15;
+			} else if (state == 15 && (b == 's' || b == 'S')) {
+				state = 16;
+			} else if (state == 16 && (b == 'e' || b == 'E')) {
+				state = 17;
+			} else if (state == 17 && (b == 't' || b == 'T')) {
+				state = 20;
+			} else if (state > 0 && state < 20) {
+				state = 0;
+			}
 		}
 
 		private String getOnloadText(String location, int testKind) {
@@ -102,7 +102,7 @@
 
 		private String getCompletionText(int testKind) {
 			if (testKind == SelectTocDialog.FOLLOW_LINKS) {
-                return " onload = \"ua_test_doc_check_links();\" ";
+				return " onload = \"ua_test_doc_check_links();\" ";
 			} else {
 				return " onload = \"ua_test_doc_complete();\" ";
 			}
@@ -117,7 +117,7 @@
 		public void write(int b) throws IOException {
 			updateState(b);
 			if (state != 20) {
-			    out.write(b);
+				out.write(b);
 			}
 		}
 
@@ -130,11 +130,11 @@
 
 	private int testKind;
 
-    public OnLoadFilter(int testKind) {
-    	this.testKind = testKind;
-    }
+	public OnLoadFilter(int testKind) {
+		this.testKind = testKind;
+	}
 
-    private static Iterator<String> linkProvider;
+	private static Iterator<String> linkProvider;
 
 	protected String getCommentText() {
 		return "comment";
@@ -147,7 +147,7 @@
 		}
 		String pathPrefix = FilterUtils.getRelativePathPrefix(req);
 		if (pathPrefix.length() >= 4) {
-		    return new OutFilter(out, pathPrefix.substring(0, pathPrefix.length() - 4));
+			return new OutFilter(out, pathPrefix.substring(0, pathPrefix.length() - 4));
 		}
 		return new OutFilter(out, "PLUGINS_ROOT");
 	}
diff --git a/org.eclipse.ua.tests/base/org/eclipse/ua/tests/AllPerformanceTests.java b/org.eclipse.ua.tests/base/org/eclipse/ua/tests/AllPerformanceTests.java
index be48345..b889a11 100644
--- a/org.eclipse.ua.tests/base/org/eclipse/ua/tests/AllPerformanceTests.java
+++ b/org.eclipse.ua.tests/base/org/eclipse/ua/tests/AllPerformanceTests.java
@@ -36,7 +36,7 @@
 	 */
 	public AllPerformanceTests() {
 		addTest(AllCheatSheetPerformanceTests.suite());
-        addTest(AllHelpPerformanceTests.suite());
+		addTest(AllHelpPerformanceTests.suite());
 
 		/*
 		 * Disabled due to inability to backport test to 3.2. Internal
diff --git a/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/UATestContentProducer.java b/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/UATestContentProducer.java
index c86ad25..9921b61 100644
--- a/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/UATestContentProducer.java
+++ b/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/UATestContentProducer.java
@@ -42,7 +42,7 @@
 		String result = "<head><title>";
 		result += filterNonAlpha(URLCoder.decode(title));
 		result += "</title></head><body>";
-        result +=filterNonAlpha(URLCoder.decode(body));
+		result +=filterNonAlpha(URLCoder.decode(body));
 		result += "</body>";
 		return new ByteArrayInputStream(result.getBytes());
 	}
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestCompositeParser.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestCompositeParser.java
index 7c521db..d23ba40 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestCompositeParser.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestCompositeParser.java
@@ -43,12 +43,12 @@
 
 	@Before
 	public void setUp() throws Exception {
-	    parser = new CompositeCheatSheetParser();
+		parser = new CompositeCheatSheetParser();
 	}
 
 	private CompositeCheatSheetModel parseTestFile(String path) {
 		URL testURL = ResourceFinder.findFile(UserAssistanceTestPlugin.getDefault(),
-					       COMPOSITES_FOLDER + path);
+							COMPOSITES_FOLDER + path);
 		return parser.parseGuide(testURL);
 	}
 
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestMarkupParser.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestMarkupParser.java
index 80b3f8d..ad109e6 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestMarkupParser.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestMarkupParser.java
@@ -35,7 +35,7 @@
 		StringReader reader = new StringReader(input);
 		InputSource source = new InputSource(reader);
 
-	    DocumentBuilder documentBuilder = CheatSheetPlugin.getPlugin()
+		DocumentBuilder documentBuilder = CheatSheetPlugin.getPlugin()
 					.getDocumentBuilder();
 		try {
 			return documentBuilder.parse(source);
@@ -84,7 +84,7 @@
 	@Test
 	public void testAttributes() {
 		assertEquals("a<b attr1 = \"true\" attr2 = \"false\">c</b>d<b>e</b>",
-			   parse("<root>a<b attr1 = \"true\" attr2=\"false\">c</b>d<b>e</b></root>"));
+				parse("<root>a<b attr1 = \"true\" attr2=\"false\">c</b>d<b>e</b></root>"));
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestPersistence.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestPersistence.java
index f251b4f..9d2158e 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestPersistence.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestPersistence.java
@@ -78,83 +78,83 @@
 	 * mementos to different files and keep the contents distinct.
 	 */
 	@Test
-    public void testMementoSaveMultipleFiles() {
-    	XMLMemento memento = XMLMemento.createWriteRoot(MEMENTO_TAG);
-    	memento.putString(KEY, DATA1);
-    	CheatSheetPlugin cheatSheetPlugin = CheatSheetPlugin.getPlugin();
+	public void testMementoSaveMultipleFiles() {
+		XMLMemento memento = XMLMemento.createWriteRoot(MEMENTO_TAG);
+		memento.putString(KEY, DATA1);
+		CheatSheetPlugin cheatSheetPlugin = CheatSheetPlugin.getPlugin();
 		IStatus status = cheatSheetPlugin.saveMemento(memento, PATH1);
-    	assertTrue(status.isOK());
-    	memento = XMLMemento.createWriteRoot(MEMENTO_TAG);
-    	memento.putString(KEY, DATA2);
-    	status = cheatSheetPlugin.saveMemento(memento, PATH2);
-    	assertTrue(status.isOK());
-    	memento = cheatSheetPlugin.readMemento(PATH1);
-    	assertEquals(DATA1, memento.getString(KEY));
-    	memento = cheatSheetPlugin.readMemento(PATH2);
-    	assertEquals(DATA2, memento.getString(KEY));
-    }
+		assertTrue(status.isOK());
+		memento = XMLMemento.createWriteRoot(MEMENTO_TAG);
+		memento.putString(KEY, DATA2);
+		status = cheatSheetPlugin.saveMemento(memento, PATH2);
+		assertTrue(status.isOK());
+		memento = cheatSheetPlugin.readMemento(PATH1);
+		assertEquals(DATA1, memento.getString(KEY));
+		memento = cheatSheetPlugin.readMemento(PATH2);
+		assertEquals(DATA2, memento.getString(KEY));
+	}
 
 	@Test
-    public void testSaveTaskState() {
-    	createCompositeCheatSheet();
-    	task1.setState(ICompositeCheatSheetTask.IN_PROGRESS);
-    	task2.setState(ICompositeCheatSheetTask.COMPLETED);
-    	helper.saveCompositeState(model, null);
+	public void testSaveTaskState() {
+		createCompositeCheatSheet();
+		task1.setState(ICompositeCheatSheetTask.IN_PROGRESS);
+		task2.setState(ICompositeCheatSheetTask.COMPLETED);
+		helper.saveCompositeState(model, null);
 
-    	createCompositeCheatSheet();
-    	model.loadState(new Hashtable<String, String>());
-    	assertEquals(ICompositeCheatSheetTask.IN_PROGRESS, task1.getState());
-    	assertEquals(ICompositeCheatSheetTask.COMPLETED, task2.getState());
-    }
+		createCompositeCheatSheet();
+		model.loadState(new Hashtable<String, String>());
+		assertEquals(ICompositeCheatSheetTask.IN_PROGRESS, task1.getState());
+		assertEquals(ICompositeCheatSheetTask.COMPLETED, task2.getState());
+	}
 
-    /**
-     * Test that each task can save its state in a memento and that state
-     * can be restored.
-     */
+	/**
+	 * Test that each task can save its state in a memento and that state
+	 * can be restored.
+	 */
 	@Test
-    public void testSaveTaskMemento() {
-    	final String value1 = "13579";
-    	final String value2 = "AB24";
-    	createCompositeCheatSheet();
-    	// Start tasks with no memento
-    	task1.setState(ICompositeCheatSheetTask.COMPLETED);
-    	task2.setState(ICompositeCheatSheetTask.IN_PROGRESS);
-    	editor1.setInput(task1, null);
-    	editor2.setInput(task2, null);
-    	assertEquals(MockTaskEditor.NO_MEMENTO, editor1.getValue());
-    	assertEquals(MockTaskEditor.NO_MEMENTO, editor2.getValue());
+	public void testSaveTaskMemento() {
+		final String value1 = "13579";
+		final String value2 = "AB24";
+		createCompositeCheatSheet();
+		// Start tasks with no memento
+		task1.setState(ICompositeCheatSheetTask.COMPLETED);
+		task2.setState(ICompositeCheatSheetTask.IN_PROGRESS);
+		editor1.setInput(task1, null);
+		editor2.setInput(task2, null);
+		assertEquals(MockTaskEditor.NO_MEMENTO, editor1.getValue());
+		assertEquals(MockTaskEditor.NO_MEMENTO, editor2.getValue());
 
-    	// Set the values to save in the memento
-    	editor1.setValue(value1);
-    	editor2.setValue(value2);
-    	task1.setState(ICompositeCheatSheetTask.COMPLETED);
-    	task2.setState(ICompositeCheatSheetTask.IN_PROGRESS);
-    	helper.saveCompositeState(model, null);
+		// Set the values to save in the memento
+		editor1.setValue(value1);
+		editor2.setValue(value2);
+		task1.setState(ICompositeCheatSheetTask.COMPLETED);
+		task2.setState(ICompositeCheatSheetTask.IN_PROGRESS);
+		helper.saveCompositeState(model, null);
 
-    	createCompositeCheatSheet();
-    	model.loadState(new Hashtable<String, String>());
-    	editor1.setInput(task1, model.getTaskMemento(task1.getId()));
-    	editor2.setInput(task2, model.getTaskMemento(task2.getId()));
-    	assertEquals(value1, editor1.getValue());
-    	assertEquals(value2, editor2.getValue());
-    }
+		createCompositeCheatSheet();
+		model.loadState(new Hashtable<String, String>());
+		editor1.setInput(task1, model.getTaskMemento(task1.getId()));
+		editor2.setInput(task2, model.getTaskMemento(task2.getId()));
+		assertEquals(value1, editor1.getValue());
+		assertEquals(value2, editor2.getValue());
+	}
 
-    /**
-     * Test that layout data is restored
-     */
+	/**
+	 * Test that layout data is restored
+	 */
 	@Test
-    public void testSaveLayoutData() {
-    	createCompositeCheatSheet();
+	public void testSaveLayoutData() {
+		createCompositeCheatSheet();
 		Map<String, String> values = new Hashtable<>();
-    	values.put("One", "1");
-    	values.put("Two", "2");
-    	helper.saveCompositeState(model, values);
+		values.put("One", "1");
+		values.put("Two", "2");
+		helper.saveCompositeState(model, values);
 		Map<String, String> restoredValues = new Hashtable<>();
-    	createCompositeCheatSheet();
-    	model.loadState(restoredValues);
-    	assertEquals(2, restoredValues.size());
-    	assertEquals("1", values.get("One"));
-    	assertEquals("2", values.get("Two"));
-    }
+		createCompositeCheatSheet();
+		model.loadState(restoredValues);
+		assertEquals(2, restoredValues.size());
+		assertEquals("1", values.get("One"));
+		assertEquals("2", values.get("Two"));
+	}
 
 }
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestSuccessors.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestSuccessors.java
index 4b44edd..a26c4d7 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestSuccessors.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestSuccessors.java
@@ -71,7 +71,7 @@
 		SuccesorTaskFinder finder = new SuccesorTaskFinder(task);
 		ICompositeCheatSheetTask[] successors = finder.getRecommendedSuccessors();
 		assertEquals(1, successors.length);
-	    assertEquals(expectedSuccessor, successors[0]);
+		assertEquals(expectedSuccessor, successors[0]);
 	}
 
 	private void assertNoSuccessors(ICompositeCheatSheetTask task) {
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestTaskEvents.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestTaskEvents.java
index fc50fd4..d319146 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestTaskEvents.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/composite/TestTaskEvents.java
@@ -286,7 +286,7 @@
 		assertEquals(1, taskMap.getEventCount(task1B));
 		assertEquals(1, taskMap.getEventCount(group1));
 		assertEquals(4, taskMap.getTotalEventCount());
-    }
+	}
 
 	@Test
 	public void testCompleteChoice() {
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/ActionWithParameters.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/ActionWithParameters.java
index eef3297..a78cdb5 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/ActionWithParameters.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/ActionWithParameters.java
@@ -39,7 +39,7 @@
 	@Override
 	public void run(String[] params, ICheatSheetManager manager) {
 		ActionEnvironment.setParams(params);
-        ActionEnvironment.actionCompleted();
+		ActionEnvironment.actionCompleted();
 	}
 
 }
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/TestCommandExecution.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/TestCommandExecution.java
index 50bbaba..fef2863 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/TestCommandExecution.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/execution/TestCommandExecution.java
@@ -56,8 +56,8 @@
 	private static final String COMMAND_ID =
 		"org.eclipse.ui.cheatsheets.tests.command1"; //$NON-NLS-1$
 	private static final String SERIALIZED_COMMAND = COMMAND_ID + '('
-	    + PARAM1_ID + '=' + PARAM1_VALUE + ','
-	    + PARAM2_ID + '=' + PARAM2_VALUE + ')';
+		+ PARAM1_ID + '=' + PARAM1_VALUE + ','
+		+ PARAM2_ID + '=' + PARAM2_VALUE + ')';
 	private static final String RETURN_STORE = "retData";
 	private static final String PARENT_RETURN_STORE = "parent.retData";
 
@@ -86,10 +86,10 @@
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
 			Object serviceObject = wb.getAdapter(IHandlerService.class);
-		    if (serviceObject != null) {
-			    IHandlerService service = (IHandlerService)serviceObject;
-			    return service;
-		    }
+			if (serviceObject != null) {
+				IHandlerService service = (IHandlerService)serviceObject;
+				return service;
+			}
 		}
 		return null;
 	}
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCategories.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCategories.java
index c04e00b..d7ddbd7 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCategories.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCategories.java
@@ -42,7 +42,7 @@
 			CheatSheetRegistryReader.getInstance().getCheatSheets();
 		CheatSheetCollectionElement testCat = findChildCategory(cheatSheets, TEST_CATEGORY);
 		assertNotNull("Cannot find category org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat",
-					       testCat);
+							testCat);
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCollection.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCollection.java
index 400c380..ef7e90e 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCollection.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestCheatSheetCollection.java
@@ -51,14 +51,14 @@
 		c2 = new CheatSheetCollectionElement("p2", "c2Id", "c2", root);
 		c11 = new CheatSheetCollectionElement("p11", "c11Id", "c11", c1);
 		c12 = new CheatSheetCollectionElement("p12", "c12Id", "c12", c1);
-	    root.add(c1);
-	    root.add(csA);
-	    root.add(csB);
-	    root.add(c2);
-	    c1.add(c11);
-	    c1.add(c12);
-	    c2.add(cs2A);
-	    c12.add(cs12A);
+		root.add(c1);
+		root.add(csA);
+		root.add(csB);
+		root.add(c2);
+		c1.add(c11);
+		c1.add(c12);
+		c2.add(cs2A);
+		c12.add(cs12A);
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestStatePersistence.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestStatePersistence.java
index 5c86329..e5089e4 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestStatePersistence.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/other/TestStatePersistence.java
@@ -44,16 +44,16 @@
 	private static final String PATH = "ContentPath";
 
 	private class PropertySet {
-	    public String id;
-	    public int currentItem;
-	    public int button;
-	    public String contentPath;
-	    public List<String> completed;
-	    public List<String> expanded;
-	    public List<String> expandRestore;
-	    public Hashtable<String, String> subItemCompleted;
-	    public Hashtable<String, String> subItemSkipped;
-	    public CheatSheetManager manager;
+		public String id;
+		public int currentItem;
+		public int button;
+		public String contentPath;
+		public List<String> completed;
+		public List<String> expanded;
+		public List<String> expandRestore;
+		public Hashtable<String, String> subItemCompleted;
+		public Hashtable<String, String> subItemSkipped;
+		public CheatSheetManager manager;
 	}
 
 	private PropertySet propsToSave;
@@ -92,10 +92,10 @@
 			propertiesToSave.put(IParserTags.CONTENT_URL, propsToSave.contentPath);
 		}
 		if (propsToSave.subItemCompleted.size() > 0) {
-		    propertiesToSave.put(IParserTags.SUBITEMCOMPLETED, propsToSave.subItemCompleted);
+			propertiesToSave.put(IParserTags.SUBITEMCOMPLETED, propsToSave.subItemCompleted);
 		}
 		if (propsToSave.subItemSkipped.size() > 0) {
-		    propertiesToSave.put(IParserTags.SUBITEMSKIPPED, propsToSave.subItemSkipped);
+			propertiesToSave.put(IParserTags.SUBITEMSKIPPED, propsToSave.subItemSkipped);
 		}
 		helper.saveState(propertiesToSave, propsToSave.manager);
 	}
@@ -109,14 +109,14 @@
 		result.currentItem = Integer.parseInt(restored.getProperty(IParserTags.CURRENT));
 		result.completed = (ArrayList<String>) restored.get(IParserTags.COMPLETED);
 		result.contentPath = (String) restored.get(IParserTags.CONTENT_URL);
-        result.expanded = (ArrayList<String>) restored.get(IParserTags.EXPANDED);
-        result.expandRestore = (ArrayList<String>) restored.get(IParserTags.EXPANDRESTORE);
-        result.subItemCompleted = (Hashtable<String, String>) restored.get(IParserTags.SUBITEMCOMPLETED);
-        result.subItemSkipped = (Hashtable<String, String>) restored.get(IParserTags.SUBITEMSKIPPED);
-        Hashtable<String, String> managerData = (Hashtable<String, String>) restored.get(IParserTags.MANAGERDATA);
+		result.expanded = (ArrayList<String>) restored.get(IParserTags.EXPANDED);
+		result.expandRestore = (ArrayList<String>) restored.get(IParserTags.EXPANDRESTORE);
+		result.subItemCompleted = (Hashtable<String, String>) restored.get(IParserTags.SUBITEMCOMPLETED);
+		result.subItemSkipped = (Hashtable<String, String>) restored.get(IParserTags.SUBITEMSKIPPED);
+		Hashtable<String, String> managerData = (Hashtable<String, String>) restored.get(IParserTags.MANAGERDATA);
 		CheatSheetElement csElement = new CheatSheetElement(id);
-        result.manager = new CheatSheetManager(csElement);
-        result.manager.setData(managerData);
+		result.manager = new CheatSheetManager(csElement);
+		result.manager.setData(managerData);
 		return result;
 	}
 
@@ -147,7 +147,7 @@
 		propsToSave.manager.setData(KEY1, VALUE1);
 		propsToSave.manager.setData(KEY2, VALUE2);
 		save();
-        restore();
+		restore();
 		assertEquals(VALUE1, restored.manager.getData(KEY1));
 		assertEquals(VALUE2, restored.manager.getData(KEY2));
 	}
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/InvalidCheatsheet.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/InvalidCheatsheet.java
index 9af304c..b5e6bb2 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/InvalidCheatsheet.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/InvalidCheatsheet.java
@@ -36,12 +36,12 @@
 
 	@Before
 	public void setUp() throws Exception {
-	    parser = new CheatSheetParser();
+		parser = new CheatSheetParser();
 	}
 
 	private ICheatSheet parseTestFile(String path) {
 		URL testURL = ResourceFinder.findFile(UserAssistanceTestPlugin.getDefault(),
-					       INVALID_CHEATSHEET_FOLDER + path);
+							INVALID_CHEATSHEET_FOLDER + path);
 		return parser.parse(testURL, UserAssistanceTestPlugin.getPluginId(), CheatSheetParser.SIMPLE_ONLY);
 	}
 
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/NoError.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/NoError.java
index 0098c3b..3e87f2e 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/NoError.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/NoError.java
@@ -40,12 +40,12 @@
 
 	@Before
 	public void setUp() throws Exception {
-	    parser = new CheatSheetParser();
+		parser = new CheatSheetParser();
 	}
 
 	private ICheatSheet parseTestFile(String path) {
 		URL testURL = ResourceFinder.findFile(UserAssistanceTestPlugin.getDefault(),
-					       path);
+							path);
 		return parser.parse(testURL, UserAssistanceTestPlugin.getPluginId(), CheatSheetParser.SIMPLE_ONLY);
 	}
 
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/ParseFromString.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/ParseFromString.java
index c7df06c..ec5936d 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/ParseFromString.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/parser/ParseFromString.java
@@ -35,16 +35,16 @@
 
 	private static final String VALID_CONTENT =
 		"<?xml version=\"1.0\" encoding=\"UTF-8\" ?> "
-	    + "<cheatsheet title=\"Title\">"
+		+ "<cheatsheet title=\"Title\">"
 		+ "<intro><description>Simple test</description></intro>"
 		+ "<item title=\"Item\">"
 		+ "<description>description</description>"
-	    + "</item></cheatsheet>";
+		+ "</item></cheatsheet>";
 
 	// INVALID_CONTENT has no items
 	private static final String INVALID_CONTENT =
 		"<?xml version=\"1.0\" encoding=\"UTF-8\" ?> "
-	    + "<cheatsheet title=\"Title\">"
+		+ "<cheatsheet title=\"Title\">"
 		+ "<intro><description>Simple test</description></intro>"
 		+ "</cheatsheet>";
 
@@ -73,7 +73,7 @@
 	@Test
 	public void testUrlParserInput() {
 		URL testURL = ResourceFinder.findFile(UserAssistanceTestPlugin.getDefault(),
-			       "data/cheatsheet/valid/HelloWorld.xml");
+					"data/cheatsheet/valid/HelloWorld.xml");
 		ParserInput input = new ParserInput(testURL, UserAssistanceTestPlugin.getPluginId(), null);
 		assertNull(input.getXml());
 		assertTrue(testURL.equals(input.getUrl()));
diff --git a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/util/MockTaskEditor.java b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/util/MockTaskEditor.java
index 28979f8..ef8a88c 100644
--- a/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/util/MockTaskEditor.java
+++ b/org.eclipse.ua.tests/cheatsheet/org/eclipse/ua/tests/cheatsheet/util/MockTaskEditor.java
@@ -43,7 +43,7 @@
 			setValue(NO_MEMENTO);
 		} else {
 			setValue(memento.getString(KEY));
-	    }
+		}
 	}
 
 	@Override
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/ParseTocWithCriteria.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/ParseTocWithCriteria.java
index 2bfb3af..64fa661 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/ParseTocWithCriteria.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/ParseTocWithCriteria.java
@@ -63,18 +63,18 @@
 		IToc2 toc = parseToc("data/help/criteria/c1.xml");
 		Map<String, Set<String>> criteria = new HashMap<>();
 		CriteriaUtilities.addCriteriaToMap(criteria, toc.getCriteria());
-	    assertEquals(2, criteria.size());
-	    Set<String> versions = criteria.get("version");
-	    assertNotNull(versions);
-	    assertEquals(2, versions.size());
-	    assertTrue(versions.contains("1.0"));
-	    assertTrue(versions.contains("2.0"));
+		assertEquals(2, criteria.size());
+		Set<String> versions = criteria.get("version");
+		assertNotNull(versions);
+		assertEquals(2, versions.size());
+		assertTrue(versions.contains("1.0"));
+		assertTrue(versions.contains("2.0"));
 
-	    Set<String> platforms = criteria.get("platform");
-	    assertNotNull(platforms);
-	    assertEquals(2, platforms.size());
-	    assertTrue(platforms.contains("linux"));
-	    assertTrue(platforms.contains("win32"));
+		Set<String> platforms = criteria.get("platform");
+		assertNotNull(platforms);
+		assertEquals(2, platforms.size());
+		assertTrue(platforms.contains("linux"));
+		assertTrue(platforms.contains("win32"));
 	}
 
 	@Test
@@ -83,18 +83,18 @@
 		Toc toc = new Toc(toc0);
 		Map<String, Set<String>> criteria = new HashMap<>();
 		CriteriaUtilities.addCriteriaToMap(criteria, toc.getCriteria());
-	    assertEquals(2, criteria.size());
-	    Set<String> versions = criteria.get("version");
-	    assertNotNull(versions);
-	    assertEquals(2, versions.size());
-	    assertTrue(versions.contains("1.0"));
-	    assertTrue(versions.contains("2.0"));
+		assertEquals(2, criteria.size());
+		Set<String> versions = criteria.get("version");
+		assertNotNull(versions);
+		assertEquals(2, versions.size());
+		assertTrue(versions.contains("1.0"));
+		assertTrue(versions.contains("2.0"));
 
-	    Set<String> platforms = criteria.get("platform");
-	    assertNotNull(platforms);
-	    assertEquals(2, platforms.size());
-	    assertTrue(platforms.contains("linux"));
-	    assertTrue(platforms.contains("win32"));
+		Set<String> platforms = criteria.get("platform");
+		assertNotNull(platforms);
+		assertEquals(2, platforms.size());
+		assertTrue(platforms.contains("linux"));
+		assertTrue(platforms.contains("win32"));
 	}
 
 	@Test
@@ -106,23 +106,23 @@
 		Map<String, Set<String>> criteria = new HashMap<>();
 		assertTrue(topics[0] instanceof ITopic2);
 		CriteriaUtilities.addCriteriaToMap(criteria, ((ITopic2)topics[0]).getCriteria());
-	    assertEquals(2, criteria.size());
-	    Set<String> versions = criteria.get("version");
-	    assertNotNull(versions);
-	    assertEquals(1, versions.size());
-	    assertTrue(versions.contains("1.0"));
-	    assertFalse(versions.contains("2.0"));
+		assertEquals(2, criteria.size());
+		Set<String> versions = criteria.get("version");
+		assertNotNull(versions);
+		assertEquals(1, versions.size());
+		assertTrue(versions.contains("1.0"));
+		assertFalse(versions.contains("2.0"));
 
 		// Second topic
 
 		criteria = new HashMap<>();
 		assertTrue(topics[1] instanceof ITopic2);
 		CriteriaUtilities.addCriteriaToMap(criteria, ((ITopic2)topics[1]).getCriteria());
-	    versions = criteria.get("version");
-	    assertNotNull(versions);
-	    assertEquals(1, versions.size());
-	    assertTrue(versions.contains("2.0"));
-	    assertFalse(versions.contains("1.0"));
+		versions = criteria.get("version");
+		assertNotNull(versions);
+		assertEquals(1, versions.size());
+		assertTrue(versions.contains("2.0"));
+		assertFalse(versions.contains("1.0"));
 	}
 
 	@Test
@@ -194,11 +194,11 @@
 		toc.addCriterion(criterion2);
 
 		ICriteria[] criteria = toc.getCriteria();
-	    assertEquals(2, criteria.length);
-	    assertEquals("version", criteria[0].getName());
-	    assertEquals("1.0", criteria[0].getValue());
-	    assertEquals("version", criteria[1].getName());
-	    assertEquals("2.0", criteria[1].getValue());
+		assertEquals(2, criteria.length);
+		assertEquals("version", criteria[0].getName());
+		assertEquals("1.0", criteria[0].getValue());
+		assertEquals("version", criteria[1].getName());
+		assertEquals("2.0", criteria[1].getValue());
 	}
 
 	@Test
@@ -212,11 +212,11 @@
 		Toc copy = new Toc(toc);
 
 		ICriteria[] criteria = copy.getCriteria();
-	    assertEquals(2, criteria.length);
-	    assertEquals("version", criteria[0].getName());
-	    assertEquals("1.0", criteria[0].getValue());
-	    assertEquals("version", criteria[1].getName());
-	    assertEquals("2.0", criteria[1].getValue());
+		assertEquals(2, criteria.length);
+		assertEquals("version", criteria[0].getName());
+		assertEquals("1.0", criteria[0].getValue());
+		assertEquals("version", criteria[1].getName());
+		assertEquals("2.0", criteria[1].getValue());
 	}
 
 	@Test
@@ -230,11 +230,11 @@
 		Topic copy = new Topic(topic);
 
 		ICriteria[] criteria = copy.getCriteria();
-	    assertEquals(2, criteria.length);
-	    assertEquals("version", criteria[0].getName());
-	    assertEquals("1.0", criteria[0].getValue());
-	    assertEquals("version", criteria[1].getName());
-	    assertEquals("2.0", criteria[1].getValue());
+		assertEquals(2, criteria.length);
+		assertEquals("version", criteria[0].getName());
+		assertEquals("1.0", criteria[0].getValue());
+		assertEquals("version", criteria[1].getName());
+		assertEquals("2.0", criteria[1].getValue());
 	}
 
 	@Test
@@ -245,11 +245,11 @@
 		topic.addCriterion(criterion1);
 		topic.addCriterion(criterion2);
 		ICriteria[] criteria = topic.getCriteria();
-	    assertEquals(2, criteria.length);
-	    assertEquals("version", criteria[0].getName());
-	    assertEquals("1.0", criteria[0].getValue());
-	    assertEquals("version", criteria[1].getName());
-	    assertEquals("2.0", criteria[1].getValue());
+		assertEquals(2, criteria.length);
+		assertEquals("version", criteria[0].getName());
+		assertEquals("1.0", criteria[0].getValue());
+		assertEquals("version", criteria[1].getName());
+		assertEquals("2.0", criteria[1].getValue());
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/TestCriteriaProvider.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/TestCriteriaProvider.java
index f1a3292..ddea24d 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/TestCriteriaProvider.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/criteria/TestCriteriaProvider.java
@@ -41,17 +41,17 @@
 		Topic copy = new Topic(topic);
 
 		ICriteria[] nativeCriteria = copy.getCriteria();
-	    assertEquals(2, nativeCriteria.length);
-	    assertEquals("version", nativeCriteria[0].getName());
-	    assertEquals("1.0", nativeCriteria[0].getValue());
-	    assertEquals("version", nativeCriteria[1].getName());
-	    assertEquals("2.0", nativeCriteria[1].getValue());
+		assertEquals(2, nativeCriteria.length);
+		assertEquals("version", nativeCriteria[0].getName());
+		assertEquals("1.0", nativeCriteria[0].getValue());
+		assertEquals("version", nativeCriteria[1].getName());
+		assertEquals("2.0", nativeCriteria[1].getValue());
 
-	    ICriteria[] allCriteria = CriteriaProviderRegistry.getInstance().getAllCriteria(copy);
-	    assertTrue(containsCriterion(allCriteria, "version", "2.0"));
-	    assertTrue(containsCriterion(allCriteria, "version", "1.0"));
-	    assertTrue(containsCriterion(allCriteria, "containsLetter", "c"));
-	    assertFalse(containsCriterion(allCriteria, "containsLetter", "k"));
+		ICriteria[] allCriteria = CriteriaProviderRegistry.getInstance().getAllCriteria(copy);
+		assertTrue(containsCriterion(allCriteria, "version", "2.0"));
+		assertTrue(containsCriterion(allCriteria, "version", "1.0"));
+		assertTrue(containsCriterion(allCriteria, "containsLetter", "c"));
+		assertFalse(containsCriterion(allCriteria, "containsLetter", "k"));
 	}
 
 	@Test
@@ -65,17 +65,17 @@
 		Toc copy = new Toc(toc);
 
 		ICriteria[] nativeCriteria = copy.getCriteria();
-	    assertEquals(2, nativeCriteria.length);
-	    assertEquals("version", nativeCriteria[0].getName());
-	    assertEquals("1.0", nativeCriteria[0].getValue());
-	    assertEquals("version", nativeCriteria[1].getName());
-	    assertEquals("2.0", nativeCriteria[1].getValue());
+		assertEquals(2, nativeCriteria.length);
+		assertEquals("version", nativeCriteria[0].getName());
+		assertEquals("1.0", nativeCriteria[0].getValue());
+		assertEquals("version", nativeCriteria[1].getName());
+		assertEquals("2.0", nativeCriteria[1].getValue());
 
-	    ICriteria[] allCriteria = CriteriaProviderRegistry.getInstance().getAllCriteria(copy);
-	    assertTrue(containsCriterion(allCriteria, "version", "2.0"));
-	    assertTrue(containsCriterion(allCriteria, "version", "1.0"));
-	    assertTrue(containsCriterion(allCriteria, "containsLetter", "c"));
-	    assertFalse(containsCriterion(allCriteria, "containsLetter", "k"));
+		ICriteria[] allCriteria = CriteriaProviderRegistry.getInstance().getAllCriteria(copy);
+		assertTrue(containsCriterion(allCriteria, "version", "2.0"));
+		assertTrue(containsCriterion(allCriteria, "version", "1.0"));
+		assertTrue(containsCriterion(allCriteria, "containsLetter", "c"));
+		assertFalse(containsCriterion(allCriteria, "containsLetter", "k"));
 	}
 
 	@Test
@@ -96,17 +96,17 @@
 
 	//public void testWorkingSetScope() throws Exception {
 		// TODO write a test  which creates a working set scope based on the
-	    // criteria which are generated by the criteria provider
+		// criteria which are generated by the criteria provider
 	//}
 
 	private boolean containsCriterion(ICriteria[] allCriteria,
 			String name, String value) {
-        for (ICriteria element : allCriteria) {
-        	if (element.getName().equals(name) && element.getValue().equals(value)) {
-        		return true;
-        	}
-        }
-    	return false;
+		for (ICriteria element : allCriteria) {
+			if (element.getName().equals(name) && element.getValue().equals(value)) {
+				return true;
+			}
+		}
+		return false;
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/dynamic/DynamicXHTMLProcessorTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/dynamic/DynamicXHTMLProcessorTest.java
index 3f67eae..bd4cc92 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/dynamic/DynamicXHTMLProcessorTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/dynamic/DynamicXHTMLProcessorTest.java
@@ -115,8 +115,8 @@
 
 	@Test
 	public void testValidXML() throws Exception {
-	    String processed = process("data/help/dynamic/xhtml/emptyAnchor.xhtml");
-	    XMLUtil.assertParseableXML(processed);
+		String processed = process("data/help/dynamic/xhtml/emptyAnchor.xhtml");
+		XMLUtil.assertParseableXML(processed);
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java
index 2a69667..f5bd8b9 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java
@@ -64,9 +64,9 @@
 		IndexAssembler assembler = new IndexAssembler();
 		List<IndexContribution> contributions = new ArrayList<>(Arrays.asList(contrib));
 		Index index = assembler.assemble(contributions, Platform.getNL());
-	    IIndexEntry[] children = index.getEntries();
-	    assertEquals(2,children.length);
-	    IIndexEntry eclipseEntry = children[0];
+		IIndexEntry[] children = index.getEntries();
+		assertEquals(2,children.length);
+		IIndexEntry eclipseEntry = children[0];
 		assertEquals("eclipse", eclipseEntry.getKeyword());
 		IUAElement[] eclipseChildren = eclipseEntry.getChildren();
 		assertEquals(4, eclipseChildren.length);
@@ -78,11 +78,11 @@
 		IndexSee seeHeliosRelease = (IndexSee) eclipseChildren[3];
 		assertEquals(0, seeHelios.getSubpathElements().length);
 		assertEquals(1, seeHeliosRelease.getSubpathElements().length);
-	    IIndexEntry heliosEntry = children[1];
+		IIndexEntry heliosEntry = children[1];
 		assertEquals("helios", heliosEntry.getKeyword());
-	    IIndexSee[] heliosSees = ((IIndexEntry2)heliosEntry).getSees();
-	    assertEquals(1, heliosSees.length);
-	    assertEquals("eclipse", heliosSees[0].getKeyword());
+		IIndexSee[] heliosSees = ((IIndexEntry2)heliosEntry).getSees();
+		assertEquals(1, heliosSees.length);
+		assertEquals("eclipse", heliosSees[0].getKeyword());
 	}
 
 	@Test
@@ -92,14 +92,14 @@
 		IndexAssembler assembler = new IndexAssembler();
 		List<IndexContribution> contributions = new ArrayList<>(Arrays.asList(contrib));
 		Index index = assembler.assemble(contributions, Platform.getNL());
-	    IIndexEntry[] children = index.getEntries();
-	    assertEquals(1,children.length);
-	    assertEquals("keyword1", children[0].getKeyword());
-	    ITopic[] topics = children[0].getTopics();
-	    assertEquals(3, topics.length);
-	    assertEquals("topic0", topics[0].getLabel());
-	    assertEquals("topic1", topics[1].getLabel());
-	    assertEquals("topic2", topics[2].getLabel());
+		IIndexEntry[] children = index.getEntries();
+		assertEquals(1,children.length);
+		assertEquals("keyword1", children[0].getKeyword());
+		ITopic[] topics = children[0].getTopics();
+		assertEquals(3, topics.length);
+		assertEquals("topic0", topics[0].getLabel());
+		assertEquals("topic1", topics[1].getLabel());
+		assertEquals("topic2", topics[2].getLabel());
 	}
 
 	// Replaces white space between ">" and "<" by a single newline
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ConcurrentTocAccess.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ConcurrentTocAccess.java
index a79f012..b9f0bed 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ConcurrentTocAccess.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ConcurrentTocAccess.java
@@ -39,10 +39,10 @@
 			this.dimensions = dimensions;
 			result = new StringBuilder();
 			result.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-            result.append("<?NLS TYPE=\"org.eclipse.help.toc\"?>\n");
-            result.append("<toc label=\"Test Toc\" >\n");
-	        generateTopics(0);
-            result.append("</toc>");
+			result.append("<?NLS TYPE=\"org.eclipse.help.toc\"?>\n");
+			result.append("<toc label=\"Test Toc\" >\n");
+			generateTopics(0);
+			result.append("</toc>");
 			return result.toString();
 		}
 
@@ -73,12 +73,12 @@
 
 		@Override
 		public void run() {
-            try {
+			try {
 				int result = traverseToc(toc);
 				setLeafCount(result);
 			} catch (Exception e) {
-                setLeafCount(-1);
-                this.exception = e;
+				setLeafCount(-1);
+				this.exception = e;
 			}
 		}
 
@@ -119,8 +119,8 @@
 			}
 			for (int i = 0; i < numberOfThreads; i++) {
 				if (visitors[i].isAlive()) {
-				    complete = false;
-				    try {
+					complete = false;
+					try {
 						Thread.sleep(100);
 					} catch (InterruptedException e) {
 						fail("Interrupted Exception");
@@ -183,7 +183,7 @@
 		Toc toc;
 		Document doc;
 		try {
-		    doc = DocumentCreator.createDocument(tocSource);
+			doc = DocumentCreator.createDocument(tocSource);
 		} catch (Exception e) {
 			fail("Exception creating TOC");
 			doc = null;
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextMergeTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextMergeTest.java
index b06a171..fff3efc 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextMergeTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextMergeTest.java
@@ -29,7 +29,7 @@
 public class ContextMergeTest {
 
 	private static final String ENABLEMENT_CHEATSHEETS = "<enablement><with variable=\"platform\">" +
-    "<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/>" +
+	"<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/>" +
 	 "</with></enablement>";
 	private static final String TOPIC_END = "</topic>";
 	private static final String TOPIC_HEAD_ECLIPSE = "<topic href=\"http://www.eclipse.org\" label=\"enabled\">";
@@ -44,7 +44,7 @@
 		Context context;
 		Document doc;
 		try {
-		    doc = DocumentCreator.createDocument(contextSource);
+			doc = DocumentCreator.createDocument(contextSource);
 		} catch (Exception e) {
 			fail("Caught Exception");
 			doc = null;
@@ -56,14 +56,14 @@
 	@Test
 	public void testContextMerge() {
 		final String contextSource1 = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_ECLIPSE +
-		   TOPIC_WITH_ENABLEMENT +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_ECLIPSE +
+			TOPIC_WITH_ENABLEMENT +
+			END_CONTEXT;
 		final String contextSource2 = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_BUGZILLA +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_BUGZILLA +
+			END_CONTEXT;
 		Context context1;
 		Context context2;
 		context1 = createContext(contextSource1);
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextTest.java
index 794090f..4e75ed1 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/ContextTest.java
@@ -36,16 +36,16 @@
 public class ContextTest {
 
 	private static final String ENABLEMENT_CHEATSHEETS = "<enablement><with variable=\"platform\">" +
-    "<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/>" +
+	"<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/>" +
 	 "</with></enablement>";
 	private static final String ENABLEMENT_INVALID = "<enablement><with variable=\"platform\">" +
-	    "<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.invalid\"/>" +
+		"<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.invalid\"/>" +
 		 "</with></enablement>";
 	private static final String FILTER_OUT = "<filter name = \"plugin\" value = \"org.eclipse.ua.invalid\"/>";
 	private static final String TOPIC_END = "</topic>";
 	private static final String TOPIC_HEAD_ECLIPSE = "<topic href=\"http://www.eclipse.org\" label=\"enabled\">";
 	private final String TOPIC_OLD_FILTER_DISABLED = "<topic filter=\"plugin=org.eclipse.ua.invalid\" href=\"www.eclipse.org\""
-	    + " label=\"Transformations and transformation configurations\"/>";
+		+ " label=\"Transformations and transformation configurations\"/>";
 	private static final String CONTEXT_DESCRIPTION = "<description>Context Description</description>";
 	private static final String EMPTY_DESCRIPTION = "<description></description>";
 	private static final String CONTEXT_HEAD = "<context id=\"viewer\" title=\"Sample View\">";
@@ -54,7 +54,7 @@
 	private final String TOPIC_WITH_ENABLEMENT = TOPIC_HEAD_ECLIPSE + ENABLEMENT_CHEATSHEETS + TOPIC_END;
 	private final String TOPIC_DISABLED = TOPIC_HEAD_ECLIPSE + ENABLEMENT_INVALID + TOPIC_END;
 	private final String TOPIC_FILTER_OUT = TOPIC_HEAD_ECLIPSE + FILTER_OUT + TOPIC_END;
-    private final String END_CONTEXT = "</context>";
+	private final String END_CONTEXT = "</context>";
 
 	@Before
 	public void setUp() throws Exception {
@@ -66,7 +66,7 @@
 		Context context;
 		Document doc;
 		try {
-		    doc = DocumentCreator.createDocument(contextSource);
+			doc = DocumentCreator.createDocument(contextSource);
 		} catch (Exception e) {
 			fail("Caught Exception");
 			doc = null;
@@ -78,9 +78,9 @@
 	@Test
 	public void testSimpleContext() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		Context context;
 		context = createContext(contextSource);
 		assertEquals("Sample View", context.getTitle());
@@ -93,9 +93,9 @@
 	@Test
 	public void testContextWithEnablement() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			END_CONTEXT;
 		Context context;
 		context = createContext(contextSource);
 		assertEquals("Sample View", context.getTitle());
@@ -113,9 +113,9 @@
 	@Test
 	public void testCopyContext() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			END_CONTEXT;
 		Context context  = createContext(contextSource);
 		Context context2 = new Context(context, "new id");
 		Context context3 = new Context(context2, "new id2");
@@ -152,11 +152,11 @@
 	@Test
 	public void testEnablement() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_DISABLED +
-		   TOPIC_OLD_FILTER_DISABLED +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_DISABLED +
+			TOPIC_OLD_FILTER_DISABLED +
+			END_CONTEXT;
 		Context context  = createContext(contextSource);
 		IHelpResource[] related = context.getRelatedTopics();
 		assertEquals(3, related.length);
@@ -168,10 +168,10 @@
 	@Test
 	public void testOldStyleFilteringOfCopies() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_OLD_FILTER_DISABLED +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_OLD_FILTER_DISABLED +
+			END_CONTEXT;
 		Context context1  = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
 		Context context3 = new Context(context2, "id2");
@@ -195,10 +195,10 @@
 	@Test
 	public void testOldStyleFilteringOfCopies2() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_OLD_FILTER_DISABLED +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_OLD_FILTER_DISABLED +
+			END_CONTEXT;
 		Context context1  = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
 		Context context3 = new Context(context1, "id2");
@@ -222,10 +222,10 @@
 	@Test
 	public void testFilteringOfCopies() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_FILTER_OUT +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_FILTER_OUT +
+			END_CONTEXT;
 		Context context1  = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
 		Context context3 = new Context(context2, "id2");
@@ -248,10 +248,10 @@
 	@Test
 	public void testFilteringOfCopies2() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_FILTER_OUT +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_FILTER_OUT +
+			END_CONTEXT;
 		Context context1  = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
 		Context context3 = new Context(context1, "id2");
@@ -275,10 +275,10 @@
 	@Test
 	public void testEnablementOfCopies() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_DISABLED +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_DISABLED +
+			END_CONTEXT;
 		Context context1  = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
 		Context context3 = new Context(context2, "id2");
@@ -301,10 +301,10 @@
 	@Test
 	public void testEnablementOfCopies2() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_DISABLED +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_DISABLED +
+			END_CONTEXT;
 		Context context1  = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
 		Context context3 = new Context(context1, "id2");
@@ -328,10 +328,10 @@
 	@Test
 	public void testEnablementOfCopies3() {
 		final String contextSource = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_WITH_ENABLEMENT +
-		   TOPIC_DISABLED +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_WITH_ENABLEMENT +
+			TOPIC_DISABLED +
+			END_CONTEXT;
 		Context context1  = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
 		Context context3 = new Context(context1, "id2");
@@ -360,9 +360,9 @@
 	@Test
 	public void testContextWithAttribute() {
 		final String contextSource = CONTEXT_HEAD_WITH_ATTRIBUTE +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		Context context;
 		context = createContext(contextSource);
 		assertEquals("abc", context.getAttribute("att"));
@@ -371,8 +371,8 @@
 	@Test
 	public void testContextWithoutDescription() {
 		final String contextSource = CONTEXT_HEAD +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		Context context;
 		context = createContext(contextSource);
 		assertNull(context.getText());
@@ -381,9 +381,9 @@
 	@Test
 	public void testContextWithEmptyDescription() {
 		final String contextSource = CONTEXT_HEAD +
-		   EMPTY_DESCRIPTION +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			EMPTY_DESCRIPTION +
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		Context context;
 		context = createContext(contextSource);
 		assertEquals("", context.getText());
@@ -392,8 +392,8 @@
 	@Test
 	public void testContextWithoutDescriptionSelfCatenation() {
 		final String contextSource = CONTEXT_HEAD +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		Context context1 = createContext(contextSource);
 		Context context2 = createContext(contextSource);
 		context1.mergeContext(context2);
@@ -403,12 +403,12 @@
 	@Test
 	public void testContextWithoutDescriptionMixedCatenation() {
 		final String contextSourceEmpty = CONTEXT_HEAD +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		final String contextSourceWithDesc = CONTEXT_HEAD +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		Context context1 = createContext(contextSourceEmpty);
 		Context context2 = createContext(contextSourceWithDesc);
 		context1.mergeContext(context2);
@@ -422,9 +422,9 @@
 	/*
 	public void testCopyContextWithAttribute() {
 		final String contextSource = CONTEXT_HEAD_WITH_ATTRIBUTE +
-		   CONTEXT_DESCRIPTION +
-		   TOPIC_ECLIPSE +
-	       END_CONTEXT;
+			CONTEXT_DESCRIPTION +
+			TOPIC_ECLIPSE +
+			END_CONTEXT;
 		Context context1;
 		context1 = createContext(contextSource);
 		Context context2 = new Context(context1, "id");
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/DocumentReaderTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/DocumentReaderTest.java
index b847097..8465a2b 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/DocumentReaderTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/DocumentReaderTest.java
@@ -42,7 +42,7 @@
 
 	@Test
 	public void testDocumentReader() throws IOException, SAXException, ParserConfigurationException {
-        DocumentReader docReader = new DocumentReader();
+		DocumentReader docReader = new DocumentReader();
 		ResourceReader[] resReaders = new ResourceReader[3];
 		resReaders[0] = new ResourceReader(docReader,"data/help/index/assembler/a.xml");
 		resReaders[1] = new ResourceReader(docReader,"data/help/index/assembler/b.xml");
@@ -79,7 +79,7 @@
 		public void run() {
 			try {
 				for (int i = 0; i < 10; i++) {
-				    readFile(reader, file);
+					readFile(reader, file);
 				}
 				status = SUCCESS;
 			} catch (Exception e) {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/EntityResolutionTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/EntityResolutionTest.java
index 84be077..26cabee 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/EntityResolutionTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/EntityResolutionTest.java
@@ -53,39 +53,39 @@
 	}
 
 	@Test
-    public void testFramset() throws Exception {
-	    resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd", true);
-    }
+	public void testFramset() throws Exception {
+		resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd", true);
+	}
 
 	@Test
-    public void testFlat() throws Exception {
-	    resolve("http://www.w3.org/TR/xhtml11/DTD/xhtml11-flat.dtd", true);
-    }
+	public void testFlat() throws Exception {
+		resolve("http://www.w3.org/TR/xhtml11/DTD/xhtml11-flat.dtd", true);
+	}
 
 	@Test
-    public void testStrict() throws Exception {
-	    resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd", true);
-    }
+	public void testStrict() throws Exception {
+		resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd", true);
+	}
 
 	@Test
-    public void testTransitional() throws Exception {
-	    resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd", true);
-    }
+	public void testTransitional() throws Exception {
+		resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd", true);
+	}
 
 	@Test
-    public void testLat1() throws Exception {
-	    resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent", true);
-    }
+	public void testLat1() throws Exception {
+		resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent", true);
+	}
 
 	@Test
-    public void testSpecial() throws Exception {
-	    resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent", true);
-    }
+	public void testSpecial() throws Exception {
+		resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent", true);
+	}
 
 	@Test
-    public void testResolveSymbol() throws Exception {
-	    resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent", true);
-    }
+	public void testResolveSymbol() throws Exception {
+		resolve("http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent", true);
+	}
 
 	@Test
 	public void testUnsupportedDtds() throws Exception {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java
index f1a3be3..e5a9a78 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java
@@ -42,7 +42,7 @@
 	private static final String INVALID_INSTALLED = "<with variable=\"platform\">" +
 	"<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.invalid\"/></with>";
 	private static final String CS_INSTALLED = "<with variable=\"platform\">" +
-	    "<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/></with>";
+		"<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/></with>";
 	private static final String ENABLEMENT_CHEATSHEETS = "<enablement>" + CS_INSTALLED + "</enablement>";
 	private static final String ENABLEMENT_INVALID = "<enablement>" +  INVALID_INSTALLED  + "</enablement>";
 	private static final String FILTER_IN = "<filter name = \"plugin\" value = \"org.eclipse.ua.tests\"/>";
@@ -62,13 +62,13 @@
 	private final String ENTRY_FILTER_OUT = ENTRY_HEAD_ECLIPSE + FILTER_OUT + ENTRY_END;
 	private final String ENTRY_FILTER_MIXED = ENTRY_HEAD_ECLIPSE + FILTER_IN + FILTER_OUT + ENTRY_END;
 	private final String ENTRY_OLD_FILTER = "<entry filter=\"plugin=org.eclipse.ua.tests\" "
-	    + " keyword=\"Transformations and transformation configurations\"/>";
+		+ " keyword=\"Transformations and transformation configurations\"/>";
 	private final String ENTRY_OLD_FILTER_DISABLED = "<entry filter=\"plugin=org.eclipse.ua.invalid\" "
-	    + " keyword=\"Transformations and transformation configurations\"/>";
+		+ " keyword=\"Transformations and transformation configurations\"/>";
 	private final String ENTRY_OLD_FILTER_IN__NEGATED = "<entry filter=\"plugin!=org.eclipse.ua.tests\" "
-	    + " keyword=\"Transformations and transformation configurations\"/>";
+		+ " keyword=\"Transformations and transformation configurations\"/>";
 	private final String ENTRY_OLD_FILTER_OUT_NEGATED = "<entry filter=\"plugin!=org.eclipse.ua.invalid\" "
-	    + " keyword=\"Transformations and transformation configurations\"/>";
+		+ " keyword=\"Transformations and transformation configurations\"/>";
 	private final String ENTRY_WITH_CHILD = ENTRY_HEAD_ECLIPSE + ENTRY_BUGZILLA + ENTRY_END;
 	private final String ENTRY_WITH_TOPIC = ENTRY_HEAD_ECLIPSE + TOPIC_BUGZILLA + ENTRY_END;
 	private final String ENTRY_WITH_SEE = ENTRY_HEAD_ECLIPSE + SEE_ALSO_SDK + ENTRY_END;
@@ -82,7 +82,7 @@
 		IndexEntry element;
 		Document doc;
 		try {
-		    doc = DocumentCreator.createDocument(elementSource);
+			doc = DocumentCreator.createDocument(elementSource);
 		} catch (Exception e) {
 			fail("Caught Exception");
 			doc = null;
@@ -315,15 +315,15 @@
 		assertEquals(2, subentries.length);
 		assertEquals(1, sees.length);
 		assertEquals(3,topics.length);
-	    assertEquals("jdt", subentries[0].getKeyword());
-	    assertEquals("compiler", subentries[1].getKeyword());
-	    assertEquals("label1", topics[0].getLabel());
-	    assertEquals("label2", topics[1].getLabel());
-	    assertEquals("label3", topics[2].getLabel());
-	    assertEquals("href1", topics[0].getHref());
-	    assertEquals("href2", topics[1].getHref());
-	    assertEquals("href3", topics[2].getHref());
-	    assertEquals("beans", sees[0].getKeyword());
+		assertEquals("jdt", subentries[0].getKeyword());
+		assertEquals("compiler", subentries[1].getKeyword());
+		assertEquals("label1", topics[0].getLabel());
+		assertEquals("label2", topics[1].getLabel());
+		assertEquals("label3", topics[2].getLabel());
+		assertEquals("href1", topics[0].getHref());
+		assertEquals("href2", topics[1].getHref());
+		assertEquals("href3", topics[2].getHref());
+		assertEquals("beans", sees[0].getKeyword());
 	}
 
 	private void checkEntryChildEnablement(IIndexEntry2 entry) {
@@ -333,12 +333,12 @@
 		assertEquals(2, subentries.length);
 		assertEquals(1, sees.length);
 		assertEquals(3,topics.length);
-	    assertTrue(subentries[0].isEnabled(HelpEvaluationContext.getContext()));
-	    assertFalse(subentries[1].isEnabled(HelpEvaluationContext.getContext()));
-	    assertTrue(topics[0].isEnabled(HelpEvaluationContext.getContext()));
-	    assertFalse(topics[1].isEnabled(HelpEvaluationContext.getContext()));
-	    assertTrue(topics[2].isEnabled(HelpEvaluationContext.getContext()));
-	    assertTrue(sees[0].isEnabled(HelpEvaluationContext.getContext()));
+		assertTrue(subentries[0].isEnabled(HelpEvaluationContext.getContext()));
+		assertFalse(subentries[1].isEnabled(HelpEvaluationContext.getContext()));
+		assertTrue(topics[0].isEnabled(HelpEvaluationContext.getContext()));
+		assertFalse(topics[1].isEnabled(HelpEvaluationContext.getContext()));
+		assertTrue(topics[2].isEnabled(HelpEvaluationContext.getContext()));
+		assertTrue(sees[0].isEnabled(HelpEvaluationContext.getContext()));
 	}
 
 	private UserIndexEntry createUserEntry() {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java
index 1c42fbf..9b9043d 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java
@@ -36,7 +36,7 @@
 	private static final String ECLIPSE = "eclipse";
 	private static final String SDK = "sdk";
 	private static final String VIEWS = "views";
-    private static final String SEE_END = "</see>";
+	private static final String SEE_END = "</see>";
 	private static final String SEE_HEAD_ECLIPSE = "<see keyword=\"eclipse\">";
 	private static final String SEE_ECLIPSE = "<see keyword=\"eclipse\"/>";
 	private static final String SEE_SDK = "<see keyword=\"sdk\"/>";
@@ -44,11 +44,11 @@
 	private static final String SUBPATH_VIEWS = "<subpath keyword=\"views\">";
 	private static final String SUBPATH_END = "</subpath>";
 	private static final String SEE_ECLIPSE_SDK = SEE_HEAD_ECLIPSE +
-    SUBPATH_SDK + SUBPATH_END + SEE_END;
+	SUBPATH_SDK + SUBPATH_END + SEE_END;
 	private static final String SEE_ECLIPSE_VIEWS = SEE_HEAD_ECLIPSE +
-    SUBPATH_SDK + SUBPATH_END + SUBPATH_VIEWS + SUBPATH_END + SEE_END;
+	SUBPATH_SDK + SUBPATH_END + SUBPATH_VIEWS + SUBPATH_END + SEE_END;
 	private static final String SEE_ECLIPSE_SDK_VIEWS = SEE_HEAD_ECLIPSE +
-    SUBPATH_SDK + SUBPATH_END + SUBPATH_VIEWS + SUBPATH_END + SEE_END;
+	SUBPATH_SDK + SUBPATH_END + SUBPATH_VIEWS + SUBPATH_END + SEE_END;
 
 	@Before
 	public void setUp() throws Exception {
@@ -59,7 +59,7 @@
 		IndexSee element;
 		Document doc;
 		try {
-		    doc = DocumentCreator.createDocument(elementSource);
+			doc = DocumentCreator.createDocument(elementSource);
 		} catch (Exception e) {
 			fail("Caught Exception");
 			doc = null;
@@ -73,7 +73,7 @@
 		Document doc;
 		String elementSource = "<see keyword=\"" + keyword + "\" />";
 		try {
-		    doc = DocumentCreator.createDocument(elementSource);
+			doc = DocumentCreator.createDocument(elementSource);
 		} catch (Exception e) {
 			fail("Caught Exception");
 			doc = null;
@@ -96,11 +96,11 @@
 		see1 = createSee(SEE_ECLIPSE);
 		IndexSee see2 = new IndexSee(see1);
 		assertEquals(ECLIPSE, see1.getKeyword());
-        assertEquals(0, see1.getSubpathElements().length);
+		assertEquals(0, see1.getSubpathElements().length);
 		assertEquals(ECLIPSE, see1.getKeyword());
 
 		assertEquals(ECLIPSE, see2.getKeyword());
-        assertEquals(0, see2.getSubpathElements().length);
+		assertEquals(0, see2.getSubpathElements().length);
 		assertEquals(ECLIPSE, see2.getKeyword());
 	}
 
@@ -231,30 +231,30 @@
 
 	@Test
 	public void testUserSee() {
-	     UserIndexSee u1;
-	     u1 = createUserSee();
-	     IndexSee see = new IndexSee(u1);
-	     checkCreatedSee(see);
+		UserIndexSee u1;
+		u1 = createUserSee();
+		IndexSee see = new IndexSee(u1);
+		checkCreatedSee(see);
 	}
 
 	@Test
 	public void testCopyUserSee() {
-	     UserIndexSee u1;
-	     u1 = createUserSee();
-	     IndexSee see = new IndexSee(u1);
-	     IndexSee see2 = new IndexSee(see);
-	     checkCreatedSee(see);
-	     checkCreatedSee(see2);
+		UserIndexSee u1;
+		u1 = createUserSee();
+		IndexSee see = new IndexSee(u1);
+		IndexSee see2 = new IndexSee(see);
+		checkCreatedSee(see);
+		checkCreatedSee(see2);
 	}
 
 	@Test
 	public void testCreateTwiceUserSee() {
-	     UserIndexSee u1;
-	     u1 = createUserSee();
-	     IndexSee see = new IndexSee(u1);
-	     IndexSee see2 = new IndexSee(u1);
-	     checkCreatedSee(see);
-	     checkCreatedSee(see2);
+		UserIndexSee u1;
+		u1 = createUserSee();
+		IndexSee see = new IndexSee(u1);
+		IndexSee see2 = new IndexSee(u1);
+		checkCreatedSee(see);
+		checkCreatedSee(see2);
 	}
 
 	@Test
@@ -299,19 +299,19 @@
 	private UserIndexSee createUserSee() {
 		UserIndexSee u1;
 		u1 = new UserIndexSee("eclipse", false);
-	     UserIndexSubpath u2 = new UserIndexSubpath("platform");
-	     UserIndexSubpath u3 = new UserIndexSubpath("ui");
-	     u1.addSubpath(u2);
-	     u1.addSubpath(u3);
+		UserIndexSubpath u2 = new UserIndexSubpath("platform");
+		UserIndexSubpath u3 = new UserIndexSubpath("ui");
+		u1.addSubpath(u2);
+		u1.addSubpath(u3);
 		return u1;
 	}
 
 	private void checkCreatedSee(IndexSee see) {
 		assertEquals("eclipse", see.getKeyword());
-	     IIndexSubpath[] subpath = see.getSubpathElements();
-	     assertEquals(2, subpath.length);
-	     assertEquals("platform", subpath[0].getKeyword());
-	     assertEquals("ui", subpath[1].getKeyword());
+		IIndexSubpath[] subpath = see.getSubpathElements();
+		assertEquals(2, subpath.length);
+		assertEquals("platform", subpath[0].getKeyword());
+		assertEquals("ui", subpath[1].getKeyword());
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TocObjectTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TocObjectTest.java
index 1eb7318..c8f1ad6 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TocObjectTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TocObjectTest.java
@@ -34,9 +34,9 @@
 
 	@Test
 	public void testLookupUnanchoredHref() {
-	    UserToc	utoc = new UserToc(TITLE_1, null, true);
-	    UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH, true);
-	    utoc.addTopic(utopic);
+		UserToc	utoc = new UserToc(TITLE_1, null, true);
+		UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH, true);
+		utoc.addTopic(utopic);
 		Toc toc = new Toc(utoc);
 		ITopic topic = toc.getTopic(PATH);
 		assertNotNull(topic);
@@ -45,9 +45,9 @@
 
 	@Test
 	public void testLookupAnchoredHrefByAnchor() {
-	    UserToc	utoc = new UserToc(TITLE_1, null, true);
-	    UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH + ANCHOR1, true);
-	    utoc.addTopic(utopic);
+		UserToc	utoc = new UserToc(TITLE_1, null, true);
+		UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH + ANCHOR1, true);
+		utoc.addTopic(utopic);
 		Toc toc = new Toc(utoc);
 		ITopic topic = toc.getTopic(PATH + ANCHOR1);
 		assertNotNull(topic);
@@ -56,9 +56,9 @@
 
 	@Test
 	public void testLookupAnchoredHref() {
-	    UserToc	utoc = new UserToc(TITLE_1, null, true);
-	    UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH + ANCHOR1, true);
-	    utoc.addTopic(utopic);
+		UserToc	utoc = new UserToc(TITLE_1, null, true);
+		UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH + ANCHOR1, true);
+		utoc.addTopic(utopic);
 		Toc toc = new Toc(utoc);
 		ITopic topic = toc.getTopic(PATH);
 		assertNotNull(topic);
@@ -67,13 +67,13 @@
 
 	@Test
 	public void testUnanchoredFoundFirst() {
-	    UserToc	utoc = new UserToc(TITLE_1, null, true);
-	    UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH + ANCHOR1, true);
-	    utoc.addTopic(utopic);
-	    utopic = new UserTopic(TOPIC_LABEL_2, PATH, true);
-	    utoc.addTopic(utopic);
-	    utopic = new UserTopic(TOPIC_LABEL_3, PATH + ANCHOR2, true);
-	    utoc.addTopic(utopic);
+		UserToc	utoc = new UserToc(TITLE_1, null, true);
+		UserTopic	utopic = new UserTopic(TOPIC_LABEL_1, PATH + ANCHOR1, true);
+		utoc.addTopic(utopic);
+		utopic = new UserTopic(TOPIC_LABEL_2, PATH, true);
+		utoc.addTopic(utopic);
+		utopic = new UserTopic(TOPIC_LABEL_3, PATH + ANCHOR2, true);
+		utoc.addTopic(utopic);
 		Toc toc = new Toc(utoc);
 		ITopic topic = toc.getTopic(PATH);
 		assertNotNull(topic);
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TopicTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TopicTest.java
index a342c84..d9def5a 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TopicTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/TopicTest.java
@@ -39,7 +39,7 @@
 	private static final String INVALID_INSTALLED = "<with variable=\"platform\">" +
 	"<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.invalid\"/></with>";
 	private static final String CS_INSTALLED = "<with variable=\"platform\">" +
-	    "<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/></with>";
+		"<test property=\"org.eclipse.core.runtime.isBundleInstalled\" args=\"org.eclipse.ui.cheatsheets\"/></with>";
 	private static final String ENABLEMENT_CHEATSHEETS = "<enablement>" + CS_INSTALLED + "</enablement>";
 	private static final String ENABLEMENT_INVALID = "<enablement>" +  INVALID_INSTALLED  + "</enablement>";
 	private static final String FILTER_IN = "<filter name = \"plugin\" value = \"org.eclipse.ua.tests\"/>";
@@ -57,13 +57,13 @@
 	private final String TOPIC_FILTER_OUT = TOPIC_HEAD_ECLIPSE + FILTER_OUT + TOPIC_END;
 	private final String TOPIC_FILTER_MIXED = TOPIC_HEAD_ECLIPSE + FILTER_IN + FILTER_OUT + TOPIC_END;
 	private final String TOPIC_OLD_FILTER = "<topic filter=\"plugin=org.eclipse.ua.tests\" href=\"www.eclipse.org\""
-	    + " label=\"Transformations and transformation configurations\"/>";
+		+ " label=\"Transformations and transformation configurations\"/>";
 	private final String TOPIC_OLD_FILTER_DISABLED = "<topic filter=\"plugin=org.eclipse.ua.invalid\" href=\"www.eclipse.org\""
-	    + " label=\"Transformations and transformation configurations\"/>";
+		+ " label=\"Transformations and transformation configurations\"/>";
 	private final String TOPIC_OLD_FILTER_IN__NEGATED = "<topic filter=\"plugin!=org.eclipse.ua.tests\" href=\"www.eclipse.org\""
-	    + " label=\"Transformations and transformation configurations\"/>";
+		+ " label=\"Transformations and transformation configurations\"/>";
 	private final String TOPIC_OLD_FILTER_OUT_NEGATED = "<topic filter=\"plugin!=org.eclipse.ua.invalid\" href=\"www.eclipse.org\""
-	    + " label=\"Transformations and transformation configurations\"/>";
+		+ " label=\"Transformations and transformation configurations\"/>";
 	private final String TOPIC_WITH_CHILD = TOPIC_HEAD_ECLIPSE + TOPIC_BUGZILLA + TOPIC_END;
 
 	private int mode;
@@ -84,7 +84,7 @@
 		Topic topic;
 		Document doc;
 		try {
-		    doc = DocumentCreator.createDocument(topicSource);
+			doc = DocumentCreator.createDocument(topicSource);
 		} catch (Exception e) {
 			fail("Caught Exception");
 			doc = null;
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UAElementTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UAElementTest.java
index e4b5f37..e6e50e6 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UAElementTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UAElementTest.java
@@ -43,11 +43,11 @@
 		Object topicChildren = element.getChildren(Topic.class);
 		assertTrue(topicChildren instanceof Topic[]);
 		assertTrue(((Topic[])topicChildren).length == 0);
-        assertNull(element.getParentElement());
-        assertNull(element.getAttribute("a1"));
-        assertTrue(element.equals(element));
-        assertFalse(element.equals(null));
-        assertFalse(element.equals("A string"));
+		assertNull(element.getParentElement());
+		assertNull(element.getAttribute("a1"));
+		assertTrue(element.equals(element));
+		assertFalse(element.equals(null));
+		assertFalse(element.equals("A string"));
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionDefinition.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionDefinition.java
index 285cab3..6cfbb85 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionDefinition.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionDefinition.java
@@ -58,7 +58,7 @@
 
 	@Override
 	public IUAElement[] getChildren() {
-        return getCriterionValueDefinitions();
+		return getCriterionValueDefinitions();
 	}
 
 	@Override
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionValueDefinition.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionValueDefinition.java
index 7d42135..dd4af58 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionValueDefinition.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserCriterionValueDefinition.java
@@ -45,7 +45,7 @@
 
 	@Override
 	public IUAElement[] getChildren() {
-        return new IUAElement[0];
+		return new IUAElement[0];
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/HelpServerTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/HelpServerTest.java
index fe3026e..50381f6 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/HelpServerTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/HelpServerTest.java
@@ -51,7 +51,7 @@
 		for (int i=0; i < 100; ++i) {
 			boolean warmup = i < 2;
 			if (!warmup) {
-			    startMeasuring();
+				startMeasuring();
 			}
 
 			for (int j = 0; j <= 100; j++) {
@@ -59,8 +59,8 @@
 			}
 
 			if (!warmup) {
-			    stopMeasuring();
-		    }
+				stopMeasuring();
+			}
 		}
 
 		commitMeasurements();
@@ -75,14 +75,14 @@
 			boolean warmup = i < 2;
 			LoadServletUtil.stopServer();
 			if (!warmup) {
-			    startMeasuring();
+				startMeasuring();
 			}
 
 			LoadServletUtil.startServer();
 
 			if (!warmup) {
-			    stopMeasuring();
-		    }
+				stopMeasuring();
+			}
 		}
 
 		commitMeasurements();
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/IndexAssemblePerformanceTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/IndexAssemblePerformanceTest.java
index 1091be2..588c9fa 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/IndexAssemblePerformanceTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/IndexAssemblePerformanceTest.java
@@ -55,14 +55,14 @@
 		for (int i=0; i < 10; ++i) {
 			boolean warmup = i == 0;
 			if (!warmup) {
-			    startMeasuring();
+				startMeasuring();
 			}
 
 			assembleIndex();
 
 			if (!warmup) {
-			    stopMeasuring();
-		    }
+				stopMeasuring();
+			}
 		}
 
 		commitMeasurements();
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/LowIterationHelpServerTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/LowIterationHelpServerTest.java
index 8b99016..7b956f5 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/LowIterationHelpServerTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/LowIterationHelpServerTest.java
@@ -51,7 +51,7 @@
 		for (int i=0; i < 15; ++i) {
 			boolean warmup = i < 2;
 			if (!warmup) {
-			    startMeasuring();
+				startMeasuring();
 			}
 
 			for (int j = 0; j <= 20; j++) {
@@ -59,8 +59,8 @@
 			}
 
 			if (!warmup) {
-			    stopMeasuring();
-		    }
+				stopMeasuring();
+			}
 		}
 
 		commitMeasurements();
@@ -75,14 +75,14 @@
 			boolean warmup = i < 2;
 			LoadServletUtil.stopServer();
 			if (!warmup) {
-			    startMeasuring();
+				startMeasuring();
 			}
 
 			LoadServletUtil.startServer();
 
 			if (!warmup) {
-			    stopMeasuring();
-		    }
+				stopMeasuring();
+			}
 		}
 
 		commitMeasurements();
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/TocAssemblePerformanceTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/TocAssemblePerformanceTest.java
index 4c9549b..e3efd43 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/TocAssemblePerformanceTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/performance/TocAssemblePerformanceTest.java
@@ -85,14 +85,14 @@
 		for (int i=0; i < 100; ++i) {
 			boolean warmup = i < 2;
 			if (!warmup) {
-			    startMeasuring();
+				startMeasuring();
 			}
 			for (int j = 0; j < 20; j++) {
-			    assembleToc();
+				assembleToc();
 			}
 			if (!warmup) {
-			    stopMeasuring();
-		    }
+				stopMeasuring();
+			}
 		}
 
 		commitMeasurements();
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/preferences/HelpDataTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/preferences/HelpDataTest.java
index 69ccb70..1fd25a4 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/preferences/HelpDataTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/preferences/HelpDataTest.java
@@ -52,11 +52,11 @@
 	@Before
 	public void setUp() throws Exception {
 		baseTocsPreference = Platform.getPreferencesService().getString
-	        (HelpPlugin.PLUGIN_ID, HelpPlugin.BASE_TOCS_KEY, "", null);
+			(HelpPlugin.PLUGIN_ID, HelpPlugin.BASE_TOCS_KEY, "", null);
 		ignoredTocsPreference = Platform.getPreferencesService().getString
-            (HelpPlugin.PLUGIN_ID, HelpPlugin.IGNORED_TOCS_KEY, "", null);
+			(HelpPlugin.PLUGIN_ID, HelpPlugin.IGNORED_TOCS_KEY, "", null);
 		ignoredIndexesPreference = Platform.getPreferencesService().getString
-            (HelpPlugin.PLUGIN_ID, HelpPlugin.IGNORED_INDEXES_KEY, "", null);
+			(HelpPlugin.PLUGIN_ID, HelpPlugin.IGNORED_INDEXES_KEY, "", null);
 		setBaseTocs("");
 		setIgnoredTocs("");
 		setIgnoredIndexes("");
@@ -70,18 +70,18 @@
 	}
 
 	private void setBaseTocs(String value) {
-	    IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
-	    pref.put(HelpPlugin.BASE_TOCS_KEY, value);
+		IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
+		pref.put(HelpPlugin.BASE_TOCS_KEY, value);
 	}
 
 	private void setIgnoredTocs(String value) {
-	    IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
-	    pref.put(HelpPlugin.IGNORED_TOCS_KEY, value);
+		IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
+		pref.put(HelpPlugin.IGNORED_TOCS_KEY, value);
 	}
 
 	private void setIgnoredIndexes(String value) {
-	    IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
-	    pref.put(HelpPlugin.IGNORED_INDEXES_KEY, value);
+		IEclipsePreferences pref = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
+		pref.put(HelpPlugin.IGNORED_INDEXES_KEY, value);
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContentServletTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContentServletTest.java
index ca97940..bb27b93 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContentServletTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContentServletTest.java
@@ -45,7 +45,7 @@
 		final String path = "/data/help/index/topic1.html";
 		String remoteContent = RemoteTestUtils.getRemoteContent(UA_TESTS, path, "en");
 		String localContent = RemoteTestUtils.getLocalContent(UA_TESTS, path);
-	    assertEquals(remoteContent, localContent);
+		assertEquals(remoteContent, localContent);
 	}
 
 	@Test
@@ -53,7 +53,7 @@
 		final String path = "/data/help/manual/filter.xhtml";
 		String remoteContent = RemoteTestUtils.getRemoteContent(UA_TESTS, path, "en");
 		String localContent = RemoteTestUtils.getLocalContent(UA_TESTS, path);
-	    assertEquals(remoteContent, localContent);
+		assertEquals(remoteContent, localContent);
 	}
 
 	@Test
@@ -61,7 +61,7 @@
 		final String path = "/data/help/search/testnl1.xhtml";
 		String remoteContent = RemoteTestUtils.getRemoteContent(UA_TESTS, path, "en");
 		String localContent = RemoteTestUtils.getLocalContent(UA_TESTS, path);
-	    assertEquals(remoteContent, localContent);
+		assertEquals(remoteContent, localContent);
 	}
 
 	@Test
@@ -70,8 +70,8 @@
 		String remoteContent = RemoteTestUtils.getRemoteContent(UA_TESTS, path, "de");
 		String enLocalContent = RemoteTestUtils.getLocalContent(UA_TESTS, path);
 		String deLocalContent = RemoteTestUtils.getLocalContent(UA_TESTS, "/nl/de" + path);
-	    assertEquals(remoteContent, deLocalContent);
-	    assertFalse(remoteContent.equals(enLocalContent));
+		assertEquals(remoteContent, deLocalContent);
+		assertFalse(remoteContent.equals(enLocalContent));
 	}
 
 	@Test(expected = IOException.class)
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContextServletTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContextServletTest.java
index 753030a..3277938 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContextServletTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ContextServletTest.java
@@ -67,7 +67,7 @@
 	@Test
 	public void testRemoteContextFoundDe() throws Exception {
 		Element[] topics = getContextsUsingLocale
-		    ("org.eclipse.ua.tests.test_cheatsheets", "de");
+			("org.eclipse.ua.tests.test_cheatsheets", "de");
 		assertEquals(1, topics.length);
 		assertEquals("German Context", topics[0].getAttribute("label"));
 	}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContentUsingRemoteHelp.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContentUsingRemoteHelp.java
index c945dcc..5fcf061 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContentUsingRemoteHelp.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContentUsingRemoteHelp.java
@@ -37,8 +37,8 @@
 	@Before
 	public void setUp() throws Exception {
 		BaseHelpSystem.ensureWebappRunning();
-        mode = BaseHelpSystem.getMode();
-        RemotePreferenceStore.savePreferences();
+		mode = BaseHelpSystem.getMode();
+		RemotePreferenceStore.savePreferences();
 		RemotePreferenceStore.setMockRemoteServer();
 		RemotePreferenceStore.disableErrorPage();
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
@@ -63,8 +63,8 @@
 
 	@Test
 	public void testContentFound() throws Exception  {
-        final String path = "/data/help/index/topic1.html";
-        String remoteContent = getHelpContent("mock.toc", path, "en");
+		final String path = "/data/help/index/topic1.html";
+		String remoteContent = getHelpContent("mock.toc", path, "en");
 		int port = TestServerManager.getPort(0);
 		String expectedContent = RemoteTestUtils.createMockContent("mock.toc", path, "en", port);
 		assertEquals(expectedContent, remoteContent);
@@ -72,8 +72,8 @@
 
 	@Test
 	public void testContentFoundDe() throws Exception  {
-        final String path = "/data/help/index/topic2.html";
-        String remoteContent = getHelpContent("mock.toc", path, "de");
+		final String path = "/data/help/index/topic2.html";
+		String remoteContent = getHelpContent("mock.toc", path, "de");
 		int port = TestServerManager.getPort(0);
 		String expectedContent = RemoteTestUtils.createMockContent("mock.toc", path, "de", port);
 		assertEquals(expectedContent, remoteContent);
@@ -81,8 +81,8 @@
 
 	@Test
 	public void testLocalBeatsRemote() throws Exception  {
-        final String path = "/doc/help_home.html";
-        String plugin = "org.eclipse.help.base";
+		final String path = "/doc/help_home.html";
+		String plugin = "org.eclipse.help.base";
 		String helpContent = getHelpContent(plugin, path, "en");
 		String localContent = RemoteTestUtils.getLocalContent(plugin, path);
 		assertEquals(localContent, helpContent);
@@ -93,8 +93,8 @@
 		RemotePreferenceStore.setMockRemotePriority();
 		HelpPlugin.getTocManager().clearCache();
 		HelpPlugin.getTocManager().getTocs("en");
-        final String path = "/doc/help_home.html";
-        String plugin = "org.eclipse.help.base";
+		final String path = "/doc/help_home.html";
+		String plugin = "org.eclipse.help.base";
 		String helpContent = getHelpContent(plugin, path, "en");
 
 		int port = TestServerManager.getPort(0);
@@ -109,20 +109,20 @@
 		HelpPlugin.getTocManager().clearCache();
 		HelpPlugin.getTocManager().getTocs("en");
 		//Verify help coming from first one
-		 final String path = "/doc/help_home.html";
-	     String plugin = "org.eclipse.help.base";
-		 String helpContent = GetContentUsingRemoteHelp.getHelpContent(plugin, path, "en");
+		final String path = "/doc/help_home.html";
+		String plugin = "org.eclipse.help.base";
+		String helpContent = GetContentUsingRemoteHelp.getHelpContent(plugin, path, "en");
 
-		 //Get remote content from first one in prefs
+		//Get remote content from first one in prefs
 
-		 int port0 = TestServerManager.getPort(0);
-		 String remoteContent0 = RemoteTestUtils.createMockContent(plugin, path, "en", port0);
+		int port0 = TestServerManager.getPort(0);
+		String remoteContent0 = RemoteTestUtils.createMockContent(plugin, path, "en", port0);
 
-		 int port1 = TestServerManager.getPort(1);
-		 String remoteContent1 = RemoteTestUtils.createMockContent(plugin, path, "en", port1);
+		int port1 = TestServerManager.getPort(1);
+		String remoteContent1 = RemoteTestUtils.createMockContent(plugin, path, "en", port1);
 
-		 assertEquals(remoteContent0, helpContent);
-		 assertFalse(remoteContent1.equals(helpContent));
+		assertEquals(remoteContent0, helpContent);
+		assertFalse(remoteContent1.equals(helpContent));
 
 	}
 
@@ -133,21 +133,21 @@
 		HelpPlugin.getTocManager().clearCache();
 		HelpPlugin.getTocManager().getTocs("en");
 		//Verify help coming from first one
-		 final String path = "/doc/help_home.html";
-	     String plugin = "org.eclipse.help.base";
-		 String helpContent = GetContentUsingRemoteHelp.getHelpContent(plugin, path, "en");
+		final String path = "/doc/help_home.html";
+		String plugin = "org.eclipse.help.base";
+		String helpContent = GetContentUsingRemoteHelp.getHelpContent(plugin, path, "en");
 
-		 //Get remote content from second in prefs
+		//Get remote content from second in prefs
 
-		 int port0 = TestServerManager.getPort(0);
-		 String remoteContent0 = RemoteTestUtils.createMockContent(plugin, path, "en", port0);
+		int port0 = TestServerManager.getPort(0);
+		String remoteContent0 = RemoteTestUtils.createMockContent(plugin, path, "en", port0);
 
-		 int port1 = TestServerManager.getPort(1);
-		 String remoteContent1 = RemoteTestUtils.createMockContent(plugin, path, "en", port1);
+		int port1 = TestServerManager.getPort(1);
+		String remoteContent1 = RemoteTestUtils.createMockContent(plugin, path, "en", port1);
 
 
-		 assertEquals(remoteContent1, helpContent);
-		 assertFalse(remoteContent0.equals(helpContent));
+		assertEquals(remoteContent1, helpContent);
+		assertFalse(remoteContent0.equals(helpContent));
 
 	}
 
@@ -157,7 +157,7 @@
 		HelpPlugin.getTocManager().clearCache();
 		HelpPlugin.getTocManager().getTocs("en");
 		final String path = "/data/help/nonlocal.html";
-        String plugin = "org.eclipse.help.base";
+		String plugin = "org.eclipse.help.base";
 		String remoteContent = getHelpContent(plugin, path, "en");
 		int port = TestServerManager.getPort(0);
 		String expectedContent = RemoteTestUtils.createMockContent(plugin, path, "en", port);
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContextUsingRemoteHelp.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContextUsingRemoteHelp.java
index b0818d8..a4c7b1a 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContextUsingRemoteHelp.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/GetContextUsingRemoteHelp.java
@@ -33,8 +33,8 @@
 
 	@Before
 	public void setUp() throws Exception {
-        RemotePreferenceStore.savePreferences();
-        mode = BaseHelpSystem.getMode();
+		RemotePreferenceStore.savePreferences();
+		mode = BaseHelpSystem.getMode();
 		RemotePreferenceStore.setMockRemoteServer();
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
 	}
@@ -57,7 +57,7 @@
 		assertEquals("context_one_en", title);
 		RemotePreferenceStore.disableRemoteHelp();
 		context = HelpPlugin.getContextManager().getContext("org.eclipse.ua.tests.test_one", "en");
-        assertNull(context);
+		assertNull(context);
 	}
 
 	@Test
@@ -79,7 +79,7 @@
 	@Test
 	public void testContextNotFound() throws Exception {
 		IContext context = HelpPlugin.getContextManager().getContext("org.eclipse.ua.tests.no_such_ctx", "en");
-        assertNull(context);
+		assertNull(context);
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/IndexServletTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/IndexServletTest.java
index a4f2780..70fa994 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/IndexServletTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/IndexServletTest.java
@@ -56,70 +56,70 @@
 	public void testIndexServletContainsSimpleWord() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "xyz");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testIndexServletContainsWordWithAccent() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "\u00E1mbito");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testIndexServletContainsWordWithGt() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "character >");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testIndexServletContainsWordWithLt() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "character <");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testIndexServletContainsWordWithAmp() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "character &");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testIndexServletContainsWordWithQuot() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "character \"");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testIndexServletContainsWordWithApostrophe() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "character '");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testDeWordNotInEnIndex() throws Exception {
 		Node root = getIndexContributions("en");
 		Element[] UARoot = findEntryInAllContributions(root, "munich");
-	    assertEquals(0, UARoot.length);
+		assertEquals(0, UARoot.length);
 	}
 
 	@Test
 	public void testWordInDeIndex() throws Exception {
 		Node root = getIndexContributions("de");
 		Element[] UARoot = findEntryInAllContributions(root, "munich");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testWordNotInDeIndex() throws Exception {
 		Node root = getIndexContributions("de");
 		Element[] UARoot = findEntryInAllContributions(root, "xyz");
-	    assertEquals(0, UARoot.length);
+		assertEquals(0, UARoot.length);
 	}
 
 	private Element[] findEntryInAllContributions(Node parent, String keyword) {
@@ -131,7 +131,7 @@
 				Element nextElement = (Element)next;
 				if ("indexContribution".equals(nextElement.getTagName())) {
 					findEntryInIndexContribution(nextElement, keyword, results);
-			    }
+				}
 			}
 		}
 		return results.toArray(new Element[results.size()]);
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadIndexUsingRemoteHelp.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadIndexUsingRemoteHelp.java
index 7297180..56d1869 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadIndexUsingRemoteHelp.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadIndexUsingRemoteHelp.java
@@ -33,8 +33,8 @@
 
 	@Before
 	public void setUp() throws Exception {
-        RemotePreferenceStore.savePreferences();
-        mode = BaseHelpSystem.getMode();
+		RemotePreferenceStore.savePreferences();
+		mode = BaseHelpSystem.getMode();
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
 	}
 
@@ -71,7 +71,7 @@
 		HelpPlugin.getIndexManager().clearCache();
 		index = HelpPlugin.getIndexManager().getIndex(locale);
 		// Entry 1 has the same child on each remote server, Entry 2 has different children
-        entry1 = matchingEntries(index, "entry1_" + locale);
+		entry1 = matchingEntries(index, "entry1_" + locale);
 		entry2 = matchingEntries(index, "entry2_" + locale);
 		assertEquals(1, entry1.length);
 		assertEquals(1, entry1[0].getTopics().length);
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadTocUsingRemoteHelp.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadTocUsingRemoteHelp.java
index 6219a48..9ea8d9c 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadTocUsingRemoteHelp.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/LoadTocUsingRemoteHelp.java
@@ -29,8 +29,8 @@
 
 	@Before
 	public void setUp() throws Exception {
-        RemotePreferenceStore.savePreferences();
-        mode = BaseHelpSystem.getMode();
+		RemotePreferenceStore.savePreferences();
+		mode = BaseHelpSystem.getMode();
 	}
 
 	@After
@@ -53,7 +53,7 @@
 		assertEquals(0, deTocs);
 		deTocs = matchingTocs(tocs, "Mock Toc 2 de");
 		assertEquals(0, deTocs);
-	    RemotePreferenceStore.disableRemoteHelp();
+		RemotePreferenceStore.disableRemoteHelp();
 	}
 
 	@Test
@@ -70,7 +70,7 @@
 		assertEquals(1, deTocs);
 		deTocs = matchingTocs(tocs, "Mock Toc 2 de");
 		assertEquals(1, deTocs);
-	    RemotePreferenceStore.disableRemoteHelp();
+		RemotePreferenceStore.disableRemoteHelp();
 	}
 
 	@Test
@@ -83,7 +83,7 @@
 		assertEquals(1, enTocs);
 		int deTocs = matchingTocs(tocs, "Mock Toc de");
 		assertEquals(0, deTocs);
-	    RemotePreferenceStore.disableRemoteHelp();
+		RemotePreferenceStore.disableRemoteHelp();
 	}
 
 	/*
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockContentServlet.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockContentServlet.java
index 8f334e8..6a5564c 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockContentServlet.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockContentServlet.java
@@ -46,8 +46,8 @@
 			resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
 		} else {
 			int port = req.getLocalPort();
-		    String response = RemoteTestUtils.createMockContent(plugin, file, locale, port);
-		    resp.getWriter().write(response);
+			String response = RemoteTestUtils.createMockContent(plugin, file, locale, port);
+			resp.getWriter().write(response);
 		}
 		callcount++;
 	}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockSearchServlet.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockSearchServlet.java
index f2f9393..260243d 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockSearchServlet.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockSearchServlet.java
@@ -46,8 +46,8 @@
 					0, null, null, null, false);
 			results.add(hit);
 		}
-	    String response = SearchServlet.serialize(results);
-	    resp.getWriter().write(response);
+		String response = SearchServlet.serialize(results);
+		resp.getWriter().write(response);
 	}
 
 	private boolean isSearchHit(String phrase, String locale) {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockTocServlet.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockTocServlet.java
index 5df3acb..110d752 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockTocServlet.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/MockTocServlet.java
@@ -46,10 +46,10 @@
 		UserTopic topic2 = new UserTopic("Topic_" + locale, "http://www.eclipse.org", true);
 		toc2.addTopic(topic2);
 		TocContribution contribution2 = createToc(toc2, "mock.toc", locale);
-	    String response;
+		String response;
 		try {
 			response = serialize(new TocContribution[] { contribution1, contribution2 }, locale);
-		    resp.getWriter().write(response);
+			resp.getWriter().write(response);
 		} catch (TransformerException e) {
 			resp.sendError(400);
 		}
@@ -62,10 +62,10 @@
 		contribution.setContributorId(id);
 		contribution.setExtraDocuments(new String[0]);
 		contribution.setLocale(locale);
-	    contribution.setPrimary(true);
-	    contribution.setSubToc(false);
+		contribution.setPrimary(true);
+		contribution.setSubToc(false);
 		contribution.setId(id);
-	    contribution.setToc(new Toc(toc));
+		contribution.setToc(new Toc(toc));
 		return contribution;
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchServletTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchServletTest.java
index a304a37..9e927d1 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchServletTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchServletTest.java
@@ -89,24 +89,24 @@
 	@Test
 	public void testNotFoundInParallel() {
 		ParallelTestSupport.testInParallel(new SearchServletTester[]
-		     { new SearchServletTester("duernfryehd", 0),
-		       new SearchServletTester("duernfryehd", 0)}, 100);
+			 { new SearchServletTester("duernfryehd", 0),
+			   new SearchServletTester("duernfryehd", 0)}, 100);
 	}
 
 	@Test
 	public void testFoundInParallel() {
 		ParallelTestSupport.testInParallel(new SearchServletTester[]
-		     { new SearchServletTester("jehcyqpfjs", 1),
-		       new SearchServletTester("jehcyqpfjs", 1)}, 100);
+			 { new SearchServletTester("jehcyqpfjs", 1),
+			   new SearchServletTester("jehcyqpfjs", 1)}, 100);
 	}
 
 	@Test
 	public void testMixedParallelSearches() {
 		ParallelTestSupport.testInParallel(new SearchServletTester[]
-		     { new SearchServletTester("jehcyqpfjs", 1),
+			 { new SearchServletTester("jehcyqpfjs", 1),
 			   new SearchServletTester("duernfryehd", 0),
-		       new SearchServletTester("jehcyqpfjs", 1),
-               new SearchServletTester("duernfryehd", 0)}, 100);
+			   new SearchServletTester("jehcyqpfjs", 1),
+			   new SearchServletTester("duernfryehd", 0)}, 100);
 	}
 
 	private Node[] getSearchHitsFromServlet(String phrase)
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchUsingRemote.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchUsingRemote.java
index 19920e7..2450d31 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchUsingRemote.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/ParallelSearchUsingRemote.java
@@ -44,8 +44,8 @@
 
 	@Before
 	public void setUp() throws Exception {
-        RemotePreferenceStore.savePreferences();
-        mode = BaseHelpSystem.getMode();
+		RemotePreferenceStore.savePreferences();
+		mode = BaseHelpSystem.getMode();
 	}
 
 	@After
@@ -59,7 +59,7 @@
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
 		RemotePreferenceStore.setMockRemoteServer();
 		ParallelTestSupport.testSingleCase(new Searcher(), 100);
-	    RemotePreferenceStore.disableRemoteHelp();
+		RemotePreferenceStore.disableRemoteHelp();
 	}
 
 	@Test
@@ -71,7 +71,7 @@
 			testCases[i] = new Searcher();
 		}
 		ParallelTestSupport.testInParallel(testCases, 100);
-	    RemotePreferenceStore.disableRemoteHelp();
+		RemotePreferenceStore.disableRemoteHelp();
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceStore.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceStore.java
index 5941a4b..dd65921 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceStore.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceStore.java
@@ -34,36 +34,36 @@
 	private static String pageNotFound;
 
 	public static void savePreferences() throws Exception {
-	    namePreference = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_NAME,
-			      "", null);
-	     hostPreference = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_HOST,
-			      "", null);
+		namePreference = Platform.getPreferencesService().getString
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_NAME,
+					"", null);
+		hostPreference = Platform.getPreferencesService().getString
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_HOST,
+					"", null);
 		pathPreference = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PATH,
-			      "", null);
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PATH,
+					"", null);
 		protocolPreference = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PROTOCOL,
-			      "", null);
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PROTOCOL,
+					"", null);
 		portPreference = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PORT,
-			      "", null);
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PORT,
+					"", null);
 		icEnabledPreference = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ICEnabled,
-			      "", null);
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ICEnabled,
+					"", null);
 		defaultPort = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_DEFAULT_PORT,
-			      "", null);
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_DEFAULT_PORT,
+					"", null);
 		helpOn = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON,
-			      "", null);
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_ON,
+					"", null);
 		remoteHelpPreferred = Platform.getPreferencesService().getString
-	     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PREFERRED,
-			      "", null);
+		 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_KEY_REMOTE_HELP_PREFERRED,
+					"", null);
 		pageNotFound = Platform.getPreferencesService().getString
-				     (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_PAGE_NOT_FOUND,
-						      "", null);
+					 (HelpBasePlugin.PLUGIN_ID, IHelpBaseConstants.P_PAGE_NOT_FOUND,
+								"", null);
 	}
 
 	public static void restorePreferences() throws Exception {
@@ -81,7 +81,7 @@
 	}
 
 	public static void setMockRemoteServer() throws Exception {
-        TestServerManager.start("ua.test", 0);
+		TestServerManager.start("ua.test", 0);
 		RemotePreferenceTest.setPreference("remoteHelpOn", "true");
 		RemotePreferenceTest.setPreference("remoteHelpHost", "localhost");
 		RemotePreferenceTest.setPreference("remoteHelpPath", "/help");
@@ -94,8 +94,8 @@
 	}
 
 	public static void setTwoMockRemoteServers() throws Exception {
-        TestServerManager.start("ua.test", 0);
-        TestServerManager.start("ua.test2", 1);
+		TestServerManager.start("ua.test", 0);
+		TestServerManager.start("ua.test2", 1);
 		RemotePreferenceTest.setPreference("remoteHelpOn", "true");
 		RemotePreferenceTest.setPreference("remoteHelpHost", "localhost,localhost");
 		RemotePreferenceTest.setPreference("remoteHelpPath", "/help,/help");
@@ -108,8 +108,8 @@
 		RemotePreferenceTest.setPreference("remoteHelpICContributed", "false,false");
 	}
 	public static void setTwoMockRemoteServersReversePriority() throws Exception {
-        TestServerManager.start("ua.test", 0);
-        TestServerManager.start("ua.test2", 1);
+		TestServerManager.start("ua.test", 0);
+		TestServerManager.start("ua.test2", 1);
 		RemotePreferenceTest.setPreference("remoteHelpOn", "true");
 		RemotePreferenceTest.setPreference("remoteHelpHost", "localhost,localhost");
 		RemotePreferenceTest.setPreference("remoteHelpPath", "/help,/help");
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceTest.java
index 2bc431b..81954be 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/RemotePreferenceTest.java
@@ -35,7 +35,7 @@
 
 	@Before
 	public void setUp() throws Exception {
-        RemotePreferenceStore.savePreferences();
+		RemotePreferenceStore.savePreferences();
 	}
 
 	@After
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchIndexCreation.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchIndexCreation.java
index 55b783d..2ffbecd 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchIndexCreation.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchIndexCreation.java
@@ -37,8 +37,8 @@
 	@Before
 	public void setUp() throws Exception {
 		BaseHelpSystem.ensureWebappRunning();
-        mode = BaseHelpSystem.getMode();
-        RemotePreferenceStore.savePreferences();
+		mode = BaseHelpSystem.getMode();
+		RemotePreferenceStore.savePreferences();
 		RemotePreferenceStore.setMockRemoteServer();
 		RemotePreferenceStore.disableErrorPage();
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
@@ -103,7 +103,7 @@
 			if (status.getException() != null) {
 				throw status.getException();
 			}
-		    fail(doc + " status = " + status.getMessage());
+			fail(doc + " status = " + status.getMessage());
 		}
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchUsingRemoteHelp.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchUsingRemoteHelp.java
index ec56f4c..2c5c3b6 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchUsingRemoteHelp.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/SearchUsingRemoteHelp.java
@@ -26,8 +26,8 @@
 
 	@Before
 	public void setUp() throws Exception {
-        RemotePreferenceStore.savePreferences();
-        mode = BaseHelpSystem.getMode();
+		RemotePreferenceStore.savePreferences();
+		mode = BaseHelpSystem.getMode();
 	}
 
 	@After
@@ -42,8 +42,8 @@
 		RemotePreferenceStore.setMockRemoteServer();
 		SearchTestUtils.searchOneLocale("endfdsadsads", new String[] { "http://www.eclipse.org" },
 				"en");
-	    RemotePreferenceStore.disableRemoteHelp();
-	    SearchTestUtils.searchOneLocale("endfdsadsads", new String[0], "en");
+		RemotePreferenceStore.disableRemoteHelp();
+		SearchTestUtils.searchOneLocale("endfdsadsads", new String[0], "en");
 	}
 
 	@Test
@@ -52,8 +52,8 @@
 		RemotePreferenceStore.setTwoMockRemoteServers();
 		SearchTestUtils.searchOneLocale("endfdsadsads", new String[] { "http://www.eclipse.org" },
 				"en");
-	    RemotePreferenceStore.disableRemoteHelp();
-	    SearchTestUtils.searchOneLocale("endfdsadsads", new String[0], "en");
+		RemotePreferenceStore.disableRemoteHelp();
+		SearchTestUtils.searchOneLocale("endfdsadsads", new String[0], "en");
 	}
 
 	@Test
@@ -61,24 +61,24 @@
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
 		RemotePreferenceStore.setMockRemoteServer();
 		SearchTestUtils.searchOneLocale("dedfdsadsads", new String[] { "http://www.eclipse.org" }, "de");
-	    RemotePreferenceStore.disableRemoteHelp();
-	    SearchTestUtils.searchOneLocale("dedfdsadsads", new String[0], "de");
+		RemotePreferenceStore.disableRemoteHelp();
+		SearchTestUtils.searchOneLocale("dedfdsadsads", new String[0], "de");
 	}
 
 	@Test
 	public void testSearchEnWordInDeLocale() throws Exception {
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
 		RemotePreferenceStore.setMockRemoteServer();
-	    SearchTestUtils.searchOneLocale("endfdsadsads", new String[0], "de");
-	    RemotePreferenceStore.disableRemoteHelp();
+		SearchTestUtils.searchOneLocale("endfdsadsads", new String[0], "de");
+		RemotePreferenceStore.disableRemoteHelp();
 	}
 
 	@Test
 	public void testSearchDeWordInEnLocale() throws Exception {
 		BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
 		RemotePreferenceStore.setMockRemoteServer();
-	    SearchTestUtils.searchOneLocale("dedfdsadsads", new String[0], "en");
-	    RemotePreferenceStore.disableRemoteHelp();
+		SearchTestUtils.searchOneLocale("dedfdsadsads", new String[0], "en");
+		RemotePreferenceStore.disableRemoteHelp();
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TestServerManager.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TestServerManager.java
index 1238f98..2157f06 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TestServerManager.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TestServerManager.java
@@ -41,8 +41,8 @@
 
 	public static void stop(String webappName, int index) throws CoreException {
 		if (serverRunning[index]) {
-		    getHelpServer(index).stop(webappName);
-		    serverRunning[index] = false;
+			getHelpServer(index).stop(webappName);
+			serverRunning[index] = false;
 		}
 	}
 
@@ -51,7 +51,7 @@
 	}
 
 	public static String getHost(int index) {
-        return getHelpServer(index).getHost();
+		return getHelpServer(index).getHost();
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java
index 90f53d0..b7b094b 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java
@@ -56,51 +56,51 @@
 	public void testTocServletContainsUAToc() throws Exception {
 		Node root = getTocContributions("en");
 		Element[] UARoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/toc/root.xml");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testTocServletContainsFilteredToc() throws Exception {
 		Node root = getTocContributions("en");
 		Element[] UARoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/toc/filteredToc/toc.xml");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testTocServletContainsUnlinkedToc() throws Exception {
 		Node root = getTocContributions("en");
 		Element[] UARoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/toc/filteredToc/nonPrimaryToc.xml");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
 	public void testReadEnToc() throws Exception {
 		Node root = getTocContributions("en");
 		Element[] uaRoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/search/toc.xml");
-	    assertEquals(1, uaRoot.length);
-	    Element[] toc = findChildren(uaRoot[0], "toc", "label", "search");
-	    assertEquals(1, toc.length);
-	    Element[] topicSearch = findChildren(toc[0], "topic", "label", "search");
-	    assertEquals(1, topicSearch.length);
-	    Element[] topicEn = findChildren(topicSearch[0], "topic", "label", "testen.html");
-	    assertEquals(1, topicEn.length);
-	    Element[] topicDe = findChildren(topicSearch[0], "topic", "label", "testde.html");
-	    assertEquals(0, topicDe.length);
+		assertEquals(1, uaRoot.length);
+		Element[] toc = findChildren(uaRoot[0], "toc", "label", "search");
+		assertEquals(1, toc.length);
+		Element[] topicSearch = findChildren(toc[0], "topic", "label", "search");
+		assertEquals(1, topicSearch.length);
+		Element[] topicEn = findChildren(topicSearch[0], "topic", "label", "testen.html");
+		assertEquals(1, topicEn.length);
+		Element[] topicDe = findChildren(topicSearch[0], "topic", "label", "testde.html");
+		assertEquals(0, topicDe.length);
 	}
 
 	@Test
 	public void testReadDeToc() throws Exception {
 		Node root = getTocContributions("de");
 		Element[] uaRoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/search/toc.xml");
-	    assertEquals(1, uaRoot.length);
-	    Element[] toc = findChildren(uaRoot[0], "toc", "label", "search");
-	    assertEquals(1, toc.length);
-	    Element[] topicSearch = findChildren(toc[0], "topic", "label", "search");
-	    assertEquals(1, topicSearch.length);
-	    Element[] topicEn = findChildren(topicSearch[0], "topic", "label", "testen.html");
-	    assertEquals(0, topicEn.length);
-	    Element[] topicDe = findChildren(topicSearch[0], "topic", "label", "testde.html");
-	    assertEquals(1, topicDe.length);
+		assertEquals(1, uaRoot.length);
+		Element[] toc = findChildren(uaRoot[0], "toc", "label", "search");
+		assertEquals(1, toc.length);
+		Element[] topicSearch = findChildren(toc[0], "topic", "label", "search");
+		assertEquals(1, topicSearch.length);
+		Element[] topicEn = findChildren(topicSearch[0], "topic", "label", "testen.html");
+		assertEquals(0, topicEn.length);
+		Element[] topicDe = findChildren(topicSearch[0], "topic", "label", "testde.html");
+		assertEquals(1, topicDe.length);
 	}
 
 	private Element[] findContributionById(Node root, String id) {
@@ -116,7 +116,7 @@
 				Element nextElement = (Element)next;
 				if ( childKind.equals(nextElement.getTagName()) && attributeValue.equals(nextElement.getAttribute(attributeName))) {
 
-				    results.add(next);
+					results.add(next);
 				}
 			}
 		}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/IntersectionTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/IntersectionTest.java
index c4e406d..53400fe 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/IntersectionTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/IntersectionTest.java
@@ -26,7 +26,7 @@
 	private AbstractHelpScope createScope(char char1, char char2) {
 		AbstractHelpScope result = new IntersectionScope(
 				new AbstractHelpScope[]{new MockScope(char1, true),
-		        new MockScope(char2, true)});
+				new MockScope(char2, true)});
 		return result;
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/UnionTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/UnionTest.java
index 592a131..b5b5ae7 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/UnionTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/scope/UnionTest.java
@@ -26,7 +26,7 @@
 	private AbstractHelpScope createScope(char char1, char char2) {
 		AbstractHelpScope result = new UnionScope(
 				new AbstractHelpScope[]{new MockScope(char1, true),
-		        new MockScope(char2, true)});
+				new MockScope(char2, true)});
 		return result;
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/AnalyzerTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/AnalyzerTest.java
index 71b83b2..def6b98 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/AnalyzerTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/AnalyzerTest.java
@@ -24,90 +24,90 @@
 	private final String[] supportedLanguages = { "en", "pt", "ja", "zh", "cs", "de", "el", "fr", "nl", "ru", "ar" };
 
 	@Test
-    public void testEnglishAnalyzer() {
-    	checkAnalyzer("en", "en");
-    }
+	public void testEnglishAnalyzer() {
+		checkAnalyzer("en", "en");
+	}
 
 	@Test
-    public void testEnglishUsAnalyzer() {
-    	checkAnalyzer("en_us", "en");
-    }
+	public void testEnglishUsAnalyzer() {
+		checkAnalyzer("en_us", "en");
+	}
 
 	@Test
-    public void testGermanAnalyzer_de() {
-    	checkAnalyzer("de", "de");
-    }
+	public void testGermanAnalyzer_de() {
+		checkAnalyzer("de", "de");
+	}
 
 	@Test
-    public void testGermanAnalyzer_de_DE() {
-    	checkAnalyzer("de_DE", "de");
-    }
+	public void testGermanAnalyzer_de_DE() {
+		checkAnalyzer("de_DE", "de");
+	}
 
 	@Test
-    public void testJapaneseAnalyzer() {
-    	checkAnalyzer("ja", "ja");
-    }
+	public void testJapaneseAnalyzer() {
+		checkAnalyzer("ja", "ja");
+	}
 
 	@Test
-    public void testFrenchAnalyzer() {
-    	checkAnalyzer("fr", "fr");
-    }
+	public void testFrenchAnalyzer() {
+		checkAnalyzer("fr", "fr");
+	}
 
 	@Test
-    public void testChineseAnalyzer() {
-    	checkAnalyzer("zh", "zh");
-    }
+	public void testChineseAnalyzer() {
+		checkAnalyzer("zh", "zh");
+	}
 
-    // Korean and japanese share an analyzer
+	// Korean and japanese share an analyzer
 	@Test
-    public void testKoreanAnalyzer() {
-    	checkAnalyzer("ko", "ja");
-    }
+	public void testKoreanAnalyzer() {
+		checkAnalyzer("ko", "ja");
+	}
 
 	@Test
-    public void testRussianAnalyzer() {
-    	checkAnalyzer("ru", "ru");
-    }
+	public void testRussianAnalyzer() {
+		checkAnalyzer("ru", "ru");
+	}
 
 	@Test
-    public void testGreekAnalyzer() {
-    	checkAnalyzer("el", "el");
-    }
+	public void testGreekAnalyzer() {
+		checkAnalyzer("el", "el");
+	}
 
-    // Uses default
+	// Uses default
 	@Test
-    public void testSpanishAnalyzer() {
-    	checkAnalyzer("es", "ar");
-    }
+	public void testSpanishAnalyzer() {
+		checkAnalyzer("es", "ar");
+	}
 
 	@Test
-    public void testPortugueseAnalyzer() {
-    	checkAnalyzer("pt", "pt");
-    }
+	public void testPortugueseAnalyzer() {
+		checkAnalyzer("pt", "pt");
+	}
 
 	@Test
-    public void testDutchAnalyzer() {
-    	checkAnalyzer("nl", "nl");
-    }
+	public void testDutchAnalyzer() {
+		checkAnalyzer("nl", "nl");
+	}
 
 	@Test
-    public void testCzechAnalyzer() {
-    	checkAnalyzer("cs", "cs");
-    }
+	public void testCzechAnalyzer() {
+		checkAnalyzer("cs", "cs");
+	}
 
-    // Uses default
+	// Uses default
 	@Test
-    public void testArabicAnalyzer() {
-    	checkAnalyzer("ar", "ar");
-    }
+	public void testArabicAnalyzer() {
+		checkAnalyzer("ar", "ar");
+	}
 
-    // Use default
+	// Use default
 	@Test
-    public void testHebrewAnalyzer() {
-    	checkAnalyzer("il", "ar");
-    }
+	public void testHebrewAnalyzer() {
+		checkAnalyzer("il", "ar");
+	}
 
-    private void checkAnalyzer(String language, String analyzerKind) {
+	private void checkAnalyzer(String language, String analyzerKind) {
 		AnalyzerDescriptor an = new AnalyzerDescriptor(language);
 
 		for (String nextLocale : supportedLanguages) {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/BasicTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/BasicTest.java
index 45d8ec7..3c3f6aa 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/BasicTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/BasicTest.java
@@ -24,8 +24,8 @@
 	// appears in both filtered and unfiltered parts of test1.xhtml
 	@Test
 	public void testSearchFilteredAndUnfiltered() {
-	    SearchTestUtils.searchAllLocales ("vkrhjewiwh", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml"});
-    }
+		SearchTestUtils.searchAllLocales ("vkrhjewiwh", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml"});
+	}
 
 	// try OR'ing with a word that does't exist.. should find same result
 	@Test
@@ -60,70 +60,70 @@
 	// word is in test3.xhtml and also included by test4.xhtml, contributed
 	// into test5.xhtml as an extension, and replaces a paragraph in test6.xhtml.
 	@Test
-    public void testSearchInclusionAndExtension() {
+	public void testSearchInclusionAndExtension() {
 		SearchTestUtils.searchAllLocales("fuejnghqjs", new String[] {"/org.eclipse.ua.tests/data/help/search/test3.xhtml", "/org.eclipse.ua.tests/data/help/search/test4.xhtml", "/org.eclipse.ua.tests/data/help/search/test5.xhtml", "/org.eclipse.ua.tests/data/help/search/test6.xhtml" });
 	}
 
 	// only exists in paragraph in test6.xhtml that's replaced by another one
 	@Test
-    public void testSearchInReplacedOut() {
+	public void testSearchInReplacedOut() {
 		SearchTestUtils.searchAllLocales("bheufnjefa", new String[0] /* no hits*/ );
 	}
 
-    // Test replacement using ExtensionProvider
+	// Test replacement using ExtensionProvider
 	@Test
-    public void testSearchInReplaceOutUsingProvider() {
-    	SearchTestUtils.searchAllLocales("ausjduehf", new String[] {"/org.eclipse.ua.tests/data/help/search/test6.xhtml" }  );
-    }
+	public void testSearchInReplaceOutUsingProvider() {
+		SearchTestUtils.searchAllLocales("ausjduehf", new String[] {"/org.eclipse.ua.tests/data/help/search/test6.xhtml" }  );
+	}
 
-    // Test replacement using ExtensionProvider
+	// Test replacement using ExtensionProvider
 	@Test
-    public void testSearchInReplacemenTextUsingProvider() {
-    	SearchTestUtils.searchAllLocales("bheufnjefb", new String[0] /* no hits*/ );
-    }
+	public void testSearchInReplacemenTextUsingProvider() {
+		SearchTestUtils.searchAllLocales("bheufnjefb", new String[0] /* no hits*/ );
+	}
 
 	// sanity test to make sure it finds things in XHTML content in .html file
 	@Test
-    public void testSearchXhtmlInHtml() {
+	public void testSearchXhtmlInHtml() {
 		SearchTestUtils.searchAllLocales("kejehrgaqm", new String[] {"/org.eclipse.ua.tests/data/help/search/test7.html" });
-    }
+	}
 
 	// same as above, but in a section that should never be filtered
 	@Test
-    public void testSearchXhtmlNeverFiltered() {
+	public void testSearchXhtmlNeverFiltered() {
 		SearchTestUtils.searchAllLocales("opqmenhfjs", new String[] {"/org.eclipse.ua.tests/data/help/search/test7.html" });
-    }
+	}
 
 	// only exists in a paragraph in test7.html that should be filtered out
 	// make sure this works for XHTML content inside .html file
 	@Test
-    public void testSearchFilteredXhtmlInHtml() {
+	public void testSearchFilteredXhtmlInHtml() {
 		SearchTestUtils.searchAllLocales("hugftnhdtg", new String[] {"/org.eclipse.ua.tests/data/help/search/test7.html" });
-    }
+	}
 
 	// this doc is listed in TOC several times, using slightly different paths
 	@Test
-    public void testSearchMultipleTocReference() {
+	public void testSearchMultipleTocReference() {
 		SearchTestUtils.searchAllLocales("rqfedajhtg", new String[] {"/org.eclipse.ua.tests/data/help/search/test9.htm" });
-    }
+	}
 
 	@Test
-    public void testSearchMultipleNonadjacentWords() {
-    	SearchTestUtils.searchAllLocales("gsdduvfqnh riehguanil", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" } );
-    }
+	public void testSearchMultipleNonadjacentWords() {
+		SearchTestUtils.searchAllLocales("gsdduvfqnh riehguanil", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" } );
+	}
 
 	@Test
-    public void testSearchMultipleNonadjacentExactMatch() {
-    	SearchTestUtils.searchAllLocales("\"gsdduvfqnh riehguanil\"", new String[0]);
-    }
+	public void testSearchMultipleNonadjacentExactMatch() {
+		SearchTestUtils.searchAllLocales("\"gsdduvfqnh riehguanil\"", new String[0]);
+	}
 
 	@Test
-    public void testSearchMultipleAdjacentExactMatch() {
-    	SearchTestUtils.searchAllLocales("\"vkrhjewiwh riehguanil\"", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml"});
-    }
+	public void testSearchMultipleAdjacentExactMatch() {
+		SearchTestUtils.searchAllLocales("\"vkrhjewiwh riehguanil\"", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml"});
+	}
 
 	@Test
-    public void testSearchContentProducer() {
-    	SearchTestUtils.searchAllLocales("egrology", new String[] { "/org.eclipse.ua.tests/generated/Generated+Parent/Parent+page+with+searchable+word+egrology+.html"});
-    }
+	public void testSearchContentProducer() {
+		SearchTestUtils.searchAllLocales("egrology", new String[] { "/org.eclipse.ua.tests/generated/Generated+Parent/Parent+page+with+searchable+word+egrology+.html"});
+	}
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java
index 31398d5..a2b5508 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java
@@ -17,30 +17,30 @@
 
 public class EncodedCharacterSearch {
 	@Test
-    public void testIso8859() {
-    	SearchTestUtils.searchOneLocale("\u00E1guilaxaxcs", new String[] {"/org.eclipse.ua.tests/data/help/search/testnl8859.htm" }, "en");
-    }
+	public void testIso8859() {
+		SearchTestUtils.searchOneLocale("\u00E1guilaxaxcs", new String[] {"/org.eclipse.ua.tests/data/help/search/testnl8859.htm" }, "en");
+	}
 
 	@Test
-    public void testIso8859AccentNotIgnored() {
-    	SearchTestUtils.searchOneLocale("aguilaxaxcs", new String[0], "en");
-    }
+	public void testIso8859AccentNotIgnored() {
+		SearchTestUtils.searchOneLocale("aguilaxaxcs", new String[0], "en");
+	}
 
 	@Test
-    public void testUtf8Accented() {
-    	SearchTestUtils.searchOneLocale("acfele\u00F3n", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en");
-    }
+	public void testUtf8Accented() {
+		SearchTestUtils.searchOneLocale("acfele\u00F3n", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en");
+	}
 
 	@Test
-    public void testUtf8Chinese() {
-    	SearchTestUtils.searchOneLocale("\u8FB2\u66C6\u65B0\u5E74", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en");
-    }
+	public void testUtf8Chinese() {
+		SearchTestUtils.searchOneLocale("\u8FB2\u66C6\u65B0\u5E74", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en");
+	}
 
 	@Test
-    public void testUtf8Hebrew() {
-    	SearchTestUtils.searchOneLocale("\u05D0\u05B7\u05E1\u05B0\u05D8\u05B0\u05E8\u05D5\u05B9\u05E0\u05D5\u05B9\u05DE"
-    			                         + "\u05B0\u05D9\u05B8\u05D4) \u05DC\u05B4\u05E7\u05BC\u05D5\u05BC\u05D9 (\u05D9\u05E8\u05D7 \u05D0\u05D5 \u05E9\u05DE\u05E9", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en");
-    }
+	public void testUtf8Hebrew() {
+		SearchTestUtils.searchOneLocale("\u05D0\u05B7\u05E1\u05B0\u05D8\u05B0\u05E8\u05D5\u05B9\u05E0\u05D5\u05B9\u05DE"
+										 + "\u05B0\u05D9\u05B8\u05D4) \u05DC\u05B4\u05E7\u05BC\u05D5\u05BC\u05D9 (\u05D9\u05E8\u05D7 \u05D0\u05D5 \u05E9\u05DE\u05E9", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en");
+	}
 
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/ExtraDirTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/ExtraDirTest.java
index c5e2398..254e991 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/ExtraDirTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/ExtraDirTest.java
@@ -47,8 +47,8 @@
 	@Test
 	public void testContainingScope()
 	{
-	    performSearch("iusazemhdv", "/org.eclipse.ua.tests/data/help/toc/root.xml", "/org.eclipse.ua.tests/data/help/search/test8.htm" );
-    }
+		performSearch("iusazemhdv", "/org.eclipse.ua.tests/data/help/toc/root.xml", "/org.eclipse.ua.tests/data/help/search/test8.htm" );
+	}
 
 	// try with another toc's search scope; shouldn't find it
 	@Test
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/InfocenterWorkingSetManagerTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/InfocenterWorkingSetManagerTest.java
index 62b6043..86495e7 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/InfocenterWorkingSetManagerTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/InfocenterWorkingSetManagerTest.java
@@ -39,7 +39,7 @@
 	@Test
 	public void testIWSMWithToc() throws IOException {
 		InfocenterWorkingSetManager mgr = new InfocenterWorkingSetManager
-		    (new MockServletRequest(), new MockServletResponse(), "en");
+			(new MockServletRequest(), new MockServletResponse(), "en");
 		WorkingSet wset = new WorkingSet("test");
 		AdaptableToc toc = mgr.getAdaptableToc("/org.eclipse.ua.tests/data/help/toc/root.xml");
 		assertNotNull(toc);
@@ -90,7 +90,7 @@
 		assertEquals(1, resources.length);
 		Set<AdaptableTopic> topics = new HashSet<>();
 		topics.add(topic1);
-        assertTrue(topics.contains(resources[0]));
+		assertTrue(topics.contains(resources[0]));
 		checkCookies(resp);
 	}
 
@@ -113,8 +113,8 @@
 		Set<AdaptableTopic> topics = new HashSet<>();
 		topics.add(topic1);
 		topics.add(topic3);
-        assertTrue(topics.contains(resources[0]));
-        assertTrue(topics.contains(resources[1]));
+		assertTrue(topics.contains(resources[0]));
+		assertTrue(topics.contains(resources[1]));
 		checkCookies(resp);
 	}
 
@@ -141,9 +141,9 @@
 		topics.add(topic1);
 		topics.add(topic3);
 		topics.add(topic5);
-        assertTrue(topics.contains(resources[0]));
-        assertTrue(topics.contains(resources[1]));
-        assertTrue(topics.contains(resources[2]));
+		assertTrue(topics.contains(resources[0]));
+		assertTrue(topics.contains(resources[1]));
+		assertTrue(topics.contains(resources[2]));
 		checkCookies(resp);
 	}
 
@@ -169,7 +169,7 @@
 		assertEquals(1, resources.length);
 		Set<AdaptableTopic> topics = new HashSet<>();
 		topics.add(topic1);
-        assertTrue(topics.contains(resources[0]));
+		assertTrue(topics.contains(resources[0]));
 		checkCookies(resp);
 		checkCookies(resp2);
 	}
@@ -198,8 +198,8 @@
 		Set<AdaptableTopic> topics = new HashSet<>();
 		topics.add(topic1);
 		topics.add(topic3);
-        assertTrue(topics.contains(resources[0]));
-        assertTrue(topics.contains(resources[1]));
+		assertTrue(topics.contains(resources[0]));
+		assertTrue(topics.contains(resources[1]));
 		checkCookies(resp);
 		checkCookies(resp2);
 	}
@@ -231,9 +231,9 @@
 		topics.add(topic1);
 		topics.add(topic3);
 		topics.add(topic5);
-        assertTrue(topics.contains(resources[0]));
-        assertTrue(topics.contains(resources[1]));
-        assertTrue(topics.contains(resources[2]));
+		assertTrue(topics.contains(resources[0]));
+		assertTrue(topics.contains(resources[1]));
+		assertTrue(topics.contains(resources[2]));
 		checkCookies(resp);
 		checkCookies(resp2);
 	}
@@ -287,7 +287,7 @@
 
 		int length1 = cookieLength(resp1.getCookies());
 		int length2 = cookieLength(resp2.getCookies());
-        assertEquals(length1 + 4, length2);
+		assertEquals(length1 + 4, length2);
 		checkCookies(resp1);
 		checkCookies(resp2);
 	}
@@ -414,7 +414,7 @@
 		CriterionResource[] criteria = createResourceWithTwoCriteria();
 		wset.setCriteria(criteria);
 		mgr.addWorkingSet(wset);
-        MockServletRequest req2 = new MockServletRequest();
+		MockServletRequest req2 = new MockServletRequest();
 		MockServletResponse resp2 = new MockServletResponse();
 		req2.setCookies(resp.getCookies());
 		InfocenterWorkingSetManager mgr2 = new InfocenterWorkingSetManager(req2, resp2, "en");
@@ -462,7 +462,7 @@
 		String illegalChars = resp.getIllegalCharatersFound();
 		if (illegalChars.equals("") || illegalChars.equals("<")) {
 			return;
-	    }
+		}
 		fail("Cookie contains these illegal characters " + illegalChars + '"');
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/LocaleTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/LocaleTest.java
index 0476daa..fa0cc5f 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/LocaleTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/LocaleTest.java
@@ -19,113 +19,113 @@
 
 public class LocaleTest {
 	@Test
-    public void testSearchWordInDefaultOnly() {
-    	SearchTestUtils.searchOneLocale("duejrnfjudshebn", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "en");
-    	SearchTestUtils.searchOneLocale("duejrnfjudshebn", new String[0], "de");
-    }
+	public void testSearchWordInDefaultOnly() {
+		SearchTestUtils.searchOneLocale("duejrnfjudshebn", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "en");
+		SearchTestUtils.searchOneLocale("duejrnfjudshebn", new String[0], "de");
+	}
 
 	@Test
-    public void testSearchWordInNonDefaultOnly() {
-    	SearchTestUtils.searchOneLocale("dkdskadksak", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "de");
-    	SearchTestUtils.searchOneLocale("dkdskadksak", new String[0], "en");
-    }
+	public void testSearchWordInNonDefaultOnly() {
+		SearchTestUtils.searchOneLocale("dkdskadksak", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "de");
+		SearchTestUtils.searchOneLocale("dkdskadksak", new String[0], "en");
+	}
 
 	@Test
-    public void testSearchExactMatchInDefaultOnly() {
-    	SearchTestUtils.searchOneLocale("\"fesaggresgf duejrnfjudshebn\"", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "en");
-    	SearchTestUtils.searchOneLocale("\"fesaggresgf duejrnfjudshebn\"", new String[0], "de");
-    }
+	public void testSearchExactMatchInDefaultOnly() {
+		SearchTestUtils.searchOneLocale("\"fesaggresgf duejrnfjudshebn\"", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "en");
+		SearchTestUtils.searchOneLocale("\"fesaggresgf duejrnfjudshebn\"", new String[0], "de");
+	}
 
 	@Test
-    public void testSearchExactMatchInNonDefaultOnly() {
-    	SearchTestUtils.searchOneLocale("\"dkdskadksak redfrewfdsa\"", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "de");
-    	SearchTestUtils.searchOneLocale("\"dkdskadksak redfrewfdsa\"", new String[0], "en");
-    }
+	public void testSearchExactMatchInNonDefaultOnly() {
+		SearchTestUtils.searchOneLocale("\"dkdskadksak redfrewfdsa\"", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "de");
+		SearchTestUtils.searchOneLocale("\"dkdskadksak redfrewfdsa\"", new String[0], "en");
+	}
 
 	@Test
-    public void testSearchWithWildcardInDefaultOnly() {
-    	SearchTestUtils.searchOneLocale("duejrnf?udshebn", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "en");
-    	SearchTestUtils.searchOneLocale("duejrnf?udshebn", new String[0], "de");
-    }
+	public void testSearchWithWildcardInDefaultOnly() {
+		SearchTestUtils.searchOneLocale("duejrnf?udshebn", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "en");
+		SearchTestUtils.searchOneLocale("duejrnf?udshebn", new String[0], "de");
+	}
 
 	@Test
-    public void testSearchWithWildcardInNonDefaultOnly() {
-    	SearchTestUtils.searchOneLocale("dkd?kadksak", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "de");
-    	SearchTestUtils.searchOneLocale("dkd?kadksak", new String[0], "en");
-    }
+	public void testSearchWithWildcardInNonDefaultOnly() {
+		SearchTestUtils.searchOneLocale("dkd?kadksak", new String[] { "/org.eclipse.ua.tests/data/help/search/testnl1.xhtml"}, "de");
+		SearchTestUtils.searchOneLocale("dkd?kadksak", new String[0], "en");
+	}
 
 	@Test
-    public void testSearchPageNotInTocForLocale() {
-    	SearchTestUtils.searchOneLocale("undefgfdsgfds", new String[0], "de");
-    	SearchTestUtils.searchOneLocale("undefgfdsgfds", new String[0], "en");
-    }
+	public void testSearchPageNotInTocForLocale() {
+		SearchTestUtils.searchOneLocale("undefgfdsgfds", new String[0], "de");
+		SearchTestUtils.searchOneLocale("undefgfdsgfds", new String[0], "en");
+	}
 
 	@Test
-    public void testSearchPageOnlyInDefaultToc() {
-    	SearchTestUtils.searchOneLocale("idskrekfuej", new String[0], "de");
-    	SearchTestUtils.searchOneLocale("idskrekfuej", new String[] { "/org.eclipse.ua.tests/data/help/search/test_en.html"}, "en");
-    }
+	public void testSearchPageOnlyInDefaultToc() {
+		SearchTestUtils.searchOneLocale("idskrekfuej", new String[0], "de");
+		SearchTestUtils.searchOneLocale("idskrekfuej", new String[] { "/org.eclipse.ua.tests/data/help/search/test_en.html"}, "en");
+	}
 
 	@Test
-    public void testSearchPageOnlyInLocalToc() {
-    	SearchTestUtils.searchOneLocale("deuufjfu", new String[0], "en");
-    	SearchTestUtils.searchOneLocale("deuufjfu", new String[] { "/org.eclipse.ua.tests/data/help/search/test_de.html"}, "de");
-    }
+	public void testSearchPageOnlyInLocalToc() {
+		SearchTestUtils.searchOneLocale("deuufjfu", new String[0], "en");
+		SearchTestUtils.searchOneLocale("deuufjfu", new String[] { "/org.eclipse.ua.tests/data/help/search/test_de.html"}, "de");
+	}
 
 	@Test
-    public void testSearchEnglishStemming_ed() {
-    	SearchTestUtils.searchOneLocale("udjerufdjd", new String[0], "de");
-    	SearchTestUtils.searchOneLocale("udjerufdjd", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "en");
-    }
+	public void testSearchEnglishStemming_ed() {
+		SearchTestUtils.searchOneLocale("udjerufdjd", new String[0], "de");
+		SearchTestUtils.searchOneLocale("udjerufdjd", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "en");
+	}
 
 	@Test
-    public void testSearchEnglishStemming_ing() {
-    	SearchTestUtils.searchOneLocale("kjfdskajdfska", new String[0], "de");
-    	SearchTestUtils.searchOneLocale("kjfdskajdfska", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "en");
-    }
+	public void testSearchEnglishStemming_ing() {
+		SearchTestUtils.searchOneLocale("kjfdskajdfska", new String[0], "de");
+		SearchTestUtils.searchOneLocale("kjfdskajdfska", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "en");
+	}
 
-    // Prefixes are not matched by stemming
+	// Prefixes are not matched by stemming
 	@Test
-    public void testSearchEnglishStemming_re() {
-    	SearchTestUtils.searchOneLocale("dhdsahkdshakjd", new String[0], "de");
-    	SearchTestUtils.searchOneLocale("dhdsahkdshakjd", new String[0], "en");
-    }
+	public void testSearchEnglishStemming_re() {
+		SearchTestUtils.searchOneLocale("dhdsahkdshakjd", new String[0], "de");
+		SearchTestUtils.searchOneLocale("dhdsahkdshakjd", new String[0], "en");
+	}
 
-    /**
-     * Tests that the stemmer properly removes the German "e" suffix.
-     */
+	/**
+	 * Tests that the stemmer properly removes the German "e" suffix.
+	 */
 	@Test
-    public void testSearchGermanStemming_e() {
-    	SearchTestUtils.searchOneLocale("dfskajkfsafaisch", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "de");
-    }
+	public void testSearchGermanStemming_e() {
+		SearchTestUtils.searchOneLocale("dfskajkfsafaisch", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "de");
+	}
 
-    /**
-     * Tests that the stemmer properly removes the German "en" suffix.
-     */
+	/**
+	 * Tests that the stemmer properly removes the German "en" suffix.
+	 */
 	@Test
-    public void testSearchGermanStemming_en() {
-    	SearchTestUtils.searchOneLocale("kirch", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "de");
-    	SearchTestUtils.searchOneLocale("kirch", new String[0], "en");
-    }
+	public void testSearchGermanStemming_en() {
+		SearchTestUtils.searchOneLocale("kirch", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml"}, "de");
+		SearchTestUtils.searchOneLocale("kirch", new String[0], "en");
+	}
 
 	@Test
-    public void testSearchQualifiedNames_en() {
-    	SearchTestUtils.searchOneLocale("usjenfdj.udjeudj.uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
-    			"en" );
-        SearchTestUtils.searchOneLocale("uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
-        		"en" );
-    }
+	public void testSearchQualifiedNames_en() {
+		SearchTestUtils.searchOneLocale("usjenfdj.udjeudj.uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
+				"en" );
+		SearchTestUtils.searchOneLocale("uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
+				"en" );
+	}
 
-    /*
-     * FAILS - see bug Bug 219928
-    public void testSearchQualifiedNames_de() {
-    	SearchTestUtils.searchOneLocale("usjenfdj.udjeudj.uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
-    			"de" );
-        SearchTestUtils.searchOneLocale("uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
-        		"de" );
-    }
+	/*
+	 * FAILS - see bug Bug 219928
+	public void testSearchQualifiedNames_de() {
+		SearchTestUtils.searchOneLocale("usjenfdj.udjeudj.uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
+				"de" );
+		SearchTestUtils.searchOneLocale("uejdhehj", new String[] { "/org.eclipse.ua.tests/data/help/search/test10.xhtml" },
+				"de" );
+	}
 
-    */
+	*/
 
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipant.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipant.java
index 6eb7f8a..ea1ffac 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipant.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipant.java
@@ -45,7 +45,7 @@
 		String summary = isDoc1? "Summary1" : "Summary2";
 		String contents = isDoc1? "jkijkijkk frgeded" : "olhoykk lgktihku";
 		doc.setTitle(title);
-        doc.setSummary(summary);
+		doc.setSummary(summary);
 		doc.addContents(contents);
 		return Status.OK_STATUS;
 	}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipantXML.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipantXML.java
index bdc0136..ccbc827 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipantXML.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/MockSearchParticipantXML.java
@@ -48,7 +48,7 @@
 		}
 		String summary = attributes.getValue("summary");
 		if (summary != null) {
-		    data.addToSummary(summary);
+			data.addToSummary(summary);
 		}
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java
index 94b828a..01323cc 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java
@@ -223,9 +223,9 @@
 		assertFalse(index1.equals(index2));
 	}
 
-    /*
-     * Verifies that a prebuilt index can be searched
-     */
+	/*
+	 * Verifies that a prebuilt index can be searched
+	 */
 	private void checkReadable(String indexPath) throws IOException,
 			CorruptIndexException {
 		Path path = new Path(indexPath);
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WildcardTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WildcardTest.java
index 5bd5da7..02d0a41 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WildcardTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WildcardTest.java
@@ -17,54 +17,54 @@
 
 public class WildcardTest {
 	@Test
-    public void testSearchWithStar() {
-    	SearchTestUtils.searchAllLocales("jehc*qpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
-    }
+	public void testSearchWithStar() {
+		SearchTestUtils.searchAllLocales("jehc*qpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
+	}
 
 	@Test
-    public void testSearchWithTwoStars() {
-    	SearchTestUtils.searchAllLocales("jehc*qp*js", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
-    }
+	public void testSearchWithTwoStars() {
+		SearchTestUtils.searchAllLocales("jehc*qp*js", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
+	}
 
 	@Test
-    public void testSearchWithStarReplacingThreeChars() {
-    	SearchTestUtils.searchAllLocales("jehc*fjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
-    }
+	public void testSearchWithStarReplacingThreeChars() {
+		SearchTestUtils.searchAllLocales("jehc*fjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
+	}
 
-    // Test that a star does not match spaces
+	// Test that a star does not match spaces
 	@Test
-    public void testSearchWithStarReplacingSpace() {
-    	SearchTestUtils.searchAllLocales("jehcyqpfjs*vkrhjewiwh", new String[0]);
-    }
+	public void testSearchWithStarReplacingSpace() {
+		SearchTestUtils.searchAllLocales("jehcyqpfjs*vkrhjewiwh", new String[0]);
+	}
 
 	@Test
-    public void testSearchWithQuestionMark() {
-    	SearchTestUtils.searchAllLocales("jehc?qpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
-    }
+	public void testSearchWithQuestionMark() {
+		SearchTestUtils.searchAllLocales("jehc?qpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
+	}
 
 	@Test
-    public void testSearchWithTwoQuestionMarks() {
-    	SearchTestUtils.searchAllLocales("j?hc?qpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
-    }
+	public void testSearchWithTwoQuestionMarks() {
+		SearchTestUtils.searchAllLocales("j?hc?qpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
+	}
 
 	@Test
-    public void testSearchQuestionMarkCannotReplaceTwoChars() {
-    	SearchTestUtils.searchAllLocales("jehc?pfjs", new String[0] );
-    }
+	public void testSearchQuestionMarkCannotReplaceTwoChars() {
+		SearchTestUtils.searchAllLocales("jehc?pfjs", new String[0] );
+	}
 
 	@Test
-    public void testSearchSuccessiveQuestionMarks() {
-    	SearchTestUtils.searchAllLocales("jehc??pfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" } );
-    }
+	public void testSearchSuccessiveQuestionMarks() {
+		SearchTestUtils.searchAllLocales("jehc??pfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" } );
+	}
 
 	@Test
-    public void testSearchLeadingStar() {
-    	SearchTestUtils.searchAllLocales("*hcyqpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
-    }
+	public void testSearchLeadingStar() {
+		SearchTestUtils.searchAllLocales("*hcyqpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
+	}
 
 	@Test
-    public void testSearchLeadingQuestionMark() {
-    	SearchTestUtils.searchAllLocales("?ehcyqpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
-    }
+	public void testSearchLeadingQuestionMark() {
+		SearchTestUtils.searchAllLocales("?ehcyqpfjs", new String[] { "/org.eclipse.ua.tests/data/help/search/test1.xhtml" });
+	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WorkingSetManagerTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WorkingSetManagerTest.java
index 90e4ec3..61a726c 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WorkingSetManagerTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/WorkingSetManagerTest.java
@@ -61,7 +61,7 @@
 			manager.removeWorkingSet(element);
 		}
 		for (WorkingSet workingSet : workingSets) {
-		    manager.addWorkingSet(workingSet);
+			manager.addWorkingSet(workingSet);
 		}
 		manager.saveState();
 	}
@@ -114,7 +114,7 @@
 		mgr.addWorkingSet(wset);
 		WorkingSetScope scope = new WorkingSetScope("test", mgr, "scope");
 		for (int i = 1; i < tocs.length; i++) {
-		    assertFalse(scope.inScope(tocs[i]));
+			assertFalse(scope.inScope(tocs[i]));
 		}
 	}
 
@@ -130,9 +130,9 @@
 		WorkingSetScope scope = new WorkingSetScope("test", mgr, "scope");
 		for (int i = 1; i < tocs.length; i++) {
 			ITopic[] topics = tocs[i].getTopics();
-		    for (ITopic topic : topics) {
-			    assertFalse(scope.inScope(topic));
-		    }
+			for (ITopic topic : topics) {
+				assertFalse(scope.inScope(topic));
+			}
 		}
 	}
 
@@ -190,7 +190,7 @@
 		WorkingSetScope scope = new WorkingSetScope("test1", mgr, "scope");
 		Toc[] tocs = HelpPlugin.getTocManager().getTocs(Platform.getNL());
 		for (Toc toc : tocs) {
-		    assertTrue(scope.inScope(toc));
+			assertTrue(scope.inScope(toc));
 		}
 	}
 
@@ -203,7 +203,7 @@
 		for (Toc toc : tocs) {;
 			ITopic[] topics = toc.getTopics();
 			for (ITopic topic : topics) {
-		         assertTrue(scope.inScope(topic));
+				assertTrue(scope.inScope(topic));
 			}
 		}
 	}
@@ -219,7 +219,7 @@
 			for (ITopic topic : topics) {
 				ITopic[] subtopics = topic.getSubtopics();
 				for (ITopic subtopic : subtopics) {
-		            assertTrue(scope.inScope(subtopic));
+					assertTrue(scope.inScope(subtopic));
 				}
 			}
 		}
@@ -402,7 +402,7 @@
 		CriterionResource[] criteria = createResourceWithTwoCriteria();
 		wset.setCriteria(criteria);
 		mgr.addWorkingSet(wset);
-        mgr.saveState();
+		mgr.saveState();
 
 		WorkingSetManager mgr2 = new WorkingSetManager();
 		WorkingSet[] readWsets = mgr2.getWorkingSets();
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/EnabledTopicTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/EnabledTopicTest.java
index 2e3756d..39de085 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/EnabledTopicTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/EnabledTopicTest.java
@@ -136,41 +136,41 @@
 
 	@Test
 	public void testEnabledTopicsEmptyArray() throws Exception {
-         ITopic[] enabled = EnabledTopicUtils.getEnabled(new ITopic[0]);
-         assertTrue(enabled.length == 0);
+		ITopic[] enabled = EnabledTopicUtils.getEnabled(new ITopic[0]);
+		assertTrue(enabled.length == 0);
 	}
 
 	@Test
 	public void testEnabledTopicsAllEnabled() throws Exception {
-        ITopic[] topics = new ITopic[2];
-        topics[0] = new ETopic("T1", true);
-        topics[1] = new ETopic("T2", true);
+		ITopic[] topics = new ITopic[2];
+		topics[0] = new ETopic("T1", true);
+		topics[1] = new ETopic("T2", true);
 		ITopic[] enabled = EnabledTopicUtils.getEnabled(topics);
-        assertTrue(enabled.length == 2);
-        assertTrue(topics[0].getLabel().equals("T1"));
-        assertTrue(topics[1].getLabel().equals("T2"));
+		assertTrue(enabled.length == 2);
+		assertTrue(topics[0].getLabel().equals("T1"));
+		assertTrue(topics[1].getLabel().equals("T2"));
 	}
 
 	@Test
 	public void testEnabledTopicsAllDisabled() throws Exception {
 		ITopic[] topics = new ITopic[2];
-	    topics[0] = new ETopic("T1", false);
-	    topics[1] = new ETopic("T2", false);
+		topics[0] = new ETopic("T1", false);
+		topics[1] = new ETopic("T2", false);
 		ITopic[] enabled = EnabledTopicUtils.getEnabled(topics);
-	    assertTrue(enabled.length == 0);
+		assertTrue(enabled.length == 0);
 	}
 
 	@Test
 	public void testEnabledTopicsMix() throws Exception {
 		ITopic[] topics = new ITopic[4];
-        topics[0] = new ETopic("T1", true);
-        topics[1] = new ETopic("T2", false);
-        topics[2] = new ETopic("T3", true);
-        topics[3] = new ETopic("T4", false);
+		topics[0] = new ETopic("T1", true);
+		topics[1] = new ETopic("T2", false);
+		topics[2] = new ETopic("T3", true);
+		topics[3] = new ETopic("T4", false);
 		ITopic[] enabled = EnabledTopicUtils.getEnabled(topics);
-        assertEquals(2, enabled.length);
-        assertEquals("T1", enabled[0].getLabel());
-        assertEquals("T3", enabled[1].getLabel());
+		assertEquals(2, enabled.length);
+		assertEquals("T1", enabled[0].getLabel());
+		assertEquals("T3", enabled[1].getLabel());
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/HelpData.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/HelpData.java
index 86b1afc..525d19b 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/HelpData.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/HelpData.java
@@ -24,33 +24,33 @@
 	@Test
 	public void testHelpDataInPlugin() {
 		List<String> result = ProductPreferences.getTocOrdering("org.eclipse.ua.tests", "data/help/toc/helpData.xml", "");
-	    assertEquals(2, result.size());
-	    assertEquals("/org.eclipse.platform.doc.user/toc.xml", result.get(0));
-	    assertEquals("/org.eclipse.platform.doc.isv/toc.xml", result.get(1));
+		assertEquals(2, result.size());
+		assertEquals("/org.eclipse.platform.doc.user/toc.xml", result.get(0));
+		assertEquals("/org.eclipse.platform.doc.isv/toc.xml", result.get(1));
 	}
 
 	@Test
 	public void testPluginsRoot() {
 		List<String> result = ProductPreferences.getTocOrdering("org.eclipse.sdk", "PLUGINS_ROOT/org.eclipse.ua.tests/data/help/toc/helpData.xml", "");
-	    assertEquals(2, result.size());
-	    assertEquals("/org.eclipse.platform.doc.user/toc.xml", result.get(0));
-	    assertEquals("/org.eclipse.platform.doc.isv/toc.xml", result.get(1));
+		assertEquals(2, result.size());
+		assertEquals("/org.eclipse.platform.doc.user/toc.xml", result.get(0));
+		assertEquals("/org.eclipse.platform.doc.isv/toc.xml", result.get(1));
 	}
 
 	@Test
 	public void testHelpDataOverridesBaseTocs() {
 		List<String> result = ProductPreferences.getTocOrdering("org.eclipse.ua.tests", "data/help/toc/helpData.xml", "org.eclipse.help");
-	    assertEquals(2, result.size());
-	    assertEquals("/org.eclipse.platform.doc.user/toc.xml", result.get(0));
-	    assertEquals("/org.eclipse.platform.doc.isv/toc.xml", result.get(1));
+		assertEquals(2, result.size());
+		assertEquals("/org.eclipse.platform.doc.user/toc.xml", result.get(0));
+		assertEquals("/org.eclipse.platform.doc.isv/toc.xml", result.get(1));
 	}
 
 	@Test
 	public void testBaseTocs() {
 		List<String> result = ProductPreferences.getTocOrdering("", "", "/org.eclipse.help/toc.xml,/org.eclipse.test/toc.xml");
-	    assertEquals(2, result.size());
-	    assertEquals("/org.eclipse.help/toc.xml", result.get(0));
-	    assertEquals("/org.eclipse.test/toc.xml", result.get(1));
+		assertEquals(2, result.size());
+		assertEquals("/org.eclipse.help/toc.xml", result.get(0));
+		assertEquals("/org.eclipse.test/toc.xml", result.get(1));
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TocSortingTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TocSortingTest.java
index 62d95e6..03ce7cb 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TocSortingTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TocSortingTest.java
@@ -61,7 +61,7 @@
 
 		@Override
 		public ITopic[] getTopics() {
-            return new ITopic[0];
+			return new ITopic[0];
 		}
 
 		@Override
@@ -142,9 +142,9 @@
 	@Before
 	public void setUp() throws Exception {
 		helpDataPreference = Platform.getPreferencesService().getString
-	       (HelpPlugin.HELP_DATA_KEY, HelpPlugin.HELP_DATA_KEY, "", null);
+			(HelpPlugin.HELP_DATA_KEY, HelpPlugin.HELP_DATA_KEY, "", null);
 		baseTocsPreference = Platform.getPreferencesService().getString
-	       (HelpPlugin.HELP_DATA_KEY, BASE_TOCS, "", null);
+			(HelpPlugin.HELP_DATA_KEY, BASE_TOCS, "", null);
 		HelpData.clearProductHelpData();
 		ProductPreferences.resetPrimaryTocOrdering();
 		setHelpData(EMPTY_XML);
@@ -165,8 +165,8 @@
 	}
 
 	private void setBaseTocs(String value) {
-	    IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
-	    prefs.put(BASE_TOCS, value);
+		IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(HelpPlugin.PLUGIN_ID);
+		prefs.put(BASE_TOCS, value);
 	}
 
 	private String toString(ITocContribution[] tocs) {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TopicFinderTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TopicFinderTest.java
index 080df51..9fdee39 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TopicFinderTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/toc/TopicFinderTest.java
@@ -158,7 +158,7 @@
 		TopicFinder finder = new TopicFinder(topic, tocs, new UniversalScope());
 		int selectedToc = finder.getSelectedToc();
 		String navPath = "http://127.0.0.1:1936/help/nav/" + selectedToc +
-           '_' + index1 + '_' + index2;
+			'_' + index1 + '_' + index2;
 		TopicFinder finder2 = new TopicFinder(navPath, tocs, new UniversalScope());
 		assertEquals(selectedToc, finder2.getSelectedToc());
 		ITopic[] topicPath = finder2.getTopicPath();
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/DocumentCreator.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/DocumentCreator.java
index 72d3325..325c213 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/DocumentCreator.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/DocumentCreator.java
@@ -30,10 +30,10 @@
 		StringReader reader = new StringReader(input);
 		InputSource source = new InputSource(reader);
 
-	    DocumentBuilder documentBuilder = CheatSheetPlugin.getPlugin()
+		DocumentBuilder documentBuilder = CheatSheetPlugin.getPlugin()
 					.getDocumentBuilder();
 
-	    return documentBuilder.parse(source);
+		return documentBuilder.parse(source);
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/LoadTestServlet.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/LoadTestServlet.java
index a712507..7916491 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/LoadTestServlet.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/LoadTestServlet.java
@@ -40,7 +40,7 @@
 		String repeatParam = req.getParameter("repeat");
 		int repetitions = 200;
 
-	    try {
+		try {
 			repetitions = Integer.parseInt(repeatParam);
 		} catch (NumberFormatException e) {
 		}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/ParallelTestSupport.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/ParallelTestSupport.java
index 07e57a2..cd1d813 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/ParallelTestSupport.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/util/ParallelTestSupport.java
@@ -84,7 +84,7 @@
 			this.repetitions = repetitions;
 		}
 
-        public String failureReason = null;
+		public String failureReason = null;
 
 		@Override
 		public void run() {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ChildLinkInsertion.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ChildLinkInsertion.java
index 09cd575..c5deb0b 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ChildLinkInsertion.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ChildLinkInsertion.java
@@ -52,120 +52,120 @@
 
 	@Test
 	public void testEmpty() {
-	    final String input = "";
+		final String input = "";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testNoMatch() {
-	    final String input = "<HEAD><HEAD/>";
+		final String input = "<HEAD><HEAD/>";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testPartialMatch1() {
-	    final String input = "<A href = \"PLUGINS\"><!--INSTRUCT-->";
+		final String input = "<A href = \"PLUGINS\"><!--INSTRUCT-->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testPartialMatch2() {
-	    final String input = "<A href = \"PLUGINS\"><!A -->";
+		final String input = "<A href = \"PLUGINS\"><!A -->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testPartialMatch3() {
-	    final String input = "<A href = \"PLUGINS\"><!-A -->";
+		final String input = "<A href = \"PLUGINS\"><!-A -->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testPartialMatch4() {
-	    final String input = "<A href = \"PLUGINS\"><!--A-->";
+		final String input = "<A href = \"PLUGINS\"><!--A-->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testEndsUnmatched() {
-	    final String input = "<A><!--INSTR";
+		final String input = "<A><!--INSTR";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testNotAtStart() {
-	    final String input = "<A><!-- INSERT_CHILD_LINKS-->";
+		final String input = "<A><!-- INSERT_CHILD_LINKS-->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testSpaceBeforeEnd() {
-	    final String input = "<A><!-- INSERT_CHILD_LINKS -->";
+		final String input = "<A><!-- INSERT_CHILD_LINKS -->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testTooManyCharacters_1() {
-	    final String input = "<A><!--INSERT_CHILD_LINKSS-->";
+		final String input = "<A><!--INSERT_CHILD_LINKSS-->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testTooManyCharacters_2() {
-	    final String input = "<A><!--INSERT_CHILD_LINKS_STYLES-->";
+		final String input = "<A><!--INSERT_CHILD_LINKS_STYLES-->";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testAtStart() {
-	    final String input = "<!--INSERT_CHILD_LINKS--><A>";
-	    final String expected = "<LINKS><A>";
+		final String input = "<!--INSERT_CHILD_LINKS--><A>";
+		final String expected = "<LINKS><A>";
 		checkFilter(input, expected);
 	}
 
 	@Test
 	public void testChildStyle() {
-	    final String input = "<!--INSERT_CHILD_LINK_STYLE--><A>";
-	    final String expected = "<STYLE><A>";
+		final String input = "<!--INSERT_CHILD_LINK_STYLE--><A>";
+		final String expected = "<STYLE><A>";
 		checkFilter(input, expected);
 	}
 
 	@Test
 	public void testDefaultEncoding() {
-	    final String input = "";
+		final String input = "";
 		checkEncoding(input, null);
 	}
 
 	@Test
 	public void testEncodingUtf8() {
-	    final String input =
-	    	"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
+		final String input =
+			"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
 		checkEncoding(input, "utf-8");
 	}
 
 	@Test
 	public void testMetaNoEncoding() {
-	    final String input =
-	    	"<meta http-equiv=\"Content-Type\" content=\"text/html\">";
+		final String input =
+			"<meta http-equiv=\"Content-Type\" content=\"text/html\">";
 		checkEncoding(input, null);
 	}
 
 	@Test
 	public void testMultiMeta() {
-	    final String input =
-	    	"<meta name=\"test\" content=\"test\">" +
-	    	"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">" +
-	    	"<meta name=\"test\" content=\"test\">";
+		final String input =
+			"<meta name=\"test\" content=\"test\">" +
+			"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">" +
+			"<meta name=\"test\" content=\"test\">";
 		checkEncoding(input, "utf-8");
 	}
 
 	@Test
 	public void testMetaAndInsert() {
-	    final String metaInfo = "<meta name=\"test\" content=\"test\">" +
-			    	"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
+		final String metaInfo = "<meta name=\"test\" content=\"test\">" +
+					"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
 		final String input =
-	    	metaInfo + "<!--INSERT_CHILD_LINK_STYLE--><A>";
-		    final String expected = metaInfo + "<STYLE><A>";
+			metaInfo + "<!--INSERT_CHILD_LINK_STYLE--><A>";
+			final String expected = metaInfo + "<STYLE><A>";
 		checkFilter(input, expected);
 		checkEncoding(input, "utf-8");
 	}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterOne.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterOne.java
index 834dc65..b8509f0 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterOne.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterOne.java
@@ -19,8 +19,8 @@
  */
 
 public class CommentFilterOne extends CommentFilter {
-    @Override
+	@Override
 	protected String getCommentText() {
-    	return "1";
-    }
+		return "1";
+	}
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterThree.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterThree.java
index 2f1fbfe..cad3106 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterThree.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterThree.java
@@ -20,8 +20,8 @@
 
 public class CommentFilterThree extends CommentFilter {
 
-    @Override
+	@Override
 	protected String getCommentText() {
-    	return "3";
-    }
+		return "3";
+	}
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterTwo.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterTwo.java
index 1f39e2b..c220c32 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterTwo.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/CommentFilterTwo.java
@@ -20,8 +20,8 @@
 
 public class CommentFilterTwo extends CommentFilter {
 
-    @Override
+	@Override
 	protected String getCommentText() {
-    	return "2";
-    }
+		return "2";
+	}
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterExtensionTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterExtensionTest.java
index 707c08e..df05d8b 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterExtensionTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterExtensionTest.java
@@ -32,7 +32,7 @@
 
 	@After
 	public void tearDown() throws Exception {
-        ExtraFilters.setFilters(new PrioritizedFilter[0]);
+		ExtraFilters.setFilters(new PrioritizedFilter[0]);
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterTest.java
index ef74443..42aa1e9 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/FilterTest.java
@@ -186,13 +186,13 @@
 	@Test
 	public void testCharsetUtf8Upper() {
 		InputStream is = new ByteArrayInputStream(CONTENT_TYPE_UTF8UC.getBytes());
-	    assertEquals("UTF-8", HTMLDocParser.getCharsetFromHTML(is));
+		assertEquals("UTF-8", HTMLDocParser.getCharsetFromHTML(is));
 	}
 
 	@Test
 	public void testCharsetISO_8859_UCUpper() {
 		InputStream is = new ByteArrayInputStream(CONTENT_TYPE_ISO_8859_1_UC.getBytes());
-	    assertEquals("ISO-8859-1", HTMLDocParser.getCharsetFromHTML(is));
+		assertEquals("ISO-8859-1", HTMLDocParser.getCharsetFromHTML(is));
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerBinding.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerBinding.java
index 5d1c7d7..509fa5e 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerBinding.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerBinding.java
@@ -52,14 +52,14 @@
 	}
 
 	private String getHostIP() throws UnknownHostException {
-	    InetAddress host = InetAddress.getLocalHost();
-	    byte[] ipAddr = host.getAddress();
-        String result = "" + ipAddr[0];
-        for (int i = 1; i < ipAddr.length; i++) {
-        	result += '.';
-        	result += ipAddr[i];
-        }
-        return result;
+		InetAddress host = InetAddress.getLocalHost();
+		byte[] ipAddr = host.getAddress();
+		String result = "" + ipAddr[0];
+		for (int i = 1; i < ipAddr.length; i++) {
+			result += '.';
+			result += ipAddr[i];
+		}
+		return result;
 	}
 
 	@Test
@@ -80,7 +80,7 @@
 		WebappManager.start("help");
 		assertTrue(canAccessServer("127.0.0.1"));
 		if (testUsingIP) {
-		    assertFalse(canAccessServer(getHostIP()));
+			assertFalse(canAccessServer(getHostIP()));
 		}
 	}
 
@@ -91,7 +91,7 @@
 		WebappManager.start("help");
 		assertTrue(canAccessServer("127.0.0.1"));
 		if (testUsingIP) {
-		    assertTrue(canAccessServer(getHostIP()));
+			assertTrue(canAccessServer(getHostIP()));
 		}
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerInterrupt.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerInterrupt.java
index 3a438e0..9cff567 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerInterrupt.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/HelpServerInterrupt.java
@@ -78,7 +78,7 @@
 				fail("Test did not complete within 10 seconds");
 			}
 			Thread.sleep(sleepTime);
-        } while (starter.isAlive());
+		} while (starter.isAlive());
 		Exception exception = starter.getException();
 		if (exception != null) {
 			throw exception;
@@ -97,7 +97,7 @@
 			}
 			starter.interrupt();
 			Thread.sleep(sleepTime);
-        } while (starter.isAlive());
+		} while (starter.isAlive());
 		Exception exception = starter.getException();
 		if (exception != null) {
 			throw exception;
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ParallelServerAccessTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ParallelServerAccessTest.java
index 20dcc88..4c0fe90 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ParallelServerAccessTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/ParallelServerAccessTest.java
@@ -65,8 +65,8 @@
 			}
 			for (int i = 0; i < numberOfThreads && complete; i++) {
 				if (readers[i].isAlive()) {
-				    complete = false;
-				    try {
+					complete = false;
+					try {
 						Thread.sleep(100);
 					} catch (InterruptedException e) {
 						fail("Interrupted Exception");
@@ -140,9 +140,9 @@
 				}
 			} while (nextChar != '$');
 		}
-        if (uniqueId != value) {
-        	throw new UnexpectedValueException(uniqueId, value);
-        }
+		if (uniqueId != value) {
+			throw new UnexpectedValueException(uniqueId, value);
+		}
 	}
 
 	private synchronized long getReadOperations() {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/PluginsRootReplacement.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/PluginsRootReplacement.java
index 123dac3..46e2b28 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/PluginsRootReplacement.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/PluginsRootReplacement.java
@@ -36,52 +36,52 @@
 public class PluginsRootReplacement {
 	@Test
 	public void testEmpty() {
-	    final String input = "";
+		final String input = "";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testNoMatch() {
-	    final String input = "<HEAD><HEAD/>";
+		final String input = "<HEAD><HEAD/>";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testPartialMatch() {
-	    final String input = "<A href = \"PLUGINS\">";
+		final String input = "<A href = \"PLUGINS\">";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testEndsUnmatched() {
-	    final String input = "<A href = \"PLUGIN";
+		final String input = "<A href = \"PLUGIN";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testNotAtStart() {
-	    final String input = "<A href = \"../PLUGINS_ROOT/plugin/a.html\">";
+		final String input = "<A href = \"../PLUGINS_ROOT/plugin/a.html\">";
 		checkFilter(input, input);
 	}
 
 	@Test
 	public void testAtStart() {
-	    final String input = "<A href = \"PLUGINS_ROOT/plugin/a.html\">";
-	    final String expected = "<A href = \"../plugin/a.html\">";
+		final String input = "<A href = \"PLUGINS_ROOT/plugin/a.html\">";
+		final String expected = "<A href = \"../plugin/a.html\">";
 		checkFilter(input, expected);
 	}
 
 	@Test
 	public void testSecondArg() {
-	    final String input = "<A alt=\"alt\" href = \"PLUGINS_ROOT/plugin/a.html\">";
-	    final String expected = "<A alt=\"alt\" href = \"../plugin/a.html\">";
+		final String input = "<A alt=\"alt\" href = \"PLUGINS_ROOT/plugin/a.html\">";
+		final String expected = "<A alt=\"alt\" href = \"../plugin/a.html\">";
 		checkFilter(input, expected);
 	}
 
 	@Test
 	public void testMultipleMatches() {
-	    final String input = "<A href = \"PLUGINS_ROOT/plugin/a.html\"><A href = \"PLUGINS_ROOT/plugin/b.html\">";
-	    final String expected = "<A href = \"../plugin/a.html\"><A href = \"../plugin/b.html\">";
+		final String input = "<A href = \"PLUGINS_ROOT/plugin/a.html\"><A href = \"PLUGINS_ROOT/plugin/b.html\">";
+		final String expected = "<A href = \"../plugin/a.html\"><A href = \"../plugin/b.html\">";
 		checkFilter(input, expected);
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/RestrictedTopicParameter.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/RestrictedTopicParameter.java
index 0c5665e..a40f671 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/RestrictedTopicParameter.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/RestrictedTopicParameter.java
@@ -40,8 +40,8 @@
 	@Before
 	public void setUp() throws Exception {
 		restrictTopic = Platform.getPreferencesService().getBoolean
-	     (HelpBasePlugin.PLUGIN_ID, RESTRICT_TOPIC,
-			      false, null);
+		 (HelpBasePlugin.PLUGIN_ID, RESTRICT_TOPIC,
+				  false, null);
 		helpMode = BaseHelpSystem.getMode();
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlCoderTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlCoderTest.java
index 2aef8fb..8546900 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlCoderTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlCoderTest.java
@@ -43,7 +43,7 @@
 	private boolean compactEncodingIsShorter(String value) {
 		String compactEncoded = URLCoder.compactEncode(value);
 		String encoded = URLCoder.encode(value);
-        return compactEncoded.length() < encoded.length();
+		return compactEncoded.length() < encoded.length();
 	}
 
 	@Test
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlUtilsTests.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlUtilsTests.java
index 5d053b2..8a7e6cd 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlUtilsTests.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/UrlUtilsTests.java
@@ -58,7 +58,7 @@
 		assertEquals(23, path[0]);
 		assertEquals(4, path[1]);
 		assertEquals(5, path[2]);
-    }
+	}
 
 	@Test
 	public void testRelativePathUnrelated() {
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ContentServiceTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ContentServiceTest.java
index 2d9666b..83f8893 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ContentServiceTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ContentServiceTest.java
@@ -31,7 +31,7 @@
 		final String path = "/data/help/index/topic1.html";
 		String remoteContent = ServicesTestUtils.getRemoteContent(UA_TESTS, path, "en");
 		String localContent = ServicesTestUtils.getLocalContent(UA_TESTS, path);
-	    assertEquals(remoteContent, localContent);
+		assertEquals(remoteContent, localContent);
 	}
 
 	@Override
@@ -40,7 +40,7 @@
 		final String path = "/data/help/manual/filter.xhtml";
 		String remoteContent = ServicesTestUtils.getRemoteContent(UA_TESTS, path, "en");
 		String localContent = ServicesTestUtils.getLocalContent(UA_TESTS, path);
-	    assertEquals(remoteContent, localContent);
+		assertEquals(remoteContent, localContent);
 	}
 
 	@Override
@@ -49,7 +49,7 @@
 		final String path = "/data/help/search/testnl1.xhtml";
 		String remoteContent = ServicesTestUtils.getRemoteContent(UA_TESTS, path, "en");
 		String localContent = ServicesTestUtils.getLocalContent(UA_TESTS, path);
-	    assertEquals(remoteContent, localContent);
+		assertEquals(remoteContent, localContent);
 	}
 
 	@Override
@@ -59,8 +59,8 @@
 		String remoteContent = ServicesTestUtils.getRemoteContent(UA_TESTS, path, "de");
 		String enLocalContent = ServicesTestUtils.getLocalContent(UA_TESTS, path);
 		String deLocalContent = ServicesTestUtils.getLocalContent(UA_TESTS, "/nl/de" + path);
-	    assertEquals(remoteContent, deLocalContent);
-	    assertFalse(remoteContent.equals(enLocalContent));
+		assertEquals(remoteContent, deLocalContent);
+		assertFalse(remoteContent.equals(enLocalContent));
 	}
 
 	@Override
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ExtensionServiceTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ExtensionServiceTest.java
index d2fadac..eab2186 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ExtensionServiceTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/ExtensionServiceTest.java
@@ -57,7 +57,7 @@
 		Node root = getContentExtensions("en");
 		Element[] UARoot = findContributionByContent(root,
 				"/org.eclipse.ua.tests/data/help/dynamic/shared/doc2.xml#element.1");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
@@ -65,7 +65,7 @@
 		Node root = getContentExtensions("en");
 		Element[] UARoot = findContributionByContent(root,
 				"/org.eclipse.ua.tests/data/help/dynamic/shared/doc2.xml#element.3");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
@@ -73,7 +73,7 @@
 		Node root = getContentExtensions("en");
 		Element[] UARoot = findContributionByContent(root,
 				"/org.eclipse.ua.tests/data/help/dynamic/shared/doc2.xml#element.4");
-	    assertEquals(0, UARoot.length);
+		assertEquals(0, UARoot.length);
 	}
 
 	@Test
@@ -89,7 +89,7 @@
 		Node root = getContentExtensions("en");
 		Element[] UARoot = findReplacementByContent(root,
 				"/org.eclipse.ua.tests/data/help/dynamic/shared/doc2.xml#element.1");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
@@ -134,7 +134,7 @@
 				Element nextElement = (Element)next;
 				if ( childKind.equals(nextElement.getTagName()) && attributeValue.equals(nextElement.getAttribute(attributeName))) {
 
-				    results.add(next);
+					results.add(next);
 				}
 			}
 		}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/TocFragmentServiceTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/TocFragmentServiceTest.java
index 3ce8db5..bb79011 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/TocFragmentServiceTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/service/TocFragmentServiceTest.java
@@ -63,7 +63,7 @@
 		Node root = getTreeData(url);
 		Element[] UARoot = findNodeById(root,
 				"/org.eclipse.ua.tests/data/help/toc/root.xml");
-	    assertEquals(1, UARoot.length);
+		assertEquals(1, UARoot.length);
 	}
 
 	@Test
@@ -161,7 +161,7 @@
 				if ( childKind.equals(nextElement.getTagName())
 						&& attributeValue.equals(nextElement.getAttribute(attributeName))) {
 
-				    results.add(next);
+					results.add(next);
 				}
 			}
 		}
@@ -182,13 +182,13 @@
 				if ( childKind.equals(nextElement.getTagName()) ) {
 					String href = nextElement.getAttribute("href");
 					if (href != null) {
-                        int query = href.indexOf('?');
-                        if (query >= 0) {
-                        	href = href.substring(0, query);
-                        }
-	                    if (href.equals (attributeValue)) {
-					        results.add(next);
-	                    }
+						int query = href.indexOf('?');
+						if (query >= 0) {
+							href = href.substring(0, query);
+						}
+						if (href.equals (attributeValue)) {
+							results.add(next);
+						}
 					}
 				}
 			}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestFrame.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestFrame.java
index 37648f3..581538f 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestFrame.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestFrame.java
@@ -43,7 +43,7 @@
 	@Override
 	public boolean isVisible() {
 		return Platform.getPreferencesService().getBoolean
-	    (UserAssistanceTestPlugin.getPluginId(), "extraFrame", false, null);
+		(UserAssistanceTestPlugin.getPluginId(), "extraFrame", false, null);
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestHelpToolbarFrame.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestHelpToolbarFrame.java
index 1cacb65..917d352 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestHelpToolbarFrame.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TestHelpToolbarFrame.java
@@ -40,15 +40,15 @@
 		return "*";
 	}
 
-    @Override
+	@Override
 	public String getFrameAttributes() {
-    	return "\"marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\" scrolling=\"no\""; //$NON-NLS-1$
-    }
+		return "\"marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\" scrolling=\"no\""; //$NON-NLS-1$
+	}
 
 	@Override
 	public boolean isVisible() {
 		return Platform.getPreferencesService().getBoolean
-	    (UserAssistanceTestPlugin.getPluginId(), "extraFrame", false, null);
+		(UserAssistanceTestPlugin.getPluginId(), "extraFrame", false, null);
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchButton.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchButton.java
index 6e3d69f..aed4948 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchButton.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchButton.java
@@ -53,7 +53,7 @@
 	@Override
 	public boolean isAddedToToolbar(String toolbarName) {
 		boolean addButton = Platform.getPreferencesService().getBoolean
-	    (UserAssistanceTestPlugin.getPluginId(), "extraButton", false, null);
+		(UserAssistanceTestPlugin.getPluginId(), "extraButton", false, null);
 		return (addButton & toolbarName.equals(AbstractButton.CONTENT_TOOLBAR));
 	}
 
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchView.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchView.java
index 042023d..c3af179 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchView.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webextension/TitleSearchView.java
@@ -58,13 +58,13 @@
 	@Override
 	public boolean isVisible() {
 		return Platform.getPreferencesService().getBoolean
-		    (UserAssistanceTestPlugin.getPluginId(), "extraView", false, null);
+			(UserAssistanceTestPlugin.getPluginId(), "extraView", false, null);
 	}
 
 	@Override
 	public boolean isVisibleBasic() {
 		return Platform.getPreferencesService().getBoolean
-	        (UserAssistanceTestPlugin.getPluginId(), "extraView", false, null);
+			(UserAssistanceTestPlugin.getPluginId(), "extraView", false, null);
 	}
 
 }
diff --git a/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/anchors/ExtensionReorderingTest.java b/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/anchors/ExtensionReorderingTest.java
index ccadfbe..3c5b907 100644
--- a/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/anchors/ExtensionReorderingTest.java
+++ b/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/anchors/ExtensionReorderingTest.java
@@ -69,7 +69,7 @@
 		/*
 		 * Recursive test to test all permutations of integers 0-4 with no
 		 * repeats.
-	     * @param next the next element that has not been filled in yet
+		 * @param next the next element that has not been filled in yet
 		 */
 		private void tryAll(int next) {
 			for (int value = 0; value < numContributions; value++) {
@@ -89,8 +89,8 @@
 			if (next + 1 == numContributions) {
 				count++;
 				if (count % cycle == 0) {
-				    testReordering(order);
-				    count = 0;
+					testReordering(order);
+					count = 0;
 				}
 			} else {
 				tryAll(next + 1);
@@ -126,67 +126,67 @@
 	}
 
 	public void readIntroConfig() {
-		 IExtensionRegistry registry= Platform.getExtensionRegistry();
-	     IConfigurationElement[] configElements = registry
-	            .getConfigurationElementsFor("org.eclipse.ui.intro.config");
+		IExtensionRegistry registry= Platform.getExtensionRegistry();
+		IConfigurationElement[] configElements = registry
+				.getConfigurationElementsFor("org.eclipse.ui.intro.config");
 
-	    config = getConfigurationFromAttribute(
-	            configElements, "introId", "org.eclipse.ua.tests.intro.anchors");
+		config = getConfigurationFromAttribute(
+				configElements, "introId", "org.eclipse.ua.tests.intro.anchors");
 
-        introConfigExtensions = null;
+		introConfigExtensions = null;
 
-            introConfigExtensions = getIntroConfigExtensions(
-                "configId", "org.eclipse.ua.tests.intro.config.anchors");
+			introConfigExtensions = getIntroConfigExtensions(
+				"configId", "org.eclipse.ua.tests.intro.config.anchors");
 	}
 
 	private IConfigurationElement getConfigurationFromAttribute(
-	            IConfigurationElement[] configElements, String attributeName,
-	            String attributeValue) {
+				IConfigurationElement[] configElements, String attributeName,
+				String attributeValue) {
 
-	        // find all configs with given attribute and attribute value.
-	        IConfigurationElement[] filteredConfigElements = getConfigurationsFromAttribute(
-	            configElements, attributeName, attributeValue);
-	        // now validate that we got only one.
-	        IConfigurationElement config = ModelLoaderUtil
-	            .validateSingleContribution(filteredConfigElements, attributeName);
-	        return config;
+			// find all configs with given attribute and attribute value.
+			IConfigurationElement[] filteredConfigElements = getConfigurationsFromAttribute(
+				configElements, attributeName, attributeValue);
+			// now validate that we got only one.
+			IConfigurationElement config = ModelLoaderUtil
+				.validateSingleContribution(filteredConfigElements, attributeName);
+			return config;
 	}
 
 	protected IConfigurationElement[] getConfigurationsFromAttribute(
-            IConfigurationElement[] configElements, String attributeName,
-            String attributeValue) {
+			IConfigurationElement[] configElements, String attributeName,
+			String attributeValue) {
 
-        // find all configs with given attribute and attribute value.
+		// find all configs with given attribute and attribute value.
 		Vector<IConfigurationElement> elements = new Vector<>();
-        for (IConfigurationElement configElement : configElements) {
-            String currentAttributeValue = configElement
-                .getAttribute(attributeName);
-            if (currentAttributeValue != null
-                    && currentAttributeValue.equals(attributeValue))
-                elements.add(configElement);
-        }
+		for (IConfigurationElement configElement : configElements) {
+			String currentAttributeValue = configElement
+				.getAttribute(attributeName);
+			if (currentAttributeValue != null
+					&& currentAttributeValue.equals(attributeValue))
+				elements.add(configElement);
+		}
 
-        // now return array.
-        IConfigurationElement[] filteredConfigElements = new IConfigurationElement[elements
-            .size()];
-        elements.copyInto(filteredConfigElements);
+		// now return array.
+		IConfigurationElement[] filteredConfigElements = new IConfigurationElement[elements
+			.size()];
+		elements.copyInto(filteredConfigElements);
 
-        return filteredConfigElements;
-    }
+		return filteredConfigElements;
+	}
 
 	protected IConfigurationElement[] getIntroConfigExtensions(
-            String attrributeName, String attributeValue) {
+			String attrributeName, String attributeValue) {
 
 		IExtensionRegistry registry= Platform.getExtensionRegistry();
-        IConfigurationElement[] configExtensionElements = registry
-            .getConfigurationElementsFor("org.eclipse.ui.intro.configExtension");
+		IConfigurationElement[] configExtensionElements = registry
+			.getConfigurationElementsFor("org.eclipse.ui.intro.configExtension");
 
 
-        IConfigurationElement[] configExtensions = getConfigurationsFromAttribute(
-            configExtensionElements, attrributeName, attributeValue);
+		IConfigurationElement[] configExtensions = getConfigurationsFromAttribute(
+			configExtensionElements, attrributeName, attributeValue);
 
-        return configExtensions;
-    }
+		return configExtensions;
+	}
 
 	@Test
 	public void testOrder123456() {
@@ -216,28 +216,28 @@
 		AbstractIntroElement p3link = extn1.findChild("page3link");
 		assertNotNull(p3link);
 		if (elements >= 4) {
-		    IntroPage extn4 = (IntroPage) model.findChild("page4");
-		    assertNotNull(extn4);
+			IntroPage extn4 = (IntroPage) model.findChild("page4");
+			assertNotNull(extn4);
 			AbstractIntroElement p4link = extn2.findChild("page4link");
 			assertNotNull(p4link);
-		    if (elements >= 5) {
-		        IntroPage extn5 = (IntroPage) model.findChild("page5");
-		        assertNotNull(extn5);
+			if (elements >= 5) {
+				IntroPage extn5 = (IntroPage) model.findChild("page5");
+				assertNotNull(extn5);
 				AbstractIntroElement p5link = extn4.findChild("page5link");
 				AbstractIntroElement p5linkR = extn4.findChild("page5linkR");
 				if (elements == 5) {
-				    assertNotNull(p5link);
-				    assertNull(p5linkR);
+					assertNotNull(p5link);
+					assertNull(p5linkR);
 				} else {
-				    assertNull(p5link);
-				    assertNotNull(p5linkR);
-		        }
-		    }
+					assertNull(p5link);
+					assertNotNull(p5linkR);
+				}
+			}
 		}
 		if (elements >= 6) {
 			IntroPage extn6 = (IntroPage) model.findChild("page6");
-	        assertNotNull(extn6);
-	        extn6.getChildren();
+			assertNotNull(extn6);
+			extn6.getChildren();
 			AbstractIntroElement actionlinks = extn6.findChild("action-links");
 			AbstractIntroElement p5linkR = extn6.findChild("page5linkR");
 			assertNotNull(actionlinks);
diff --git a/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/performance/OpenIntroTest.java b/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/performance/OpenIntroTest.java
index e069495..10a305d 100644
--- a/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/performance/OpenIntroTest.java
+++ b/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/performance/OpenIntroTest.java
@@ -41,8 +41,8 @@
 		super.setUp();
 		closeIntro();
 		// test extensions filter by this system property
-        System.setProperty("org.eclipse.ua.tests.property.isTesting", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-        ExtensionPointManager.getInst().setExtensionFilter(UserAssistanceTestPlugin.getPluginId());
+		System.setProperty("org.eclipse.ua.tests.property.isTesting", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+		ExtensionPointManager.getInst().setExtensionFilter(UserAssistanceTestPlugin.getPluginId());
 	}
 
 	@Override
@@ -50,8 +50,8 @@
 		super.tearDown();
 		closeIntro();
 		// test extensions filter by this system property
-        System.setProperty("org.eclipse.ua.tests.property.isTesting", "false"); //$NON-NLS-1$ //$NON-NLS-2$
-        ExtensionPointManager.getInst().setExtensionFilter(null);
+		System.setProperty("org.eclipse.ua.tests.property.isTesting", "false"); //$NON-NLS-1$ //$NON-NLS-2$
+		ExtensionPointManager.getInst().setExtensionFilter(null);
 	}
 
 	public void testOpenIntro() throws Exception {
diff --git a/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializer.java b/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializer.java
index ec1d1a2..293b327 100644
--- a/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializer.java
+++ b/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializer.java
@@ -39,324 +39,324 @@
 
 	private StringBuilder buffer;
 
-    public IntroModelSerializer(IntroModelRoot root) {
+	public IntroModelSerializer(IntroModelRoot root) {
 		this.buffer = new StringBuilder();
-        printModelRootInfo(root, buffer);
+		printModelRootInfo(root, buffer);
 
-        // Root Page
-        IntroHomePage rootPage = root.getRootPage();
-        printHomePage(rootPage, buffer);
-        printPageChildren(rootPage, buffer);
+		// Root Page
+		IntroHomePage rootPage = root.getRootPage();
+		printHomePage(rootPage, buffer);
+		printPageChildren(rootPage, buffer);
 
-        IntroPage[] pages = root.getPages();
-        printPages(pages, buffer);
+		IntroPage[] pages = root.getPages();
+		printPages(pages, buffer);
 
-        buffer.append("\n\n"); //$NON-NLS-1$
-        printModelFlagTests(root, buffer);
-    }
+		buffer.append("\n\n"); //$NON-NLS-1$
+		printModelFlagTests(root, buffer);
+	}
 
-    /*
-     * Removes any platform/machine-specific paths from the given URL. This is
-     * used to remove absolute paths from the serialized model in order to compare
-     * results in automated tests.
-     */
-    private String filterURL(String url) {
-        if (url != null && url.startsWith("file:/")) {
-            return "file:/" + "<filtered>" + url.substring(url.lastIndexOf('/'));
-        }
-        return url;
-    }
+	/*
+	 * Removes any platform/machine-specific paths from the given URL. This is
+	 * used to remove absolute paths from the serialized model in order to compare
+	 * results in automated tests.
+	 */
+	private String filterURL(String url) {
+		if (url != null && url.startsWith("file:/")) {
+			return "file:/" + "<filtered>" + url.substring(url.lastIndexOf('/'));
+		}
+		return url;
+	}
 
 	private void printModelRootInfo(IntroModelRoot model, StringBuilder text) {
-        text.append("Intro Model Content:"); //$NON-NLS-1$
-        text.append("\n======================"); //$NON-NLS-1$
-        text.append("\n\nModel has valid config = " + model.hasValidConfig()); //$NON-NLS-1$
-        text.append("\nPresentation type = " //$NON-NLS-1$
-                + model.getPresentation().getType());
-        text.append("\nHome page id = " //$NON-NLS-1$
-                + model.getPresentation().getHomePageId());
-        IntroHead headContent = model.getPresentation().getHead();
-        if (headContent != null)
-            text.append("\nPresentation Shared Head = " + headContent.getSrc()); //$NON-NLS-1$
-        text.append("\nNumber of pages (not including Root Page) = " //$NON-NLS-1$
-                + model.getPages().length);
-        text.append("\nNumber of shared groups = " //$NON-NLS-1$
-                + model.getChildrenOfType(AbstractIntroElement.GROUP).length);
-        text
-            .append("\nNumber of unresolved extensions = " //$NON-NLS-1$
-                    + model
-                        .getChildrenOfType(AbstractIntroElement.CONTAINER_EXTENSION).length);
-    }
+		text.append("Intro Model Content:"); //$NON-NLS-1$
+		text.append("\n======================"); //$NON-NLS-1$
+		text.append("\n\nModel has valid config = " + model.hasValidConfig()); //$NON-NLS-1$
+		text.append("\nPresentation type = " //$NON-NLS-1$
+				+ model.getPresentation().getType());
+		text.append("\nHome page id = " //$NON-NLS-1$
+				+ model.getPresentation().getHomePageId());
+		IntroHead headContent = model.getPresentation().getHead();
+		if (headContent != null)
+			text.append("\nPresentation Shared Head = " + headContent.getSrc()); //$NON-NLS-1$
+		text.append("\nNumber of pages (not including Root Page) = " //$NON-NLS-1$
+				+ model.getPages().length);
+		text.append("\nNumber of shared groups = " //$NON-NLS-1$
+				+ model.getChildrenOfType(AbstractIntroElement.GROUP).length);
+		text
+			.append("\nNumber of unresolved extensions = " //$NON-NLS-1$
+					+ model
+						.getChildrenOfType(AbstractIntroElement.CONTAINER_EXTENSION).length);
+	}
 
-    /**
-     * @param text
-     * @param root
-     */
+	/**
+	 * @param text
+	 * @param root
+	 */
 	private void printHomePage(AbstractIntroPage rootPage, StringBuilder text) {
-        text.append("\n\nHOME PAGE: "); //$NON-NLS-1$
-        text.append("\n--------------"); //$NON-NLS-1$
-        text
-            .append("\n\tis dynamic= " + ((IntroModelRoot) rootPage.getParent()).isDynamic()); //$NON-NLS-1$
+		text.append("\n\nHOME PAGE: "); //$NON-NLS-1$
+		text.append("\n--------------"); //$NON-NLS-1$
+		text
+			.append("\n\tis dynamic= " + ((IntroModelRoot) rootPage.getParent()).isDynamic()); //$NON-NLS-1$
 
-        text.append("\n\tid = " + rootPage.getId()); //$NON-NLS-1$
-        text.append("\n\ttitle = " + rootPage.getTitle()); //$NON-NLS-1$
-        text.append("\n\tstyle = " + filterURL(rootPage.getStyle())); //$NON-NLS-1$
-        text.append("\n\talt-style = " + filterURL(rootPage.getAltStyle())); //$NON-NLS-1$
-        text.append("\n\turl = " + filterURL(rootPage.getUrl())); //$NON-NLS-1$
-        text.append("\n\tstyle-id = " + rootPage.getStyleId()); //$NON-NLS-1$
-        printPageStyles(rootPage, text);
-    }
+		text.append("\n\tid = " + rootPage.getId()); //$NON-NLS-1$
+		text.append("\n\ttitle = " + rootPage.getTitle()); //$NON-NLS-1$
+		text.append("\n\tstyle = " + filterURL(rootPage.getStyle())); //$NON-NLS-1$
+		text.append("\n\talt-style = " + filterURL(rootPage.getAltStyle())); //$NON-NLS-1$
+		text.append("\n\turl = " + filterURL(rootPage.getUrl())); //$NON-NLS-1$
+		text.append("\n\tstyle-id = " + rootPage.getStyleId()); //$NON-NLS-1$
+		printPageStyles(rootPage, text);
+	}
 
 	private void printPageStyles(AbstractIntroPage page, StringBuilder text) {
-        text.append("\n\tpage styles are = "); //$NON-NLS-1$
-        String[] styles = page.getStyles();
-        for (String style : styles)
+		text.append("\n\tpage styles are = "); //$NON-NLS-1$
+		String[] styles = page.getStyles();
+		for (String style : styles)
 			text.append(filterURL(style + "\n\t\t\t")); //$NON-NLS-1$
-        text.append("\n\tpage alt-styles are = "); //$NON-NLS-1$
+		text.append("\n\tpage alt-styles are = "); //$NON-NLS-1$
 
 		final Map<String, Bundle> altStylesHashtable = page.getAltStyles();
-        if (altStylesHashtable == null)
-            return;
+		if (altStylesHashtable == null)
+			return;
 
-        Set<String> set = altStylesHashtable.keySet();
-        String[] sorted = new String[set.size()];
-        set.toArray(sorted);
-        for (int i=0;i<sorted.length;++i) {
-        	Bundle bundle = altStylesHashtable.get(sorted[i]);
-            sorted[i] = filterURL(sorted[i]) + " from " + bundle.getSymbolicName(); //$NON-NLS-1$
-        }
-        Arrays.sort(sorted);
+		Set<String> set = altStylesHashtable.keySet();
+		String[] sorted = new String[set.size()];
+		set.toArray(sorted);
+		for (int i=0;i<sorted.length;++i) {
+			Bundle bundle = altStylesHashtable.get(sorted[i]);
+			sorted[i] = filterURL(sorted[i]) + " from " + bundle.getSymbolicName(); //$NON-NLS-1$
+		}
+		Arrays.sort(sorted);
 
-        for (String element : sorted) {
-            text.append(element + "\n\t\t"); //$NON-NLS-1$
-        }
-    }
+		for (String element : sorted) {
+			text.append(element + "\n\t\t"); //$NON-NLS-1$
+		}
+	}
 
 	private void printPageChildren(AbstractIntroPage page, StringBuilder text) {
 
-        text.append("\n\tpage children = " + page.getChildren().length); //$NON-NLS-1$
-        text.append("\n"); //$NON-NLS-1$
-        printContainerChildren(page, text, "\n\t\t"); //$NON-NLS-1$
+		text.append("\n\tpage children = " + page.getChildren().length); //$NON-NLS-1$
+		text.append("\n"); //$NON-NLS-1$
+		printContainerChildren(page, text, "\n\t\t"); //$NON-NLS-1$
 
-    }
+	}
 
-    private void printContainerChildren(AbstractIntroContainer container,
+	private void printContainerChildren(AbstractIntroContainer container,
 			StringBuilder text, String indent) {
 
-        AbstractIntroElement[] children = container.getChildren();
-        for (AbstractIntroElement element : children) {
-            int childType = element.getType();
-            switch (childType) {
-            case AbstractIntroElement.ELEMENT:
-                text.append("SHOULD NEVER BE HERE"); //$NON-NLS-1$
-                break;
-            case AbstractIntroElement.GROUP:
-                printGroup(text, (IntroGroup) element, indent);
-                break;
-            case AbstractIntroElement.LINK:
-                printLink(text, (IntroLink) element, indent);
-                break;
-            case AbstractIntroElement.TEXT:
-                printText(text, (IntroText) element, indent);
-                break;
-            case AbstractIntroElement.IMAGE:
-                printImage(text, (IntroImage) element, indent);
-                break;
-            case AbstractIntroElement.HTML:
-                printHtml(text, (IntroHTML) element, indent);
-                break;
-            case AbstractIntroElement.INCLUDE:
-                printInclude(text, (IntroInclude) element, indent);
-                break;
-            case AbstractIntroElement.HEAD:
-                printHead(text, (IntroHead) element, indent);
-                break;
-            case AbstractIntroElement.PAGE_TITLE:
-                printPageTitle(text, (IntroPageTitle) element, indent);
-                break;
-            case AbstractIntroElement.ANCHOR:
-                printAnchor(text, (IntroAnchor) element, indent);
-                break;
-            case AbstractIntroElement.CONTENT_PROVIDER:
-                printContentProvidor(text, (IntroContentProvider) element,
-                    indent);
-                break;
+		AbstractIntroElement[] children = container.getChildren();
+		for (AbstractIntroElement element : children) {
+			int childType = element.getType();
+			switch (childType) {
+			case AbstractIntroElement.ELEMENT:
+				text.append("SHOULD NEVER BE HERE"); //$NON-NLS-1$
+				break;
+			case AbstractIntroElement.GROUP:
+				printGroup(text, (IntroGroup) element, indent);
+				break;
+			case AbstractIntroElement.LINK:
+				printLink(text, (IntroLink) element, indent);
+				break;
+			case AbstractIntroElement.TEXT:
+				printText(text, (IntroText) element, indent);
+				break;
+			case AbstractIntroElement.IMAGE:
+				printImage(text, (IntroImage) element, indent);
+				break;
+			case AbstractIntroElement.HTML:
+				printHtml(text, (IntroHTML) element, indent);
+				break;
+			case AbstractIntroElement.INCLUDE:
+				printInclude(text, (IntroInclude) element, indent);
+				break;
+			case AbstractIntroElement.HEAD:
+				printHead(text, (IntroHead) element, indent);
+				break;
+			case AbstractIntroElement.PAGE_TITLE:
+				printPageTitle(text, (IntroPageTitle) element, indent);
+				break;
+			case AbstractIntroElement.ANCHOR:
+				printAnchor(text, (IntroAnchor) element, indent);
+				break;
+			case AbstractIntroElement.CONTENT_PROVIDER:
+				printContentProvidor(text, (IntroContentProvider) element,
+					indent);
+				break;
 
-            }
-        }
-    }
+			}
+		}
+	}
 
 	private void printGroup(StringBuilder text, IntroGroup group, String indent) {
-        text.append(indent + "GROUP: id = " + group.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "label = " + group.getLabel()); //$NON-NLS-1$
-        text.append(indent + "children = " + group.getChildren().length); //$NON-NLS-1$
-        text.append(indent + "style-id = " + group.getStyleId()); //$NON-NLS-1$
-        printContainerChildren(group, text, indent + "\t\t"); //$NON-NLS-1$
-    }
+		text.append(indent + "GROUP: id = " + group.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "label = " + group.getLabel()); //$NON-NLS-1$
+		text.append(indent + "children = " + group.getChildren().length); //$NON-NLS-1$
+		text.append(indent + "style-id = " + group.getStyleId()); //$NON-NLS-1$
+		printContainerChildren(group, text, indent + "\t\t"); //$NON-NLS-1$
+	}
 
 	private void printLink(StringBuilder text, IntroLink link, String indent) {
-        text.append(indent + "LINK: id = " + link.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "label = " + link.getLabel()); //$NON-NLS-1$
-        text.append(indent + "text = " + link.getText()); //$NON-NLS-1$
-        text.append(indent + "url = " + link.getUrl()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + link.getStyleId()); //$NON-NLS-1$
-    }
+		text.append(indent + "LINK: id = " + link.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "label = " + link.getLabel()); //$NON-NLS-1$
+		text.append(indent + "text = " + link.getText()); //$NON-NLS-1$
+		text.append(indent + "url = " + link.getUrl()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + link.getStyleId()); //$NON-NLS-1$
+	}
 
 	private void printText(StringBuilder text, IntroText introText, String indent) {
-        text.append(indent + "TEXT: id = " + introText.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "text = " + introText.getText()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + introText.getStyleId()); //$NON-NLS-1$
-    }
+		text.append(indent + "TEXT: id = " + introText.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "text = " + introText.getText()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + introText.getStyleId()); //$NON-NLS-1$
+	}
 
 	private void printImage(StringBuilder text, IntroImage image, String indent) {
-        text.append(indent + "IMAGE: id = " + image.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "src = " + image.getSrc()); //$NON-NLS-1$
-        text.append(indent + "alt = " + image.getAlt()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + image.getStyleId()); //$NON-NLS-1$
-    }
+		text.append(indent + "IMAGE: id = " + image.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "src = " + image.getSrc()); //$NON-NLS-1$
+		text.append(indent + "alt = " + image.getAlt()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + image.getStyleId()); //$NON-NLS-1$
+	}
 
 	private void printHtml(StringBuilder text, IntroHTML html, String indent) {
-        text.append(indent + "HTML: id = " + html.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "src = " + html.getSrc()); //$NON-NLS-1$
-        text.append(indent + "isInlined = " + html.isInlined()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + html.getStyleId()); //$NON-NLS-1$
-        if (html.getIntroImage() != null)
-            printImage(text, html.getIntroImage(), indent + "\t\t"); //$NON-NLS-1$
-        if (html.getIntroText() != null)
-            printText(text, html.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
+		text.append(indent + "HTML: id = " + html.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "src = " + html.getSrc()); //$NON-NLS-1$
+		text.append(indent + "isInlined = " + html.isInlined()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + html.getStyleId()); //$NON-NLS-1$
+		if (html.getIntroImage() != null)
+			printImage(text, html.getIntroImage(), indent + "\t\t"); //$NON-NLS-1$
+		if (html.getIntroText() != null)
+			printText(text, html.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
 
-    }
+	}
 
 	private void printInclude(StringBuilder text, IntroInclude include,
-            String indent) {
-        text.append(indent + "INCLUDE: configId = " + include.getConfigId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "path = " + include.getPath()); //$NON-NLS-1$
-        text.append(indent + "merge-style = " + include.getMergeStyle()); //$NON-NLS-1$
-    }
+			String indent) {
+		text.append(indent + "INCLUDE: configId = " + include.getConfigId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "path = " + include.getPath()); //$NON-NLS-1$
+		text.append(indent + "merge-style = " + include.getMergeStyle()); //$NON-NLS-1$
+	}
 
 	private void printHead(StringBuilder text, IntroHead head, String indent) {
-        text.append(indent + "HEAD: src = " + head.getSrc()); //$NON-NLS-1$
-    }
+		text.append(indent + "HEAD: src = " + head.getSrc()); //$NON-NLS-1$
+	}
 
 	private void printPageTitle(StringBuilder text, IntroPageTitle title,
-            String indent) {
-        text.append(indent + "TITLE: id = " + title.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "title = " + title.getTitle()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + title.getStyleId()); //$NON-NLS-1$
-    }
+			String indent) {
+		text.append(indent + "TITLE: id = " + title.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "title = " + title.getTitle()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + title.getStyleId()); //$NON-NLS-1$
+	}
 
 	private void printAnchor(StringBuilder text, IntroAnchor anchor,
-            String indent) {
-        text.append(indent + "ANCHOR: id = " + anchor.getId()); //$NON-NLS-1$
-    }
+			String indent) {
+		text.append(indent + "ANCHOR: id = " + anchor.getId()); //$NON-NLS-1$
+	}
 
 	private void printContentProvidor(StringBuilder text,
-            IntroContentProvider provider, String indent) {
-        text.append(indent + "CONTENT PROVIDER: id = " + provider.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "class = " + provider.getClassName()); //$NON-NLS-1$
-        text.append(indent + "pluginId = " + provider.getPluginId()); //$NON-NLS-1$
-        if (provider.getIntroText() != null)
-            printText(text, provider.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
+			IntroContentProvider provider, String indent) {
+		text.append(indent + "CONTENT PROVIDER: id = " + provider.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "class = " + provider.getClassName()); //$NON-NLS-1$
+		text.append(indent + "pluginId = " + provider.getPluginId()); //$NON-NLS-1$
+		if (provider.getIntroText() != null)
+			printText(text, provider.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
 
-    }
+	}
 
-    /**
-     * Appends a given page's categories to the Text buffer.
-     *
-     * @param text
-     */
+	/**
+	 * Appends a given page's categories to the Text buffer.
+	 *
+	 * @param text
+	 */
 	private void printPages(IntroPage[] pages, StringBuilder text) {
-        for (IntroPage page : pages) {
-            text.append("\n\nPAGE id = " + page.getId()); //$NON-NLS-1$
-            text.append("\n----------"); //$NON-NLS-1$
-            text.append("\n\ttitle = " + page.getTitle()); //$NON-NLS-1$
-            text.append("\n\tstyle = " + filterURL(page.getStyle())); //$NON-NLS-1$
-            text.append("\n\talt-style = " + filterURL(page.getAltStyle())); //$NON-NLS-1$
-            text.append("\n\tstyle-id = " + page.getStyleId()); //$NON-NLS-1$
-            printPageStyles(page, text);
-            printPageChildren(page, text);
-        }
-    }
+		for (IntroPage page : pages) {
+			text.append("\n\nPAGE id = " + page.getId()); //$NON-NLS-1$
+			text.append("\n----------"); //$NON-NLS-1$
+			text.append("\n\ttitle = " + page.getTitle()); //$NON-NLS-1$
+			text.append("\n\tstyle = " + filterURL(page.getStyle())); //$NON-NLS-1$
+			text.append("\n\talt-style = " + filterURL(page.getAltStyle())); //$NON-NLS-1$
+			text.append("\n\tstyle-id = " + page.getStyleId()); //$NON-NLS-1$
+			printPageStyles(page, text);
+			printPageChildren(page, text);
+		}
+	}
 
 	private void printModelFlagTests(IntroModelRoot model, StringBuilder text) {
-        text.append("Model Flag Tests: "); //$NON-NLS-1$
-        text.append("\n----------------"); //$NON-NLS-1$
-        if (model.getPages().length == 0) {
-            text.append("\nNo first page in model\n\n"); //$NON-NLS-1$
-            return;
-        }
-        IntroPage firstPage = model.getPages()[0];
-        if ("standby".equals(firstPage.getId())) {
-        	firstPage = model.getPages()[1];
-        }
-        text.append("\n\t\tFirst page children are: "); //$NON-NLS-1$
-        text
-            .append("\n\t\t\tGroups: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.GROUP).length);
-        text
-            .append("\n\t\t\tLinks: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.LINK).length);
-        text
-            .append("\n\t\t\tTexts: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.TEXT).length);
-        text
-            .append("\n\t\t\tHTMLs: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.HTML).length);
-        text
-            .append("\n\t\t\tImages: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.IMAGE).length);
-        text
-            .append("\n\t\t\tIncludes: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.INCLUDE).length);
-        text
-            .append("\n\t\t\tPage Titles: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.PAGE_TITLE).length);
-        text
-            .append("\n\t\t\tPage Heads: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.HEAD).length);
-        text
-            .append("\n\t\t\tModel Elements: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.ELEMENT).length);
-        text
-            .append("\n\t\t\tContainers: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.ABSTRACT_CONTAINER).length);
-        text
-            .append("\n\t\t\tAll Pages: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.ABSTRACT_PAGE).length);
-        text
-            .append("\n\t\t\tAnchors: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.ANCHOR).length);
-        text
-            .append("\n\t\t\tContent providers: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.CONTENT_PROVIDER).length);
-        text
-            .append("\n\t\t\tElements with Text child(AbstractTextElemets): " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.ABSTRACT_TEXT).length);
+		text.append("Model Flag Tests: "); //$NON-NLS-1$
+		text.append("\n----------------"); //$NON-NLS-1$
+		if (model.getPages().length == 0) {
+			text.append("\nNo first page in model\n\n"); //$NON-NLS-1$
+			return;
+		}
+		IntroPage firstPage = model.getPages()[0];
+		if ("standby".equals(firstPage.getId())) {
+			firstPage = model.getPages()[1];
+		}
+		text.append("\n\t\tFirst page children are: "); //$NON-NLS-1$
+		text
+			.append("\n\t\t\tGroups: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.GROUP).length);
+		text
+			.append("\n\t\t\tLinks: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.LINK).length);
+		text
+			.append("\n\t\t\tTexts: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.TEXT).length);
+		text
+			.append("\n\t\t\tHTMLs: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.HTML).length);
+		text
+			.append("\n\t\t\tImages: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.IMAGE).length);
+		text
+			.append("\n\t\t\tIncludes: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.INCLUDE).length);
+		text
+			.append("\n\t\t\tPage Titles: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.PAGE_TITLE).length);
+		text
+			.append("\n\t\t\tPage Heads: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.HEAD).length);
+		text
+			.append("\n\t\t\tModel Elements: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.ELEMENT).length);
+		text
+			.append("\n\t\t\tContainers: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.ABSTRACT_CONTAINER).length);
+		text
+			.append("\n\t\t\tAll Pages: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.ABSTRACT_PAGE).length);
+		text
+			.append("\n\t\t\tAnchors: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.ANCHOR).length);
+		text
+			.append("\n\t\t\tContent providers: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.CONTENT_PROVIDER).length);
+		text
+			.append("\n\t\t\tElements with Text child(AbstractTextElemets): " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.ABSTRACT_TEXT).length);
 
-        AbstractIntroElement[] linksAndGroups = (AbstractIntroElement[]) firstPage
-            .getChildrenOfType(AbstractIntroElement.GROUP
-                    | AbstractIntroElement.LINK);
-        text.append("\n\t\t\tGroups and Links: " + linksAndGroups.length); //$NON-NLS-1$
-    }
+		AbstractIntroElement[] linksAndGroups = (AbstractIntroElement[]) firstPage
+			.getChildrenOfType(AbstractIntroElement.GROUP
+					| AbstractIntroElement.LINK);
+		text.append("\n\t\t\tGroups and Links: " + linksAndGroups.length); //$NON-NLS-1$
+	}
 
-    /**
-     * @return Returns the textUI.
-     */
-    @Override
+	/**
+	 * @return Returns the textUI.
+	 */
+	@Override
 	public String toString() {
-        return buffer.toString();
-    }
+		return buffer.toString();
+	}
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetEvent.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetEvent.java
index b7f4df2..6ef8ed0 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetEvent.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetEvent.java
@@ -33,14 +33,14 @@
 	/**
 	 * Event type constant (value {@value}) indicating that
 	 * the cheat sheet was opened. This is the first event
-     * in the life of a running cheat sheet.
+	 * in the life of a running cheat sheet.
 	 */
 	public static final int CHEATSHEET_OPENED = 0;
 
 	/**
 	 * Event type constant (value {@value}) indicating that
 	 * the cheat sheet was closed. This is the last event
-     * in the life of a running cheat sheet.
+	 * in the life of a running cheat sheet.
 	 */
 	public static final int CHEATSHEET_CLOSED = 1;
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ActionRunner.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ActionRunner.java
index c8fc5c4..2aa5bc6 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ActionRunner.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ActionRunner.java
@@ -97,8 +97,8 @@
 
 		if (status.isOK() && listenerFired[0]) {
 			if (!listenerResult[0]) {
-			    status =new Status(IStatus.WARNING, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.ACTION_FAILED, null);
-		    }
+				status =new Status(IStatus.WARNING, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.ACTION_FAILED, null);
+			}
 		}
 
 		return status;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
index 2878202..312e106 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
@@ -76,7 +76,7 @@
 		HashSet<String> set = new HashSet<>();
 		for (IConfigurationElement element : elements) {
 			if (element.getName().equals(CheatSheetRegistryReader.TAG_CHEATSHEET)) {
-			    set.add(element.getContributor().getName());
+				set.add(element.getContributor().getName());
 			}
 		}
 		return set;
@@ -93,12 +93,12 @@
 			data.setTitle(attributes.getValue(ICompositeCheatsheetTags.NAME));
 		} else if (name.equals(IParserTags.ITEM)) {
 			data.addText(attributes.getValue(IParserTags.TITLE));
-	    } else if (name.equals(IParserTags.SUBITEM)) {
-		    data.addText(attributes.getValue(IParserTags.LABEL));
-	    } else if (name.equals(ICompositeCheatsheetTags.TASK )
-	    		|| name.equals(ICompositeCheatsheetTags.TASK_GROUP)) {
-		    data.addText(attributes.getValue(ICompositeCheatsheetTags.NAME));
-	    }
+		} else if (name.equals(IParserTags.SUBITEM)) {
+			data.addText(attributes.getValue(IParserTags.LABEL));
+		} else if (name.equals(ICompositeCheatsheetTags.TASK )
+				|| name.equals(ICompositeCheatsheetTags.TASK_GROUP)) {
+			data.addText(attributes.getValue(ICompositeCheatsheetTags.NAME));
+		}
 	}
 
 	@Override
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
index a8f2484..8dd33fe 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
@@ -38,9 +38,9 @@
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
 			ICommandService serviceObject = wb.getAdapter(ICommandService.class);
-		    if (serviceObject != null) {
+			if (serviceObject != null) {
 				return serviceObject;
-		    }
+			}
 		}
 		return null;
 	}
@@ -49,9 +49,9 @@
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
 			IHandlerService serviceObject = wb.getAdapter(IHandlerService.class);
-		    if (serviceObject != null) {
+			if (serviceObject != null) {
 				return serviceObject;
-		    }
+			}
 		}
 		return null;
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
index 853132c..b1577f8 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
@@ -79,7 +79,7 @@
 	private TreeLabelProvider treeLabelProvider;
 
 	protected ConfirmRestartDialog(Shell parentShell, AbstractTask[] restartTasks,
-			                       TreeLabelProvider treeLabelProvider) {
+								   TreeLabelProvider treeLabelProvider) {
 		super(parentShell);
 		this.tasks = restartTasks;
 		this.treeLabelProvider = treeLabelProvider;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ResetTaskAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ResetTaskAction.java
index 9f0f7e4..7768d22 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ResetTaskAction.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ResetTaskAction.java
@@ -33,7 +33,7 @@
 	private AbstractTask task;
 
 	public ResetTaskAction(ICompositeCheatSheetTask task) {
-        this.task = (AbstractTask) task;
+		this.task = (AbstractTask) task;
 		this.setText(Messages.COMPOSITE_MENU_RESET);
 		IPath path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append("return_to_start.png");//$NON-NLS-1$
 		ImageDescriptor restartImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/RestartAllAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/RestartAllAction.java
index 0493893..fc78617 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/RestartAllAction.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/RestartAllAction.java
@@ -29,7 +29,7 @@
 	private ICompositeCheatSheet model;
 
 	public RestartAllAction(ICompositeCheatSheet model) {
-        this.model = model;
+		this.model = model;
 		this.setText(Messages.RESTART_ALL_MENU);
 		IPath path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append("restart_all.png");//$NON-NLS-1$
 		ImageDescriptor restartImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);
@@ -39,7 +39,7 @@
 	@Override
 	public void run() {
 		if (confirmRestart()) {
-		    ((CompositeCheatSheetModel)model).resetAllTasks(null);
+			((CompositeCheatSheetModel)model).resetAllTasks(null);
 		}
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/SkipAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/SkipAction.java
index f5f1a94..690c2f3 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/SkipAction.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/SkipAction.java
@@ -37,7 +37,7 @@
 
 	@Override
 	public void run() {
-	    task.setState(ICompositeCheatSheetTask.SKIPPED);
+		task.setState(ICompositeCheatSheetTask.SKIPPED);
 	}
 
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeExplorerMenu.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeExplorerMenu.java
index f98dcd4..3f69ce5 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeExplorerMenu.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeExplorerMenu.java
@@ -53,13 +53,13 @@
 		if (selectedTask == null) return;
 
 		// Start
-	    StartAction startAction = new StartAction(selectedTask);
-	    startAction.setEnabled(TaskStateUtilities.isStartEnabled(selectedTask));
+		StartAction startAction = new StartAction(selectedTask);
+		startAction.setEnabled(TaskStateUtilities.isStartEnabled(selectedTask));
 		manager.add(startAction);
 
 		// Skip
-	    SkipAction skipAction = new SkipAction(selectedTask);
-	    skipAction.setEnabled(TaskStateUtilities.isSkipEnabled(selectedTask));
+		SkipAction skipAction = new SkipAction(selectedTask);
+		skipAction.setEnabled(TaskStateUtilities.isSkipEnabled(selectedTask));
 		manager.add(skipAction);
 
 		// Restart
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
index 201aaa7..8df69b1 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
@@ -72,7 +72,7 @@
 		if (obj instanceof ICompositeCheatSheetTask) {
 			result =  ((ICompositeCheatSheetTask) obj).getName();
 		} else {
-		    result =  obj.toString();
+			result =  obj.toString();
 		}
 		if (result == null) {
 			result = ""; //$NON-NLS-1$
@@ -98,7 +98,7 @@
 		if (isBlocked) {
 			return images.getImage(BLOCKED);
 		}
-	    return images.getImage(state);
+		return images.getImage(state);
 	}
 
 	/**
@@ -109,28 +109,28 @@
 	private ImageSet createImages(String kind) {
 		ImageSet images = new ImageSet();
 		ImageDescriptor desc = getPredefinedImageDescriptor(kind, true);
-        if (desc == null) {
-		    desc = TaskEditorManager.getInstance().getImageDescriptor(kind);
-        }
+		if (desc == null) {
+			desc = TaskEditorManager.getInstance().getImageDescriptor(kind);
+		}
 		if (desc != null) {
 			Image baseImage = desc.createImage();
 			images.put(ICompositeCheatSheetTask.NOT_STARTED, baseImage);
 
 			createImageWithOverlay(ICompositeCheatSheetTask.IN_PROGRESS,
 					"$nl$/icons/ovr16/task_in_progress.png", //$NON-NLS-1$
-		               images,
-		               desc);
+					images,
+					desc);
 			createImageWithOverlay(ICompositeCheatSheetTask.SKIPPED,
 					"$nl$/icons/ovr16/task_skipped.png", //$NON-NLS-1$
-		               images,
-		               desc);
+					images,
+					desc);
 			createDisabledImage(kind, BLOCKED,
-		               images,
-		               baseImage);
+					images,
+					baseImage);
 			createImageWithOverlay(ICompositeCheatSheetTask.COMPLETED,
 					"$nl$/icons/ovr16/task_complete.png", //$NON-NLS-1$
-		               images,
-		               desc);
+					images,
+					desc);
 
 		}
 		return images;
@@ -177,7 +177,7 @@
 		if (desc != null) {
 			disabledImage = desc.createImage();
 		} else {
-		    disabledImage = createGrayedImage(baseImage);
+			disabledImage = createGrayedImage(baseImage);
 		}
 		images.put(state, disabledImage);
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
index f37fa9c..a43bb33 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
@@ -164,7 +164,7 @@
 	 * @param state
 	 */
 	public void setState(int state) {
-	    setStateNoNotify(state);
+		setStateNoNotify(state);
 		model.sendTaskChangeEvents();
 	}
 
@@ -177,7 +177,7 @@
 	public void setStateNoNotify(int state) {
 		this.state = state;
 		if (parent != null) {
-		    parent.checkState();
+			parent.checkState();
 		}
 		model.stateChanged(this);
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
index d3524b0..c30892f 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
@@ -35,8 +35,8 @@
 	 *
 	 * This takes several steps.
 	 * <li> If a  group is completed, skipped or reset add any non-started children.
-     * <li> Determine all successors of tasks whose state has changed that are not in the change set
-     * <li> Add the successor and its children to the list if not started
+	 * <li> Determine all successors of tasks whose state has changed that are not in the change set
+	 * <li> Add the successor and its children to the list if not started
 	 */
 
 	public Set<ICompositeCheatSheetTask> findBlockedTaskChanges(Set<ICompositeCheatSheetTask> stateChangedTasks) {
@@ -50,7 +50,7 @@
 	private void visitChangedTasks() {
 		for (ICompositeCheatSheetTask nextTask : stateChangedTasks) {
 			if (nextTask.getState() != ICompositeCheatSheetTask.IN_PROGRESS) {
-			    findUnstartedChildren(nextTask);
+				findUnstartedChildren(nextTask);
 			}
 		}
 	}
@@ -64,10 +64,10 @@
 		for (ICompositeCheatSheetTask nextChild : children) {
 			// Ignore if this task has been seen before
 			if ((!stateChangedTasks.contains(nextChild)) && !impactedTasks.contains(nextChild)) {
-			    if (nextChild.getState() == ICompositeCheatSheetTask.NOT_STARTED) {
-				   impactedTasks.add(nextChild);
-			    }
-			    findUnstartedChildren(nextChild);
+				if (nextChild.getState() == ICompositeCheatSheetTask.NOT_STARTED) {
+					impactedTasks.add(nextChild);
+				}
+				findUnstartedChildren(nextChild);
 			}
 		}
 	}
@@ -80,7 +80,7 @@
 				if (nextSuccessor.getState() == ICompositeCheatSheetTask.NOT_STARTED) {
 					impactedTasks.add(nextSuccessor);
 				}
-			    findUnstartedChildren(nextSuccessor);
+				findUnstartedChildren(nextSuccessor);
 			}
 		}
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
index a1cdd60..43fb165 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
@@ -47,9 +47,9 @@
 
 	public CompositeCheatSheetModel(String name, String description, String explorerId) {
 		this.name = name;
-	    this.description = description;
-	    this.explorerId = explorerId;
-	    this.dependencies = new TaskDependencies();
+		this.description = description;
+		this.explorerId = explorerId;
+		this.dependencies = new TaskDependencies();
 	}
 
 	public String getName() {
@@ -150,32 +150,32 @@
 	 */
 	private void resetTask(ICompositeCheatSheetTask task) {
 		if (task instanceof EditableTask) {
-		    EditableTask editable = (EditableTask)task;
+			EditableTask editable = (EditableTask)task;
 			editable.reset();
 			if (saveHelper != null) {
-			    saveHelper.clearTaskMemento(task.getId());
+				saveHelper.clearTaskMemento(task.getId());
 			}
 		} else if (task instanceof TaskGroup) {
 			TaskGroup group = (TaskGroup)task;
-		    ICompositeCheatSheetTask[] subtasks = group.getSubtasks();
+			ICompositeCheatSheetTask[] subtasks = group.getSubtasks();
 			for (ICompositeCheatSheetTask subtask : subtasks) {
 				resetTask(subtask);
-		    }
-		   group.setStateNoNotify(ICompositeCheatSheetTask.NOT_STARTED);
+			}
+			group.setStateNoNotify(ICompositeCheatSheetTask.NOT_STARTED);
 		}
 	}
 
 	public void resetAllTasks(Map<String, String> cheatSheetData) {
-        if (manager != null) {
-    		if (cheatSheetData == null) {
+		if (manager != null) {
+			if (cheatSheetData == null) {
 				manager.setData(new Hashtable<>());
-    		} else {
-    			manager.setData(cheatSheetData);
-    		}
-        }
-        saveHelper.clearTaskMementos();
-	    resetTask(getRootTask());
-	    sendTaskChangeEvents();
+			} else {
+				manager.setData(cheatSheetData);
+			}
+		}
+		saveHelper.clearTaskMementos();
+		resetTask(getRootTask());
+		sendTaskChangeEvents();
 	}
 
 	/**
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
index e127e48..7fbf208 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
@@ -57,12 +57,12 @@
 		if (readMemento == null) {
 			return Status.OK_STATUS;
 		}
-        taskMementoMap = createTaskMap(readMemento);
-        loadTaskState(taskMementoMap, (AbstractTask)model.getRootTask());
-        loadCheatsheetManagerData(readMemento, model.getCheatSheetManager());
-        loadLayoutData(readMemento, layoutData);
-        model.sendTaskChangeEvents();
-        return Status.OK_STATUS;
+		taskMementoMap = createTaskMap(readMemento);
+		loadTaskState(taskMementoMap, (AbstractTask)model.getRootTask());
+		loadCheatsheetManagerData(readMemento, model.getCheatSheetManager());
+		loadLayoutData(readMemento, layoutData);
+		model.sendTaskChangeEvents();
+		return Status.OK_STATUS;
 	}
 
 	private Map<String, IMemento> createTaskMap(XMLMemento readMemento) {
@@ -129,8 +129,8 @@
 		if (stateManager instanceof NoSaveStateManager) return Status.OK_STATUS;
 		XMLMemento writeMemento = XMLMemento.createWriteRoot(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET_STATE);
 		writeMemento.putString(IParserTags.ID, model.getId());
-        saveTaskState(writeMemento, (AbstractTask)model.getRootTask());
-        saveCheatSheetManagerData(writeMemento, model.getCheatSheetManager());
+		saveTaskState(writeMemento, (AbstractTask)model.getRootTask());
+		saveCheatSheetManagerData(writeMemento, model.getCheatSheetManager());
 		taskMementoMap = createTaskMap(writeMemento);
 		if (layoutData != null) {
 			saveMap(writeMemento, layoutData, ICompositeCheatsheetTags.LAYOUT_DATA);
@@ -182,9 +182,9 @@
 	}
 
 	private TaskEditor getEditor(AbstractTask task) {
-        if (task instanceof EditableTask) {
-        	return ((EditableTask)task).getEditor();
-        }
+		if (task instanceof EditableTask) {
+			return ((EditableTask)task).getEditor();
+		}
 		return null;
 	}
 
@@ -193,10 +193,10 @@
 			return null;
 		}
 		IMemento childMemento = taskMementoMap.get(id);
-	    if (childMemento == null) {
-	    	return  null;
-	    }
-	    return childMemento.getChild(ICompositeCheatsheetTags.TASK_DATA);
+		if (childMemento == null) {
+			return  null;
+		}
+		return childMemento.getChild(ICompositeCheatsheetTags.TASK_DATA);
 	}
 
 	public void clearTaskMementos() {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
index 0d6a4f6..f67072f 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
@@ -43,18 +43,18 @@
 	 * @param task The task which was just completed
 	 * @return An array of tasks which can be started
 	 */
-    public ICompositeCheatSheetTask[] getRecommendedSuccessors()
-    {
-    	// TODO this code could be moved to TaskGroup
-    	if (ITaskGroup.CHOICE.equals(currentTask.getKind())) {
-    		// For a choice if more than one child is runnable return it
+	public ICompositeCheatSheetTask[] getRecommendedSuccessors()
+	{
+		// TODO this code could be moved to TaskGroup
+		if (ITaskGroup.CHOICE.equals(currentTask.getKind())) {
+			// For a choice if more than one child is runnable return it
 			List<ICompositeCheatSheetTask> runnableChoices = findRunnableChoices();
-    		if (runnableChoices.size() != 0) {
+			if (runnableChoices.size() != 0) {
 				return runnableChoices.toArray(new ICompositeCheatSheetTask[runnableChoices.size()]);
-    		}
-    	}
-    	return getBestSuccessor();
-    }
+			}
+		}
+		return getBestSuccessor();
+	}
 
 	private List<ICompositeCheatSheetTask> findRunnableChoices() {
 		List<ICompositeCheatSheetTask> result = new ArrayList<>();
@@ -72,14 +72,14 @@
 	private boolean isStartable(ICompositeCheatSheetTask task) {
 		int state = task.getState();
 		return (state != ICompositeCheatSheetTask.COMPLETED &&
-			    state != ICompositeCheatSheetTask.SKIPPED &&
-			    task.requiredTasksCompleted());
+				state != ICompositeCheatSheetTask.SKIPPED &&
+				task.requiredTasksCompleted());
 	}
 
 	private ICompositeCheatSheetTask[] getBestSuccessor() {
 		bestLaterTask = null;
-    	bestEarlierTask = null;
-    	seenThisTask = false;
+		bestEarlierTask = null;
+		seenThisTask = false;
 		searchRunnableChildren(currentTask.getCompositeCheatSheet().getRootTask());
 		// If there is a task which is found later in the tree return
 		// that, otherwise an earlier task.
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskChoiceCompletionStrategy.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskChoiceCompletionStrategy.java
index f08498e..03d9080 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskChoiceCompletionStrategy.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskChoiceCompletionStrategy.java
@@ -32,16 +32,16 @@
 		ICompositeCheatSheetTask[] children = taskGroup.getSubtasks();
 		for (ICompositeCheatSheetTask element : children) {
 			switch (element.getState()) {
-			   case ICompositeCheatSheetTask.NOT_STARTED:
-				   break;
-			   case ICompositeCheatSheetTask.IN_PROGRESS:
-				   noChildrenStarted = false;
-				   break;
-			   case ICompositeCheatSheetTask.SKIPPED:
-			   case ICompositeCheatSheetTask.COMPLETED:
-				   noChildrenStarted = false;
-				   atLeastOneChildCompleted = true;
-				   break;
+				case ICompositeCheatSheetTask.NOT_STARTED:
+					break;
+				case ICompositeCheatSheetTask.IN_PROGRESS:
+					noChildrenStarted = false;
+					break;
+				case ICompositeCheatSheetTask.SKIPPED:
+				case ICompositeCheatSheetTask.COMPLETED:
+					noChildrenStarted = false;
+					atLeastOneChildCompleted = true;
+					break;
 			}
 		}
 		if (atLeastOneChildCompleted || children.length == 0) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
index 242f91e..91f6c53 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
@@ -173,13 +173,13 @@
 					lastTask = thisTask;
 					thisTask = task.getName();
 					if (lastTask != null) {
-					    String message = NLS.bind(Messages.ERROR_PARSING_CYCLE_CONTAINS, (new Object[] {lastTask, thisTask}));
-					    status.addStatus(IStatus.ERROR, message, null);
+						String message = NLS.bind(Messages.ERROR_PARSING_CYCLE_CONTAINS, (new Object[] {lastTask, thisTask}));
+						status.addStatus(IStatus.ERROR, message, null);
 					}
 				}
 			}
 			String message = NLS.bind(Messages.ERROR_PARSING_CYCLE_CONTAINS, (new Object[] {thisTask, firstTask}));
-		    status.addStatus(IStatus.ERROR, message, null);
+			status.addStatus(IStatus.ERROR, message, null);
 		}
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
index ef4d549..8d962d7 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
@@ -81,8 +81,8 @@
 
 	/**
 	 * Determine the state based on the state of the children, which
-     * will use a different computation depending on whether this is a set,
-     * sequence or choice.
+	 * will use a different computation depending on whether this is a set,
+	 * sequence or choice.
 	 */
 	public int computeState() {
 		return completionStrategy.computeState(this);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskSetCompletionStrategy.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskSetCompletionStrategy.java
index 938b23f..2623c88 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskSetCompletionStrategy.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskSetCompletionStrategy.java
@@ -32,17 +32,17 @@
 		ICompositeCheatSheetTask[] children = taskGroup.getSubtasks();
 		for (ICompositeCheatSheetTask element : children) {
 			switch (element.getState()) {
-			   case ICompositeCheatSheetTask.NOT_STARTED:
-				   allChildrenCompleted = false;
-				   break;
-			   case ICompositeCheatSheetTask.IN_PROGRESS:
-				   noChildrenStarted = false;
-				   allChildrenCompleted = false;
-				   break;
-			   case ICompositeCheatSheetTask.COMPLETED:
-			   case ICompositeCheatSheetTask.SKIPPED:
-				   noChildrenStarted = false;
-				   break;
+				case ICompositeCheatSheetTask.NOT_STARTED:
+					allChildrenCompleted = false;
+					break;
+				case ICompositeCheatSheetTask.IN_PROGRESS:
+					noChildrenStarted = false;
+					allChildrenCompleted = false;
+					break;
+				case ICompositeCheatSheetTask.COMPLETED:
+				case ICompositeCheatSheetTask.SKIPPED:
+					noChildrenStarted = false;
+					break;
 			}
 		}
 		if (allChildrenCompleted) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
index 54fb605..9eedca2 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
@@ -40,7 +40,7 @@
 		if (parent == null) {
 			return null;
 		}
-        if (!parent.requiredTasksCompleted()) {
+		if (!parent.requiredTasksCompleted()) {
 			return parent;
 		}
 		return findBlockedAncestor(parent);
@@ -56,7 +56,7 @@
 		if (parent == null) {
 			return null;
 		}
-        if (parent.getState() == ICompositeCheatSheetTask.SKIPPED) {
+		if (parent.getState() == ICompositeCheatSheetTask.SKIPPED) {
 			return parent;
 		}
 		return findSkippedAncestor(parent);
@@ -72,7 +72,7 @@
 		if (parent == null) {
 			return null;
 		}
-        if (parent.getState() == ICompositeCheatSheetTask.COMPLETED) {
+		if (parent.getState() == ICompositeCheatSheetTask.COMPLETED) {
 			return parent;
 		}
 		return findCompletedAncestor(parent);
@@ -116,11 +116,11 @@
 	 */
 	private static boolean isStartable(ICompositeCheatSheetTask task) {
 		if (task.getState() != ICompositeCheatSheetTask.NOT_STARTED) return false;
-	    if (findSkippedAncestor(task) != null) return false;
-	    if (findCompletedAncestor(task) != null) return false;
-	    if (!task.requiredTasksCompleted()) return false;
-	    if (findBlockedAncestor(task) != null) return false;
-        return true;
+		if (findSkippedAncestor(task) != null) return false;
+		if (findCompletedAncestor(task) != null) return false;
+		if (!task.requiredTasksCompleted()) return false;
+		if (findBlockedAncestor(task) != null) return false;
+		return true;
 	}
 
 	/**
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/CompositeCheatSheetParser.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/CompositeCheatSheetParser.java
index 7d5a773..cac5d13 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/CompositeCheatSheetParser.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/CompositeCheatSheetParser.java
@@ -192,7 +192,7 @@
 				}
 				if (status.getSeverity() != IStatus.ERROR) {
 					compositeCS.setContentUrl(url);
-				    return compositeCS;
+					return compositeCS;
 				}
 			}
 			return null;
@@ -209,12 +209,12 @@
 			Node nextNode = childNodes.item(index);
 			if (isAbstractTask(nextNode.getNodeName()) ) {
 				AbstractTask task = parseAbstractTask(nextNode, model);
-			    if (model.getRootTask() == null ) {
+				if (model.getRootTask() == null ) {
 					model.setRootTask(task);
 					parseTaskChildren(nextNode, task, model);
-			    } else {
-				    addStatus(IStatus.ERROR, Messages.ERROR_PARSING_MULTIPLE_ROOT, null);
-			    }
+				} else {
+					addStatus(IStatus.ERROR, Messages.ERROR_PARSING_MULTIPLE_ROOT, null);
+				}
 			}
 		}
 	}
@@ -242,18 +242,18 @@
 					parseDependency(childNode, parentTask, model);
 				} else if (CompositeCheatSheetParser.isAbstractTask(nodeName)) {
 					if (parentTask instanceof TaskGroup) {
-					    AbstractTask task = parseAbstractTask(childNode, model);
-					    ((TaskGroup)parentTask).addSubtask(task);
-					    parseTaskChildren(childNode, task, model);
+						AbstractTask task = parseAbstractTask(childNode, model);
+						((TaskGroup)parentTask).addSubtask(task);
+						parseTaskChildren(childNode, task, model);
 					}
-			    } else {
+				} else {
 					if (!strategy.parseElementNode(childNode, parentNode, parentTask, this)) {
 						String message = NLS
 						.bind(
 								Messages.WARNING_PARSING_UNKNOWN_ELEMENT,
 								(new Object[] { nodeName,
 										parentNode.getNodeName() }));
-				        addStatus(IStatus.WARNING, message, null);
+						addStatus(IStatus.WARNING, message, null);
 					}
 				}
 			}
@@ -265,13 +265,13 @@
 	private void parseDependency(Node taskNode, AbstractTask task, CompositeCheatSheetModel model) {
 		NamedNodeMap attributes = taskNode.getAttributes();
 		if (attributes != null) {
-		     Node taskAttribute = attributes.getNamedItem(ICompositeCheatsheetTags.TASK);
-		     if (taskAttribute != null) {
-		    	 String requiredTaskId = taskAttribute.getNodeValue();
-		    	 model.getDependencies().addDependency(task, requiredTaskId);
-		     } else {
-		    	 addStatus(IStatus.ERROR, Messages.ERROR_PARSING_NO_ID, null);
-		     }
+			Node taskAttribute = attributes.getNamedItem(ICompositeCheatsheetTags.TASK);
+			if (taskAttribute != null) {
+				String requiredTaskId = taskAttribute.getNodeValue();
+				model.getDependencies().addDependency(task, requiredTaskId);
+			} else {
+				addStatus(IStatus.ERROR, Messages.ERROR_PARSING_NO_ID, null);
+			}
 		}
 	}
 
@@ -348,7 +348,7 @@
 			String message = NLS.bind(Messages.ERROR_PARSING_DUPLICATE_TASK_ID, (new Object[] {id, }));
 			addStatus(IStatus.ERROR, message, null);
 		} else {
-		    model.getDependencies().saveId(task);
+			model.getDependencies().saveId(task);
 		}
 
 		return task;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/EditableTaskParseStrategy.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/EditableTaskParseStrategy.java
index 3fda8d9..e19e5a0 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/EditableTaskParseStrategy.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/EditableTaskParseStrategy.java
@@ -55,13 +55,13 @@
 			String message = NLS.bind(
 					Messages.ERROR_PARSING_TASK_NO_KIND,
 					(new Object[] { parentTask.getName()}));
-		    status.addStatus(IStatus.ERROR, message, null);
+			status.addStatus(IStatus.ERROR, message, null);
 		} else if (CheatSheetRegistryReader.getInstance().
 				findTaskEditor(parentTask.getKind()) == null) {
 			String message = NLS.bind(
 					Messages.ERROR_PARSING_TASK_INVALID_KIND,
 					(new Object[] { parentTask.getKind(), ICompositeCheatsheetTags.TASK, parentTask.getName()}));
-		    status.addStatus(IStatus.ERROR, message, null);
+			status.addStatus(IStatus.ERROR, message, null);
 		}
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java
index 55b5631..414ad31 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java
@@ -36,13 +36,13 @@
 	// Attribute values
 	public static final String TREE = "tree"; //$NON-NLS-1$
 
-    // Cheatsheet task parameters
+	// Cheatsheet task parameters
 	public static final String CHEATSHEET_TASK_KIND = "cheatsheet"; //$NON-NLS-1$
 	public static final String CHEATSHEET_TASK_ID = "id"; //$NON-NLS-1$
 	public static final String CHEATSHEET_TASK_PATH = "path"; //$NON-NLS-1$
 	public static final String CHEATSHEET_TASK_SHOW_INTRO = "showIntro"; //$NON-NLS-1$
 
-    // Tags used in Memento
+	// Tags used in Memento
 	public static final String TASK_DATA = "taskData"; //$NON-NLS-1$
 	public static final String CHEAT_SHEET_MANAGER = "cheatSheetManager"; //$NON-NLS-1$
 	public static final String KEY = "key"; //$NON-NLS-1$
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/MarkupParser.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/MarkupParser.java
index 8ad0107..896e583 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/MarkupParser.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/MarkupParser.java
@@ -25,7 +25,7 @@
 	}
 
 	private static String parseMarkup(Node parentNode) {
-	    NodeList children = parentNode.getChildNodes();
+		NodeList children = parentNode.getChildNodes();
 		StringBuilder text = new StringBuilder();
 		for (int i = 0; i < children.getLength(); i++) {
 			Node childNode = children.item(i);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/TaskGroupParseStrategy.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/TaskGroupParseStrategy.java
index 5ef79b8..89f5fc2 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/TaskGroupParseStrategy.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/TaskGroupParseStrategy.java
@@ -35,7 +35,7 @@
 	@Override
 	public boolean parseElementNode(Node childNode, Node parentNode,
 			AbstractTask parentTask, IStatusContainer status)
-    {
+	{
 		// Task children are handled by CompositeCheatSheetParser
 		return false;
 	}
@@ -64,7 +64,7 @@
 			String message = NLS.bind(
 					Messages.ERROR_PARSING_TASK_INVALID_KIND,
 					(new Object[] { parentTask.getKind(), ICompositeCheatsheetTags.TASK_GROUP, parentTask.getName()}));
-		    status.addStatus(IStatus.ERROR, message, null);
+			status.addStatus(IStatus.ERROR, message, null);
 		}
 	}
 
@@ -73,7 +73,7 @@
 			String message = NLS.bind(
 					Messages.ERROR_PARSING_CHILDLESS_TASK_GROUP,
 					(new Object[] { parentTask.getName()}));
-		    status.addStatus(IStatus.ERROR, message, null);
+			status.addStatus(IStatus.ERROR, message, null);
 		}
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CheatsheetTaskEditor.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CheatsheetTaskEditor.java
index d9fdf34..63ea4ef 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CheatsheetTaskEditor.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CheatsheetTaskEditor.java
@@ -70,7 +70,7 @@
 					id = task.getId();
 				}
 				if (url != null) {
-				    viewer.setInput(id, task.getName(), url, stateManager, false);
+					viewer.setInput(id, task.getName(), url, stateManager, false);
 				} else {
 					errorBadUrl(path);
 				}
@@ -78,7 +78,7 @@
 				errorBadUrl(path);
 			}
 		} else if (id != null){
-		    viewer.setInput(id, stateManager);
+			viewer.setInput(id, stateManager);
 		} else {
 			viewer.showError(Messages.CHEATSHEET_TASK_NO_ID);
 		}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
index 2d2719f..fadd60d 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
@@ -253,10 +253,10 @@
 		for (Control excontrol : excontrols) {
 			Object data = excontrol.getData(ICompositeCheatsheetTags.EXPLORER);
 			if (data instanceof TaskExplorer) {
-			    explorer = (TaskExplorer)data;
-			    if (explorer.getId().equals(id)) {
-				    return explorer;
-			    }
+				explorer = (TaskExplorer)data;
+				if (explorer.getId().equals(id)) {
+					return explorer;
+				}
 			}
 		}
 
@@ -315,7 +315,7 @@
 	public void saveState() {
 		Map<String, String> layout = new HashMap<>();
 		if (selectedTask != null) {
-		    layout.put(ICompositeCheatsheetTags.SELECTED_TASK, selectedTask.getId());
+			layout.put(ICompositeCheatsheetTags.SELECTED_TASK, selectedTask.getId());
 		}
 		saveHelper.saveCompositeState(model, layout);
 	}
@@ -366,16 +366,16 @@
 		GridData data = new GridData();
 		data.heightHint = 1;
 		data.horizontalAlignment = SWT.FILL;
-	    separator.setLayoutData(data);
-	    FormText text = toolkit.createFormText(container, false);
+		separator.setLayoutData(data);
+		FormText text = toolkit.createFormText(container, false);
 		text.setImage(DescriptionPanel.REVIEW_IMAGE, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_TASK_REVIEW));
-	    text.addHyperlinkListener(getEndReviewListener());
-	    text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		text.addHyperlinkListener(getEndReviewListener());
+		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		StringBuilder buf = new StringBuilder();
-	    buf.append("<form>"); //$NON-NLS-1$
-	    addHyperlink(buf, END_REVIEW_TAG + task.getId(), DescriptionPanel.REVIEW_IMAGE, Messages.COMPOSITE_PAGE_END_REVIEW );
-	    buf.append("</form>"); //$NON-NLS-1$
-	    text.setText(buf.toString(), true, false);
+		buf.append("<form>"); //$NON-NLS-1$
+		addHyperlink(buf, END_REVIEW_TAG + task.getId(), DescriptionPanel.REVIEW_IMAGE, Messages.COMPOSITE_PAGE_END_REVIEW );
+		buf.append("</form>"); //$NON-NLS-1$
+		text.setText(buf.toString(), true, false);
 		task.setUnderReview(true);
 		container.layout(true);
 		showEditor(task);
@@ -409,29 +409,29 @@
 			if (ref.equals(START_HREF)) {
 				Object data = descriptionPanel.getControl().getData(ICompositeCheatsheetTags.TASK);
 				if (data instanceof EditableTask) {
-				    EditableTask task = (EditableTask)data;
-				    task.setStarted();
+					EditableTask task = (EditableTask)data;
+					task.setStarted();
 				}
 			}
-            if (ref.equals(SKIP_HREF)) {
+			if (ref.equals(SKIP_HREF)) {
 				Object data = descriptionPanel.getControl().getData(ICompositeCheatsheetTags.TASK);
 				if (data instanceof AbstractTask) {
-				    AbstractTask task = (AbstractTask)data;
-				    task.setState(ICompositeCheatSheetTask.SKIPPED);
+					AbstractTask task = (AbstractTask)data;
+					task.setState(ICompositeCheatSheetTask.SKIPPED);
 				}
 			}
 			if (ref.equals(REVIEW_TAG)) {
 				Object data = descriptionPanel.getControl().getData(ICompositeCheatsheetTags.TASK);
 				if (data instanceof EditableTask) {
-				    reviewTask((EditableTask) data);
+					reviewTask((EditableTask) data);
 				}
 			}
 			if (ref.startsWith(GOTO_TASK_TAG)) {
 				String next = ref.substring(GOTO_TASK_TAG.length());
 				AbstractTask nextTask =
-				    model.getDependencies().getTask(next);
+					model.getDependencies().getTask(next);
 				currentExplorer.setSelection
-				    (new StructuredSelection(nextTask), true);
+					(new StructuredSelection(nextTask), true);
 			}
 		}
 	}
@@ -447,7 +447,7 @@
 			if (ref.startsWith(END_REVIEW_TAG)) {
 				String next = ref.substring(END_REVIEW_TAG.length());
 				AbstractTask task =
-				    model.getDependencies().getTask(next);
+					model.getDependencies().getTask(next);
 				endReview((EditableTask)task);
 			}
 		}
@@ -468,7 +468,7 @@
 	 */
 	private TaskEditor getTaskEditor(EditableTask editable) {
 		if (editable.getEditor() == null) {
-            // Create a new editor using the extension point data
+			// Create a new editor using the extension point data
 			TaskEditor editor = TaskEditorManager.getInstance().getEditor(editable.getKind());
 			if (editor != null) {
 				Composite editorPanel = new Composite(taskEditorContainer, SWT.NULL);
@@ -524,8 +524,8 @@
 			public void widgetSelected(SelectionEvent e) {
 				if (model != null) {
 					if (RestartAllAction.confirmRestart()) {
-					    restart(null);
-				    }
+						restart(null);
+					}
 				}
 			}
 		});
@@ -537,28 +537,28 @@
 		if (explorerIds.length == 1) {
 			return index;  // no other explorer to chosse from
 		}
-        MenuItem menuItem = new MenuItem(menu, SWT.CASCADE, index++);
+		MenuItem menuItem = new MenuItem(menu, SWT.CASCADE, index++);
 
-        menuItem.setText(Messages.EXPLORER_PULLDOWN_MENU);
+		menuItem.setText(Messages.EXPLORER_PULLDOWN_MENU);
 
-        Menu subMenu = new Menu(menu);
-        menuItem.setMenu(subMenu);
+		Menu subMenu = new Menu(menu);
+		menuItem.setMenu(subMenu);
 
 		for (final String id : explorerIds) {
-        	TaskExplorerNode node = CheatSheetRegistryReader.getInstance().findTaskExplorer(id);
-        	boolean isCurrentExplorer = id.equals(currentExplorer.getId());
-        	int style = isCurrentExplorer ? SWT.RADIO: SWT.PUSH;
-        	MenuItem item = new MenuItem(subMenu, style);
-    		item.setText(node.getName());
-    		item.setSelection(isCurrentExplorer);
-    		item.setImage(TaskExplorerManager.getInstance().getImage(id));
-    		item.addSelectionListener(new SelectionAdapter() {
-    			@Override
+			TaskExplorerNode node = CheatSheetRegistryReader.getInstance().findTaskExplorer(id);
+			boolean isCurrentExplorer = id.equals(currentExplorer.getId());
+			int style = isCurrentExplorer ? SWT.RADIO: SWT.PUSH;
+			MenuItem item = new MenuItem(subMenu, style);
+			item.setText(node.getName());
+			item.setSelection(isCurrentExplorer);
+			item.setImage(TaskExplorerManager.getInstance().getImage(id));
+			item.addSelectionListener(new SelectionAdapter() {
+				@Override
 				public void widgetSelected(SelectionEvent e) {
-    				setCurrentExplorerFromId(id);
-    			}
-    		});
-        }
+					setCurrentExplorerFromId(id);
+				}
+			});
+		}
 
 		return index;
 	}
@@ -566,7 +566,7 @@
 	public void restart(Map<String, String> cheatSheetData) {
 		model.resetAllTasks(cheatSheetData);
 		currentExplorer.setSelection
-		    (new StructuredSelection(model.getRootTask()), true);
+			(new StructuredSelection(model.getRootTask()), true);
 
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java
index 157ebe8..891b554 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java
@@ -89,11 +89,11 @@
 
 		Composite separator = toolkit.createCompositeSeparator(panel);
 
-	    TableWrapData data = new TableWrapData();
-	    data.align = TableWrapData.FILL;
-	    data.grabHorizontal = true;
-	    data.maxHeight = 1;
-	    separator.setLayoutData(data);
+		TableWrapData data = new TableWrapData();
+		data.align = TableWrapData.FILL;
+		data.grabHorizontal = true;
+		data.maxHeight = 1;
+		separator.setLayoutData(data);
 
 		lowerText = mform.getToolkit().createFormText(panel, false);
 		mform.getToolkit().adapt(lowerText, false, false);
@@ -128,14 +128,14 @@
 		upperMessage.append("</span></p>"); //$NON-NLS-1$
 		upperMessage.append(MarkupParser.createParagraph(task.getDescription(), null));
 		upperMessage.append("</form>"); //$NON-NLS-1$
-        upperText.setText(upperMessage.toString(), true, false);
+		upperText.setText(upperMessage.toString(), true, false);
 
 		StringBuilder buf = new StringBuilder();
 		buf.append("<form>"); //$NON-NLS-1$
 
-        boolean startable = false;
-        boolean isBlocked = false;
-        boolean isSkippable = ((AbstractTask)task).isSkippable();
+		boolean startable = false;
+		boolean isBlocked = false;
+		boolean isSkippable = ((AbstractTask)task).isSkippable();
 
 		if (task.getState() == ICompositeCheatSheetTask.COMPLETED) {
 			buf.append(MarkupParser.createParagraph(task.getCompletionMessage(), null));
@@ -183,7 +183,7 @@
 			} else {
 				skipMessage = Messages.COMPOSITE_PAGE_SKIP_TASK;
 			}
-		    addHyperlink(buf, CompositeCheatSheetPage.SKIP_HREF, SKIP_IMAGE, skipMessage);
+			addHyperlink(buf, CompositeCheatSheetPage.SKIP_HREF, SKIP_IMAGE, skipMessage);
 		}
 
 		if (!startable && !isBlocked) {
@@ -237,10 +237,10 @@
 			buf.append(task.getId());
 			buf.append("\">"); //$NON-NLS-1$
 			buf.append(NLS.bind(Messages.COMPOSITE_PAGE_TASK_NOT_COMPLETE, (new Object[]
-			    {MarkupParser.escapeText(task.getName())})));
+				{MarkupParser.escapeText(task.getName())})));
 			buf.append("</a>"); //$NON-NLS-1$
 			buf.append("</li>"); //$NON-NLS-1$
-	    }
+		}
 	}
 
 	private void showSuccesorTaskLinks(ICompositeCheatSheetTask task, StringBuilder buf) {
@@ -248,7 +248,7 @@
 		ICompositeCheatSheetTask[] successorTasks = new SuccesorTaskFinder(task).getRecommendedSuccessors();
 		for (ICompositeCheatSheetTask successor : successorTasks) {
 			String message = NLS.bind(Messages.COMPOSITE_PAGE_GOTO_TASK, (new Object[]
-			     {MarkupParser.escapeText(successor.getName())}));
+				 {MarkupParser.escapeText(successor.getName())}));
 			addHyperlink(buf, CompositeCheatSheetPage.GOTO_TASK_TAG + successor.getId(), GOTO_IMAGE, message);
 		}
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
index 3dde040..bd0a203 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
@@ -89,7 +89,7 @@
 		if (explorerInfo == null) {
 			return null;
 		}
-	    String iconPath = explorerInfo.getIconPath();
+		String iconPath = explorerInfo.getIconPath();
 		if (iconPath == null) {
 			return null;
 		}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractExecutable.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractExecutable.java
index 96fb07d..b2e8867 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractExecutable.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractExecutable.java
@@ -99,11 +99,11 @@
 		this.when = when;
 	}
 
-    /**
-     * Handle an attribute specific to this type of AbstractExecutable
-     * @param attribute
-     * @return true if this parameter is valid for this type of executable
-     */
+	/**
+	 * Handle an attribute specific to this type of AbstractExecutable
+	 * @param attribute
+	 * @return true if this parameter is valid for this type of executable
+	 */
 	public abstract boolean handleAttribute(Node attribute);
 
 	/**
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetCommand.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetCommand.java
index 448ba1d..1e9f5c8 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetCommand.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetCommand.java
@@ -57,9 +57,9 @@
 	@Override
 	public boolean handleAttribute(Node attribute) {
 		if (IParserTags.SERIALIZATION.equals(attribute.getNodeName())) {
-		    setSerialization(attribute.getNodeValue());
-		    serializationFound = true;
-		    return true;
+			setSerialization(attribute.getNodeValue());
+			serializationFound = true;
+			return true;
 		} else if (IParserTags.RETURNS.equals(attribute.getNodeName())) {
 			setReturns(attribute.getNodeValue());
 			return true;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
index b702302..98bd50a 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
@@ -274,7 +274,7 @@
 				throw new CheatSheetParserException(errorMessage);
 			}
 		}
-        checkForNoChildren(executableNode);
+		checkForNoChildren(executableNode);
 		executable.setParams(params);
 		item.setExecutable(executable);
 	}
@@ -429,7 +429,7 @@
 			Node node = nodes.item(i);
 			if(node.getNodeType() == Node.TEXT_NODE) {
 				String nodeValue = node.getNodeValue();
-			    if (isLeadingTrimRequired) {
+				if (isLeadingTrimRequired) {
 					nodeValue = trimLeadingWhitespace(nodeValue);
 				}
 				text.append(nodeValue);
@@ -481,7 +481,7 @@
 			firstNonWhitespaceIndex++;
 		}
 		if (firstNonWhitespaceIndex > 0) {
-		    return nodeValue.substring(firstNonWhitespaceIndex, nodeValue.length());
+			return nodeValue.substring(firstNonWhitespaceIndex, nodeValue.length());
 		}
 		return nodeValue;
 	}
@@ -496,7 +496,7 @@
 		}
 		String message;
 		if (IParserTags.DESCRIPTION.equals(nodeName)) {
-		    message = NLS.bind(Messages.WARNING_PARSING_DESCRIPTION_UNKNOWN_ELEMENT, (new Object[] {parentNode.getNodeName(), node.getNodeName()}));
+			message = NLS.bind(Messages.WARNING_PARSING_DESCRIPTION_UNKNOWN_ELEMENT, (new Object[] {parentNode.getNodeName(), node.getNodeName()}));
 		} else {
 			message = NLS.bind(Messages.WARNING_PARSING_ON_COMPLETION_UNKNOWN_ELEMENT, (new Object[] {parentNode.getNodeName(), node.getNodeName()}));
 		}
@@ -516,7 +516,7 @@
 
 		handleIntroAttributes(introItem, introNode);
 
-        boolean hasDescription = false;
+		boolean hasDescription = false;
 
 		NodeList nodes = introNode.getChildNodes();
 		for (int i = 0; i < nodes.getLength(); i++) {
@@ -527,8 +527,8 @@
 					String message = NLS.bind(Messages.ERROR_PARSING_MULTIPLE_DESCRIPTION, (new Object[] {introNode.getNodeName()}));
 					addStatus(IStatus.ERROR, message, null);
 				} else {
-				    hasDescription = true;
-				    handleDescription(introItem, node);
+					hasDescription = true;
+					handleDescription(introItem, node);
 				}
 			} else {
 				if(node.getNodeType() != Node.TEXT_NODE && node.getNodeType() != Node.COMMENT_NODE ) {
@@ -595,8 +595,8 @@
 					String message = NLS.bind(Messages.ERROR_PARSING_MULTIPLE_DESCRIPTION, (new Object[] {itemNode.getNodeName()}));
 					addStatus(IStatus.ERROR, message, null);
 				} else {
-				    hasDescription = true;
-				    handleDescription(item, node);
+					hasDescription = true;
+					handleDescription(item, node);
 				}
 			} else if(node.getNodeName().equals(IParserTags.ON_COMPLETION)) {
 				handleOnCompletion(item, node);
@@ -904,7 +904,7 @@
 
 		InputStream is = null;
 		InputSource inputSource = null;
-        String filename = ""; //$NON-NLS-1$
+		String filename = ""; //$NON-NLS-1$
 		URL url = input.getUrl();
 
 		if (input.getXml() != null) {
@@ -1029,8 +1029,8 @@
 					if (hasIntro) {
 						addStatus(IStatus.ERROR, Messages.ERROR_PARSING_MORE_THAN_ONE_INTRO, null);
 					} else {
-					    hasIntro = true;
-					    handleIntroNode(cheatSheet, node);
+						hasIntro = true;
+						handleIntroNode(cheatSheet, node);
 					}
 				} else {
 					if(node.getNodeType() != Node.TEXT_NODE && node.getNodeType() != Node.COMMENT_NODE ) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
index c7047ba..cd46791 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
@@ -206,10 +206,10 @@
 	public IStatus saveState(Properties properties, CheatSheetManager csm) {
 		String csID = (String) properties.get(IParserTags.ID);
 		XMLMemento writeMemento = XMLMemento.createWriteRoot(IParserTags.CHEATSHEET_STATE);
-        IStatus status = saveToMemento(properties, csm, writeMemento);
-        if (!status.isOK()) {
-        	return status;
-        }
+		IStatus status = saveToMemento(properties, csm, writeMemento);
+		if (!status.isOK()) {
+			return status;
+		}
 		return CheatSheetPlugin.getPlugin().saveMemento(writeMemento, csID + DOT_XML);
 	}
 
@@ -223,7 +223,7 @@
 			writeMemento.putString(IParserTags.ID, (String)properties.get(IParserTags.ID));
 			String contentPath = (String)properties.get(IParserTags.CONTENT_URL);
 			if (contentPath != null) {
-			    writeMemento.putString(IParserTags.CONTENT_URL, contentPath);
+				writeMemento.putString(IParserTags.CONTENT_URL, contentPath);
 			}
 
 			addListOfStringsToMemento(writeMemento,  properties, IParserTags.COMPLETED);
@@ -267,7 +267,7 @@
 		properties.put(IParserTags.ID, memento.getString(IParserTags.ID));
 		String contentURL = memento.getString(IParserTags.CONTENT_URL);
 		if (contentURL != null) {
-		    properties.put(IParserTags.CONTENT_URL, contentURL);
+			properties.put(IParserTags.CONTENT_URL, contentURL);
 		}
 
 		getListOfStringsFromMemento(memento,  properties, IParserTags.COMPLETED);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IncompatibleSiblingChecker.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IncompatibleSiblingChecker.java
index 02eae0b..31fd8d6 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IncompatibleSiblingChecker.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IncompatibleSiblingChecker.java
@@ -26,15 +26,15 @@
 
 public class IncompatibleSiblingChecker {
 
-    private IStatusContainer statusContainer;
+	private IStatusContainer statusContainer;
 	private Node parentNode;
 	private String existingChild;
 	private boolean errorReported = false;
 
 	public IncompatibleSiblingChecker(IStatusContainer statusContainer, Node parentNode) {
-    	this.statusContainer = statusContainer;
-    	this.parentNode = parentNode;
-    }
+		this.statusContainer = statusContainer;
+		this.parentNode = parentNode;
+	}
 
 	/**
 	 * Check to see that adding this new element does not create an error based on
@@ -59,14 +59,14 @@
 
 	private boolean isSubitem(String elementKind) {
 		return IParserTags.SUBITEM.equals(elementKind)
-	    || IParserTags.CONDITIONALSUBITEM.equals(elementKind)
-	    || IParserTags.REPEATEDSUBITM.equals(elementKind);
+		|| IParserTags.CONDITIONALSUBITEM.equals(elementKind)
+		|| IParserTags.REPEATEDSUBITM.equals(elementKind);
 	}
 
 	private boolean isExecutable(String elementKind) {
 		return IParserTags.ACTION.equals(elementKind)
-	    || IParserTags.COMMAND.equals(elementKind)
-	    || IParserTags.PERFORMWHEN.equals(elementKind);
+		|| IParserTags.COMMAND.equals(elementKind)
+		|| IParserTags.PERFORMWHEN.equals(elementKind);
 	}
 
 	private void reportIncompatible(String elementKind) {
@@ -75,11 +75,11 @@
 		}
 		errorReported = true;
 		String message;
-        if (elementKind.equals(existingChild)) {
-		     message = NLS.bind(Messages.ERROR_PARSING_DUPLICATE_CHILD, (new Object[] {parentNode.getNodeName(), elementKind}));
-        } else {
-		     message = NLS.bind(Messages.ERROR_PARSING_INCOMPATIBLE_CHILDREN, (new Object[] {parentNode.getNodeName(), existingChild, elementKind}));
-        }
-	    statusContainer.addStatus(IStatus.ERROR, message, null);
+		if (elementKind.equals(existingChild)) {
+			message = NLS.bind(Messages.ERROR_PARSING_DUPLICATE_CHILD, (new Object[] {parentNode.getNodeName(), elementKind}));
+		} else {
+			message = NLS.bind(Messages.ERROR_PARSING_INCOMPATIBLE_CHILDREN, (new Object[] {parentNode.getNodeName(), existingChild, elementKind}));
+		}
+		statusContainer.addStatus(IStatus.ERROR, message, null);
 	}
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
index 7614250..9570ba2 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
@@ -295,7 +295,7 @@
 			}
 		});
 
-        // Create radio button for select from file
+		// Create radio button for select from file
 		selectFileRadio = new Button(outerContainer, SWT.RADIO);
 		selectFileRadio.setText(Messages.SELECTION_DIALOG_OPEN_FROM_FILE);
 
@@ -582,26 +582,26 @@
 		String id = filePath.lastSegment();
 		int extensionIndex = id.indexOf('.');
 		if (extensionIndex > 0) {
-		    id = id.substring(0, extensionIndex);
+			id = id.substring(0, extensionIndex);
 		}
 		// Use the id as the name
 		URL url = null;
 		boolean opened = false;
 
 		try {
-		    File contentFile = new File(selectFileCombo.getText());
-		    url = contentFile.toURI().toURL();
-		    new OpenCheatSheetAction(id, id ,url).run();
-		    opened = true;
-	    } catch (MalformedURLException e) {
-		    opened = false;
-	    }
-	    if (!opened) {
-	    	String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {selectFileCombo.getText()}));
-	    	status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, ParserStatusUtility.PARSER_ERROR, message, null);
-	    	CheatSheetView view = ViewUtilities.showCheatSheetView();
-	    	view.getCheatSheetViewer().showError(message);
-	    }
+			File contentFile = new File(selectFileCombo.getText());
+			url = contentFile.toURI().toURL();
+			new OpenCheatSheetAction(id, id ,url).run();
+			opened = true;
+		} catch (MalformedURLException e) {
+			opened = false;
+		}
+		if (!opened) {
+			String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {selectFileCombo.getText()}));
+			status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, ParserStatusUtility.PARSER_ERROR, message, null);
+			CheatSheetView view = ViewUtilities.showCheatSheetView();
+			view.getCheatSheetViewer().showError(message);
+		}
 	}
 
 	private void setResultFromUrl() {
@@ -613,7 +613,7 @@
 		}
 		int extensionIndex = id.indexOf('.');
 		if (extensionIndex > 0) {
-		    id = id.substring(0, extensionIndex);
+			id = id.substring(0, extensionIndex);
 		}
 		// Use the id as the name
 		URL url = null;
@@ -625,15 +625,15 @@
 		try {
 			url = new URL(selectUrlCombo.getText());
 			view.getCheatSheetViewer().setInput(id, id, url, new DefaultStateManager(), true);
-		    opened = true;
-	    } catch (MalformedURLException e) {
-		    opened = false;
-	    }
-	    if (!opened) {
-	    	String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {selectUrlCombo.getText()}));
-	    	status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, ParserStatusUtility.PARSER_ERROR, message, null);
-	    	view.getCheatSheetViewer().showError(message);
-	    }
+			opened = true;
+		} catch (MalformedURLException e) {
+			opened = false;
+		}
+		if (!opened) {
+			String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {selectUrlCombo.getText()}));
+			status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, ParserStatusUtility.PARSER_ERROR, message, null);
+			view.getCheatSheetViewer().showError(message);
+		}
 	}
 
 	/**
@@ -657,7 +657,7 @@
 	private void restoreFileSettings() {
 		int radioSetting = RADIO_REGISTERED;
 		try {
-		     radioSetting = settings.getInt(STORE_RADIO_SETTING);
+			radioSetting = settings.getInt(STORE_RADIO_SETTING);
 		}
 		catch(NumberFormatException n) {
 		}
@@ -688,12 +688,12 @@
 
 	private void saveMRU(List<String> mostRecentList, String key, String selection) {
 		if (selection.length() > 0 && !mostRecentList.contains(selection)) {
-		    mostRecentList.add(0, selection);
+			mostRecentList.add(0, selection);
 		}
 		for (int i = 0; i < MOST_RECENT_LENGTH & i < mostRecentList.size(); i++) {
 			String name = mostRecentList.get(i);
 			if (name.length() > 0) {
-			    settings.put(key + i, name);
+				settings.put(key + i, name);
 			}
 		}
 	}
@@ -796,12 +796,12 @@
 
 	@Override
 	protected IDialogSettings getDialogBoundsSettings() {
-        IDialogSettings settings = CheatSheetPlugin.getPlugin().getDialogSettings();
-        IDialogSettings section = settings.getSection(DIALOG_SETTINGS_SECTION);
-        if (section == null) {
-            section = settings.addNewSection(DIALOG_SETTINGS_SECTION);
-        }
-        return section;
+		IDialogSettings settings = CheatSheetPlugin.getPlugin().getDialogSettings();
+		IDialogSettings section = settings.getSection(DIALOG_SETTINGS_SECTION);
+		if (section == null) {
+			section = settings.addNewSection(DIALOG_SETTINGS_SECTION);
+		}
+		return section;
 	}
 
 	private Label createMessageArea(Composite composite) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
index 3e9cb5d..c55c21a 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
@@ -217,7 +217,7 @@
 	 */
 	public String getRestorePath() {
 		if (!registered) {
-		    return contentFile;
+			return contentFile;
 		}
 		return null;
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
index 8ece31d..5a2a366 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
@@ -62,7 +62,7 @@
 	}
 
 	/**
-     * Represents a taskEditor entry in the registry
+	 * Represents a taskEditor entry in the registry
 	 */
 	public class TaskEditorNode {
 		private String className;
@@ -96,7 +96,7 @@
 	}
 
 	/**
-     * Represents a taskExplorer entry in the registry
+	 * Represents a taskExplorer entry in the registry
 	 */
 	public class TaskExplorerNode {
 		private String className;
@@ -156,9 +156,9 @@
 	protected final static String trueString = "TRUE"; //$NON-NLS-1$
 	private final static String UNCATEGORIZED_CHEATSHEET_CATEGORY = "org.eclipse.ui.Other"; //$NON-NLS-1$
 	private final static String UNCATEGORIZED_CHEATSHEET_CATEGORY_LABEL = Messages.CHEAT_SHEET_OTHER_CATEGORY;
-    public final static String CHEAT_SHEET_CONTENT = "cheatSheetContent"; //$NON-NLS-1$
+	public final static String CHEAT_SHEET_CONTENT = "cheatSheetContent"; //$NON-NLS-1$
 
-    /**
+	/**
 	 * Returns a list of cheatsheets, project and not.
 	 *
 	 * The return value for this method is cached since computing its value
@@ -294,7 +294,7 @@
 	 */
 	public TaskEditorNode findTaskEditor(String id) {
 		if (cheatsheets == null) {
-		    readCheatSheets(); // Ensure that the registry has been read
+			readCheatSheets(); // Ensure that the registry has been read
 		}
 		return taskEditors.get(id);
 	}
@@ -305,7 +305,7 @@
 	 */
 	public TaskExplorerNode findTaskExplorer(String id) {
 		if (cheatsheets == null) {
-		    readCheatSheets(); // Ensure that the registry has been read
+			readCheatSheets(); // Ensure that the registry has been read
 		}
 		return taskExplorers.get(id);
 	}
@@ -316,7 +316,7 @@
 	 */
 	public String[] getExplorerIds() {
 		if (cheatsheets == null) {
-		    readCheatSheets(); // Ensure that the registry has been read
+			readCheatSheets(); // Ensure that the registry has been read
 		}
 		Set<String> keys = taskExplorers.keySet();
 		return keys.toArray(new String[keys.size()]);
@@ -430,7 +430,7 @@
 				currentCollectionElement = (CheatSheetCollectionElement) nestedCategoryIds.get(category);
 				currentCollectionElement.add(element);
 			} else {
-			    moveElementToUncategorizedCategory(currentResult, element);
+				moveElementToUncategorizedCategory(currentResult, element);
 			}
 		} else {
 			currentCollectionElement.add(element);
@@ -636,7 +636,7 @@
 		String pluginId = element.getContributor().getName();
 		if (id != null && className != null && name != null ) {
 			TaskExplorerNode node = new TaskExplorerNode();
-            node.setId(id);
+			node.setId(id);
 			node.setIconPath(icon);
 			node.setClassName(className);
 			node.setName(name);
@@ -652,7 +652,7 @@
 		String pluginId = element.getContributor().getName();
 		if (id != null && className != null && icon != null ) {
 			TaskEditorNode node = new TaskEditorNode();
-            node.setId(id);
+			node.setId(id);
 			node.setIconPath(icon);
 			node.setClassName(className);
 			node.setPluginId(pluginId);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/TrayStateManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/TrayStateManager.java
index fc20c17..9008844 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/TrayStateManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/TrayStateManager.java
@@ -39,7 +39,7 @@
 
 	@Override
 	public void setElement(CheatSheetElement element) {
-        // element not used
+		// element not used
 	}
 
 	@Override
@@ -53,7 +53,7 @@
 	 */
 	@Override
 	public IStatus saveState(Properties properties, CheatSheetManager manager) {
-        this.properties = properties;
+		this.properties = properties;
 		this.manager = manager;
 		return Status.OK_STATUS;
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
index a1f7007..df30be7 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
@@ -55,7 +55,7 @@
 	public void fireEvent(int eventType) {
 		// Send an event to every listener
 		for (CheatSheetListener listener : listeners) {
-		    ICheatSheetEvent event = new CheatSheetEvent(eventType, cheatsheetID, this);
+			ICheatSheetEvent event = new CheatSheetEvent(eventType, cheatsheetID, this);
 			listener.cheatSheetEvent(event);
 		}
 	}
@@ -105,13 +105,13 @@
 		return result;
 	}
 
-    /**
-     * Substitute occurences of ${data} with values from the cheatsheetmanager.
-     * @param input The input string
-     * @param csm The cheatsheet manager
-     * @return The input string with substitutions made for any cheatsheet
-     * variables encountered.
-     */
+	/**
+	 * Substitute occurences of ${data} with values from the cheatsheetmanager.
+	 * @param input The input string
+	 * @param csm The cheatsheet manager
+	 * @return The input string with substitutions made for any cheatsheet
+	 * variables encountered.
+	 */
 	public String performVariableSubstitution(String input)
 	{
 		String remaining = input;
@@ -123,14 +123,14 @@
 				output += remaining;
 				remaining = ""; //$NON-NLS-1$
 			} else {
-                String varName = remaining.substring(varIndex + VARIABLE_BEGIN.length(),
-                		                         endIndex);
-                String value = getDataQualified(varName);
-                output += remaining.substring(0, varIndex);
-                if (value != null) {
-                	output += value;
-                }
-                remaining = remaining.substring(endIndex + VARIABLE_END.length());
+				String varName = remaining.substring(varIndex + VARIABLE_BEGIN.length(),
+												 endIndex);
+				String value = getDataQualified(varName);
+				output += remaining.substring(0, varIndex);
+				if (value != null) {
+					output += value;
+				}
+				remaining = remaining.substring(endIndex + VARIABLE_END.length());
 			}
 		}
 		return output;
@@ -181,7 +181,7 @@
 	 */
 	public void addListener(CheatSheetListener listener) {
 		if (listener != null) {
-		    listeners.add(listener);
+			listeners.add(listener);
 		}
 	}
 
@@ -199,7 +199,7 @@
 		if (dataTable == null) {
 			return new HashSet<>();
 		} else {
-		    return dataTable.keySet();
+			return dataTable.keySet();
 		}
 	}
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
index f2b96e0..cb8b24b 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
@@ -205,20 +205,20 @@
 	}
 
 	private void computeReverseVideoColors(Display display) {
-        Color background = toolkit.getColors().getBackground();
+		Color background = toolkit.getColors().getBackground();
 		RGB white = new RGB(255, 255, 255);
-        // Create new colors, they will get disposed
-        RGB rgb = background.getRGB();
+		// Create new colors, they will get disposed
+		RGB rgb = background.getRGB();
 		activeColor = new Color(display, rgb );
 		rgb = FormColors.blend(rgb, white, 85);
 		inactiveColor1 = new Color(display, rgb);
 		rgb = FormColors.blend(rgb, white, 85);
 		inactiveColor2 = new Color(display, rgb );
-        introColor = new Color(display, rgb );
+		introColor = new Color(display, rgb );
 	}
 
 	private boolean isReverseVideo() {
-        Color bg = toolkit.getColors().getBackground();
+		Color bg = toolkit.getColors().getBackground();
 		return ((bg.getBlue() + bg.getRed() + bg.getGreen()) < 380);
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
index bcdba59..3430745 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
@@ -231,7 +231,7 @@
 			//set that item as complete.
 			if (markAsCompleted) {
 				if (!currentItem.isCompleted()) {
-				    currentItem.setComplete();
+					currentItem.setComplete();
 				}
 				/* LP-item event */
 				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_COMPLETED, currentItem);
@@ -260,7 +260,7 @@
 			FormToolkit.ensureVisible(currentItem.getMainItemComposite());
 		} else if (indexNextItem == viewItemList.size()) {
 			if (!currentItem.isCompletionMessageExpanded()) { // The event will already have been fired
-			    getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_COMPLETED);
+				getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_COMPLETED);
 			}
 			showIntroItem();
 		}
@@ -417,10 +417,10 @@
 					} else {
 						item.setButtonsVisible(true);
 						if (i >currentItemNum || item.isCompleted()) {
-						    item.setCompletionMessageExpanded(i + 1 >= viewItemList.size());
-					    } else {
+							item.setCompletionMessageExpanded(i + 1 >= viewItemList.size());
+						} else {
 							item.setCompletionMessageCollapsed();
-					    }
+						}
 					}
 					if (expandRestoreList.contains(Integer.toString(i))) {
 						item.setCollapsed();
@@ -432,7 +432,7 @@
 							CoreItem coreitemws = (CoreItem) item;
 							ArrayList<SubItemCompositeHolder> subItemCompositeHolders = coreitemws
 									.getListOfSubItemCompositeHolders();
-		                    if (subItemCompositeHolders != null) {
+							if (subItemCompositeHolders != null) {
 								while (st.hasMoreTokens()) {
 									String token = st.nextToken();
 									subItemCompositeHolders.get(Integer.parseInt(token)).setCompleted(true);
@@ -444,7 +444,7 @@
 									}
 
 								}
-		                    }
+							}
 						}
 					}
 					if (skippedSubItemsItemList.contains(Integer.toString(i))) {
@@ -859,10 +859,10 @@
 
 		control.setRedraw(false);
 		if (model instanceof CheatSheet) {
-		    CheatSheet cheatSheetModel = (CheatSheet)model;
+			CheatSheet cheatSheetModel = (CheatSheet)model;
 
-		    if (isRestricted && cheatSheetModel.isContainsCommandOrAction()) {
-		    	boolean isOK = MessageDialog.openConfirm(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
+			if (isRestricted && cheatSheetModel.isContainsCommandOrAction()) {
+				boolean isOK = MessageDialog.openConfirm(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
 						Messages.CHEATSHEET_FROM_URL_WITH_EXEC_TITLE,
 						Messages.CHEATSHEET_FROM_URL_WITH_EXEC);
 
@@ -871,22 +871,22 @@
 					showStartPage();
 					return true;
 				}
-		    }
+			}
 
 			currentPage = new CheatSheetPage(cheatSheetModel, viewItemList, this);
-		    setCollapseExpandButtonEnabled(true);
+			setCollapseExpandButtonEnabled(true);
 		} else if (model instanceof CompositeCheatSheetModel) {
 			CompositeCheatSheetModel compositeCheatSheetModel = ((CompositeCheatSheetModel)model);
 			compositeCheatSheetModel.setId(currentID);
 			currentPage = new CompositeCheatSheetPage(compositeCheatSheetModel, stateManager);
 			compositeCheatSheetModel.setCheatSheetManager(initManager());
 			setCollapseExpandButtonEnabled(false);
-	    }
-	    CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after CheatSheetPage() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-	    currentPage.createPart(control);
-	    CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after CheatSheetPage.createPart() call: "); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after CheatSheetPage() call: "); //$NON-NLS-1$ //$NON-NLS-2$
+		currentPage.createPart(control);
+		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after CheatSheetPage.createPart() call: "); //$NON-NLS-1$ //$NON-NLS-2$
 
-	    if (model instanceof CheatSheet) {
+		if (model instanceof CheatSheet) {
 			CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after fireEvent() call: "); //$NON-NLS-1$ //$NON-NLS-2$
 
 			if(!loadState()) {
@@ -897,7 +897,7 @@
 			}
 
 			getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_OPENED);
-	    }
+		}
 		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after checkSavedState() call: "); //$NON-NLS-1$ //$NON-NLS-2$
 
 		currentPage.initialized();
@@ -908,7 +908,7 @@
 		if (currentItem != null && !currentItem.isCompleted())
 			currentItem.setFocus();
 		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() at end of method: "); //$NON-NLS-1$ //$NON-NLS-2$
-	    return true;
+		return true;
 	}
 
 	private void internalDispose() {
@@ -1043,9 +1043,9 @@
 				if (status.isOK() && dialogReturnCode != Window.CANCEL) {
 					coreItem.setRestartImage();
 					if (!coreItem.hasConfirm()) {
-					    //set that item as complete.
-					    advanceItem(link, true);
-					    saveCurrentSheet();
+						//set that item as complete.
+						advanceItem(link, true);
+						saveCurrentSheet();
 					}
 				}
 			}
@@ -1089,10 +1089,10 @@
 		if(currentID != null) {
 			if (currentPage instanceof CheatSheetPage) {
 				Properties properties = saveHelper.createProperties(currentItemNum, viewItemList, getExpandRestoreActionState(), expandRestoreList, currentID, restorePath);
-			    IStatus status = stateManager.saveState(properties, getManager());
-			    if (!status.isOK()) {
-			    	CheatSheetPlugin.getPlugin().getLog().log(status);
-			    }
+				IStatus status = stateManager.saveState(properties, getManager());
+				if (!status.isOK()) {
+					CheatSheetPlugin.getPlugin().getLog().log(status);
+				}
 			} else if (currentPage instanceof CompositeCheatSheetPage) {
 				((CompositeCheatSheetPage)currentPage).saveState();
 			}
@@ -1174,7 +1174,7 @@
 				errorMessage = NLS.bind(Messages.ERROR_OPENING_FILE_IN_PARSER, (new Object[] {element.getHref()}));
 			}
 		}
-	    String pluginId = bundle != null ? bundle.getSymbolicName() : null;
+		String pluginId = bundle != null ? bundle.getSymbolicName() : null;
 		parserInput = new ParserInput(contentURL, pluginId, errorMessage);
 	}
 
@@ -1268,7 +1268,7 @@
 		setContent(element, inputStateManager);
 	}
 
-    /*package*/ void toggleExpandRestore() {
+	/*package*/ void toggleExpandRestore() {
 		if(expandRestoreAction == null)
 			return;
 
@@ -1321,7 +1321,7 @@
 	public void saveState(IMemento memento) {
 		if (currentPage instanceof CheatSheetPage) {
 			Properties properties = saveHelper.createProperties(currentItemNum, viewItemList, getExpandRestoreActionState(), expandRestoreList, currentID, restorePath);
-		    saveHelper.saveToMemento(properties, getManager(), memento);
+			saveHelper.saveToMemento(properties, getManager(), memento);
 		}
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
index c473587..57dc7c6 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
@@ -255,10 +255,10 @@
 		separatorData.valign = TableWrapData.MIDDLE;
 		separator.setLayoutData(separatorData);
 		for (int i = 3; i <= SUBITEM_COLUMNS; i++) {
-		    Label filler = page.getToolkit().createLabel(buttonComposite, null);
-		    TableWrapData fillerData = new TableWrapData();
-		    fillerData.maxWidth = 0;
-		    filler.setLayoutData(fillerData);
+			Label filler = page.getToolkit().createLabel(buttonComposite, null);
+			TableWrapData fillerData = new TableWrapData();
+			fillerData.maxWidth = 0;
+			filler.setLayoutData(fillerData);
 		}
 	}
 
@@ -531,7 +531,7 @@
 						}
 						if ( status.getSeverity() == IStatus.ERROR) {
 							CheatSheetPlugin.getPlugin().getLog().log(status);
-						    org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), null, null, status);
+							org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), null, null, status);
 						}
 						return VIEWITEM_DONOT_ADVANCE;
 					} finally {
@@ -574,7 +574,7 @@
 		if (startButton != null) {
 			startButton.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_RESTART));
 			startButton.setText(Messages.RESTART_TASK_TOOLTIP);
-		    startButton.setToolTipText(Messages.RESTART_TASK_TOOLTIP);
+			startButton.setToolTipText(Messages.RESTART_TASK_TOOLTIP);
 		}
 	}
 
@@ -584,9 +584,9 @@
 		if (startButton != null) {
 			startButton.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_START));
 			if (startButton.getText() != null) {
-			    startButton.setText(Messages.PERFORM_TASK_TOOLTIP);
+				startButton.setText(Messages.PERFORM_TASK_TOOLTIP);
 			}
-		    startButton.setToolTipText(Messages.PERFORM_TASK_TOOLTIP);
+			startButton.setToolTipText(Messages.PERFORM_TASK_TOOLTIP);
 		}
 	}
 
@@ -599,7 +599,7 @@
 	@Override
 	void createCompletionComposite(boolean isFinalItem) {
 		String completionMessage = viewer.getManager().performVariableSubstitution
-		    (item.getCompletionMessage());
+			(item.getCompletionMessage());
 		if (completionMessage != null) {
 			Color backgroundColor = bodyWrapperComposite.getBackground();
 			completionComposite = page.getToolkit().createComposite(
@@ -673,25 +673,25 @@
 		ArrayList<SubItemCompositeHolder> list = getListOfSubItemCompositeHolders();
 		Control subitemLabel = null;
 		SubItemCompositeHolder holder = null;
-        if (list != null) {
+		if (list != null) {
 			for (Iterator<SubItemCompositeHolder> iter = list.iterator(); iter.hasNext() && subitemLabel == null;) {
 				holder = iter.next();
-        		if (!holder.isCompleted() && !holder.isSkipped()) {
-        			subitemLabel = holder.getSubitemLabel();
-        		}
-        	}
-        }
-        if (subitemLabel != null) {
-    		FormToolkit.ensureVisible(subitemLabel);
-    		if (holder.getStartButton() != null) {
-    			holder.getStartButton().setFocus();
-    		} else if (holder.getCompleteButton() != null) {
-    			holder.getCompleteButton().setFocus();
-    		}
-        } else {
-    		FormToolkit.ensureVisible(getMainItemComposite());
-    		super.setFocus();
-        }
+				if (!holder.isCompleted() && !holder.isSkipped()) {
+					subitemLabel = holder.getSubitemLabel();
+				}
+			}
+		}
+		if (subitemLabel != null) {
+			FormToolkit.ensureVisible(subitemLabel);
+			if (holder.getStartButton() != null) {
+				holder.getStartButton().setFocus();
+			} else if (holder.getCompleteButton() != null) {
+				holder.getCompleteButton().setFocus();
+			}
+		} else {
+			FormToolkit.ensureVisible(getMainItemComposite());
+			super.setFocus();
+		}
 	}
 
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
index 25b9ab2..9ab6ca9 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
@@ -115,20 +115,20 @@
 	}
 
 	/**
-     * Return the image for a status message
-     *
-     * @return
-     */
-    private Image getImage(int severity) {
-        switch(severity) {
-        case IStatus.ERROR:
-            return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.ERROR);
-        case IStatus.WARNING:
-            return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.WARNING);
-        default:
-            return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.INFORMATION);
-        }
-    }
+	 * Return the image for a status message
+	 *
+	 * @return
+	 */
+	private Image getImage(int severity) {
+		switch(severity) {
+		case IStatus.ERROR:
+			return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.ERROR);
+		case IStatus.WARNING:
+			return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.WARNING);
+		default:
+			return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.INFORMATION);
+		}
+	}
 
 	/**
 	 * Creates the cheatsheet's title areawhich will consists
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
index fbe0b91..bc98a0c 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
@@ -359,14 +359,14 @@
 	}
 
 	public boolean isCompletionMessageExpanded() {
-	    return completionMessageExpanded;
-    }
+		return completionMessageExpanded;
+	}
 
 	/**
-     * Returns whether or not cheat sheet viewer containing this item is in
-     * a modal dialog.
-     *
-     * @return whether the cheat sheet viewer is in a modal dialog
+	 * Returns whether or not cheat sheet viewer containing this item is in
+	 * a modal dialog.
+	 *
+	 * @return whether the cheat sheet viewer is in a modal dialog
 	 */
 	public boolean isInDialogMode() {
 		return viewer.isInDialogMode();
@@ -403,7 +403,7 @@
 			Point point = widget.getDisplay().getCursorLocation();
 			point = new Point(point.x + 15, point.y);
 			// display the help
-            PlatformUI.getWorkbench().getHelpSystem().displayContext(context, point.x, point.y);
+			PlatformUI.getWorkbench().getHelpSystem().displayContext(context, point.x, point.y);
 		}
 	}
 
@@ -618,6 +618,6 @@
 			bodyText.copy();
 	}
 
-   abstract boolean hasCompletionMessage();
+	abstract boolean hasCompletionMessage();
 
 }
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java
index 87bdcd4..ddc830a 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java
@@ -407,12 +407,12 @@
 			if (previewImage==null) {
 				String path = element.getAttribute("previewImage"); //$NON-NLS-1$
 				if (path!=null) {
-				    String bid = element.getDeclaringExtension().getContributor().getName();
-				    Bundle bundle = Platform.getBundle(bid);
-				    if (bundle!=null) {
-				    	ImageDescriptor desc = ImageUtil.createImageDescriptor(bundle, path);
-				    	previewImage = desc.createImage();
-				    }
+					String bid = element.getDeclaringExtension().getContributor().getName();
+					Bundle bundle = Platform.getBundle(bid);
+					if (bundle!=null) {
+						ImageDescriptor desc = ImageUtil.createImageDescriptor(bundle, path);
+						previewImage = desc.createImage();
+					}
 				}
 			}
 			return previewImage;
@@ -622,7 +622,7 @@
 			while (stok.hasMoreTokens()) {
 				String tok = stok.nextToken().trim();
 				if (!NO_ROOT_PAGES.equals(tok)) {
-				    introRootPages.add(tok);
+					introRootPages.add(tok);
 				}
 			}
 		}
@@ -650,11 +650,11 @@
 		String pidKey = pid + "_" + key; //$NON-NLS-1$
 		String value;
 		if (!fromDefault) {
-		     prefs = InstanceScope.INSTANCE.getNode(pluginId);
-		     value = getPreference(key, prefs, pidKey, null);
-		     if (value != null) {
-		    	 return value;
-		     }
+			prefs = InstanceScope.INSTANCE.getNode(pluginId);
+			value = getPreference(key, prefs, pidKey, null);
+			if (value != null) {
+				return value;
+			}
 		}
 		prefs = DefaultScope.INSTANCE.getNode(pluginId);
 		return getPreference(key, prefs, pidKey, ""); //$NON-NLS-1$
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationDialog.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationDialog.java
index a4d3d6a..9d69370 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationDialog.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationDialog.java
@@ -24,7 +24,7 @@
 
 public class CustomizationDialog extends TrayDialog {
 
-    private CustomizationContentsArea contentsArea;
+	private CustomizationContentsArea contentsArea;
 	private String pageId;
 
 	private CustomizationContentsArea getContentsArea() {
@@ -53,22 +53,22 @@
 	@Override
 	protected void okPressed() {
 		if (getContentsArea().performOk()) {
-		    getContentsArea().dispose();
+			getContentsArea().dispose();
 		}
 		super.okPressed();
 	}
 
 	@Override
 	protected void cancelPressed() {
-	    getContentsArea().dispose();
-	    super.cancelPressed();
+		getContentsArea().dispose();
+		super.cancelPressed();
 	}
 
-    @Override
+	@Override
 	protected void configureShell(Shell newShell) {
-	    super.configureShell(newShell);
+		super.configureShell(newShell);
 		newShell.setText(Messages.WelcomeCustomizationPreferencePage_Customize);
-	    newShell.setImage(ImageUtil.createImage("full/elcl16/configure.png")); //$NON-NLS-1$);
-    }
+		newShell.setImage(ImageUtil.createImage("full/elcl16/configure.png")); //$NON-NLS-1$);
+	}
 
 }
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IUniversalIntroConstants.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IUniversalIntroConstants.java
index 0b4649e..b678bf1 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IUniversalIntroConstants.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IUniversalIntroConstants.java
@@ -16,50 +16,50 @@
 
 public interface IUniversalIntroConstants {
 
-    // all attributes here are by default public static final.
+	// all attributes here are by default public static final.
 
-    // General consts.
-    // ---------------
-    String PLUGIN_ID = "org.eclipse.ui.intro.universal"; //$NON-NLS-1$
-    String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
+	// General consts.
+	// ---------------
+	String PLUGIN_ID = "org.eclipse.ui.intro.universal"; //$NON-NLS-1$
+	String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
 
-    // Empty Standby Content part. This is registered in this plugin,
-    // through markup.
-    String EMPTY_STANDBY_CONTENT_PART = "org.eclipse.ui.intro.config.emptyStandby"; //$NON-NLS-1$
+	// Empty Standby Content part. This is registered in this plugin,
+	// through markup.
+	String EMPTY_STANDBY_CONTENT_PART = "org.eclipse.ui.intro.config.emptyStandby"; //$NON-NLS-1$
 
-    // Memento constants
-    // ------------------
-    String MEMENTO_PRESENTATION_TAG = "presentation"; //$NON-NLS-1$
-    String MEMENTO_CURRENT_PAGE_ATT = "currentPage"; //$NON-NLS-1$
-    String MEMENTO_STANDBY_PART_TAG = "standbyPart"; //$NON-NLS-1$
-    String MEMENTO_STANDBY_CONTENT_PART_ID_ATT = "contentPartID"; //$NON-NLS-1$
-    String MEMENTO_STANDBY_CONTENT_PART_TAG = "standbyContentPart"; //$NON-NLS-1$
-    String MEMENTO_RESTORE_ATT = "restore"; //$NON-NLS-1$
+	// Memento constants
+	// ------------------
+	String MEMENTO_PRESENTATION_TAG = "presentation"; //$NON-NLS-1$
+	String MEMENTO_CURRENT_PAGE_ATT = "currentPage"; //$NON-NLS-1$
+	String MEMENTO_STANDBY_PART_TAG = "standbyPart"; //$NON-NLS-1$
+	String MEMENTO_STANDBY_CONTENT_PART_ID_ATT = "contentPartID"; //$NON-NLS-1$
+	String MEMENTO_STANDBY_CONTENT_PART_TAG = "standbyContentPart"; //$NON-NLS-1$
+	String MEMENTO_RESTORE_ATT = "restore"; //$NON-NLS-1$
 
-    // CustomizableIntroPart consts:
-    // -----------------------------
-    // key to retrieve if a standby part is needed.
-    String SHOW_STANDBY_PART = "showStandbyPart"; //$NON-NLS-1$
+	// CustomizableIntroPart consts:
+	// -----------------------------
+	// key to retrieve if a standby part is needed.
+	String SHOW_STANDBY_PART = "showStandbyPart"; //$NON-NLS-1$
 
-    // Form implementation consts:
-    // ---------------------------
-    // key to retrieve the into link model object from imageHyperlink widget.
-    // convention: actual string value is class name.
-    String INTRO_LINK = "IntroLink"; //$NON-NLS-1$
+	// Form implementation consts:
+	// ---------------------------
+	// key to retrieve the into link model object from imageHyperlink widget.
+	// convention: actual string value is class name.
+	String INTRO_LINK = "IntroLink"; //$NON-NLS-1$
 
-    // key to retrive page sub-title from PageContentForm
-    String PAGE_SUBTITLE = "PageSubtitle"; //$NON-NLS-1$
+	// key to retrive page sub-title from PageContentForm
+	String PAGE_SUBTITLE = "PageSubtitle"; //$NON-NLS-1$
 
 
-    // Performance keys
-    // -----------------------
-    String INTRO = "intro"; //$NON-NLS-1$
-    String PERF_VIEW_CREATION_TIME = PLUGIN_ID + "/perf/createView"; //$NON-NLS-1$
-    String PERF_SET_STANDBY_STATE = PLUGIN_ID + "/perf/setStandbyState"; //$NON-NLS-1$
-    // not exposed in .option. Used because framework is convenient.
-    String PERF_UI_ZOOM = PLUGIN_ID + "/perf/uiZoom"; //$NON-NLS-1$
+	// Performance keys
+	// -----------------------
+	String INTRO = "intro"; //$NON-NLS-1$
+	String PERF_VIEW_CREATION_TIME = PLUGIN_ID + "/perf/createView"; //$NON-NLS-1$
+	String PERF_SET_STANDBY_STATE = PLUGIN_ID + "/perf/setStandbyState"; //$NON-NLS-1$
+	// not exposed in .option. Used because framework is convenient.
+	String PERF_UI_ZOOM = PLUGIN_ID + "/perf/uiZoom"; //$NON-NLS-1$
 
-    // Universal Welcome
+	// Universal Welcome
 
 	String LOW = "low"; //$NON-NLS-1$
 	String MEDIUM = "medium"; //$NON-NLS-1$
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IntroData.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IntroData.java
index 236b0ce..4a79ca4 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IntroData.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IntroData.java
@@ -103,44 +103,44 @@
 		if (bundle==null)
 			return;
 		String content = BundleUtil.getResolvedResourceLocation("", fileName, //$NON-NLS-1$
-	                bundle);
-	    IntroContentParser parser = new IntroContentParser(content);
-	    Document dom = parser.getDocument();
-	    // dom can be null if the content file cannot be found
-	    if (dom==null)
-	    	return;
-	    Element root = dom.getDocumentElement();
-	    Element extension = null;
-	    NodeList children = root.getChildNodes();
-	    for (int i=0; i<children.getLength(); i++) {
-	       	Node child = children.item(i);
-	       	if (child.getNodeType()==Node.ELEMENT_NODE) {
-	       		Element el = (Element)child;
-	       		if (el.getNodeName().equalsIgnoreCase("extensionContent")) { //$NON-NLS-1$
-	       			extension = el;
-	       			break;
-	       		}
-	       	}
-	    }
-	    if (extension==null)
-	       	return;
-	    String id = extension.getAttribute("id"); //$NON-NLS-1$
-	    String name = extension.getAttribute("name"); //$NON-NLS-1$
-	    String path = extension.getAttribute("path"); //$NON-NLS-1$
-	    if (id==null || path==null)
-	       	return;
-	    int at = path.lastIndexOf("/@"); //$NON-NLS-1$
-	    if (at == -1)
-	       	return;
-	    if (path.charAt(path.length()-1)!='@')
-	    	return;
-	    String pageId = path.substring(0, at);
-	    PageData pd = pages.get(pageId);
-	    if (pd==null) {
-	    	pd = new PageData(pageId);
-	    	pages.put(pageId, pd);
-	    }
-	    pd.addImplicitExtension(id, name);
+					bundle);
+		IntroContentParser parser = new IntroContentParser(content);
+		Document dom = parser.getDocument();
+		// dom can be null if the content file cannot be found
+		if (dom==null)
+			return;
+		Element root = dom.getDocumentElement();
+		Element extension = null;
+		NodeList children = root.getChildNodes();
+		for (int i=0; i<children.getLength(); i++) {
+			Node child = children.item(i);
+			if (child.getNodeType()==Node.ELEMENT_NODE) {
+				Element el = (Element)child;
+				if (el.getNodeName().equalsIgnoreCase("extensionContent")) { //$NON-NLS-1$
+					extension = el;
+					break;
+				}
+			}
+		}
+		if (extension==null)
+			return;
+		String id = extension.getAttribute("id"); //$NON-NLS-1$
+		String name = extension.getAttribute("name"); //$NON-NLS-1$
+		String path = extension.getAttribute("path"); //$NON-NLS-1$
+		if (id==null || path==null)
+			return;
+		int at = path.lastIndexOf("/@"); //$NON-NLS-1$
+		if (at == -1)
+			return;
+		if (path.charAt(path.length()-1)!='@')
+			return;
+		String pageId = path.substring(0, at);
+		PageData pd = pages.get(pageId);
+		if (pd==null) {
+			pd = new PageData(pageId);
+			pages.put(pageId, pd);
+		}
+		pd.addImplicitExtension(id, name);
 	}
 
 	private Document parse(String fileNameOrData) {
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.java
index 927066f..a2bbe64 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.java
@@ -16,14 +16,14 @@
 import org.eclipse.osgi.util.NLS;
 
 public class Messages extends NLS {
-    private static final String INTRO_RESOURCE_BUNDLE = "org.eclipse.ui.internal.intro.universal.Messages"; //$NON-NLS-1$
+	private static final String INTRO_RESOURCE_BUNDLE = "org.eclipse.ui.internal.intro.universal.Messages"; //$NON-NLS-1$
 
-    static {
-        initializeMessages(INTRO_RESOURCE_BUNDLE, Messages.class);
-    }
+	static {
+		initializeMessages(INTRO_RESOURCE_BUNDLE, Messages.class);
+	}
 
-    // Misc
-    // -------
+	// Misc
+	// -------
 	public static String SharedIntroConfigurer_overview_name;
 	public static String SharedIntroConfigurer_overview_alt;
 	public static String SharedIntroConfigurer_overview_tooltip;
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroPlugin.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroPlugin.java
index 4a339d5..aa9b29a 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroPlugin.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroPlugin.java
@@ -26,118 +26,118 @@
 public class UniversalIntroPlugin extends AbstractUIPlugin {
 	public static final String PLUGIN_ID = "org.eclipse.ui.intro.universal"; //$NON-NLS-1$
 
-    // The static shared instance.
-    private static UniversalIntroPlugin inst;
+	// The static shared instance.
+	private static UniversalIntroPlugin inst;
 
-    // used for performance logging. Time when the constructor of
-    // CustomizableIntroPart is called.
-    private long uiCreationStartTime;
+	// used for performance logging. Time when the constructor of
+	// CustomizableIntroPart is called.
+	private long uiCreationStartTime;
 
-    // image registry that can be disposed while the
-    // plug-in is still active. This is important for
-    // switching themes after the plug-in has been loaded.
-    private ImageRegistry volatileImageRegistry;
+	// image registry that can be disposed while the
+	// plug-in is still active. This is important for
+	// switching themes after the plug-in has been loaded.
+	private ImageRegistry volatileImageRegistry;
 
-    /**
-     * The constructor.
-     */
-    public UniversalIntroPlugin() {
-        super();
-    }
+	/**
+	 * The constructor.
+	 */
+	public UniversalIntroPlugin() {
+		super();
+	}
 
-    /**
-     * Returns the shared plugin instance.
-     */
-    public static UniversalIntroPlugin getDefault() {
-        return inst;
-    }
+	/**
+	 * Returns the shared plugin instance.
+	 */
+	public static UniversalIntroPlugin getDefault() {
+		return inst;
+	}
 
-    /**
-     * Returns the Intro Part.
-     */
-    public static IIntroPart getIntro() {
-        IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
-            .getIntro();
-        return introPart;
-    }
+	/**
+	 * Returns the Intro Part.
+	 */
+	public static IIntroPart getIntro() {
+		IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
+			.getIntro();
+		return introPart;
+	}
 
-    /**
-     * Returns the Intro Part after forcing an open on it.
-     */
-    public static IIntroPart showIntro(boolean standby) {
-        IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
-            .showIntro(PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
-                standby);
-        return introPart;
-    }
+	/**
+	 * Returns the Intro Part after forcing an open on it.
+	 */
+	public static IIntroPart showIntro(boolean standby) {
+		IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
+			.showIntro(PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
+				standby);
+		return introPart;
+	}
 
-    /**
-     * Returns the standby state of the Intro Part. If the intro is closed,
-     * retruns false.
-     */
-    public static boolean isIntroStandby() {
-        return PlatformUI.getWorkbench().getIntroManager().isIntroStandby(
-            getIntro());
-    }
+	/**
+	 * Returns the standby state of the Intro Part. If the intro is closed,
+	 * retruns false.
+	 */
+	public static boolean isIntroStandby() {
+		return PlatformUI.getWorkbench().getIntroManager().isIntroStandby(
+			getIntro());
+	}
 
-    /**
-     * Sets the standby state of the Intro Part. If the intro is closed, retruns
-     * false.
-     */
-    public static void setIntroStandby(boolean standby) {
-        PlatformUI.getWorkbench().getIntroManager().setIntroStandby(getIntro(),
-            standby);
-    }
+	/**
+	 * Sets the standby state of the Intro Part. If the intro is closed, retruns
+	 * false.
+	 */
+	public static void setIntroStandby(boolean standby) {
+		PlatformUI.getWorkbench().getIntroManager().setIntroStandby(getIntro(),
+			standby);
+	}
 
 
-    /**
-     * Returns the standby state of the Intro Part. If the intro is closed,
-     * retruns false.
-     */
-    public static boolean closeIntro() {
-        // Relies on Workbench.
-        return PlatformUI.getWorkbench().getIntroManager().closeIntro(
-            getIntro());
-    }
+	/**
+	 * Returns the standby state of the Intro Part. If the intro is closed,
+	 * retruns false.
+	 */
+	public static boolean closeIntro() {
+		// Relies on Workbench.
+		return PlatformUI.getWorkbench().getIntroManager().closeIntro(
+			getIntro());
+	}
 
-    public ImageRegistry getVolatileImageRegistry() {
-    	if (volatileImageRegistry==null) {
-    		volatileImageRegistry = createImageRegistry();
-    		initializeImageRegistry(volatileImageRegistry);
-    	}
-    	return volatileImageRegistry;
-    }
+	public ImageRegistry getVolatileImageRegistry() {
+		if (volatileImageRegistry==null) {
+			volatileImageRegistry = createImageRegistry();
+			initializeImageRegistry(volatileImageRegistry);
+		}
+		return volatileImageRegistry;
+	}
 
-    public void resetVolatileImageRegistry() {
-    	if (volatileImageRegistry!=null) {
-    		volatileImageRegistry.dispose();
-    		volatileImageRegistry = null;
-    	}
-    }
+	public void resetVolatileImageRegistry() {
+		if (volatileImageRegistry!=null) {
+			volatileImageRegistry.dispose();
+			volatileImageRegistry = null;
+		}
+	}
 
 
-    @Override
+	@Override
 	public void start(BundleContext context) throws Exception {
-        super.start(context);
-        inst = this;
-        if (Log.logInfo)
-            Log.info("IntroPlugin - calling start on Intro bundle"); //$NON-NLS-1$
+		super.start(context);
+		inst = this;
+		if (Log.logInfo)
+			Log.info("IntroPlugin - calling start on Intro bundle"); //$NON-NLS-1$
 
-    }
+	}
 
-    @Override
+	@Override
 	public void stop(BundleContext context) throws Exception {
-    	resetVolatileImageRegistry();
-        super.stop(context);
-    }
+		resetVolatileImageRegistry();
+		super.stop(context);
+	}
 
-    public long gettUICreationStartTime() {
-        return uiCreationStartTime;
-    }
+	public long gettUICreationStartTime() {
+		return uiCreationStartTime;
+	}
 
-    public void setUICreationStartTime(long uiCreationStartTime) {
-        this.uiCreationStartTime = uiCreationStartTime;
-    }
+	public void setUICreationStartTime(long uiCreationStartTime) {
+		this.uiCreationStartTime = uiCreationStartTime;
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/WelcomeCustomizationPreferencePage.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/WelcomeCustomizationPreferencePage.java
index ca65ce2..3cd20e8 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/WelcomeCustomizationPreferencePage.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/WelcomeCustomizationPreferencePage.java
@@ -26,7 +26,7 @@
 public class WelcomeCustomizationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage,
 		IExecutableExtension {
 
-    private CustomizationContentsArea contentsArea;
+	private CustomizationContentsArea contentsArea;
 
 	public WelcomeCustomizationPreferencePage() {
 	}
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetectHelper.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetectHelper.java
index 5c44f96..2adb2d8 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetectHelper.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetectHelper.java
@@ -47,16 +47,16 @@
 
 	private File getConfigurationLocation() {
 		if (configurationDirectory == null) {
-		    Location location = Platform.getConfigurationLocation();
-		    if (location != null) {
-			    URL configURL = location.getURL();
-			    if (configURL != null && configURL.getProtocol().startsWith("file")) { //$NON-NLS-1$
-				    configurationDirectory = new File(configURL.getFile(), PLUGIN_ID);
+			Location location = Platform.getConfigurationLocation();
+			if (location != null) {
+				URL configURL = location.getURL();
+				if (configURL != null && configURL.getProtocol().startsWith("file")) { //$NON-NLS-1$
+					configurationDirectory = new File(configURL.getFile(), PLUGIN_ID);
 					if (configurationDirectory != null && !configurationDirectory.exists()) {
 						configurationDirectory.mkdirs();
 					}
-			    }
-		    }
+				}
+			}
 		}
 		return configurationDirectory;
 	}
@@ -119,7 +119,7 @@
 			memento = null;
 			// Do nothing, the file will not exist the first time the workbench in used.
 		} catch (Exception e) {
-            // TODO should we log an error?
+			// TODO should we log an error?
 			memento = null;
 		} finally {
 			try {
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetector.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetector.java
index 17befba..3cbf652 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetector.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/contentdetect/ContentDetector.java
@@ -71,9 +71,9 @@
 	 */
 	public static Set<String> getNewContributors() {
 		if (!detectorCalled) {
-		    detectorCalled = true;
-		    new ContentDetector().isNewContentAvailable();
-	    }
+			detectorCalled = true;
+			new ContentDetector().isNewContentAvailable();
+		}
 		return newContributors;
 	}
 
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/BundleUtil.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/BundleUtil.java
index b0f1271..7650788 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/BundleUtil.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/BundleUtil.java
@@ -30,230 +30,230 @@
  */
 public class BundleUtil {
 
-    private static String NL_TAG = "$nl$/"; //$NON-NLS-1$
+	private static String NL_TAG = "$nl$/"; //$NON-NLS-1$
 
 
-    /**
-     * Utility method to validate the state of a bundle. Log invalid bundles to
-     * log file.
-     */
-    public static boolean bundleHasValidState(Bundle bundle) {
-        if (bundle == null || bundle.getState() == Bundle.UNINSTALLED
-                || bundle.getState() == Bundle.INSTALLED) {
+	/**
+	 * Utility method to validate the state of a bundle. Log invalid bundles to
+	 * log file.
+	 */
+	public static boolean bundleHasValidState(Bundle bundle) {
+		if (bundle == null || bundle.getState() == Bundle.UNINSTALLED
+				|| bundle.getState() == Bundle.INSTALLED) {
 
-            if (bundle == null)
-                Log.error("Universal Welcome tried accessing a NULL bundle.", null); //$NON-NLS-1$
-            else {
+			if (bundle == null)
+				Log.error("Universal Welcome tried accessing a NULL bundle.", null); //$NON-NLS-1$
+			else {
 				String msg = StringUtil.concat("Universal Welcome tried accessing Bundle: ", getBundleHeader( //$NON-NLS-1$
 						bundle, Constants.BUNDLE_NAME), " vendor: ", //$NON-NLS-1$
 						getBundleHeader(bundle, Constants.BUNDLE_VENDOR), " bundle state: ", //$NON-NLS-1$
 						String.valueOf(bundle.getState()));
 				Log.error(msg, null);
-            }
-            return false;
-        }
+			}
+			return false;
+		}
 
-        return true;
-    }
+		return true;
+	}
 
-    /**
-     * Retrieves the given key from the bundle header.
-     *
-     * @param bundle
-     * @param key
-     * @return
-     */
-    public static String getBundleHeader(Bundle bundle, String key) {
-        return bundle.getHeaders().get(key);
-    }
+	/**
+	 * Retrieves the given key from the bundle header.
+	 *
+	 * @param bundle
+	 * @param key
+	 * @return
+	 */
+	public static String getBundleHeader(Bundle bundle, String key) {
+		return bundle.getHeaders().get(key);
+	}
 
 
-    public static Bundle getBundleFromConfigurationElement(
-            IConfigurationElement cfg) {
-        return Platform.getBundle(cfg.getNamespaceIdentifier());
-    }
+	public static Bundle getBundleFromConfigurationElement(
+			IConfigurationElement cfg) {
+		return Platform.getBundle(cfg.getNamespaceIdentifier());
+	}
 
 
-    /**
-     * Get the resourcelocation, but do not force an $nl$ on it.
-     *
-     * @param resource
-     * @param element
-     * @return
-     */
-    public static String getResourceLocation(String resource,
-            IConfigurationElement element) {
-        Bundle bundle = getBundleFromConfigurationElement(element);
-        return getResolvedResourceLocation(resource, bundle, false);
-    }
+	/**
+	 * Get the resourcelocation, but do not force an $nl$ on it.
+	 *
+	 * @param resource
+	 * @param element
+	 * @return
+	 */
+	public static String getResourceLocation(String resource,
+			IConfigurationElement element) {
+		Bundle bundle = getBundleFromConfigurationElement(element);
+		return getResolvedResourceLocation(resource, bundle, false);
+	}
 
 
-    /**
-     * Returns the fully qualified location of the passed resource string from
-     * the passed plugin id. If the file could not be loaded from the plugin,
-     * the resource is returned as is.
-     *
-     * @param resource
-     * @return
-     */
-    public static String getResolvedResourceLocation(String resource,
-            String pluginId) {
-        Bundle bundle = Platform.getBundle(pluginId);
-        return getResolvedResourceLocation(resource, bundle, true);
-    }
+	/**
+	 * Returns the fully qualified location of the passed resource string from
+	 * the passed plugin id. If the file could not be loaded from the plugin,
+	 * the resource is returned as is.
+	 *
+	 * @param resource
+	 * @return
+	 */
+	public static String getResolvedResourceLocation(String resource,
+			String pluginId) {
+		Bundle bundle = Platform.getBundle(pluginId);
+		return getResolvedResourceLocation(resource, bundle, true);
+	}
 
 
-    /**
-     * Shorthand util method.
-     *
-     * @param resource
-     * @return
-     */
-    public static String getResolvedResourceLocation(String resource,
-            Bundle bundle) {
-        return getResolvedResourceLocation(resource, bundle, true);
-    }
+	/**
+	 * Shorthand util method.
+	 *
+	 * @param resource
+	 * @return
+	 */
+	public static String getResolvedResourceLocation(String resource,
+			Bundle bundle) {
+		return getResolvedResourceLocation(resource, bundle, true);
+	}
 
 
-    public static String getResolvedResourceLocation(String base,
-            String resource, Bundle bundle) {
-        // quick exits.
-        if (resource == null)
-            return null;
+	public static String getResolvedResourceLocation(String base,
+			String resource, Bundle bundle) {
+		// quick exits.
+		if (resource == null)
+			return null;
 
-        String fullResource = new Path(base).append(resource).toString();
-        String resolvedResource = getResolvedResourceLocation(fullResource,
-            bundle, true);
+		String fullResource = new Path(base).append(resource).toString();
+		String resolvedResource = getResolvedResourceLocation(fullResource,
+			bundle, true);
 
-        if (resolvedResource.equals(fullResource))
-            // return resource as is when the resource does not exist.
-            return resource;
-        return resolvedResource;
-    }
+		if (resolvedResource.equals(fullResource))
+			// return resource as is when the resource does not exist.
+			return resource;
+		return resolvedResource;
+	}
 
 
-    public static String getResolvedResourceLocation(String resource,
-            Bundle bundle, boolean forceNLResolve) {
-        // quick exits.
-        if (resource == null)
-            return null;
+	public static String getResolvedResourceLocation(String resource,
+			Bundle bundle, boolean forceNLResolve) {
+		// quick exits.
+		if (resource == null)
+			return null;
 
-        if (bundle == null || !bundleHasValidState(bundle))
-            return resource;
+		if (bundle == null || !bundleHasValidState(bundle))
+			return resource;
 
-        URL localLocation = null;
-        try {
-            // we need to resolve this URL.
-            String copyResource = resource;
-            if (forceNLResolve && !copyResource.startsWith(NL_TAG)) {
-                if (copyResource.startsWith("/") //$NON-NLS-1$
-                        || copyResource.startsWith("\\")) //$NON-NLS-1$
-                    copyResource = resource.substring(1);
-                copyResource = NL_TAG + copyResource;
-            }
-            IPath resourcePath = new Path(copyResource);
-            localLocation = FileLocator.find(bundle, resourcePath, null);
-            if (localLocation == null) {
-                // localLocation can be null if the passed resource could not
-                // be found relative to the plugin. log fact, return resource,
-                // as is.
+		URL localLocation = null;
+		try {
+			// we need to resolve this URL.
+			String copyResource = resource;
+			if (forceNLResolve && !copyResource.startsWith(NL_TAG)) {
+				if (copyResource.startsWith("/") //$NON-NLS-1$
+						|| copyResource.startsWith("\\")) //$NON-NLS-1$
+					copyResource = resource.substring(1);
+				copyResource = NL_TAG + copyResource;
+			}
+			IPath resourcePath = new Path(copyResource);
+			localLocation = FileLocator.find(bundle, resourcePath, null);
+			if (localLocation == null) {
+				// localLocation can be null if the passed resource could not
+				// be found relative to the plugin. log fact, return resource,
+				// as is.
 				String msg = StringUtil.concat("Could not find resource: ", //$NON-NLS-1$
 						resource, " in ", getBundleHeader( //$NON-NLS-1$
 								bundle, Constants.BUNDLE_NAME));
-                Log.warning(msg);
-                return resource;
-            }
-            /*
-            localLocation = FileLocator.toFileURL(localLocation);
-            return localLocation.toExternalForm();
-            */
-            return toExternalForm(localLocation);
-        } catch (Exception e) {
+				Log.warning(msg);
+				return resource;
+			}
+			/*
+			localLocation = FileLocator.toFileURL(localLocation);
+			return localLocation.toExternalForm();
+			*/
+			return toExternalForm(localLocation);
+		} catch (Exception e) {
 			String msg = StringUtil.concat("Failed to load resource: ", //$NON-NLS-1$
 					resource, " from ", getBundleHeader(bundle, //$NON-NLS-1$
 							Constants.BUNDLE_NAME));
-            Log.error(msg, e);
-            return resource;
-        }
-    }
+			Log.error(msg, e);
+			return resource;
+		}
+	}
 
-    private static String toExternalForm(URL localURL) {
-    	try {
-    		localURL = FileLocator.toFileURL(localURL);
-    		String result = localURL.toExternalForm();
-    		if (result.startsWith("file:/")) { //$NON-NLS-1$
-    			if (result.startsWith("file:///")==false) { //$NON-NLS-1$
-    				result = "file:///"+result.substring(6); //$NON-NLS-1$
-    			}
-    		}
-    		return result;
-    	}
-    	catch (IOException e) {
-            String msg = "Failed to resolve URL: " //$NON-NLS-1$
-                    + localURL.toString();
-                Log.error(msg, e);
-                return localURL.toString();
-    	}
-    }
+	private static String toExternalForm(URL localURL) {
+		try {
+			localURL = FileLocator.toFileURL(localURL);
+			String result = localURL.toExternalForm();
+			if (result.startsWith("file:/")) { //$NON-NLS-1$
+				if (result.startsWith("file:///")==false) { //$NON-NLS-1$
+					result = "file:///"+result.substring(6); //$NON-NLS-1$
+				}
+			}
+			return result;
+		}
+		catch (IOException e) {
+			String msg = "Failed to resolve URL: " //$NON-NLS-1$
+					+ localURL.toString();
+				Log.error(msg, e);
+				return localURL.toString();
+		}
+	}
 
 
 
 
-    /** *** used by Intro parser ***** */
-    /*
-     * Util method to return an URL to a plugin relative resource.
-     */
-    public static URL getResourceAsURL(String resource, String pluginId) {
-        Bundle bundle = Platform.getBundle(pluginId);
-        URL localLocation = FileLocator.find(bundle, new Path(
-            resource), null);
-        return localLocation;
-    }
+	/** *** used by Intro parser ***** */
+	/*
+	 * Util method to return an URL to a plugin relative resource.
+	 */
+	public static URL getResourceAsURL(String resource, String pluginId) {
+		Bundle bundle = Platform.getBundle(pluginId);
+		URL localLocation = FileLocator.find(bundle, new Path(
+			resource), null);
+		return localLocation;
+	}
 
 
 
 
-    /** ********************* Used by HTML generator ****************** */
-    /**
-     * Get the absolute path of the given bundle, in the form
-     * file:/path_to_plugin
-     *
-     * @param bundle
-     * @return
-     */
-    public static String getResolvedBundleLocation(Bundle bundle) {
-        try {
-            URL bundleLocation = bundle.getEntry(""); //$NON-NLS-1$
-            if (bundleLocation == null)
-                return null;
-            /*
-            bundleLocation = FileLocator.toFileURL(bundleLocation);
-            return bundleLocation.toExternalForm();
-            */
-            return toExternalForm(bundleLocation);
-        } catch (IllegalStateException e) {
-            Log.error("Failed to access bundle: " //$NON-NLS-1$
-                    + bundle.getSymbolicName(), e);
-            return null;
-        } /* catch (IOException e) {
-            Log.error("Failed to resolve URL path for bundle: " //$NON-NLS-1$
-                    + bundle.getSymbolicName(), e);
-            return null;
-        } */
-    }
+	/** ********************* Used by HTML generator ****************** */
+	/**
+	 * Get the absolute path of the given bundle, in the form
+	 * file:/path_to_plugin
+	 *
+	 * @param bundle
+	 * @return
+	 */
+	public static String getResolvedBundleLocation(Bundle bundle) {
+		try {
+			URL bundleLocation = bundle.getEntry(""); //$NON-NLS-1$
+			if (bundleLocation == null)
+				return null;
+			/*
+			bundleLocation = FileLocator.toFileURL(bundleLocation);
+			return bundleLocation.toExternalForm();
+			*/
+			return toExternalForm(bundleLocation);
+		} catch (IllegalStateException e) {
+			Log.error("Failed to access bundle: " //$NON-NLS-1$
+					+ bundle.getSymbolicName(), e);
+			return null;
+		} /* catch (IOException e) {
+			Log.error("Failed to resolve URL path for bundle: " //$NON-NLS-1$
+					+ bundle.getSymbolicName(), e);
+			return null;
+		} */
+	}
 
-    /**
-     * Get the absolute path of the bundle with id <code>bundleId</code>. If
-     * no such bundle is found, return null.
-     *
-     * @param bundleId
-     * @return
-     */
-    public static String getResolvedBundleLocation(String bundleId) {
-        Bundle bundle = Platform.getBundle(bundleId);
-        if (bundle == null)
-            return null;
-        return getResolvedBundleLocation(bundle);
-    }
+	/**
+	 * Get the absolute path of the bundle with id <code>bundleId</code>. If
+	 * no such bundle is found, return null.
+	 *
+	 * @param bundleId
+	 * @return
+	 */
+	public static String getResolvedBundleLocation(String bundleId) {
+		Bundle bundle = Platform.getBundle(bundleId);
+		if (bundle == null)
+			return null;
+		return getResolvedBundleLocation(bundle);
+	}
 
 }
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/Log.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/Log.java
index ff379fc..1a0fc6f 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/Log.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/Log.java
@@ -32,114 +32,114 @@
  */
 public class Log implements IUniversalIntroConstants {
 
-    /**
-     * This MUST be set to <b>false </b> in production. <br>
-     * Used to compile out developement debug messages. <br>
-     * Compiler compiles out code warpped wit this flag as an optimization.
-     */
-    public static final boolean DEBUG = false;
+	/**
+	 * This MUST be set to <b>false </b> in production. <br>
+	 * Used to compile out developement debug messages. <br>
+	 * Compiler compiles out code warpped wit this flag as an optimization.
+	 */
+	public static final boolean DEBUG = false;
 
 
-    // Use these flags to filter out code that may be a performance hit.
-    // Flag that controls logging of warning message
-    public static boolean logWarning = false;
-    // Flag that controls logging of information messages
-    public static boolean logInfo = false;
-    // Flag that controls logging of performance messages
-    public static boolean logPerformance = false;
+	// Use these flags to filter out code that may be a performance hit.
+	// Flag that controls logging of warning message
+	public static boolean logWarning = false;
+	// Flag that controls logging of information messages
+	public static boolean logInfo = false;
+	// Flag that controls logging of performance messages
+	public static boolean logPerformance = false;
 
-    private final static ILog pluginLog = UniversalIntroPlugin.getDefault().getLog();
+	private final static ILog pluginLog = UniversalIntroPlugin.getDefault().getLog();
 
-    static {
-        // init debug options based on settings defined in ".options" file. If
-        // the plugin is not in debug mode, no point setting debug options.
-        if (UniversalIntroPlugin.getDefault().isDebugging()) {
-            logWarning = true;
-            logInfo = getDebugOption("/trace/logInfo"); //$NON-NLS-1$
-            logPerformance = getDebugOption("/trace/logPerformance"); //$NON-NLS-1$
-        }
+	static {
+		// init debug options based on settings defined in ".options" file. If
+		// the plugin is not in debug mode, no point setting debug options.
+		if (UniversalIntroPlugin.getDefault().isDebugging()) {
+			logWarning = true;
+			logInfo = getDebugOption("/trace/logInfo"); //$NON-NLS-1$
+			logPerformance = getDebugOption("/trace/logPerformance"); //$NON-NLS-1$
+		}
 
-    }
+	}
 
-    private static boolean getDebugOption(String option) {
-        return "true".equalsIgnoreCase(//$NON-NLS-1$
-            Platform.getDebugOption(PLUGIN_ID + option));
-    }
+	private static boolean getDebugOption(String option) {
+		return "true".equalsIgnoreCase(//$NON-NLS-1$
+			Platform.getDebugOption(PLUGIN_ID + option));
+	}
 
-    /**
-     * Log an Error message with an exception. Note that the message should
-     * already be localized to proper local. Errors are always logged.
-     */
-    public static synchronized void error(String message, Throwable ex) {
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK,
-            message, ex);
-        pluginLog.log(errorStatus);
-    }
+	/**
+	 * Log an Error message with an exception. Note that the message should
+	 * already be localized to proper local. Errors are always logged.
+	 */
+	public static synchronized void error(String message, Throwable ex) {
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK,
+			message, ex);
+		pluginLog.log(errorStatus);
+	}
 
-    /**
-     * Log an Information message. Note that the message should already be
-     * localized to proper local. Info messages are only logged when the
-     * /trace/logInfo debug option is true.
-     */
-    public static synchronized void info(String message) {
-        if (!logInfo)
-            // logging of info messages is not enabled.
-            return;
+	/**
+	 * Log an Information message. Note that the message should already be
+	 * localized to proper local. Info messages are only logged when the
+	 * /trace/logInfo debug option is true.
+	 */
+	public static synchronized void info(String message) {
+		if (!logInfo)
+			// logging of info messages is not enabled.
+			return;
 
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
-            message, null);
-        pluginLog.log(infoStatus);
-    }
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
+			message, null);
+		pluginLog.log(infoStatus);
+	}
 
-    /**
-     * Log an Information message. Note that the message should already be
-     * localized to proper local. These messages are always logged. They are not
-     * controlled by any debug flags. Logging of these messages can be
-     * controlled by the public flags in this class.
-     */
-    public static synchronized void forcedInfo(String message) {
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
-            message, null);
-        pluginLog.log(infoStatus);
-    }
+	/**
+	 * Log an Information message. Note that the message should already be
+	 * localized to proper local. These messages are always logged. They are not
+	 * controlled by any debug flags. Logging of these messages can be
+	 * controlled by the public flags in this class.
+	 */
+	public static synchronized void forcedInfo(String message) {
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
+			message, null);
+		pluginLog.log(infoStatus);
+	}
 
 
-    /**
-     * Log a Warning message. Note that the message should already be localized
-     * to proper local. Warning messages are only logged when the plugin is in
-     * debug mode.
-     */
-    public static synchronized void warning(String message) {
-        if (!logWarning)
-            // no warning messages (ie: plugin is not in debug mode). Default is
-            // to not log warning messages.
-            return;
+	/**
+	 * Log a Warning message. Note that the message should already be localized
+	 * to proper local. Warning messages are only logged when the plugin is in
+	 * debug mode.
+	 */
+	public static synchronized void warning(String message) {
+		if (!logWarning)
+			// no warning messages (ie: plugin is not in debug mode). Default is
+			// to not log warning messages.
+			return;
 
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID,
-            IStatus.OK, message, null);
-        pluginLog.log(warningStatus);
-    }
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID,
+			IStatus.OK, message, null);
+		pluginLog.log(warningStatus);
+	}
 
-    /**
-     * Log a development debug message. Debug messages are compiled out.
-     */
-    public static synchronized void debugMessage(String className,
-            String message) {
-        if (DEBUG) {
-            MultiStatus debugStatus = new MultiStatus(PLUGIN_ID, IStatus.OK,
-                className, null);
-            Status infoStatus = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK,
-                message, null);
-            debugStatus.add(infoStatus);
-            pluginLog.log(debugStatus);
-        }
-    }
+	/**
+	 * Log a development debug message. Debug messages are compiled out.
+	 */
+	public static synchronized void debugMessage(String className,
+			String message) {
+		if (DEBUG) {
+			MultiStatus debugStatus = new MultiStatus(PLUGIN_ID, IStatus.OK,
+				className, null);
+			Status infoStatus = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK,
+				message, null);
+			debugStatus.add(infoStatus);
+			pluginLog.log(debugStatus);
+		}
+	}
 }
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/StringUtil.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/StringUtil.java
index 2fe35a2..c1a8ee5 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/StringUtil.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/StringUtil.java
@@ -16,10 +16,10 @@
 public class StringUtil {
 
 	public static String concat(String... strings) {
-    	StringBuilder buffer = new StringBuilder();
-    	for (String string : strings) {
+		StringBuilder buffer = new StringBuilder();
+		for (String string : strings) {
 			buffer.append(string);
 		}
-    	return buffer.toString();
-    }
+		return buffer.toString();
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/FontSelection.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/FontSelection.java
index d29e4ed..9504228 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/FontSelection.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/FontSelection.java
@@ -39,14 +39,14 @@
 	 * Returns the height in points of the default SWT font
 	 */
 	private static int getDefaultFontHeight() {
-       Font defaultFont = JFaceResources.getDefaultFont();
-       FontData[] fontData = defaultFont.getFontData();
-       int height = MIN_HEIGHT;
+		Font defaultFont = JFaceResources.getDefaultFont();
+		FontData[] fontData = defaultFont.getFontData();
+		int height = MIN_HEIGHT;
 		for (int i=0; i< fontData.length; i++) {
 			FontData data = fontData[i];
 			height = Math.max(height, data.getHeight());
 		}
-       return Math.min(height, MAX_HEIGHT);
+		return Math.min(height, MAX_HEIGHT);
 	}
 
 	public static String generatePageFontStyle() {
@@ -93,19 +93,19 @@
 	public static String getFontStyle() {
 		IProduct product = Platform.getProduct();
 		if (product != null) {
-		    String pid = product.getId();
-	    	String style = Platform.getPreferencesService().getString
-	    	    (IntroPlugin.PLUGIN_ID,  pid + "_" +FontSelection.VAR_FONT_STYLE, "", null); //$NON-NLS-1$ //$NON-NLS-2$
-	    	if (style.length() > 0) {
-	    		return style;
-	    	}
-	    	style = Platform.getPreferencesService().getString
-	    	    (IntroPlugin.PLUGIN_ID,  (FontSelection.VAR_FONT_STYLE), "", null); //$NON-NLS-1$
-	    	if (style.length() > 0) {
-	    		return style;
-	    	}
+			String pid = product.getId();
+			String style = Platform.getPreferencesService().getString
+				(IntroPlugin.PLUGIN_ID,  pid + "_" +FontSelection.VAR_FONT_STYLE, "", null); //$NON-NLS-1$ //$NON-NLS-2$
+			if (style.length() > 0) {
+				return style;
+			}
+			style = Platform.getPreferencesService().getString
+				(IntroPlugin.PLUGIN_ID,  (FontSelection.VAR_FONT_STYLE), "", null); //$NON-NLS-1$
+			if (style.length() > 0) {
+				return style;
+			}
 		}
 		// Use default for font style if not specified
-	    return FontSelection.FONT_RELATIVE;
+		return FontSelection.FONT_RELATIVE;
 	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IIntroConstants.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IIntroConstants.java
index de0088e..1fd09f9 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IIntroConstants.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IIntroConstants.java
@@ -16,48 +16,48 @@
 
 public interface IIntroConstants {
 
-    // all attributes here are by default public static final.
+	// all attributes here are by default public static final.
 
-    // General consts.
-    // ---------------
-    String PLUGIN_ID = "org.eclipse.ui.intro"; //$NON-NLS-1$
-    String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
+	// General consts.
+	// ---------------
+	String PLUGIN_ID = "org.eclipse.ui.intro"; //$NON-NLS-1$
+	String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
 
-    // Empty Standby Content part. This is registered in this plugin,
-    // through markup.
-    String EMPTY_STANDBY_CONTENT_PART = "org.eclipse.ui.intro.config.emptyStandby"; //$NON-NLS-1$
+	// Empty Standby Content part. This is registered in this plugin,
+	// through markup.
+	String EMPTY_STANDBY_CONTENT_PART = "org.eclipse.ui.intro.config.emptyStandby"; //$NON-NLS-1$
 
-    // Memento constants
-    // ------------------
-    String MEMENTO_PRESENTATION_TAG = "presentation"; //$NON-NLS-1$
-    String MEMENTO_CURRENT_PAGE_ATT = "currentPage"; //$NON-NLS-1$
-    String MEMENTO_STANDBY_PART_TAG = "standbyPart"; //$NON-NLS-1$
-    String MEMENTO_STANDBY_CONTENT_PART_ID_ATT = "contentPartID"; //$NON-NLS-1$
-    String MEMENTO_STANDBY_CONTENT_PART_TAG = "standbyContentPart"; //$NON-NLS-1$
-    String MEMENTO_RESTORE_ATT = "restore"; //$NON-NLS-1$
+	// Memento constants
+	// ------------------
+	String MEMENTO_PRESENTATION_TAG = "presentation"; //$NON-NLS-1$
+	String MEMENTO_CURRENT_PAGE_ATT = "currentPage"; //$NON-NLS-1$
+	String MEMENTO_STANDBY_PART_TAG = "standbyPart"; //$NON-NLS-1$
+	String MEMENTO_STANDBY_CONTENT_PART_ID_ATT = "contentPartID"; //$NON-NLS-1$
+	String MEMENTO_STANDBY_CONTENT_PART_TAG = "standbyContentPart"; //$NON-NLS-1$
+	String MEMENTO_RESTORE_ATT = "restore"; //$NON-NLS-1$
 
-    // CustomizableIntroPart consts:
-    // -----------------------------
-    // key to retrieve if a standby part is needed.
-    String SHOW_STANDBY_PART = "showStandbyPart"; //$NON-NLS-1$
+	// CustomizableIntroPart consts:
+	// -----------------------------
+	// key to retrieve if a standby part is needed.
+	String SHOW_STANDBY_PART = "showStandbyPart"; //$NON-NLS-1$
 
-    // Form implementation consts:
-    // ---------------------------
-    // key to retrieve the into link model object from imageHyperlink widget.
-    // convention: actual string value is class name.
-    String INTRO_LINK = "IntroLink"; //$NON-NLS-1$
+	// Form implementation consts:
+	// ---------------------------
+	// key to retrieve the into link model object from imageHyperlink widget.
+	// convention: actual string value is class name.
+	String INTRO_LINK = "IntroLink"; //$NON-NLS-1$
 
-    // key to retrive page sub-title from PageContentForm
-    String PAGE_SUBTITLE = "PageSubtitle"; //$NON-NLS-1$
+	// key to retrive page sub-title from PageContentForm
+	String PAGE_SUBTITLE = "PageSubtitle"; //$NON-NLS-1$
 
 
-    // Performance keys
-    // -----------------------
-    String INTRO = "intro"; //$NON-NLS-1$
-    String PERF_VIEW_CREATION_TIME = PLUGIN_ID + "/perf/createView"; //$NON-NLS-1$
-    String PERF_SET_STANDBY_STATE = PLUGIN_ID + "/perf/setStandbyState"; //$NON-NLS-1$
-    // not exposed in .option. Used because framework is convenient.
-    String PERF_UI_ZOOM = PLUGIN_ID + "/perf/uiZoom"; //$NON-NLS-1$
+	// Performance keys
+	// -----------------------
+	String INTRO = "intro"; //$NON-NLS-1$
+	String PERF_VIEW_CREATION_TIME = PLUGIN_ID + "/perf/createView"; //$NON-NLS-1$
+	String PERF_SET_STANDBY_STATE = PLUGIN_ID + "/perf/setStandbyState"; //$NON-NLS-1$
+	// not exposed in .option. Used because framework is convenient.
+	String PERF_UI_ZOOM = PLUGIN_ID + "/perf/uiZoom"; //$NON-NLS-1$
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IntroPlugin.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IntroPlugin.java
index 737f473..7dcb258 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IntroPlugin.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IntroPlugin.java
@@ -38,142 +38,142 @@
 	public static boolean LOG_INFO =
 		"true".equalsIgnoreCase(Platform.getDebugOption(PLUGIN_ID+"/debug/info")); //$NON-NLS-1$ //$NON-NLS-2$
 
-    // The static shared instance.
-    private static IntroPlugin inst;
+	// The static shared instance.
+	private static IntroPlugin inst;
 
-    // We must keep track of the launch bar so that we can
-    // close it if intro is opened from the menu.
-    private IntroLaunchBar launchBar;
+	// We must keep track of the launch bar so that we can
+	// close it if intro is opened from the menu.
+	private IntroLaunchBar launchBar;
 
-    // used for performance logging. Time when the constructor of
-    // CustomizableIntroPart is called.
-    private long uiCreationStartTime;
+	// used for performance logging. Time when the constructor of
+	// CustomizableIntroPart is called.
+	private long uiCreationStartTime;
 
-    // image registry that can be disposed while the
-    // plug-in is still active. This is important for
-    // switching themes after the plug-in has been loaded.
-    private ImageRegistry volatileImageRegistry;
+	// image registry that can be disposed while the
+	// plug-in is still active. This is important for
+	// switching themes after the plug-in has been loaded.
+	private ImageRegistry volatileImageRegistry;
 
-    // debug options
+	// debug options
 	public static boolean DEBUG = false;
 	public static boolean DEBUG_NO_BROWSER = false;
 	public static boolean DEBUG_TOOLBAR = false;
 
-    /**
-     * The constructor.
-     */
-    public IntroPlugin() {
-        super();
-    }
+	/**
+	 * The constructor.
+	 */
+	public IntroPlugin() {
+		super();
+	}
 
-    /**
-     * Returns the shared plugin instance.
-     */
-    public static IntroPlugin getDefault() {
-        return inst;
-    }
+	/**
+	 * Returns the shared plugin instance.
+	 */
+	public static IntroPlugin getDefault() {
+		return inst;
+	}
 
-    public ImageRegistry getVolatileImageRegistry() {
-    	if (volatileImageRegistry==null) {
-    		volatileImageRegistry = createImageRegistry();
-    		initializeImageRegistry(volatileImageRegistry);
-    	}
-    	return volatileImageRegistry;
-    }
+	public ImageRegistry getVolatileImageRegistry() {
+		if (volatileImageRegistry==null) {
+			volatileImageRegistry = createImageRegistry();
+			initializeImageRegistry(volatileImageRegistry);
+		}
+		return volatileImageRegistry;
+	}
 
-    public void resetVolatileImageRegistry() {
-    	if (volatileImageRegistry!=null) {
-    		volatileImageRegistry.dispose();
-    		volatileImageRegistry = null;
-    	}
-    }
+	public void resetVolatileImageRegistry() {
+		if (volatileImageRegistry!=null) {
+			volatileImageRegistry.dispose();
+			volatileImageRegistry = null;
+		}
+	}
 
 
-    public void closeLaunchBar() {
-        if (launchBar != null) {
-            launchBar.close();
-            launchBar = null;
-        }
+	public void closeLaunchBar() {
+		if (launchBar != null) {
+			launchBar.close();
+			launchBar = null;
+		}
 		IntroLaunchBar.destroyAll(getWorkbench());
-    }
+	}
 
-    public void setLaunchBar(IntroLaunchBar launchBar) {
-        this.launchBar = launchBar;
-    }
+	public void setLaunchBar(IntroLaunchBar launchBar) {
+		this.launchBar = launchBar;
+	}
 
 
-    /**
-     * @return Returns the extensionPointManager.
-     */
-    public ExtensionPointManager getExtensionPointManager() {
-        return ExtensionPointManager.getInst();
-    }
+	/**
+	 * @return Returns the extensionPointManager.
+	 */
+	public ExtensionPointManager getExtensionPointManager() {
+		return ExtensionPointManager.getInst();
+	}
 
-    /**
-     * Returns the model root. Will always guarantee that model is loaded.
-     *
-     * @return Returns the introModelRoot.
-     */
-    public IntroModelRoot getIntroModelRoot() {
-        return getExtensionPointManager().getCurrentModel();
-    }
+	/**
+	 * Returns the model root. Will always guarantee that model is loaded.
+	 *
+	 * @return Returns the introModelRoot.
+	 */
+	public IntroModelRoot getIntroModelRoot() {
+		return getExtensionPointManager().getCurrentModel();
+	}
 
-    /**
-     * Returns the Intro Part.
-     */
-    public static IIntroPart getIntro() {
-        IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
-            .getIntro();
-        return introPart;
-    }
+	/**
+	 * Returns the Intro Part.
+	 */
+	public static IIntroPart getIntro() {
+		IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
+			.getIntro();
+		return introPart;
+	}
 
-    /**
-     * Returns the Intro Part after forcing an open on it.
-     */
-    public static IIntroPart showIntro(boolean standby) {
-        IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
-            .showIntro(PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
-                standby);
-        return introPart;
-    }
+	/**
+	 * Returns the Intro Part after forcing an open on it.
+	 */
+	public static IIntroPart showIntro(boolean standby) {
+		IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager()
+			.showIntro(PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
+				standby);
+		return introPart;
+	}
 
-    /**
-     * Returns the standby state of the Intro Part. If the intro is closed,
-     * retruns false.
-     */
-    public static boolean isIntroStandby() {
-        return PlatformUI.getWorkbench().getIntroManager().isIntroStandby(
-            getIntro());
-    }
+	/**
+	 * Returns the standby state of the Intro Part. If the intro is closed,
+	 * retruns false.
+	 */
+	public static boolean isIntroStandby() {
+		return PlatformUI.getWorkbench().getIntroManager().isIntroStandby(
+			getIntro());
+	}
 
-    /**
-     * Sets the standby state of the Intro Part. If the intro is closed, retruns
-     * false.
-     */
-    public static void setIntroStandby(boolean standby) {
-        PlatformUI.getWorkbench().getIntroManager().setIntroStandby(getIntro(),
-            standby);
-    }
+	/**
+	 * Sets the standby state of the Intro Part. If the intro is closed, retruns
+	 * false.
+	 */
+	public static void setIntroStandby(boolean standby) {
+		PlatformUI.getWorkbench().getIntroManager().setIntroStandby(getIntro(),
+			standby);
+	}
 
 
-    /**
-     * Returns the standby state of the Intro Part. If the intro is closed,
-     * retruns false.
-     */
-    public static boolean closeIntro() {
-        // Relies on Workbench.
-        return PlatformUI.getWorkbench().getIntroManager().closeIntro(
-            getIntro());
-    }
+	/**
+	 * Returns the standby state of the Intro Part. If the intro is closed,
+	 * retruns false.
+	 */
+	public static boolean closeIntro() {
+		// Relies on Workbench.
+		return PlatformUI.getWorkbench().getIntroManager().closeIntro(
+			getIntro());
+	}
 
 
-    @Override
+	@Override
 	public void start(BundleContext context) throws Exception {
-        super.start(context);
-        inst = this;
-        if (Log.logInfo)
-            Log.info("IntroPlugin - calling start on Intro bundle"); //$NON-NLS-1$
-    	// Setup debugging options
+		super.start(context);
+		inst = this;
+		if (Log.logInfo)
+			Log.info("IntroPlugin - calling start on Intro bundle"); //$NON-NLS-1$
+		// Setup debugging options
 		DEBUG = isDebugging();
 		if (DEBUG) {
 			DEBUG_NO_BROWSER = "true".equalsIgnoreCase(Platform.getDebugOption(PLUGIN_ID + "/flags/noBrowser")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -182,23 +182,23 @@
 			DEBUG_TOOLBAR = "true".equalsIgnoreCase(Platform.getDebugOption(PLUGIN_ID + "/debug/toolbar")); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 
-    }
+	}
 
-    @Override
+	@Override
 	public void stop(BundleContext context) throws Exception {
-    	resetVolatileImageRegistry();
-        super.stop(context);
-    }
+		resetVolatileImageRegistry();
+		super.stop(context);
+	}
 
-    public long gettUICreationStartTime() {
-        return uiCreationStartTime;
-    }
+	public long gettUICreationStartTime() {
+		return uiCreationStartTime;
+	}
 
-    public void setUICreationStartTime(long uiCreationStartTime) {
-        this.uiCreationStartTime = uiCreationStartTime;
-    }
+	public void setUICreationStartTime(long uiCreationStartTime) {
+		this.uiCreationStartTime = uiCreationStartTime;
+	}
 
-    /**
+	/**
 	 * Logs an Error message.  To print errors to console,
 	 * run eclipse with the -console -consolelog arguments
 	 */
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.java
index 7f34849..c20d472 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.java
@@ -16,50 +16,50 @@
 import org.eclipse.osgi.util.NLS;
 
 public class Messages extends NLS {
-    private static final String INTRO_RESOURCE_BUNDLE = "org.eclipse.ui.internal.intro.impl.Messages"; //$NON-NLS-1$
+	private static final String INTRO_RESOURCE_BUNDLE = "org.eclipse.ui.internal.intro.impl.Messages"; //$NON-NLS-1$
 
-    static {
-        initializeMessages(INTRO_RESOURCE_BUNDLE, Messages.class);
-    }
+	static {
+		initializeMessages(INTRO_RESOURCE_BUNDLE, Messages.class);
+	}
 
-    public static String Browser_homeButton_tooltip;
-    public static String Browser_forwardButton_tooltip;
-    public static String Browser_backwardButton_tooltip;
-    public static String Browser_invalidConfig;
-    public static String Browser_magnify_tooltip;
-    public static String Browser_reduce_tooltip;
+	public static String Browser_homeButton_tooltip;
+	public static String Browser_forwardButton_tooltip;
+	public static String Browser_backwardButton_tooltip;
+	public static String Browser_invalidConfig;
+	public static String Browser_magnify_tooltip;
+	public static String Browser_reduce_tooltip;
 
-    // Dialogs
-    // --------
-    public static String MessageDialog_errorTitle;
-    public static String MessageDialog_warningTitle;
-    public static String MessageDialog_infoTitle;
+	// Dialogs
+	// --------
+	public static String MessageDialog_errorTitle;
+	public static String MessageDialog_warningTitle;
+	public static String MessageDialog_infoTitle;
 
-    public static String CustomizableIntroPart_configNotFound;
-    public static String StandbyPart_returnToIntro;
-    public static String StandbyPart_returnTo;
-    public static String EmptyStandbyContentPart_text;
-    public static String StandbyPart_failedToCreate;
-    public static String StandbyPart_nonDefined;
-    public static String StandbyPart_canNotRestore;
+	public static String CustomizableIntroPart_configNotFound;
+	public static String StandbyPart_returnToIntro;
+	public static String StandbyPart_returnTo;
+	public static String EmptyStandbyContentPart_text;
+	public static String StandbyPart_failedToCreate;
+	public static String StandbyPart_nonDefined;
+	public static String StandbyPart_canNotRestore;
 
-    public static String IntroURL_failedToDecode;
-    public static String IntroURL_badCommand;
-    public static String HyperlinkAdapter_urlIs;
-    public static String HTML_embeddedLink;
-    public static String StaticHTML_welcome;
+	public static String IntroURL_failedToDecode;
+	public static String IntroURL_badCommand;
+	public static String HyperlinkAdapter_urlIs;
+	public static String HTML_embeddedLink;
+	public static String StaticHTML_welcome;
 
-    public static String IntroLaunchBar_close_label;
-    public static String IntroLaunchBar_close_tooltip;
-    public static String IntroLaunchBar_restore_tooltip;
+	public static String IntroLaunchBar_close_label;
+	public static String IntroLaunchBar_close_tooltip;
+	public static String IntroLaunchBar_restore_tooltip;
 	public static String IntroLaunchBar_welcome;
 
-    // Misc
-    // -------
-    public static String IntroPart_openExternal_tooltip;
-    public static String IntroPart_showContentButton_tooltip;
+	// Misc
+	// -------
+	public static String IntroPart_openExternal_tooltip;
+	public static String IntroPart_showContentButton_tooltip;
 
-    //Always Welcome Checkbox
+	//Always Welcome Checkbox
 	public static String AlwaysWelcomeCheckbox_Text;
 
 	//Eclipse RSS Viewer
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLUtil.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLUtil.java
index a976b1c..c508be4 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLUtil.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLUtil.java
@@ -21,159 +21,159 @@
  * Convenience class for generating HTML elements.
  */
 public final class HTMLUtil {
-    /**
-     * Creates an HTML opening element of the form <elementName
-     * elementAttributes>
-     *
-     * @param elementName
-     *            the name of the element to create
-     * @param elementAttributes
-     *            a map of attribute names and values to be inserted into the
-     *            element start tag
-     * @param insertLineBreak
-     *            true to insert a line break after the start tag is closed,
-     *            false otherwise
-     * @return
-     */
-    public static StringBuffer createHTMLStartTag(String elementName,
-            Map elementAttributes, boolean insertLineBreak) {
-        StringBuffer element = new StringBuffer();
-        if (elementName != null) {
-            // open the start tag
-            element.append(openHTMLStartTag(elementName));
-            // add the attributes, if there are any
-            if (elementAttributes != null && !(elementAttributes.isEmpty()))
-                element.append(IIntroHTMLConstants.SPACE).append(
-                        createAttributeList(elementAttributes));
-            // close the start tag
-            element.append(closeHTMLTag(insertLineBreak));
-        }
-        return element;
-    }
+	/**
+	 * Creates an HTML opening element of the form <elementName
+	 * elementAttributes>
+	 *
+	 * @param elementName
+	 *            the name of the element to create
+	 * @param elementAttributes
+	 *            a map of attribute names and values to be inserted into the
+	 *            element start tag
+	 * @param insertLineBreak
+	 *            true to insert a line break after the start tag is closed,
+	 *            false otherwise
+	 * @return
+	 */
+	public static StringBuffer createHTMLStartTag(String elementName,
+			Map elementAttributes, boolean insertLineBreak) {
+		StringBuffer element = new StringBuffer();
+		if (elementName != null) {
+			// open the start tag
+			element.append(openHTMLStartTag(elementName));
+			// add the attributes, if there are any
+			if (elementAttributes != null && !(elementAttributes.isEmpty()))
+				element.append(IIntroHTMLConstants.SPACE).append(
+						createAttributeList(elementAttributes));
+			// close the start tag
+			element.append(closeHTMLTag(insertLineBreak));
+		}
+		return element;
+	}
 
-    /**
-     * Creates an HTML start tag of the form <elementName>
-     *
-     * @param elementName
-     *            the name of the element to create
-     * @param insertLineBreak
-     *            true to insert a new line after the start tag
-     * @return
-     */
-    public static StringBuffer createHTMLStartTag(String elementName,
-            boolean insertLineBreak) {
-        return createHTMLStartTag(elementName, null, insertLineBreak);
-    }
+	/**
+	 * Creates an HTML start tag of the form <elementName>
+	 *
+	 * @param elementName
+	 *            the name of the element to create
+	 * @param insertLineBreak
+	 *            true to insert a new line after the start tag
+	 * @return
+	 */
+	public static StringBuffer createHTMLStartTag(String elementName,
+			boolean insertLineBreak) {
+		return createHTMLStartTag(elementName, null, insertLineBreak);
+	}
 
-    /**
-     * Creates an HTML start tag of the form <elementName>and inserts a line
-     * break after the start tag
-     *
-     * @param elementName
-     *            the name of the element to create
-     * @return
-     */
-    public static StringBuffer createHTMLStartTag(String elementName) {
-        return createHTMLStartTag(elementName, null, true);
-    }
+	/**
+	 * Creates an HTML start tag of the form <elementName>and inserts a line
+	 * break after the start tag
+	 *
+	 * @param elementName
+	 *            the name of the element to create
+	 * @return
+	 */
+	public static StringBuffer createHTMLStartTag(String elementName) {
+		return createHTMLStartTag(elementName, null, true);
+	}
 
-    /**
-     * Creates an HTML closing element of the form </elementName>
-     *
-     * @param elementName
-     *            the name of the closing element to create
-     * @param addNewLine
-     *            true to add a new line at the end
-     * @return
-     */
-    public static StringBuffer createHTMLEndTag(String elementName,
-            boolean addNewLine) {
-        StringBuffer closingElement = new StringBuffer();
-        if (elementName != null)
-            closingElement.append(IIntroHTMLConstants.LT).append(
-                    IIntroHTMLConstants.FORWARD_SLASH).append(elementName)
-                    .append(closeHTMLTag(addNewLine));
-        return closingElement;
-    }
+	/**
+	 * Creates an HTML closing element of the form </elementName>
+	 *
+	 * @param elementName
+	 *            the name of the closing element to create
+	 * @param addNewLine
+	 *            true to add a new line at the end
+	 * @return
+	 */
+	public static StringBuffer createHTMLEndTag(String elementName,
+			boolean addNewLine) {
+		StringBuffer closingElement = new StringBuffer();
+		if (elementName != null)
+			closingElement.append(IIntroHTMLConstants.LT).append(
+					IIntroHTMLConstants.FORWARD_SLASH).append(elementName)
+					.append(closeHTMLTag(addNewLine));
+		return closingElement;
+	}
 
-    /**
-     * Given a map of attribute names and values, this method will create a
-     * StringBuilder of the attributes in the form: attrName="attrValue". These
-     * attributes can appear in the start tag of an HTML element.
-     *
-     * @param attributes
-     *            the attributes to be converted into a String list
-     * @return
-     */
-    public static String createAttributeList(Map attributes) {
-        if (attributes == null)
-            return null;
-        StringBuilder attributeList = new StringBuilder();
-        Set attrNames = attributes.keySet();
-        for (Iterator it = attrNames.iterator(); it.hasNext();) {
-            Object name = it.next();
-            Object value = attributes.get(name);
-            if ((name instanceof String) && (value instanceof String)) {
-                attributeList.append(createAttribute((String) name,
-                        (String) value));
-                if (it.hasNext()) {
-                    attributeList.append(IIntroHTMLConstants.SPACE);
-                }
-            }
-        }
-        return attributeList.toString();
-    }
+	/**
+	 * Given a map of attribute names and values, this method will create a
+	 * StringBuilder of the attributes in the form: attrName="attrValue". These
+	 * attributes can appear in the start tag of an HTML element.
+	 *
+	 * @param attributes
+	 *            the attributes to be converted into a String list
+	 * @return
+	 */
+	public static String createAttributeList(Map attributes) {
+		if (attributes == null)
+			return null;
+		StringBuilder attributeList = new StringBuilder();
+		Set attrNames = attributes.keySet();
+		for (Iterator it = attrNames.iterator(); it.hasNext();) {
+			Object name = it.next();
+			Object value = attributes.get(name);
+			if ((name instanceof String) && (value instanceof String)) {
+				attributeList.append(createAttribute((String) name,
+						(String) value));
+				if (it.hasNext()) {
+					attributeList.append(IIntroHTMLConstants.SPACE);
+				}
+			}
+		}
+		return attributeList.toString();
+	}
 
-    /**
-     * Creates an HTML attribute of the form attrName="attrValue"
-     *
-     * @param attrName
-     *            the name of the attribute
-     * @param attrValue
-     *            the value of the attribute
-     * @return
-     */
-    public static StringBuffer createAttribute(String attrName, String attrValue) {
-        StringBuffer attribute = new StringBuffer();
-        if (attrName != null && attrValue != null) {
-            attribute.append(attrName).append(IIntroHTMLConstants.EQUALS)
-                    .append(IIntroHTMLConstants.QUOTE).append(attrValue)
-                    .append(IIntroHTMLConstants.QUOTE);
-        }
-        return attribute;
-    }
+	/**
+	 * Creates an HTML attribute of the form attrName="attrValue"
+	 *
+	 * @param attrName
+	 *            the name of the attribute
+	 * @param attrValue
+	 *            the value of the attribute
+	 * @return
+	 */
+	public static StringBuffer createAttribute(String attrName, String attrValue) {
+		StringBuffer attribute = new StringBuffer();
+		if (attrName != null && attrValue != null) {
+			attribute.append(attrName).append(IIntroHTMLConstants.EQUALS)
+					.append(IIntroHTMLConstants.QUOTE).append(attrValue)
+					.append(IIntroHTMLConstants.QUOTE);
+		}
+		return attribute;
+	}
 
-    public static StringBuffer openHTMLStartTag(String elementName) {
-        return new StringBuffer().append(IIntroHTMLConstants.LT).append(
-                elementName);
-    }
+	public static StringBuffer openHTMLStartTag(String elementName) {
+		return new StringBuffer().append(IIntroHTMLConstants.LT).append(
+				elementName);
+	}
 
-    public static StringBuffer closeHTMLTag() {
-        return closeHTMLTag(true);
-    }
+	public static StringBuffer closeHTMLTag() {
+		return closeHTMLTag(true);
+	}
 
-    public static StringBuffer closeHTMLTag(boolean newLine) {
-        StringBuffer closing = new StringBuffer()
-                .append(IIntroHTMLConstants.GT);
-        if (newLine)
-            closing.append(IIntroHTMLConstants.NEW_LINE);
-        return closing;
-    }
+	public static StringBuffer closeHTMLTag(boolean newLine) {
+		StringBuffer closing = new StringBuffer()
+				.append(IIntroHTMLConstants.GT);
+		if (newLine)
+			closing.append(IIntroHTMLConstants.NEW_LINE);
+		return closing;
+	}
 
-    /**
-     * Determine if the contents of two character arrays are equal
-     *
-     * @param a
-     * @param b
-     * @return
-     */
-    public static boolean equalCharArrayContent(char[] a, char[] b) {
-        if (a.length != b.length)
-            return false;
-        for (int i = 0; i < a.length; i++) {
-            if (a[i] != b[i])
-                return false;
-        }
-        return true;
-    }
+	/**
+	 * Determine if the contents of two character arrays are equal
+	 *
+	 * @param a
+	 * @param b
+	 * @return
+	 */
+	public static boolean equalCharArrayContent(char[] a, char[] b) {
+		if (a.length != b.length)
+			return false;
+		for (int i = 0; i < a.length; i++) {
+			if (a[i] != b[i])
+				return false;
+		}
+		return true;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IIntroHTMLConstants.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IIntroHTMLConstants.java
index 77d2153..021e5fd 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IIntroHTMLConstants.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IIntroHTMLConstants.java
@@ -15,78 +15,78 @@
 
 public interface IIntroHTMLConstants {
 
-    /* Constants required for creating html element tags */
-    String LT = "<"; //$NON-NLS-1$
-    String GT = ">"; //$NON-NLS-1$
-    String FORWARD_SLASH = "/"; //$NON-NLS-1$
-    String QUOTE = "\""; //$NON-NLS-1$
-    String EQUALS = "="; //$NON-NLS-1$
-    String HYPHEN = "-"; //$NON-NLS-1$
-    String SPACE = " "; //$NON-NLS-1$
-    String NEW_LINE = "\n"; //$NON-NLS-1$
-    String TAB = "\t"; //$NON-NLS-1$
-    String SMALL_TAB = "    "; //$NON-NLS-1$
+	/* Constants required for creating html element tags */
+	String LT = "<"; //$NON-NLS-1$
+	String GT = ">"; //$NON-NLS-1$
+	String FORWARD_SLASH = "/"; //$NON-NLS-1$
+	String QUOTE = "\""; //$NON-NLS-1$
+	String EQUALS = "="; //$NON-NLS-1$
+	String HYPHEN = "-"; //$NON-NLS-1$
+	String SPACE = " "; //$NON-NLS-1$
+	String NEW_LINE = "\n"; //$NON-NLS-1$
+	String TAB = "\t"; //$NON-NLS-1$
+	String SMALL_TAB = "    "; //$NON-NLS-1$
 
-    /* HTML element names */
-    String ELEMENT_HTML = "HTML"; //$NON-NLS-1$
-    String ELEMENT_HEAD = "HEAD"; //$NON-NLS-1$
-    String ELEMENT_BASE = "BASE"; //$NON-NLS-1$
-    String ELEMENT_BODY = "BODY"; //$NON-NLS-1$
-    String ELEMENT_TITLE = "TITLE"; //$NON-NLS-1$
-    String ELEMENT_LINK = "LINK"; //$NON-NLS-1$
-    String ELEMENT_DIV = "DIV"; //$NON-NLS-1$
-    String ELEMENT_SPAN = "SPAN"; //$NON-NLS-1$
-    String ELEMENT_ANCHOR = "A"; //$NON-NLS-1$
-    String ELEMENT_OBJECT = "OBJECT"; //$NON-NLS-1$
-    String ELEMENT_IMG = "IMG"; //$NON-NLS-1$
-    String ELEMENT_H1 = "H1"; //$NON-NLS-1$
-    String ELEMENT_H2 = "H2"; //$NON-NLS-1$
-    String ELEMENT_H3 = "H3"; //$NON-NLS-1$
-    String ELEMENT_H4 = "H4"; //$NON-NLS-1$
-    String ELEMENT_HR = "HR"; //$NON-NLS-1$
-    String ELEMENT_PARAGRAPH = "P"; //$NON-NLS-1$
-    String ELEMENT_STYLE = "STYLE"; //$NON-NLS-1$
-    String ELEMENT_TABLE = "TABLE"; //$NON-NLS-1$
-    String ELEMENT_TR = "TR"; //$NON-NLS-1$
-    String ELEMENT_TD = "TD"; //$NON-NLS-1$
-    String ELEMENT_IFrame = "iFrame"; //$NON-NLS-1$
+	/* HTML element names */
+	String ELEMENT_HTML = "HTML"; //$NON-NLS-1$
+	String ELEMENT_HEAD = "HEAD"; //$NON-NLS-1$
+	String ELEMENT_BASE = "BASE"; //$NON-NLS-1$
+	String ELEMENT_BODY = "BODY"; //$NON-NLS-1$
+	String ELEMENT_TITLE = "TITLE"; //$NON-NLS-1$
+	String ELEMENT_LINK = "LINK"; //$NON-NLS-1$
+	String ELEMENT_DIV = "DIV"; //$NON-NLS-1$
+	String ELEMENT_SPAN = "SPAN"; //$NON-NLS-1$
+	String ELEMENT_ANCHOR = "A"; //$NON-NLS-1$
+	String ELEMENT_OBJECT = "OBJECT"; //$NON-NLS-1$
+	String ELEMENT_IMG = "IMG"; //$NON-NLS-1$
+	String ELEMENT_H1 = "H1"; //$NON-NLS-1$
+	String ELEMENT_H2 = "H2"; //$NON-NLS-1$
+	String ELEMENT_H3 = "H3"; //$NON-NLS-1$
+	String ELEMENT_H4 = "H4"; //$NON-NLS-1$
+	String ELEMENT_HR = "HR"; //$NON-NLS-1$
+	String ELEMENT_PARAGRAPH = "P"; //$NON-NLS-1$
+	String ELEMENT_STYLE = "STYLE"; //$NON-NLS-1$
+	String ELEMENT_TABLE = "TABLE"; //$NON-NLS-1$
+	String ELEMENT_TR = "TR"; //$NON-NLS-1$
+	String ELEMENT_TD = "TD"; //$NON-NLS-1$
+	String ELEMENT_IFrame = "iFrame"; //$NON-NLS-1$
 	String ELEMENT_META = "meta"; //$NON-NLS-1$
 
-    /* HTML attribute names */
-    String ATTRIBUTE_ID = "id"; //$NON-NLS-1$
-    String ATTRIBUTE_CLASS = "class"; //$NON-NLS-1$
-    String ATTRIBUTE_STYLE = "style"; //$NON-NLS-1$
-    String ATTRIBUTE_HREF = "href"; //$NON-NLS-1$
-    String ATTRIBUTE_RELATIONSHIP = "rel"; //$NON-NLS-1$
-    String ATTRIBUTE_SRC = "src"; //$NON-NLS-1$
-    String ATTRIBUTE_TYPE = "type"; //$NON-NLS-1$
-    String ATTRIBUTE_DATA = "data"; //$NON-NLS-1$
-    String ATTRIBUTE_ALT = "alt"; //$NON-NLS-1$
-    String ATTRIBUTE_TITLE = "title"; //$NON-NLS-1$
-    String ATTRIBUTE_FRAMEBORDER = "frameborder"; //$NON-NLS-1$
-    String ATTRIBUTE_SCROLLING = "scrolling"; //$NON-NLS-1$
+	/* HTML attribute names */
+	String ATTRIBUTE_ID = "id"; //$NON-NLS-1$
+	String ATTRIBUTE_CLASS = "class"; //$NON-NLS-1$
+	String ATTRIBUTE_STYLE = "style"; //$NON-NLS-1$
+	String ATTRIBUTE_HREF = "href"; //$NON-NLS-1$
+	String ATTRIBUTE_RELATIONSHIP = "rel"; //$NON-NLS-1$
+	String ATTRIBUTE_SRC = "src"; //$NON-NLS-1$
+	String ATTRIBUTE_TYPE = "type"; //$NON-NLS-1$
+	String ATTRIBUTE_DATA = "data"; //$NON-NLS-1$
+	String ATTRIBUTE_ALT = "alt"; //$NON-NLS-1$
+	String ATTRIBUTE_TITLE = "title"; //$NON-NLS-1$
+	String ATTRIBUTE_FRAMEBORDER = "frameborder"; //$NON-NLS-1$
+	String ATTRIBUTE_SCROLLING = "scrolling"; //$NON-NLS-1$
 	String ATTRIBUTE_CONTENT = "content"; //$NON-NLS-1$
 	String ATTRIBUTE_HTTP_EQUIV = "http-equiv"; //$NON-NLS-1$
 
-    /* HTML attribute values */
-    String LINK_REL = "stylesheet"; //$NON-NLS-1$
-    String LINK_STYLE = "text/css"; //$NON-NLS-1$
-    String OBJECT_TYPE = "text/html"; //$NON-NLS-1$
+	/* HTML attribute values */
+	String LINK_REL = "stylesheet"; //$NON-NLS-1$
+	String LINK_STYLE = "text/css"; //$NON-NLS-1$
+	String OBJECT_TYPE = "text/html"; //$NON-NLS-1$
 	String TYPE_HTML_UTF_8 = "text/html; charset=UTF-8"; //$NON-NLS-1$
 	String CONTENT_TYPE = "Content-Type"; //$NON-NLS-1$
 
-    String DIV_ID_PAGE = "page"; //$NON-NLS-1$
-    String DIV_CLASS_INLINE_HTML = "inline-html"; //$NON-NLS-1$
-    String DIV_CLASS_PROVIDED_CONTENT = "provided-content"; //$NON-NLS-1$
+	String DIV_ID_PAGE = "page"; //$NON-NLS-1$
+	String DIV_CLASS_INLINE_HTML = "inline-html"; //$NON-NLS-1$
+	String DIV_CLASS_PROVIDED_CONTENT = "provided-content"; //$NON-NLS-1$
 
-    String ANCHOR_CLASS_LINK = "link"; //$NON-NLS-1$
-    String IMAGE_SRC_BLANK = "icons/blank.gif"; //$NON-NLS-1$
-    String IMAGE_CLASS_BG = "background-image"; //$NON-NLS-1$
-    String LINK_EXTRA_DIV = "link-extra-div"; //$NON-NLS-1$
-    String SPAN_CLASS_DIV_LABEL = "div-label"; //$NON-NLS-1$
-    String SPAN_CLASS_LINK_LABEL = "link-label"; //$NON-NLS-1$
-    String SPAN_CLASS_TEXT = "text"; //$NON-NLS-1$
+	String ANCHOR_CLASS_LINK = "link"; //$NON-NLS-1$
+	String IMAGE_SRC_BLANK = "icons/blank.gif"; //$NON-NLS-1$
+	String IMAGE_CLASS_BG = "background-image"; //$NON-NLS-1$
+	String LINK_EXTRA_DIV = "link-extra-div"; //$NON-NLS-1$
+	String SPAN_CLASS_DIV_LABEL = "div-label"; //$NON-NLS-1$
+	String SPAN_CLASS_LINK_LABEL = "link-label"; //$NON-NLS-1$
+	String SPAN_CLASS_TEXT = "text"; //$NON-NLS-1$
 
-    /* HTML style */
-    String STYLE_HTML = "HTML, BODY, IMG { border: 0px; }"; //$NON-NLS-1$
+	/* HTML style */
+	String STYLE_HTML = "HTML, BODY, IMG { border: 0px; }"; //$NON-NLS-1$
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IntroHTMLGenerator.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IntroHTMLGenerator.java
index 9e7df83..dbeef38 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IntroHTMLGenerator.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IntroHTMLGenerator.java
@@ -510,8 +510,8 @@
 		int indentBase = indentLevel;
 		if (useTable) {
 			indentBase = indentLevel + 1;
-		    anchor2 = generateAnchorElement(element, indentLevel + 1);
-		    labelAnchor = anchor2;
+			anchor2 = generateAnchorElement(element, indentLevel + 1);
+			labelAnchor = anchor2;
 		}
 		// add <IMG src="blank.gif">
 		String blankImageURL = BundleUtil.getResolvedResourceLocation(IIntroHTMLConstants.IMAGE_SRC_BLANK,
@@ -828,8 +828,8 @@
 		IntroTheme theme = introPage.getModelRoot().getTheme();
 		if (theme != null && theme.isScalable()
 				&& FontSelection.FONT_RELATIVE.equals(FontSelection.getFontStyle())) {
-		    String sizeStyle = FontSelection.generatePageFontStyle();
-            style.addContent(sizeStyle);
+			String sizeStyle = FontSelection.generatePageFontStyle();
+			style.addContent(sizeStyle);
 		}
 		return style;
 	}
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractBaseIntroElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractBaseIntroElement.java
index 0aa9745..1c820c7 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractBaseIntroElement.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractBaseIntroElement.java
@@ -33,74 +33,74 @@
  */
 public abstract class AbstractBaseIntroElement extends AbstractIntroIdElement {
 
-    protected static final String ATT_STYLE_ID = "style-id"; //$NON-NLS-1$
-    protected static final String ATT_FILTERED_FROM = "filteredFrom"; //$NON-NLS-1$
+	protected static final String ATT_STYLE_ID = "style-id"; //$NON-NLS-1$
+	protected static final String ATT_FILTERED_FROM = "filteredFrom"; //$NON-NLS-1$
 
-    protected String style_id;
-    protected String filteredFrom;
-    private boolean isFiltered;
+	protected String style_id;
+	protected String filteredFrom;
+	private boolean isFiltered;
 
-    AbstractBaseIntroElement(IConfigurationElement element) {
-        super(element);
-        style_id = element.getAttribute(ATT_STYLE_ID);
-        filteredFrom = element.getAttribute(ATT_FILTERED_FROM);
-    }
+	AbstractBaseIntroElement(IConfigurationElement element) {
+		super(element);
+		style_id = element.getAttribute(ATT_STYLE_ID);
+		filteredFrom = element.getAttribute(ATT_FILTERED_FROM);
+	}
 
-    AbstractBaseIntroElement(Element element, Bundle bundle) {
-        super(element, bundle);
-        style_id = getAttribute(element, ATT_STYLE_ID);
-        filteredFrom = getAttribute(element, ATT_FILTERED_FROM);
-    }
+	AbstractBaseIntroElement(Element element, Bundle bundle) {
+		super(element, bundle);
+		style_id = getAttribute(element, ATT_STYLE_ID);
+		filteredFrom = getAttribute(element, ATT_FILTERED_FROM);
+	}
 
-    /**
-     * Filter this element out based on the presentation kind.
-     *
-     */
-    private boolean checkFilterState() {
-        if (this.isOfType(AbstractIntroElement.MODEL_ROOT))
-            // root element is not filtered.
-            return false;
-        IntroModelRoot root = (IntroModelRoot) getParentPage().getParent();
-        return root.getPresentation().getImplementationKind().equals(
-            filteredFrom) ? true : false;
-    }
+	/**
+	 * Filter this element out based on the presentation kind.
+	 *
+	 */
+	private boolean checkFilterState() {
+		if (this.isOfType(AbstractIntroElement.MODEL_ROOT))
+			// root element is not filtered.
+			return false;
+		IntroModelRoot root = (IntroModelRoot) getParentPage().getParent();
+		return root.getPresentation().getImplementationKind().equals(
+			filteredFrom) ? true : false;
+	}
 
 
-    /**
-     * @return Returns the class id.
-     */
-    public String getStyleId() {
-        return style_id;
-    }
+	/**
+	 * @return Returns the class id.
+	 */
+	public String getStyleId() {
+		return style_id;
+	}
 
-    @Override
+	@Override
 	protected void loadFromParent() {
-        style_id = getAttribute(getElement(), ATT_STYLE_ID);
-        filteredFrom = getAttribute(getElement(), ATT_FILTERED_FROM);
-    }
+		style_id = getAttribute(getElement(), ATT_STYLE_ID);
+		filteredFrom = getAttribute(getElement(), ATT_FILTERED_FROM);
+	}
 
-    /**
-     * @return Returns the filter_kind.
-     */
-    public String getFilteredFrom() {
-        return filteredFrom;
-    }
+	/**
+	 * @return Returns the filter_kind.
+	 */
+	public String getFilteredFrom() {
+		return filteredFrom;
+	}
 
-    /**
-     * Return the filter state of this intro element. We need to do this when
-     * this element has been added to the model, and it has a parent. Also, this
-     * method will not be valid if the UI has not been loaded yet because it it
-     * the creation of the UI that determines the presentation details.
-     *
-     * @return Returns the isFiltered.
-     */
-    public boolean isFiltered() {
-        return checkFilterState() || isFiltered;
-    }
+	/**
+	 * Return the filter state of this intro element. We need to do this when
+	 * this element has been added to the model, and it has a parent. Also, this
+	 * method will not be valid if the UI has not been loaded yet because it it
+	 * the creation of the UI that determines the presentation details.
+	 *
+	 * @return Returns the isFiltered.
+	 */
+	public boolean isFiltered() {
+		return checkFilterState() || isFiltered;
+	}
 
-    public void setFilterState(boolean state) {
-        isFiltered = state;
-    }
+	public void setFilterState(boolean state) {
+		isFiltered = state;
+	}
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroContainer.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroContainer.java
index 6e256e0..5004763 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroContainer.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroContainer.java
@@ -33,626 +33,626 @@
  */
 public abstract class AbstractIntroContainer extends AbstractBaseIntroElement {
 
-    protected static final String ATT_BG_IMAGE = "bgImage"; //$NON-NLS-1$
+	protected static final String ATT_BG_IMAGE = "bgImage"; //$NON-NLS-1$
 	// vector is lazily created when children are loaded in a call to
-    // loadChildren().
+	// loadChildren().
 	protected Vector<AbstractIntroElement> children;
-    protected boolean loaded = false;
-    protected boolean resolved = false;
-    protected Element element;
+	protected boolean loaded = false;
+	protected boolean resolved = false;
+	protected Element element;
 
-    // store the base since it will needed later to resolve children.
-    protected String base;
+	// store the base since it will needed later to resolve children.
+	protected String base;
 
-    /**
-     * @param element
-     */
-    AbstractIntroContainer(IConfigurationElement element) {
-        super(element);
-    }
+	/**
+	 * @param element
+	 */
+	AbstractIntroContainer(IConfigurationElement element) {
+		super(element);
+	}
 
-    /**
-     * @param element
-     */
-    AbstractIntroContainer(Element element, Bundle bundle) {
-        super(element, bundle);
-        this.element = element;
-    }
+	/**
+	 * @param element
+	 */
+	AbstractIntroContainer(Element element, Bundle bundle) {
+		super(element, bundle);
+		this.element = element;
+	}
 
-    /**
-     * @param element
-     */
-    AbstractIntroContainer(Element element, Bundle bundle, String base) {
-        super(element, bundle);
-        this.element = element;
-        this.base = base;
-    }
+	/**
+	 * @param element
+	 */
+	AbstractIntroContainer(Element element, Bundle bundle, String base) {
+		super(element, bundle);
+		this.element = element;
+		this.base = base;
+	}
 
 
-    /**
-     * Get the children of this container. Loading children and resolving
-     * includes and extension is delayed until this method call.
-     *
-     * @return Returns all the children of this container.
-     */
-    public AbstractIntroElement[] getChildren() {
-        if (!loaded)
-            loadChildren();
+	/**
+	 * Get the children of this container. Loading children and resolving
+	 * includes and extension is delayed until this method call.
+	 *
+	 * @return Returns all the children of this container.
+	 */
+	public AbstractIntroElement[] getChildren() {
+		if (!loaded)
+			loadChildren();
 
-        if (!loaded)
-            // if loaded still is false, something went wrong. This could happen
-            // when loading content from another external content files.
-            return new AbstractIntroElement[0];
+		if (!loaded)
+			// if loaded still is false, something went wrong. This could happen
+			// when loading content from another external content files.
+			return new AbstractIntroElement[0];
 
-        if (!resolved)
-            resolveChildren();
+		if (!resolved)
+			resolveChildren();
 
-        Vector filtered = filterChildren(children);
+		Vector filtered = filterChildren(children);
 
-        AbstractIntroElement[] childrenElements = (AbstractIntroElement[]) convertToModelArray(
-        	filtered, AbstractIntroElement.ELEMENT);
-        return childrenElements;
-    }
+		AbstractIntroElement[] childrenElements = (AbstractIntroElement[]) convertToModelArray(
+			filtered, AbstractIntroElement.ELEMENT);
+		return childrenElements;
+	}
 
-    /**
-     * Returns all the children of this container that are of the specified
-     * type(s). <br>
-     * An example of an element mask is as follows:
-     * <p>
-     * <code>
-     * 		int elementMask = IntroElement.IMAGE | IntroElement.DEFAULT_LINK;
-     * 		int elementMask = IntroElement.ABSTRACT_CONTAINER;
-     * </code>
-     * The return type is determined depending on the mask. If the mask is a
-     * predefined constant in the IntroElement, and it does not correspond to an
-     * abstract model class, then the object returned can be safely cast to an
-     * array of the corresponding model class. For exmaple, the following code
-     * gets all groups in the given page, in the same order they appear in the
-     * plugin.xml markup:
-     * <p>
-     * <code>
-     * 		Introgroup[] groups  = (IntroGroup[])page.getChildrenOfType(IntroElement.GROUP);
-     * </code>
-     *
-     * However, if the element mask is not homogenous (for example: LINKS |
-     * GROUP) then the returned array must be cast to an array of
-     * IntroElements.For exmaple, the following code gets all images and links
-     * in the given page, in the same order they appear in the plugin.xml
-     * markup:
-     * <p>
-     * <code>
-     * 		int elementMask = IntroElement.IMAGE | IntroElement.DEFAULT_LINK;
-     * 		IntroElement[] imagesAndLinks  =
-     * 			(IntroElement[])page.getChildrenOfType(elementMask);
-     * </code>
-     *
-     * @return An array of elements of the right type. If the container has no
-     *         children, or no children of the specified types, returns an empty
-     *         array.
-     */
-    public Object[] getChildrenOfType(int elementMask) {
+	/**
+	 * Returns all the children of this container that are of the specified
+	 * type(s). <br>
+	 * An example of an element mask is as follows:
+	 * <p>
+	 * <code>
+	 * 		int elementMask = IntroElement.IMAGE | IntroElement.DEFAULT_LINK;
+	 * 		int elementMask = IntroElement.ABSTRACT_CONTAINER;
+	 * </code>
+	 * The return type is determined depending on the mask. If the mask is a
+	 * predefined constant in the IntroElement, and it does not correspond to an
+	 * abstract model class, then the object returned can be safely cast to an
+	 * array of the corresponding model class. For exmaple, the following code
+	 * gets all groups in the given page, in the same order they appear in the
+	 * plugin.xml markup:
+	 * <p>
+	 * <code>
+	 * 		Introgroup[] groups  = (IntroGroup[])page.getChildrenOfType(IntroElement.GROUP);
+	 * </code>
+	 *
+	 * However, if the element mask is not homogenous (for example: LINKS |
+	 * GROUP) then the returned array must be cast to an array of
+	 * IntroElements.For exmaple, the following code gets all images and links
+	 * in the given page, in the same order they appear in the plugin.xml
+	 * markup:
+	 * <p>
+	 * <code>
+	 * 		int elementMask = IntroElement.IMAGE | IntroElement.DEFAULT_LINK;
+	 * 		IntroElement[] imagesAndLinks  =
+	 * 			(IntroElement[])page.getChildrenOfType(elementMask);
+	 * </code>
+	 *
+	 * @return An array of elements of the right type. If the container has no
+	 *         children, or no children of the specified types, returns an empty
+	 *         array.
+	 */
+	public Object[] getChildrenOfType(int elementMask) {
 
-        AbstractIntroElement[] childrenElements = getChildren();
-        // if we have no children, we still need to return an empty array of
-        // the correct type.
+		AbstractIntroElement[] childrenElements = getChildren();
+		// if we have no children, we still need to return an empty array of
+		// the correct type.
 		Vector<AbstractIntroElement> typedChildren = new Vector<>();
-        for (int i = 0; i < childrenElements.length; i++) {
-            AbstractIntroElement element = childrenElements[i];
-            if (element.isOfType(elementMask))
-                typedChildren.addElement(element);
-        }
-        return convertToModelArray(typedChildren, elementMask);
-    }
+		for (int i = 0; i < childrenElements.length; i++) {
+			AbstractIntroElement element = childrenElements[i];
+			if (element.isOfType(elementMask))
+				typedChildren.addElement(element);
+		}
+		return convertToModelArray(typedChildren, elementMask);
+	}
 
-    /**
-     * Utility method to convert all the content of a vector of
-     * AbstractIntroElements into an array of IntroElements cast to the correct
-     * class type. It is assumed that all elements in this vector are
-     * IntroElement instances. If elementMask is a predefined model type (ie:
-     * homogenous), then return array of corresponding type. Else, returns an
-     * array of IntroElements.
-     *
-     * @param vector
-     */
-    private Object[] convertToModelArray(Vector vector, int elementMask) {
-        int size = vector.size();
-        Object[] src = null;
-        switch (elementMask) {
-        // homogenous vector.
-        case AbstractIntroElement.GROUP:
-            src = new IntroGroup[size];
-            break;
-        case AbstractIntroElement.LINK:
-            src = new IntroLink[size];
-            break;
-        case AbstractIntroElement.TEXT:
-            src = new IntroText[size];
-            break;
-        case AbstractIntroElement.IMAGE:
-            src = new IntroImage[size];
-            break;
-        case AbstractIntroElement.HR:
-            src = new IntroSeparator[size];
-            break;
-        case AbstractIntroElement.HTML:
-            src = new IntroHTML[size];
-            break;
-        case AbstractIntroElement.INCLUDE:
-            src = new IntroInclude[size];
-            break;
-        case AbstractIntroElement.PAGE:
-            src = new IntroPage[size];
-            break;
-        case AbstractIntroElement.ABSTRACT_PAGE:
-            src = new AbstractIntroPage[size];
-            break;
-        case AbstractIntroElement.ABSTRACT_CONTAINER:
-            src = new AbstractIntroContainer[size];
-            break;
-        case AbstractIntroElement.HEAD:
-            src = new IntroHead[size];
-            break;
-        case AbstractIntroElement.PAGE_TITLE:
-            src = new IntroPageTitle[size];
-            break;
-        case AbstractIntroElement.ANCHOR:
-            src = new IntroAnchor[size];
-            break;
-        case AbstractIntroElement.CONTENT_PROVIDER:
-            src = new IntroContentProvider[size];
-            break;
+	/**
+	 * Utility method to convert all the content of a vector of
+	 * AbstractIntroElements into an array of IntroElements cast to the correct
+	 * class type. It is assumed that all elements in this vector are
+	 * IntroElement instances. If elementMask is a predefined model type (ie:
+	 * homogenous), then return array of corresponding type. Else, returns an
+	 * array of IntroElements.
+	 *
+	 * @param vector
+	 */
+	private Object[] convertToModelArray(Vector vector, int elementMask) {
+		int size = vector.size();
+		Object[] src = null;
+		switch (elementMask) {
+		// homogenous vector.
+		case AbstractIntroElement.GROUP:
+			src = new IntroGroup[size];
+			break;
+		case AbstractIntroElement.LINK:
+			src = new IntroLink[size];
+			break;
+		case AbstractIntroElement.TEXT:
+			src = new IntroText[size];
+			break;
+		case AbstractIntroElement.IMAGE:
+			src = new IntroImage[size];
+			break;
+		case AbstractIntroElement.HR:
+			src = new IntroSeparator[size];
+			break;
+		case AbstractIntroElement.HTML:
+			src = new IntroHTML[size];
+			break;
+		case AbstractIntroElement.INCLUDE:
+			src = new IntroInclude[size];
+			break;
+		case AbstractIntroElement.PAGE:
+			src = new IntroPage[size];
+			break;
+		case AbstractIntroElement.ABSTRACT_PAGE:
+			src = new AbstractIntroPage[size];
+			break;
+		case AbstractIntroElement.ABSTRACT_CONTAINER:
+			src = new AbstractIntroContainer[size];
+			break;
+		case AbstractIntroElement.HEAD:
+			src = new IntroHead[size];
+			break;
+		case AbstractIntroElement.PAGE_TITLE:
+			src = new IntroPageTitle[size];
+			break;
+		case AbstractIntroElement.ANCHOR:
+			src = new IntroAnchor[size];
+			break;
+		case AbstractIntroElement.CONTENT_PROVIDER:
+			src = new IntroContentProvider[size];
+			break;
 
-        default:
-            // now handle left over abstract types. Vector is not homogenous.
-            src = new AbstractIntroElement[size];
-            break;
-        }
+		default:
+			// now handle left over abstract types. Vector is not homogenous.
+			src = new AbstractIntroElement[size];
+			break;
+		}
 
-        vector.copyInto(src);
-        return src;
+		vector.copyInto(src);
+		return src;
 
-    }
+	}
 
-    /**
-     * Load all the children of this container. A container can have other
-     * containers, links, htmls, text, image, include. Load them in the order
-     * they appear in the xml content file.
-     */
-    protected void loadChildren() {
-        // init the children vector. old children are disposed automatically.
+	/**
+	 * Load all the children of this container. A container can have other
+	 * containers, links, htmls, text, image, include. Load them in the order
+	 * they appear in the xml content file.
+	 */
+	protected void loadChildren() {
+		// init the children vector. old children are disposed automatically.
 		children = new Vector<>();
 
 
-        NodeList nodeList = element.getChildNodes();
+		NodeList nodeList = element.getChildNodes();
 		Vector<Node> vector = new Vector<>();
-        for (int i = 0; i < nodeList.getLength(); i++) {
-            Node node = nodeList.item(i);
-            if (node.getNodeType() == Node.ELEMENT_NODE)
-                vector.add(node);
-        }
-        Element[] filteredElements = new Element[vector.size()];
-        vector.copyInto(filteredElements);
-        // add the elements at the end children's vector.
-        insertElementsBefore(filteredElements, getBundle(), base, children
-            .size(), null);
-        loaded = true;
-        // we cannot free DOM model element because a page's children may be
-        // nulled when reflowing a content provider.
-    }
+		for (int i = 0; i < nodeList.getLength(); i++) {
+			Node node = nodeList.item(i);
+			if (node.getNodeType() == Node.ELEMENT_NODE)
+				vector.add(node);
+		}
+		Element[] filteredElements = new Element[vector.size()];
+		vector.copyInto(filteredElements);
+		// add the elements at the end children's vector.
+		insertElementsBefore(filteredElements, getBundle(), base, children
+			.size(), null);
+		loaded = true;
+		// we cannot free DOM model element because a page's children may be
+		// nulled when reflowing a content provider.
+	}
 
-    /**
-     * Adds the given elements as children of this container, before the
-     * specified index.
-     *
-     * @param childElements
-     */
-    protected void insertElementsBefore(Element[] childElements, Bundle bundle,
-            String base, int index, String mixinStyle) {
-        for (int i = 0; i < childElements.length; i++) {
-            Element childElement = childElements[i];
-            AbstractIntroElement child = getModelChild(childElement, bundle,
-                base);
-            if (child != null) {
-                child.setParent(this);
-                child.setMixinStyle(mixinStyle);
-                children.add(index, child);
-                // index is only incremented if we actually added a child.
-                index++;
-            }
-        }
-    }
+	/**
+	 * Adds the given elements as children of this container, before the
+	 * specified index.
+	 *
+	 * @param childElements
+	 */
+	protected void insertElementsBefore(Element[] childElements, Bundle bundle,
+			String base, int index, String mixinStyle) {
+		for (int i = 0; i < childElements.length; i++) {
+			Element childElement = childElements[i];
+			AbstractIntroElement child = getModelChild(childElement, bundle,
+				base);
+			if (child != null) {
+				child.setParent(this);
+				child.setMixinStyle(mixinStyle);
+				children.add(index, child);
+				// index is only incremented if we actually added a child.
+				index++;
+			}
+		}
+	}
 
-    /**
-     * Adds the given elements as children of this container, before the
-     * specified element. The element must be a direct child of this container.
-     *
-     * @param childElements
-     */
-    protected void insertElementsBefore(Element[] childElements, Bundle bundle,
-            String base, AbstractIntroElement child, String mixinStyle) {
-        int childLocation = children.indexOf(child);
-        if (childLocation == -1)
-            // bad reference child.
-            return;
-        insertElementsBefore(childElements, bundle, base, childLocation, mixinStyle);
-    }
+	/**
+	 * Adds the given elements as children of this container, before the
+	 * specified element. The element must be a direct child of this container.
+	 *
+	 * @param childElements
+	 */
+	protected void insertElementsBefore(Element[] childElements, Bundle bundle,
+			String base, AbstractIntroElement child, String mixinStyle) {
+		int childLocation = children.indexOf(child);
+		if (childLocation == -1)
+			// bad reference child.
+			return;
+		insertElementsBefore(childElements, bundle, base, childLocation, mixinStyle);
+	}
 
 
 
-    /**
-     * Adds a child to this container, depending on its type. Subclasses may
-     * override if there is a child specific to the subclass.
-     *
-     * @param childElements
-     */
-    protected AbstractIntroElement getModelChild(Element childElement,
-            Bundle bundle, String base) {
+	/**
+	 * Adds a child to this container, depending on its type. Subclasses may
+	 * override if there is a child specific to the subclass.
+	 *
+	 * @param childElements
+	 */
+	protected AbstractIntroElement getModelChild(Element childElement,
+			Bundle bundle, String base) {
 
-        AbstractIntroElement child = null;
-        if (childElement.getNodeName().equalsIgnoreCase(IntroGroup.TAG_GROUP))
-            child = new IntroGroup(childElement, bundle, base);
-        else if (childElement.getNodeName()
-            .equalsIgnoreCase(IntroLink.TAG_LINK))
-            child = new IntroLink(childElement, bundle, base);
-        else if (childElement.getNodeName()
-            .equalsIgnoreCase(IntroText.TAG_TEXT))
-            child = new IntroText(childElement, bundle);
-        else if (childElement.getNodeName().equalsIgnoreCase(
-            IntroImage.TAG_IMAGE))
-            child = new IntroImage(childElement, bundle, base);
-        else if (childElement.getNodeName().equalsIgnoreCase(
-                IntroSeparator.TAG_HR))
-            child = new IntroSeparator(childElement, bundle, base);
-        else if (childElement.getNodeName()
-            .equalsIgnoreCase(IntroHTML.TAG_HTML))
-            child = new IntroHTML(childElement, bundle, base);
-        else if (childElement.getNodeName().equalsIgnoreCase(
-            IntroInclude.TAG_INCLUDE))
-            child = new IntroInclude(childElement, bundle);
-        else if (childElement.getNodeName().equalsIgnoreCase(
-            IntroAnchor.TAG_ANCHOR))
-            child = new IntroAnchor(childElement, bundle);
-        else if (childElement.getNodeName().equalsIgnoreCase(
-            IntroContentProvider.TAG_CONTENT_PROVIDER))
-            child = new IntroContentProvider(childElement, bundle);
-        return child;
-    }
+		AbstractIntroElement child = null;
+		if (childElement.getNodeName().equalsIgnoreCase(IntroGroup.TAG_GROUP))
+			child = new IntroGroup(childElement, bundle, base);
+		else if (childElement.getNodeName()
+			.equalsIgnoreCase(IntroLink.TAG_LINK))
+			child = new IntroLink(childElement, bundle, base);
+		else if (childElement.getNodeName()
+			.equalsIgnoreCase(IntroText.TAG_TEXT))
+			child = new IntroText(childElement, bundle);
+		else if (childElement.getNodeName().equalsIgnoreCase(
+			IntroImage.TAG_IMAGE))
+			child = new IntroImage(childElement, bundle, base);
+		else if (childElement.getNodeName().equalsIgnoreCase(
+				IntroSeparator.TAG_HR))
+			child = new IntroSeparator(childElement, bundle, base);
+		else if (childElement.getNodeName()
+			.equalsIgnoreCase(IntroHTML.TAG_HTML))
+			child = new IntroHTML(childElement, bundle, base);
+		else if (childElement.getNodeName().equalsIgnoreCase(
+			IntroInclude.TAG_INCLUDE))
+			child = new IntroInclude(childElement, bundle);
+		else if (childElement.getNodeName().equalsIgnoreCase(
+			IntroAnchor.TAG_ANCHOR))
+			child = new IntroAnchor(childElement, bundle);
+		else if (childElement.getNodeName().equalsIgnoreCase(
+			IntroContentProvider.TAG_CONTENT_PROVIDER))
+			child = new IntroContentProvider(childElement, bundle);
+		return child;
+	}
 
 
-    /**
-     * Resolve each include in this container's children. Includes are lazily
-     * resolved on a per container basis, when the container is resolved.
-     */
-    protected void resolveChildren() {
-    	AbstractIntroElement[] array = children.toArray(new AbstractIntroElement[children.size()]);
-    	for (int i=0;i<array.length;++i) {
-            AbstractIntroElement child = array[i];
-            if (UAContentFilter.isFiltered(UAElementFactory.newElement(child.getElement()), IntroEvaluationContext.getContext())) {
-            	children.remove(child);
-            }
-            else if (child.getType() == AbstractIntroElement.INCLUDE) {
-                resolveInclude((IntroInclude) child);
-            }
-    	}
-        resolved = true;
-    }
+	/**
+	 * Resolve each include in this container's children. Includes are lazily
+	 * resolved on a per container basis, when the container is resolved.
+	 */
+	protected void resolveChildren() {
+		AbstractIntroElement[] array = children.toArray(new AbstractIntroElement[children.size()]);
+		for (int i=0;i<array.length;++i) {
+			AbstractIntroElement child = array[i];
+			if (UAContentFilter.isFiltered(UAElementFactory.newElement(child.getElement()), IntroEvaluationContext.getContext())) {
+				children.remove(child);
+			}
+			else if (child.getType() == AbstractIntroElement.INCLUDE) {
+				resolveInclude((IntroInclude) child);
+			}
+		}
+		resolved = true;
+	}
 
-    /**
-     * Resolves an include. Gets the intro element pointed to by the include,
-     * and adds it as a child of this current container. If target is not a
-     * group, or any element that can be included in a group, ignore this
-     * include.
-     *
-     * @param include
-     */
-    private void resolveInclude(IntroInclude include) {
-        AbstractIntroElement target = findIncludeTarget(include);
-        if (target == null)
-            // target could not be found.
-            return;
-        if (target.isOfType(AbstractIntroElement.GROUP
-                | AbstractIntroElement.ABSTRACT_TEXT
-                | AbstractIntroElement.IMAGE | AbstractIntroElement.TEXT
-                | AbstractIntroElement.PAGE_TITLE))
-            // be picky about model elements to include. Can not use
-            // BASE_ELEMENT model class because pages can not be included.
-            insertTarget(include, target);
-    }
+	/**
+	 * Resolves an include. Gets the intro element pointed to by the include,
+	 * and adds it as a child of this current container. If target is not a
+	 * group, or any element that can be included in a group, ignore this
+	 * include.
+	 *
+	 * @param include
+	 */
+	private void resolveInclude(IntroInclude include) {
+		AbstractIntroElement target = findIncludeTarget(include);
+		if (target == null)
+			// target could not be found.
+			return;
+		if (target.isOfType(AbstractIntroElement.GROUP
+				| AbstractIntroElement.ABSTRACT_TEXT
+				| AbstractIntroElement.IMAGE | AbstractIntroElement.TEXT
+				| AbstractIntroElement.PAGE_TITLE))
+			// be picky about model elements to include. Can not use
+			// BASE_ELEMENT model class because pages can not be included.
+			insertTarget(include, target);
+	}
 
-    /**
-     * Filters the appropriate elements from the given Vector, according to the current
-     * environment. For example, if one of the elements has a tag to filter for os=linux and
-     * the os is win32, the element will not be returned in the resulting Vector.
-     *
-     * @param unfiltered the unfiltered elements
-     * @return a new Vector with elements filtered
-     */
+	/**
+	 * Filters the appropriate elements from the given Vector, according to the current
+	 * environment. For example, if one of the elements has a tag to filter for os=linux and
+	 * the os is win32, the element will not be returned in the resulting Vector.
+	 *
+	 * @param unfiltered the unfiltered elements
+	 * @return a new Vector with elements filtered
+	 */
 	private <T> Vector<T> filterChildren(Vector<T> unfiltered) {
 		Vector<T> filtered = new Vector<>();
 		Iterator<T> iter = unfiltered.iterator();
-    	while (iter.hasNext()) {
+		while (iter.hasNext()) {
 			T element = iter.next();
-    		if (!UAContentFilter.isFiltered(element, IntroEvaluationContext.getContext())) {
-        		filtered.add(element);
-    		}
-    	}
-    	return filtered;
-    }
+			if (!UAContentFilter.isFiltered(element, IntroEvaluationContext.getContext())) {
+				filtered.add(element);
+			}
+		}
+		return filtered;
+	}
 
-    /**
-     * Find the target element pointed to by the path in the include. It is
-     * assumed that configId always points to an external config, and not the
-     * same config of the inlcude.
-     *
-     * @param include
-     * @param path
-     * @return
-     */
-    private AbstractIntroElement findIncludeTarget(IntroInclude include) {
-        String path = include.getPath();
-        IntroModelRoot targetModelRoot = (IntroModelRoot) getParentPage()
-            .getParent();
-        String targetConfigID = include.getConfigId();
-        if (targetConfigID != null)
-            targetModelRoot = ExtensionPointManager.getInst().getModel(
-                targetConfigID);
-        if (targetModelRoot == null)
-            // if the target config was not found, skip this include.
-            return null;
-        AbstractIntroElement target = findTarget(targetModelRoot, path);
-        return target;
-    }
+	/**
+	 * Find the target element pointed to by the path in the include. It is
+	 * assumed that configId always points to an external config, and not the
+	 * same config of the inlcude.
+	 *
+	 * @param include
+	 * @param path
+	 * @return
+	 */
+	private AbstractIntroElement findIncludeTarget(IntroInclude include) {
+		String path = include.getPath();
+		IntroModelRoot targetModelRoot = (IntroModelRoot) getParentPage()
+			.getParent();
+		String targetConfigID = include.getConfigId();
+		if (targetConfigID != null)
+			targetModelRoot = ExtensionPointManager.getInst().getModel(
+				targetConfigID);
+		if (targetModelRoot == null)
+			// if the target config was not found, skip this include.
+			return null;
+		AbstractIntroElement target = findTarget(targetModelRoot, path);
+		return target;
+	}
 
-    /**
-     * Finds the child element that corresponds to the given path in the passed
-     * model.<br>
-     * ps: This method could be a static method, but left as instance for model
-     * enhancements.
-     *
-     * @param model
-     * @param path
-     * @return
-     */
-    public AbstractIntroElement findTarget(AbstractIntroContainer container,
-            String path) {
-        // extract path segments. Get first segment to start search.
-        String[] pathSegments = path.split("/"); //$NON-NLS-1$
-        if (container == null)
-            return null;
+	/**
+	 * Finds the child element that corresponds to the given path in the passed
+	 * model.<br>
+	 * ps: This method could be a static method, but left as instance for model
+	 * enhancements.
+	 *
+	 * @param model
+	 * @param path
+	 * @return
+	 */
+	public AbstractIntroElement findTarget(AbstractIntroContainer container,
+			String path) {
+		// extract path segments. Get first segment to start search.
+		String[] pathSegments = path.split("/"); //$NON-NLS-1$
+		if (container == null)
+			return null;
 
-        AbstractIntroElement target = container.findChild(pathSegments[0]);
-        if (target == null)
-            // there is no direct child with the specified first path segment.
-            return null;
+		AbstractIntroElement target = container.findChild(pathSegments[0]);
+		if (target == null)
+			// there is no direct child with the specified first path segment.
+			return null;
 
-        // found parent segment. now find each child segment.
-        for (int i = 1; i < pathSegments.length; i++) {
-        	if (!(target instanceof AbstractIntroContainer)) {
-                // parent is not a container, so no point going on.
-        		return null;
-        	}
-            String pathSegment = pathSegments[i];
-            target = ((AbstractIntroContainer) target).findChild(pathSegment);
-            if (target == null)
-                // tried to find next segment and failed.
-                return null;
-        }
-        return target;
-    }
+		// found parent segment. now find each child segment.
+		for (int i = 1; i < pathSegments.length; i++) {
+			if (!(target instanceof AbstractIntroContainer)) {
+				// parent is not a container, so no point going on.
+				return null;
+			}
+			String pathSegment = pathSegments[i];
+			target = ((AbstractIntroContainer) target).findChild(pathSegment);
+			if (target == null)
+				// tried to find next segment and failed.
+				return null;
+		}
+		return target;
+	}
 
-    public AbstractIntroElement findTarget(AbstractIntroContainer container,
-            String path, String extensionId) {
-        // resolve path segments if they are incomplete.
-        if (path.contains("@")) { //$NON-NLS-1$
-        	// new in 3.2: dynamic resolution of incomplete target paths
-        	IntroModelRoot root = getModelRoot();
-        	if (root!=null) {
-        		path = root.resolvePath(extensionId, path);
-        		if (path==null)
-        			return null;
-        	}
+	public AbstractIntroElement findTarget(AbstractIntroContainer container,
+			String path, String extensionId) {
+		// resolve path segments if they are incomplete.
+		if (path.contains("@")) { //$NON-NLS-1$
+			// new in 3.2: dynamic resolution of incomplete target paths
+			IntroModelRoot root = getModelRoot();
+			if (root!=null) {
+				path = root.resolvePath(extensionId, path);
+				if (path==null)
+					return null;
+			}
 
-        }
-        return this.findTarget(container, path);
-    }
+		}
+		return this.findTarget(container, path);
+	}
 
 
-    public AbstractIntroElement findTarget(String path) {
-        return findTarget(this, path);
-    }
+	public AbstractIntroElement findTarget(String path) {
+		return findTarget(this, path);
+	}
 
 
 
-    /*
-     * searches direct children for the first child with the given id. The type
-     * of the child can be any model element that has an id. ie:
-     * AbstractIntroIdElement
-     *
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public AbstractIntroElement findChild(String elementId) {
-        return findChild(elementId, ID_ELEMENT);
-    }
+	/*
+	 * searches direct children for the first child with the given id. The type
+	 * of the child can be any model element that has an id. ie:
+	 * AbstractIntroIdElement
+	 *
+	 * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
+	 */
+	public AbstractIntroElement findChild(String elementId) {
+		return findChild(elementId, ID_ELEMENT);
+	}
 
-    /*
-     * searches direct children for the first child with the given id. The type
-     * of the child must be of the passed model types mask. This method handles
-     * the 3.0 style model for content. Pages enhance this behavior with DOM
-     * apis.
-     *
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public AbstractIntroElement findChild(String elementId, int elementMask) {
-        if (!loaded)
-            loadChildren();
+	/*
+	 * searches direct children for the first child with the given id. The type
+	 * of the child must be of the passed model types mask. This method handles
+	 * the 3.0 style model for content. Pages enhance this behavior with DOM
+	 * apis.
+	 *
+	 * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
+	 */
+	public AbstractIntroElement findChild(String elementId, int elementMask) {
+		if (!loaded)
+			loadChildren();
 
-        for (int i = 0; i < children.size(); i++) {
-            AbstractIntroElement aChild = children.elementAt(i);
-            if (!aChild.isOfType(ID_ELEMENT))
-                // includes and heads do not have ids, and so can not be
-                // referenced directly. This means that they can not be
-                // targets for other includes. Skip, just in case someone
-                // adds an id to it! Also, this applies to all elements in
-                // the model that do not have ids.
-                continue;
-            AbstractIntroIdElement child = (AbstractIntroIdElement) aChild;
-            if (child.getId() != null && child.getId().equals(elementId)
-                    && child.isOfType(elementMask))
-                return child;
-        }
-        // no child with given id and type found.
-        return null;
-    }
+		for (int i = 0; i < children.size(); i++) {
+			AbstractIntroElement aChild = children.elementAt(i);
+			if (!aChild.isOfType(ID_ELEMENT))
+				// includes and heads do not have ids, and so can not be
+				// referenced directly. This means that they can not be
+				// targets for other includes. Skip, just in case someone
+				// adds an id to it! Also, this applies to all elements in
+				// the model that do not have ids.
+				continue;
+			AbstractIntroIdElement child = (AbstractIntroIdElement) aChild;
+			if (child.getId() != null && child.getId().equals(elementId)
+					&& child.isOfType(elementMask))
+				return child;
+		}
+		// no child with given id and type found.
+		return null;
+	}
 
 
 
-    private void insertTarget(IntroInclude include, AbstractIntroElement target) {
-        int includeLocation = children.indexOf(include);
-        if (includeLocation == -1)
-            // should never be here.
-            return;
-        children.remove(includeLocation);
-        // handle merging target styles first, before changing target parent to
-        // enable inheritance of styles.
-        handleIncludeStyleInheritence(include, target);
-        // now clone the target node because original model should be kept
-        // intact.
-        AbstractIntroElement clonedTarget = null;
-        try {
-            clonedTarget = (AbstractIntroElement) target.clone();
-        } catch (CloneNotSupportedException ex) {
-            // should never be here.
-            Log.error("Failed to clone Intro model node.", ex); //$NON-NLS-1$
-            return;
-        }
-        // set parent of cloned target to be this container.
-        clonedTarget.setParent(this);
-        children.insertElementAt(clonedTarget, includeLocation);
-    }
+	private void insertTarget(IntroInclude include, AbstractIntroElement target) {
+		int includeLocation = children.indexOf(include);
+		if (includeLocation == -1)
+			// should never be here.
+			return;
+		children.remove(includeLocation);
+		// handle merging target styles first, before changing target parent to
+		// enable inheritance of styles.
+		handleIncludeStyleInheritence(include, target);
+		// now clone the target node because original model should be kept
+		// intact.
+		AbstractIntroElement clonedTarget = null;
+		try {
+			clonedTarget = (AbstractIntroElement) target.clone();
+		} catch (CloneNotSupportedException ex) {
+			// should never be here.
+			Log.error("Failed to clone Intro model node.", ex); //$NON-NLS-1$
+			return;
+		}
+		// set parent of cloned target to be this container.
+		clonedTarget.setParent(this);
+		children.insertElementAt(clonedTarget, includeLocation);
+	}
 
-    /**
-     * Updates the inherited styles based on the merge-style attribute. If we
-     * are including a shared group, or if we are including an element from the
-     * same page, do nothing. For inherited alt-styles, we have to cache the pd
-     * from which we inherited the styles to be able to access resources in that
-     * plugin. Also note that when including a container, it must be resolved
-     * otherwise reparenting will cause includes in this target container to
-     * fail.
-     *
-     * @param include
-     * @param target
-     */
-    private void handleIncludeStyleInheritence(IntroInclude include,
-            AbstractIntroElement target) {
+	/**
+	 * Updates the inherited styles based on the merge-style attribute. If we
+	 * are including a shared group, or if we are including an element from the
+	 * same page, do nothing. For inherited alt-styles, we have to cache the pd
+	 * from which we inherited the styles to be able to access resources in that
+	 * plugin. Also note that when including a container, it must be resolved
+	 * otherwise reparenting will cause includes in this target container to
+	 * fail.
+	 *
+	 * @param include
+	 * @param target
+	 */
+	private void handleIncludeStyleInheritence(IntroInclude include,
+			AbstractIntroElement target) {
 
-        if (include.getMergeStyle() == false)
-            // target styles are not needed. nothing to do.
-            return;
+		if (include.getMergeStyle() == false)
+			// target styles are not needed. nothing to do.
+			return;
 
-        if (target.getParent().getType() == AbstractIntroElement.MODEL_ROOT
-                || target.getParentPage().equals(include.getParentPage()))
-            // If we are including from this same page ie: target is in the
-            // same page, OR if we are including a shared group, defined
-            // under a config, do not include styles.
-            return;
+		if (target.getParent().getType() == AbstractIntroElement.MODEL_ROOT
+				|| target.getParentPage().equals(include.getParentPage()))
+			// If we are including from this same page ie: target is in the
+			// same page, OR if we are including a shared group, defined
+			// under a config, do not include styles.
+			return;
 
-        // Update the parent page styles. skip style if it is null. Note,
-        // include both the target page styles and inherited styles. The full
-        // page styles need to be include.
-        String style = target.getParentPage().getStyle();
-        if (style != null)
-            getParentPage().addStyle(style);
+		// Update the parent page styles. skip style if it is null. Note,
+		// include both the target page styles and inherited styles. The full
+		// page styles need to be include.
+		String style = target.getParentPage().getStyle();
+		if (style != null)
+			getParentPage().addStyle(style);
 
-        // for alt-style cache bundle for loading resources.
-        style = target.getParentPage().getAltStyle();
-        if (style != null) {
-            Bundle bundle = target.getBundle();
-            getParentPage().addAltStyle(style, bundle);
-        }
+		// for alt-style cache bundle for loading resources.
+		style = target.getParentPage().getAltStyle();
+		if (style != null) {
+			Bundle bundle = target.getBundle();
+			getParentPage().addAltStyle(style, bundle);
+		}
 
-        // now add inherited styles. Race condition could happen here if Page A
-        // is including from Page B which is in turn including from Page A.
-        getParentPage().addStyles(target.getParentPage().getStyles());
-        getParentPage().addAltStyles(target.getParentPage().getAltStyles());
+		// now add inherited styles. Race condition could happen here if Page A
+		// is including from Page B which is in turn including from Page A.
+		getParentPage().addStyles(target.getParentPage().getStyles());
+		getParentPage().addAltStyles(target.getParentPage().getAltStyles());
 
-    }
+	}
 
-    /**
-     * Creates a clone of the given target node. A clone is create by simply
-     * recreating that protion of the model.
-     *
-     * Note: looked into the clonable interface in Java, but it was not used
-     * because it makes modifications/additions to the model harder to maintain.
-     * Will revisit later.
-     *
-     * @param targer
-     * @return
-     */
-    protected AbstractIntroElement cloneTarget(AbstractIntroElement target) {
-        return null;
-    }
+	/**
+	 * Creates a clone of the given target node. A clone is create by simply
+	 * recreating that protion of the model.
+	 *
+	 * Note: looked into the clonable interface in Java, but it was not used
+	 * because it makes modifications/additions to the model harder to maintain.
+	 * Will revisit later.
+	 *
+	 * @param targer
+	 * @return
+	 */
+	protected AbstractIntroElement cloneTarget(AbstractIntroElement target) {
+		return null;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.ABSTRACT_CONTAINER;
-    }
+		return AbstractIntroElement.ABSTRACT_CONTAINER;
+	}
 
-    /**
-     * Deep copy since class has mutable objects. Leave DOM element as a shallow
-     * reference copy since DOM is immutable.
-     */
-    @Override
+	/**
+	 * Deep copy since class has mutable objects. Leave DOM element as a shallow
+	 * reference copy since DOM is immutable.
+	 */
+	@Override
 	public Object clone() throws CloneNotSupportedException {
-        AbstractIntroContainer clone = (AbstractIntroContainer) super.clone();
+		AbstractIntroContainer clone = (AbstractIntroContainer) super.clone();
 		clone.children = new Vector<>();
-        if (children != null) {
-            for (int i = 0; i < children.size(); i++) {
-                AbstractIntroElement cloneChild = (AbstractIntroElement) children
-                    .elementAt(i).clone();
-                cloneChild.setParent(clone);
-                clone.children.add(i, cloneChild);
-            }
-        }
-        return clone;
-    }
+		if (children != null) {
+			for (int i = 0; i < children.size(); i++) {
+				AbstractIntroElement cloneChild = (AbstractIntroElement) children
+					.elementAt(i).clone();
+				cloneChild.setParent(clone);
+				clone.children.add(i, cloneChild);
+			}
+		}
+		return clone;
+	}
 
-    /**
-     * Returns the element.
-     *
-     * @return
-     */
-    @Override
+	/**
+	 * Returns the element.
+	 *
+	 * @return
+	 */
+	@Override
 	public Element getElement() {
-        return this.element;
-    }
+		return this.element;
+	}
 
-    public String getBase() {
-        return base;
-    }
+	public String getBase() {
+		return base;
+	}
 
 
-    /*
-     * Clears this container. This means emptying the children, and resetting
-     * flags.
-     */
-    public void clearChildren() {
-        this.children.clear();
-    }
+	/*
+	 * Clears this container. This means emptying the children, and resetting
+	 * flags.
+	 */
+	public void clearChildren() {
+		this.children.clear();
+	}
 
 
-    /**
-     * Adds a model element as a child. Caller is responsible for inserting
-     * model elements that rea valid as children.
-     *
-     * @param child
-     */
-    public void addChild(AbstractIntroElement child) {
-        children.add(child);
-    }
+	/**
+	 * Adds a model element as a child. Caller is responsible for inserting
+	 * model elements that rea valid as children.
+	 *
+	 * @param child
+	 */
+	public void addChild(AbstractIntroElement child) {
+		children.add(child);
+	}
 
-    public void removeChild(AbstractIntroElement child) {
-    	children.remove(child);
-    }
+	public void removeChild(AbstractIntroElement child) {
+		children.remove(child);
+	}
 
 	public String getBackgroundImage() {
 		return getAttribute(element, ATT_BG_IMAGE);
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroElement.java
index c8ca58f..4446c46 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroElement.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroElement.java
@@ -41,424 +41,424 @@
  */
 public abstract class AbstractIntroElement implements Cloneable {
 
-    /**
-     * Type constant which identifies an IntroModelRoot element.
-     */
-    public static final int MODEL_ROOT = 1;
+	/**
+	 * Type constant which identifies an IntroModelRoot element.
+	 */
+	public static final int MODEL_ROOT = 1;
 
-    /**
-     * Type constant which identifies an IntroPartPresentation element.
-     */
-    public static final int PRESENTATION = 1 << 1;
+	/**
+	 * Type constant which identifies an IntroPartPresentation element.
+	 */
+	public static final int PRESENTATION = 1 << 1;
 
-    /**
-     * Type constant which identifies an IntroHomePage element.
-     */
-    public static final int HOME_PAGE = 1 << 2;
+	/**
+	 * Type constant which identifies an IntroHomePage element.
+	 */
+	public static final int HOME_PAGE = 1 << 2;
 
-    /**
-     * Type constant which identifies the IntroPage element.
-     */
-    public static final int PAGE = 1 << 3;
+	/**
+	 * Type constant which identifies the IntroPage element.
+	 */
+	public static final int PAGE = 1 << 3;
 
-    /**
-     * Type constant which identifies the AbstractIntroPage element.
-     */
-    public static final int ABSTRACT_PAGE = HOME_PAGE | PAGE;
+	/**
+	 * Type constant which identifies the AbstractIntroPage element.
+	 */
+	public static final int ABSTRACT_PAGE = HOME_PAGE | PAGE;
 
-    /**
-     * Type constant which identifies an IntroDiv element.
-     */
-    public static final int GROUP = 1 << 4;
+	/**
+	 * Type constant which identifies an IntroDiv element.
+	 */
+	public static final int GROUP = 1 << 4;
 
-    /**
-     * Type constant which identifies the AbstractIntroContainer element.
-     */
-    public static final int ABSTRACT_CONTAINER = ABSTRACT_PAGE | GROUP
-            | MODEL_ROOT;
+	/**
+	 * Type constant which identifies the AbstractIntroContainer element.
+	 */
+	public static final int ABSTRACT_CONTAINER = ABSTRACT_PAGE | GROUP
+			| MODEL_ROOT;
 
-    /**
-     * Type constant which identifies the IntroHtml element.
-     */
-    public static final int HTML = 1 << 5;
+	/**
+	 * Type constant which identifies the IntroHtml element.
+	 */
+	public static final int HTML = 1 << 5;
 
-    /**
-     * Type constant which identifies the IntroLink element.
-     */
-    public static final int LINK = 1 << 6;
+	/**
+	 * Type constant which identifies the IntroLink element.
+	 */
+	public static final int LINK = 1 << 6;
 
-    /**
-     * Type constant which identifies the IntroImage element.
-     */
-    public static final int IMAGE = 1 << 7;
+	/**
+	 * Type constant which identifies the IntroImage element.
+	 */
+	public static final int IMAGE = 1 << 7;
 
-    /**
-     * Type constant which identifies the IntroInclude element.
-     */
-    public static final int INCLUDE = 1 << 8;
+	/**
+	 * Type constant which identifies the IntroInclude element.
+	 */
+	public static final int INCLUDE = 1 << 8;
 
-    /**
-     * Type constant which identifies the IntroText element.
-     */
-    public static final int TEXT = 1 << 9;
+	/**
+	 * Type constant which identifies the IntroText element.
+	 */
+	public static final int TEXT = 1 << 9;
 
-    /**
-     * Type constant which identifies the IntroContainerExtension element.
-     */
-    public static final int CONTAINER_EXTENSION = 1 << 10;
+	/**
+	 * Type constant which identifies the IntroContainerExtension element.
+	 */
+	public static final int CONTAINER_EXTENSION = 1 << 10;
 
-    /**
-     * Type constant which identifies the IntroHead element.
-     */
-    public static final int HEAD = 1 << 11;
+	/**
+	 * Type constant which identifies the IntroHead element.
+	 */
+	public static final int HEAD = 1 << 11;
 
-    /**
-     * Type constant which identifies the IntroHead element.
-     */
-    public static final int PAGE_TITLE = 1 << 12;
+	/**
+	 * Type constant which identifies the IntroHead element.
+	 */
+	public static final int PAGE_TITLE = 1 << 12;
 
-    /**
-     * Type constant which identifies the IntroAnchor element.
-     */
-    public static final int ANCHOR = 1 << 13;
+	/**
+	 * Type constant which identifies the IntroAnchor element.
+	 */
+	public static final int ANCHOR = 1 << 13;
 
-    /**
-     * Type constant which identifies the IntroContentProvider element.
-     */
-    public static final int CONTENT_PROVIDER = 1 << 14;
+	/**
+	 * Type constant which identifies the IntroContentProvider element.
+	 */
+	public static final int CONTENT_PROVIDER = 1 << 14;
 
-    /**
-     * Type constant which identifies the LaunchBarElement.
-     */
-    public static final int LAUNCH_BAR = 1 << 15;
+	/**
+	 * Type constant which identifies the LaunchBarElement.
+	 */
+	public static final int LAUNCH_BAR = 1 << 15;
 
-    /**
-     * Type constant which identifies the launch bar shortcut.
-     */
-    public static final int LAUNCH_BAR_SHORTCUT = 1 << 16;
+	/**
+	 * Type constant which identifies the launch bar shortcut.
+	 */
+	public static final int LAUNCH_BAR_SHORTCUT = 1 << 16;
 
-    /**
-     * Type constant which identifies am injected IFrame model element.
-     */
-    public static final int INJECTED_IFRAME = 1 << 17;
+	/**
+	 * Type constant which identifies am injected IFrame model element.
+	 */
+	public static final int INJECTED_IFRAME = 1 << 17;
 
-    /**
-     * Type constant for the theme element.
-     */
-    public static final int THEME = 1 << 18;
+	/**
+	 * Type constant for the theme element.
+	 */
+	public static final int THEME = 1 << 18;
 
-    /**
-     * Type constant for the hr element.
-     */
-    public static final int HR = 1 << 19;
+	/**
+	 * Type constant for the hr element.
+	 */
+	public static final int HR = 1 << 19;
 
 
-    /**
-     * Type constant which identifies the AbstractText element.
-     */
-    public static final int ABSTRACT_TEXT = HTML | LINK | CONTENT_PROVIDER;
+	/**
+	 * Type constant which identifies the AbstractText element.
+	 */
+	public static final int ABSTRACT_TEXT = HTML | LINK | CONTENT_PROVIDER;
 
-    /**
-     * Type constant which identifies the AbstractCommonIntroElement element.
-     */
-    public static final int BASE_ELEMENT = ABSTRACT_CONTAINER | ABSTRACT_TEXT
-            | IMAGE | TEXT | PAGE_TITLE;
+	/**
+	 * Type constant which identifies the AbstractCommonIntroElement element.
+	 */
+	public static final int BASE_ELEMENT = ABSTRACT_CONTAINER | ABSTRACT_TEXT
+			| IMAGE | TEXT | PAGE_TITLE;
 
-    /**
-     * Type constant which identifies any element in the Intro Model which can
-     * have an id. Note: eventhough IntroStandbyContentPart has an id, it does
-     * not appear as a child in the model, and so it does not have a type.
-     */
-    public static final int ID_ELEMENT = BASE_ELEMENT | ANCHOR;
+	/**
+	 * Type constant which identifies any element in the Intro Model which can
+	 * have an id. Note: eventhough IntroStandbyContentPart has an id, it does
+	 * not appear as a child in the model, and so it does not have a type.
+	 */
+	public static final int ID_ELEMENT = BASE_ELEMENT | ANCHOR;
 
-    /**
-     * Type constant which identifies any element in the Intro Model.
-     */
-    public static final int ELEMENT = ID_ELEMENT | CONTAINER_EXTENSION | HEAD
-            | INCLUDE | PRESENTATION | LAUNCH_BAR | LAUNCH_BAR_SHORTCUT;
+	/**
+	 * Type constant which identifies any element in the Intro Model.
+	 */
+	public static final int ELEMENT = ID_ELEMENT | CONTAINER_EXTENSION | HEAD
+			| INCLUDE | PRESENTATION | LAUNCH_BAR | LAUNCH_BAR_SHORTCUT;
 
 
 
-    private AbstractIntroElement parent;
-    private Object cfgElement;
-    private Bundle bundle;
-    private String mixinStyle;
+	private AbstractIntroElement parent;
+	private Object cfgElement;
+	private Bundle bundle;
+	private String mixinStyle;
 
 
-    /**
-     * Constructor used when model elements are being loaded from plugin.xml.
-     */
-    AbstractIntroElement(IConfigurationElement element) {
-        cfgElement = element;
-        bundle = BundleUtil.getBundleFromConfigurationElement(element);
-    }
+	/**
+	 * Constructor used when model elements are being loaded from plugin.xml.
+	 */
+	AbstractIntroElement(IConfigurationElement element) {
+		cfgElement = element;
+		bundle = BundleUtil.getBundleFromConfigurationElement(element);
+	}
 
 
-    /**
-     * Constructor used when model elements are being loaded from an xml content
-     * file. Bundle is propagated down the model to enable resolving resources
-     * relative to the base of the bundle.
-     *
-     * @param element
-     * @param pd
-     */
-    AbstractIntroElement(Element element, Bundle bundle) {
-    	this.cfgElement = element;
-        this.bundle = bundle;
-    }
+	/**
+	 * Constructor used when model elements are being loaded from an xml content
+	 * file. Bundle is propagated down the model to enable resolving resources
+	 * relative to the base of the bundle.
+	 *
+	 * @param element
+	 * @param pd
+	 */
+	AbstractIntroElement(Element element, Bundle bundle) {
+		this.cfgElement = element;
+		this.bundle = bundle;
+	}
 
 
-    /**
-     * Constructor used when model elements are being loaded from an xml content
-     * file. Bundle AND base is propagated down the model to enable resolving
-     * resources relative to the xml content file. The base is set to point to
-     * the relative location of the parent folder that holds the content file.
-     * In the case of a configExtension, it is set to point to the relative
-     * position of the parent folder that holds the extension. Only when needed,
-     * the base field is stored in a model element. This saves memory.
-     *
-     * @param element
-     * @param pd
-     */
-    AbstractIntroElement(Element element, Bundle bundle, String base) {
-        this(element, bundle);
-    }
+	/**
+	 * Constructor used when model elements are being loaded from an xml content
+	 * file. Bundle AND base is propagated down the model to enable resolving
+	 * resources relative to the xml content file. The base is set to point to
+	 * the relative location of the parent folder that holds the content file.
+	 * In the case of a configExtension, it is set to point to the relative
+	 * position of the parent folder that holds the extension. Only when needed,
+	 * the base field is stored in a model element. This saves memory.
+	 *
+	 * @param element
+	 * @param pd
+	 */
+	AbstractIntroElement(Element element, Bundle bundle, String base) {
+		this(element, bundle);
+	}
 
 
 
 
-    /**
-     * Returns the configuration element from which this intro element was
-     * loaded. In the case of extension, returns the configuration element of
-     * the defining extension.
-     *
-     * @return
-     */
-    public IConfigurationElement getCfgElement() {
-        return cfgElement instanceof IConfigurationElement?(IConfigurationElement)cfgElement:null;
-    }
+	/**
+	 * Returns the configuration element from which this intro element was
+	 * loaded. In the case of extension, returns the configuration element of
+	 * the defining extension.
+	 *
+	 * @return
+	 */
+	public IConfigurationElement getCfgElement() {
+		return cfgElement instanceof IConfigurationElement?(IConfigurationElement)cfgElement:null;
+	}
 
-    public Element getElement() {
-    	return cfgElement instanceof Element?(Element)cfgElement:null;
-    }
+	public Element getElement() {
+		return cfgElement instanceof Element?(Element)cfgElement:null;
+	}
 
-    /**
-     * DOM getAttribute retruns an empty string (not null) if attribute is not
-     * defined. Override this behavior to be consistent with Intro Model, and
-     * IConfiguration element.
-     *
-     * @param element
-     * @param att
-     * @return
-     */
-    protected String getAttribute(Element element, String att) {
-        if (element.hasAttribute(att)) {
-            String value = element.getAttribute(att);
-            if (value!=null) {
-            	IntroModelRoot root = getModelRoot();
-            	if (root!=null)
-            		return root.resolveVariables(value);
-            	return value;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Util method to parse a comma separated list of values
-     *
-     * @param element
-     * @param att
-     * @return
-     */
-    protected String[] getAttributeList(Element element, String att) {
-        if (element.hasAttribute(att)) {
-            String value = element.getAttribute(att);
-            if (value!=null) {
-            	String[] splitValues = value.split(",");  //$NON-NLS-1$
+	/**
+	 * DOM getAttribute retruns an empty string (not null) if attribute is not
+	 * defined. Override this behavior to be consistent with Intro Model, and
+	 * IConfiguration element.
+	 *
+	 * @param element
+	 * @param att
+	 * @return
+	 */
+	protected String getAttribute(Element element, String att) {
+		if (element.hasAttribute(att)) {
+			String value = element.getAttribute(att);
+			if (value!=null) {
 				IntroModelRoot root = getModelRoot();
-            	if (root!=null) {
-            		for (int i = 0; i < splitValues.length; i++) {
-            			splitValues[i] = root.resolveVariables(splitValues[i]);
-            		}
-            	}
-            	return splitValues;
-            }
-        }
-        /*
-        if (element.hasAttribute(att))
-            return element.getAttribute(att).split(","); //$NON-NLS-1$
-            */
-        return null;
-    }
+				if (root!=null)
+					return root.resolveVariables(value);
+				return value;
+			}
+		}
+		return null;
+	}
 
-    protected void loadFromParent() {
-    }
+	/**
+	 * Util method to parse a comma separated list of values
+	 *
+	 * @param element
+	 * @param att
+	 * @return
+	 */
+	protected String[] getAttributeList(Element element, String att) {
+		if (element.hasAttribute(att)) {
+			String value = element.getAttribute(att);
+			if (value!=null) {
+				String[] splitValues = value.split(",");  //$NON-NLS-1$
+				IntroModelRoot root = getModelRoot();
+				if (root!=null) {
+					for (int i = 0; i < splitValues.length; i++) {
+						splitValues[i] = root.resolveVariables(splitValues[i]);
+					}
+				}
+				return splitValues;
+			}
+		}
+		/*
+		if (element.hasAttribute(att))
+			return element.getAttribute(att).split(","); //$NON-NLS-1$
+			*/
+		return null;
+	}
+
+	protected void loadFromParent() {
+	}
 
 
-    /**
-     * Returns the plugin descriptor of the plugin from which this intro element
-     * was loaded. In the case of extension, returns the plugin descriptor of
-     * the plugin defining the extension.
-     *
-     * @return
-     */
-    public Bundle getBundle() {
-        return bundle;
-    }
+	/**
+	 * Returns the plugin descriptor of the plugin from which this intro element
+	 * was loaded. In the case of extension, returns the plugin descriptor of
+	 * the plugin defining the extension.
+	 *
+	 * @return
+	 */
+	public Bundle getBundle() {
+		return bundle;
+	}
 
 
 
-    /**
-     * Returns the specific model type of this intro element. To be implemented
-     * by all subclasses.
-     *
-     * @return returns one of the model class types defined in this class.
-     */
-    public abstract int getType();
+	/**
+	 * Returns the specific model type of this intro element. To be implemented
+	 * by all subclasses.
+	 *
+	 * @return returns one of the model class types defined in this class.
+	 */
+	public abstract int getType();
 
 
-    /**
-     * Returns the parent of this intro element.
-     * <p>
-     * Rules:
-     * <ul>
-     * <li>For the model root, it retruns null.</li>
-     * <li>For the introPart presentation it returns a model root.</li>
-     * <li>For Pages, it returns an intro model root.</li>
-     * <li>For all other elements, it retruns a subclass of abstract container.
-     * </li>
-     * <li>for divs that are children of configs (shared divs), it returns the
-     * holding model root.</li>
-     * <li>for Head elements that are children of Implementation elements
-     * (shared Heads), it returns the holding presentation element.</li>
-     * </ul>
-     *
-     * @return returns the parent of this intro element. Null only for model
-     *         root.
-     */
-    public AbstractIntroElement getParent() {
-        return parent;
-    }
+	/**
+	 * Returns the parent of this intro element.
+	 * <p>
+	 * Rules:
+	 * <ul>
+	 * <li>For the model root, it retruns null.</li>
+	 * <li>For the introPart presentation it returns a model root.</li>
+	 * <li>For Pages, it returns an intro model root.</li>
+	 * <li>For all other elements, it retruns a subclass of abstract container.
+	 * </li>
+	 * <li>for divs that are children of configs (shared divs), it returns the
+	 * holding model root.</li>
+	 * <li>for Head elements that are children of Implementation elements
+	 * (shared Heads), it returns the holding presentation element.</li>
+	 * </ul>
+	 *
+	 * @return returns the parent of this intro element. Null only for model
+	 *         root.
+	 */
+	public AbstractIntroElement getParent() {
+		return parent;
+	}
 
-    /**
-     * @param parent
-     *            The parent to set.
-     */
-    public void setParent(AbstractIntroElement parent) {
-        this.parent = parent;
-        if (parent!=null)
-        	loadFromParent();
-    }
+	/**
+	 * @param parent
+	 *            The parent to set.
+	 */
+	public void setParent(AbstractIntroElement parent) {
+		this.parent = parent;
+		if (parent!=null)
+			loadFromParent();
+	}
 
-    public void setBundle(Bundle bundle) {
-        this.bundle = bundle;
-    }
+	public void setBundle(Bundle bundle) {
+		this.bundle = bundle;
+	}
 
-    /**
-     * Returns the parent page holding this intro element. For the model root
-     * and the introPart presentation it returns null. For Pages, it returns the
-     * page itself. For all other element, returns the holding page.
-     * <p>
-     * Exceptions:
-     * <ul>
-     * <li>for divs that are children of configs (shared divs), it returns
-     * null.</li>
-     * <li>for Head elements that are children of Implementation elements
-     * (shared Heads), it returns null.</li>
-     * </ul>
-     */
-    public AbstractIntroPage getParentPage() {
-        // return yourself if you are a page.
-        if (isOfType(AbstractIntroElement.ABSTRACT_PAGE))
-            return (AbstractIntroPage) this;
+	/**
+	 * Returns the parent page holding this intro element. For the model root
+	 * and the introPart presentation it returns null. For Pages, it returns the
+	 * page itself. For all other element, returns the holding page.
+	 * <p>
+	 * Exceptions:
+	 * <ul>
+	 * <li>for divs that are children of configs (shared divs), it returns
+	 * null.</li>
+	 * <li>for Head elements that are children of Implementation elements
+	 * (shared Heads), it returns null.</li>
+	 * </ul>
+	 */
+	public AbstractIntroPage getParentPage() {
+		// return yourself if you are a page.
+		if (isOfType(AbstractIntroElement.ABSTRACT_PAGE))
+			return (AbstractIntroPage) this;
 
-        AbstractIntroElement parent = getParent();
-        if (parent == null)
-            return null;
+		AbstractIntroElement parent = getParent();
+		if (parent == null)
+			return null;
 
-        while (parent != null && parent.getParent() != null
-                && !parent.isOfType(AbstractIntroElement.ABSTRACT_PAGE))
-            parent = parent.getParent();
-        if (parent.isOfType(ABSTRACT_PAGE))
-            return (AbstractIntroPage) parent;
-        return null;
-    }
+		while (parent != null && parent.getParent() != null
+				&& !parent.isOfType(AbstractIntroElement.ABSTRACT_PAGE))
+			parent = parent.getParent();
+		if (parent.isOfType(ABSTRACT_PAGE))
+			return (AbstractIntroPage) parent;
+		return null;
+	}
 
-    public IntroModelRoot getModelRoot() {
-        // return yourself if you are a model root.
-        if (isOfType(AbstractIntroElement.MODEL_ROOT))
-            return (IntroModelRoot) this;
+	public IntroModelRoot getModelRoot() {
+		// return yourself if you are a model root.
+		if (isOfType(AbstractIntroElement.MODEL_ROOT))
+			return (IntroModelRoot) this;
 
-        AbstractIntroElement parent = getParent();
-        if (parent == null)
-            return null;
+		AbstractIntroElement parent = getParent();
+		if (parent == null)
+			return null;
 
-        while (parent != null && parent.getParent() != null
-                && !parent.isOfType(AbstractIntroElement.MODEL_ROOT))
-            parent = parent.getParent();
-        if (parent.isOfType(MODEL_ROOT))
-            return (IntroModelRoot) parent;
-        return null;
-    }
+		while (parent != null && parent.getParent() != null
+				&& !parent.isOfType(AbstractIntroElement.MODEL_ROOT))
+			parent = parent.getParent();
+		if (parent.isOfType(MODEL_ROOT))
+			return (IntroModelRoot) parent;
+		return null;
+	}
 
 
-    /**
-     * Returns whether the element is among the specified element types. An
-     * example of an element mask is as follows:
-     * <p>
-     * <code>
-     *  	int elementMask = IntroElement.ABSTRACT_CONTAINER;
-     * 		int elementMask = IntroElement.DIV | IntroElement.DEFAULT_LINK;
-     * </code>
-     *
-     * @param elementMask
-     *            element mask formed by bitwise OR of element type constants
-     *            defined in this class.
-     * @return <code>true</code> if this element has a matching type, and
-     *         <code>false</code> otherwise.
-     */
-    public boolean isOfType(int elementMask) {
-        return (getType() & elementMask) != 0;
-    }
+	/**
+	 * Returns whether the element is among the specified element types. An
+	 * example of an element mask is as follows:
+	 * <p>
+	 * <code>
+	 *  	int elementMask = IntroElement.ABSTRACT_CONTAINER;
+	 * 		int elementMask = IntroElement.DIV | IntroElement.DEFAULT_LINK;
+	 * </code>
+	 *
+	 * @param elementMask
+	 *            element mask formed by bitwise OR of element type constants
+	 *            defined in this class.
+	 * @return <code>true</code> if this element has a matching type, and
+	 *         <code>false</code> otherwise.
+	 */
+	public boolean isOfType(int elementMask) {
+		return (getType() & elementMask) != 0;
+	}
 
-    /**
-     * Returns whether the types of all the elements in the given array are
-     * among the specified element types. <br>
-     * An example of an element mask is as follows:
-     * <p>
-     * <code>
-     * int elementMask = IntroElement.DIV | IntroElement.DEFAULT_LINK;
-     * </code>
-     *
-     * @return <code>true</code> if all elements are of the right type, and
-     *         <code>false</code> if the list is empty, or at least one
-     *         element is not of the specified types.
-     */
-    public static final boolean allElementsAreOfType(
-            AbstractIntroElement[] elements, int elementMask) {
-        // if we have an empty list, no point going on.
-        if (elements.length == 0)
-            return false;
+	/**
+	 * Returns whether the types of all the elements in the given array are
+	 * among the specified element types. <br>
+	 * An example of an element mask is as follows:
+	 * <p>
+	 * <code>
+	 * int elementMask = IntroElement.DIV | IntroElement.DEFAULT_LINK;
+	 * </code>
+	 *
+	 * @return <code>true</code> if all elements are of the right type, and
+	 *         <code>false</code> if the list is empty, or at least one
+	 *         element is not of the specified types.
+	 */
+	public static final boolean allElementsAreOfType(
+			AbstractIntroElement[] elements, int elementMask) {
+		// if we have an empty list, no point going on.
+		if (elements.length == 0)
+			return false;
 
-        for (int i = 0; i < elements.length; i++) {
-            AbstractIntroElement element = elements[i];
-            if (!element.isOfType(elementMask))
-                return false;
-        }
-        return true;
-    }
+		for (int i = 0; i < elements.length; i++) {
+			AbstractIntroElement element = elements[i];
+			if (!element.isOfType(elementMask))
+				return false;
+		}
+		return true;
+	}
 
-    /**
-     * Shallow copy. The design of cloning this model assumes that when a
-     * container is cloned, all its children must be cloned and reparented to
-     * it, hence one clone of this container object. This is why we have a
-     * shallow copy here.
-     */
-    @Override
+	/**
+	 * Shallow copy. The design of cloning this model assumes that when a
+	 * container is cloned, all its children must be cloned and reparented to
+	 * it, hence one clone of this container object. This is why we have a
+	 * shallow copy here.
+	 */
+	@Override
 	public Object clone() throws CloneNotSupportedException {
-        return super.clone();
-    }
+		return super.clone();
+	}
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroIdElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroIdElement.java
index 10b7aac..487089f 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroIdElement.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroIdElement.java
@@ -26,29 +26,29 @@
  */
 public abstract class AbstractIntroIdElement extends AbstractIntroElement {
 
-    public static final String ATT_ID = "id"; //$NON-NLS-1$
+	public static final String ATT_ID = "id"; //$NON-NLS-1$
 
-    protected String id;
+	protected String id;
 
-    AbstractIntroIdElement(IConfigurationElement element) {
-        super(element);
-        id = element.getAttribute(ATT_ID);
-    }
+	AbstractIntroIdElement(IConfigurationElement element) {
+		super(element);
+		id = element.getAttribute(ATT_ID);
+	}
 
-    AbstractIntroIdElement(Element element, Bundle bundle) {
-        super(element, bundle);
-        id = getAttribute(element, ATT_ID);
-    }
+	AbstractIntroIdElement(Element element, Bundle bundle) {
+		super(element, bundle);
+		id = getAttribute(element, ATT_ID);
+	}
 
-    AbstractIntroIdElement(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-        id = getAttribute(element, ATT_ID);
-    }
+	AbstractIntroIdElement(Element element, Bundle bundle, String base) {
+		super(element, bundle, base);
+		id = getAttribute(element, ATT_ID);
+	}
 
-    /**
-     * @return Returns the id.
-     */
-    public String getId() {
-        return id;
-    }
+	/**
+	 * @return Returns the id.
+	 */
+	public String getId() {
+		return id;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPage.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPage.java
index afc39a7..e36f8ac 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPage.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPage.java
@@ -56,871 +56,871 @@
  */
 public abstract class AbstractIntroPage extends AbstractIntroContainer {
 
-    protected static final String TAG_PAGE = "page"; //$NON-NLS-1$
-    private static final String ATT_STYLE = "style"; //$NON-NLS-1$
-    private static final String ATT_ALT_STYLE = "alt-style"; //$NON-NLS-1$
-    private static final String ATT_CONTENT = "content"; //$NON-NLS-1$
-    private static final String ATT_SHARED_STYLE = "shared-style"; //$NON-NLS-1$
-    private static final String INVALID_CONTENT = "invalidPage/invalidPage.xhtml"; //$NON-NLS-1$
-    private static final String INVALID_CONTENT_BASE = "invalidPage"; //$NON-NLS-1$
+	protected static final String TAG_PAGE = "page"; //$NON-NLS-1$
+	private static final String ATT_STYLE = "style"; //$NON-NLS-1$
+	private static final String ATT_ALT_STYLE = "alt-style"; //$NON-NLS-1$
+	private static final String ATT_CONTENT = "content"; //$NON-NLS-1$
+	private static final String ATT_SHARED_STYLE = "shared-style"; //$NON-NLS-1$
+	private static final String INVALID_CONTENT = "invalidPage/invalidPage.xhtml"; //$NON-NLS-1$
+	private static final String INVALID_CONTENT_BASE = "invalidPage"; //$NON-NLS-1$
 	protected static final String ATT_URL = "url"; //$NON-NLS-1$
 
-    private String style;
-    private String altStyle;
-    private String sharedStyle;
-    private IntroPageTitle title;
-    private String content;
-    private String url;
+	private String style;
+	private String altStyle;
+	private String sharedStyle;
+	private IntroPageTitle title;
+	private String content;
+	private String url;
 
-    // if iframe is not null, this indicates that this page was cloned at
-    // runtime from another page whose id was "originalId".
-    private IntroInjectedIFrame iframe;
+	// if iframe is not null, this indicates that this page was cloned at
+	// runtime from another page whose id was "originalId".
+	private IntroInjectedIFrame iframe;
 
-    // id of page from which this page was cloned.
-    private String originalId;
+	// id of page from which this page was cloned.
+	private String originalId;
 
-    // DOM representing XHTML content. DOM is only cached in the case of XHTML
-    // content.
-    private Document dom;
+	// DOM representing XHTML content. DOM is only cached in the case of XHTML
+	// content.
+	private Document dom;
 
-    private DocumentProcessor domProcessor;
+	private DocumentProcessor domProcessor;
 
-    // set when the content file is loaded (ie: loadChildren is called)
-    private boolean isXHTMLPage;
+	// set when the content file is loaded (ie: loadChildren is called)
+	private boolean isXHTMLPage;
 
-    // Model base attribute is stored in parent class. This base attribute here
-    // is to cache the initial location of the content file. When content
-    // attribute is defined, the base in the model becomes relative to
-    // new xml file. However, in the case of XHTML content, and when
-    // presentation is UI forms, we need to reuse initial content file location.
-    private String initialBase;
+	// Model base attribute is stored in parent class. This base attribute here
+	// is to cache the initial location of the content file. When content
+	// attribute is defined, the base in the model becomes relative to
+	// new xml file. However, in the case of XHTML content, and when
+	// presentation is UI forms, we need to reuse initial content file location.
+	private String initialBase;
 
-    /**
-     * The vectors to hold all inhertied styles and alt styles from included
-     * elements. They are lazily created when children are resolved (ie:
-     * includes are resolved) OR when extensions are resolved and styles need to
-     * be added to the target page.
-     * <p>
-     * Style Rules:
-     * <ul>
-     * <li>For includes, merge-style controls wether or not the enclosing page
-     * inherits the styles of the target.
-     * <li>If a page is including a shared div, merging target styles into this
-     * page is ignored. Shared divs do not have styles.</li>
-     * <li>For extensions, if the style or alt-style is not defined, that means
-     * that no style inheritence is needed, and the style of the target page are
-     * not updated.
-     * <li>If an extension is extending a shared div, merging the styles of
-     * this extension into the target is ignored. Shared divs do not have
-     * styles.</li>
-     * <li>Shared hashtable has alt-styles as keys and bundles as values.</li>
-     * </ul>
-     */
+	/**
+	 * The vectors to hold all inhertied styles and alt styles from included
+	 * elements. They are lazily created when children are resolved (ie:
+	 * includes are resolved) OR when extensions are resolved and styles need to
+	 * be added to the target page.
+	 * <p>
+	 * Style Rules:
+	 * <ul>
+	 * <li>For includes, merge-style controls wether or not the enclosing page
+	 * inherits the styles of the target.
+	 * <li>If a page is including a shared div, merging target styles into this
+	 * page is ignored. Shared divs do not have styles.</li>
+	 * <li>For extensions, if the style or alt-style is not defined, that means
+	 * that no style inheritence is needed, and the style of the target page are
+	 * not updated.
+	 * <li>If an extension is extending a shared div, merging the styles of
+	 * this extension into the target is ignored. Shared divs do not have
+	 * styles.</li>
+	 * <li>Shared hashtable has alt-styles as keys and bundles as values.</li>
+	 * </ul>
+	 */
 	private Vector<String> styles;
 	private Map<String, Bundle> altStyles;
 	private boolean isDynamic = false;
 	protected boolean isStandbyPage;
 
-    /**
-     * Parent class for all pages. Make sure to set the bundle to where the
-     * pages are loaded from. This means that the bundle for root may be
-     * different from the bundle for all the other pages. Only pages do this
-     * logic and so other model objects might have the wrong bundle cached if
-     * the resource was loaded from an nl directory.
-     *
-     * @param element
-     */
-    AbstractIntroPage(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-        this.initialBase = base;
-        content = getAttribute(element, ATT_CONTENT);
-        if (content == null) {
-        	//Delaying init until we have the model
-        	// so that we can resolve theme
-            //init(element, bundle, base);
-        }
-        else {
-            // Content is not null. Resolve it. Other page attributes (style,
-            // alt-style...) will be loaded when xml content file is loaded
-            // since we need to pick them up from external xml content file. In
-            // the case where this external content file is XHTML and we have
-            // HTML presentation, page attributes are simply not loaded. In the
-            // case where we have XHTML in a UI forms presentation, we will need
-            // to load initial page attributes.
-            // BASE: since content is being loaded from another xml file, point
-            // the base of this page to be relative to the new xml file
-            // location.
-            IPath subBase = ModelUtil.getParentFolderPath(content);
-            this.base = new Path(base).append(subBase).toString();
-            content = BundleUtil.getResolvedResourceLocation(base, content,
-                bundle);
-        }
-        // load shared-style attribure. This is needed in the XML and in the
-        // XHTML cases. Default is to include shared style.
-        this.sharedStyle = getAttribute(element, ATT_SHARED_STYLE);
-        if (sharedStyle == null)
-            sharedStyle = "true"; //$NON-NLS-1$
-        url = getAttribute(element, ATT_URL);
-        if (url == null)
-            // if we do not have a URL attribute, then we have dynamic content.
-            isDynamic = true;
-        else
-            // check the url/standby-url attributes and update accordingly.
-            url = ModelUtil.resolveURL(base, url, bundle);
+	/**
+	 * Parent class for all pages. Make sure to set the bundle to where the
+	 * pages are loaded from. This means that the bundle for root may be
+	 * different from the bundle for all the other pages. Only pages do this
+	 * logic and so other model objects might have the wrong bundle cached if
+	 * the resource was loaded from an nl directory.
+	 *
+	 * @param element
+	 */
+	AbstractIntroPage(Element element, Bundle bundle, String base) {
+		super(element, bundle, base);
+		this.initialBase = base;
+		content = getAttribute(element, ATT_CONTENT);
+		if (content == null) {
+			//Delaying init until we have the model
+			// so that we can resolve theme
+			//init(element, bundle, base);
+		}
+		else {
+			// Content is not null. Resolve it. Other page attributes (style,
+			// alt-style...) will be loaded when xml content file is loaded
+			// since we need to pick them up from external xml content file. In
+			// the case where this external content file is XHTML and we have
+			// HTML presentation, page attributes are simply not loaded. In the
+			// case where we have XHTML in a UI forms presentation, we will need
+			// to load initial page attributes.
+			// BASE: since content is being loaded from another xml file, point
+			// the base of this page to be relative to the new xml file
+			// location.
+			IPath subBase = ModelUtil.getParentFolderPath(content);
+			this.base = new Path(base).append(subBase).toString();
+			content = BundleUtil.getResolvedResourceLocation(base, content,
+				bundle);
+		}
+		// load shared-style attribure. This is needed in the XML and in the
+		// XHTML cases. Default is to include shared style.
+		this.sharedStyle = getAttribute(element, ATT_SHARED_STYLE);
+		if (sharedStyle == null)
+			sharedStyle = "true"; //$NON-NLS-1$
+		url = getAttribute(element, ATT_URL);
+		if (url == null)
+			// if we do not have a URL attribute, then we have dynamic content.
+			isDynamic = true;
+		else
+			// check the url/standby-url attributes and update accordingly.
+			url = ModelUtil.resolveURL(base, url, bundle);
 
-    }
+	}
 
-    @Override
+	@Override
 	public void setParent(AbstractIntroElement parent) {
-    	super.setParent(parent);
-        if (content == null)
-            init(element, getBundle(), initialBase);
-    }
+		super.setParent(parent);
+		if (content == null)
+			init(element, getBundle(), initialBase);
+	}
 
-    /**
-     * Returns unresolved content value as found in the source file.
-     * the source file.
-     * @return the unresolved content value
-     */
+	/**
+	 * Returns unresolved content value as found in the source file.
+	 * the source file.
+	 * @return the unresolved content value
+	 */
 
-    public String getRawContent() {
-    	return getAttribute(element, ATT_CONTENT);
-    }
+	public String getRawContent() {
+		return getAttribute(element, ATT_CONTENT);
+	}
 
-    /**
-     * Initialize styles. Take first style in style attribute and make it the
-     * page style. Then put other styles in styles vectors. Make sure to resolve
-     * each style.
-     *
-     * @param element
-     * @param bundle
-     */
-    private void init(Element element, Bundle bundle, String base) {
-        String[] styleValues = getAttributeList(element, ATT_STYLE);
-        if (styleValues != null && styleValues.length > 0) {
-            style = styleValues[0];
-            style = BundleUtil.getResolvedResourceLocation(base, style, bundle);
-            for (int i = 1; i < styleValues.length; i++) {
-                String style = styleValues[i];
-                style = BundleUtil.getResolvedResourceLocation(base, style,
-                    bundle);
-                addStyle(style);
-            }
-        }
+	/**
+	 * Initialize styles. Take first style in style attribute and make it the
+	 * page style. Then put other styles in styles vectors. Make sure to resolve
+	 * each style.
+	 *
+	 * @param element
+	 * @param bundle
+	 */
+	private void init(Element element, Bundle bundle, String base) {
+		String[] styleValues = getAttributeList(element, ATT_STYLE);
+		if (styleValues != null && styleValues.length > 0) {
+			style = styleValues[0];
+			style = BundleUtil.getResolvedResourceLocation(base, style, bundle);
+			for (int i = 1; i < styleValues.length; i++) {
+				String style = styleValues[i];
+				style = BundleUtil.getResolvedResourceLocation(base, style,
+					bundle);
+				addStyle(style);
+			}
+		}
 
-        String[] altStyleValues = getAttributeList(element, ATT_ALT_STYLE);
-        if (altStyleValues != null && altStyleValues.length > 0) {
-            altStyle = altStyleValues[0];
-            altStyle = BundleUtil.getResolvedResourceLocation(base, altStyle,
-                bundle);
-            for (int i = 1; i < altStyleValues.length; i++) {
-                String style = altStyleValues[i];
-                style = BundleUtil.getResolvedResourceLocation(base, style,
-                    bundle);
-                addAltStyle(style, bundle);
-            }
-        }
-    }
+		String[] altStyleValues = getAttributeList(element, ATT_ALT_STYLE);
+		if (altStyleValues != null && altStyleValues.length > 0) {
+			altStyle = altStyleValues[0];
+			altStyle = BundleUtil.getResolvedResourceLocation(base, altStyle,
+				bundle);
+			for (int i = 1; i < altStyleValues.length; i++) {
+				String style = altStyleValues[i];
+				style = BundleUtil.getResolvedResourceLocation(base, style,
+					bundle);
+				addAltStyle(style, bundle);
+			}
+		}
+	}
 
 
 
 
-    /**
-     * The page's title. Each page can have one title.
-     *
-     * @return Returns the title of this page.
-     */
-    public String getTitle() {
-        // title is a child of the page, and so we have to load children first.
-        // We also have to resolve children because someone might be including a
-        // title. Update title instance after all includes and extensions have
-        // been resolved.
-        getChildren();
-        if (title == null) {
-            // there should only be one title child per page. safe to cast.
-            IntroPageTitle[] titles = (IntroPageTitle[]) getChildrenOfType(AbstractIntroElement.PAGE_TITLE);
-            if (titles.length > 0)
-                title = titles[0];
-        }
+	/**
+	 * The page's title. Each page can have one title.
+	 *
+	 * @return Returns the title of this page.
+	 */
+	public String getTitle() {
+		// title is a child of the page, and so we have to load children first.
+		// We also have to resolve children because someone might be including a
+		// title. Update title instance after all includes and extensions have
+		// been resolved.
+		getChildren();
+		if (title == null) {
+			// there should only be one title child per page. safe to cast.
+			IntroPageTitle[] titles = (IntroPageTitle[]) getChildrenOfType(AbstractIntroElement.PAGE_TITLE);
+			if (titles.length > 0)
+				title = titles[0];
+		}
 
-        if (title == null)
-            // still null. no title.
-            return null;
-        return title.getTitle();
-    }
+		if (title == null)
+			// still null. no title.
+			return null;
+		return title.getTitle();
+	}
 
-    /**
-     * @return Returns the style.
-     */
-    public String getStyle() {
-        return style;
-    }
+	/**
+	 * @return Returns the style.
+	 */
+	public String getStyle() {
+		return style;
+	}
 
-    /**
-     * @return Returns the alt_style.
-     */
-    public String getAltStyle() {
-        return altStyle;
-    }
+	/**
+	 * @return Returns the alt_style.
+	 */
+	public String getAltStyle() {
+		return altStyle;
+	}
 
-    /**
-     * Gets all the inherited styles of this page. Styles can be inherited from
-     * includes or from configExtensions.
-     * <p>
-     * Note: this call needs to get all the children of this page, and so it
-     * will resolve this page. might be expensive.
-     *
-     * @return Returns all the inherited styles of this page. Returns an empty
-     *         array if page is not expandable or does not have inherited
-     *         styles.
-     */
-    public String[] getStyles() {
-        // call get children first to resolve includes and populate styles
-        // vector. Resolving children will initialize the style vectors.
-        getChildren();
-        if (styles == null)
-            // style vector is still null because page does not have styles.
-            return new String[0];
-        String[] stylesArray = new String[styles.size()];
-        styles.copyInto(stylesArray);
-        return stylesArray;
-    }
+	/**
+	 * Gets all the inherited styles of this page. Styles can be inherited from
+	 * includes or from configExtensions.
+	 * <p>
+	 * Note: this call needs to get all the children of this page, and so it
+	 * will resolve this page. might be expensive.
+	 *
+	 * @return Returns all the inherited styles of this page. Returns an empty
+	 *         array if page is not expandable or does not have inherited
+	 *         styles.
+	 */
+	public String[] getStyles() {
+		// call get children first to resolve includes and populate styles
+		// vector. Resolving children will initialize the style vectors.
+		getChildren();
+		if (styles == null)
+			// style vector is still null because page does not have styles.
+			return new String[0];
+		String[] stylesArray = new String[styles.size()];
+		styles.copyInto(stylesArray);
+		return stylesArray;
+	}
 
-    /**
-     * Gets all the inherited alt-styles of this page (ie: styles for the SWT
-     * presentation). A hashtable is returned that has inhertied alt-styles as
-     * keys, and plugin descriptors as values. This is needed to be able to load
-     * resources from the inherited target plugin. Note: this call needs to get
-     * all the children of this page, and so its will resolve this page. might
-     * be expensive.
-     *
-     * @return Returns all the inherited styles of this page. Returns an empty
-     *         hashtable if page is not expandable, does not have any includes,
-     *         or has includes that do not merge styles.
-     */
+	/**
+	 * Gets all the inherited alt-styles of this page (ie: styles for the SWT
+	 * presentation). A hashtable is returned that has inhertied alt-styles as
+	 * keys, and plugin descriptors as values. This is needed to be able to load
+	 * resources from the inherited target plugin. Note: this call needs to get
+	 * all the children of this page, and so its will resolve this page. might
+	 * be expensive.
+	 *
+	 * @return Returns all the inherited styles of this page. Returns an empty
+	 *         hashtable if page is not expandable, does not have any includes,
+	 *         or has includes that do not merge styles.
+	 */
 	public Map<String, Bundle> getAltStyles() {
-        // call get children first to resolve includes and populate hashtable.
-        // Resolving children will initialize the style vectors.
-        getChildren();
-        return altStyles;
-    }
+		// call get children first to resolve includes and populate hashtable.
+		// Resolving children will initialize the style vectors.
+		getChildren();
+		return altStyles;
+	}
 
-    /**
-     * Adds the given style to the list. Style is not added if it already exists
-     * in the list.
-     *
-     * @param style
-     */
-    protected void addStyle(String style) {
-        if (!initStyles(style))
-            return;
-        if (styles.contains(style))
-            return;
-        styles.add(style);
-    }
+	/**
+	 * Adds the given style to the list. Style is not added if it already exists
+	 * in the list.
+	 *
+	 * @param style
+	 */
+	protected void addStyle(String style) {
+		if (!initStyles(style))
+			return;
+		if (styles.contains(style))
+			return;
+		styles.add(style);
+	}
 
-    public void insertStyle(String style, int location) {
-        if (!initStyles(style))
-            return;
-        if (styles.contains(style))
-            return;
-        styles.add(location, style);
-    }
+	public void insertStyle(String style, int location) {
+		if (!initStyles(style))
+			return;
+		if (styles.contains(style))
+			return;
+		styles.add(location, style);
+	}
 
 
 
-    /**
-     * Adds the given style to the list.Style is not added if it already exists
-     * in the list.
-     *
-     * @param altStyle
-     */
-    protected void addAltStyle(String altStyle, Bundle bundle) {
-        if (!initAltStyles(altStyle))
-            return;
-        if (altStyles.containsKey(altStyle))
-            return;
-        altStyles.put(altStyle, bundle);
-    }
+	/**
+	 * Adds the given style to the list.Style is not added if it already exists
+	 * in the list.
+	 *
+	 * @param altStyle
+	 */
+	protected void addAltStyle(String altStyle, Bundle bundle) {
+		if (!initAltStyles(altStyle))
+			return;
+		if (altStyles.containsKey(altStyle))
+			return;
+		altStyles.put(altStyle, bundle);
+	}
 
 
-    /**
-     * Util method to add given styles to the list.
-     *
-     */
-    protected void addStyles(String[] styles) {
-        if (styles == null)
-            return;
-        for (int i = 0; i < styles.length; i++)
-            addStyle(styles[i]);
-    }
+	/**
+	 * Util method to add given styles to the list.
+	 *
+	 */
+	protected void addStyles(String[] styles) {
+		if (styles == null)
+			return;
+		for (int i = 0; i < styles.length; i++)
+			addStyle(styles[i]);
+	}
 
-    /**
-     * Util method to add map of altstyles to list.
-     */
+	/**
+	 * Util method to add map of altstyles to list.
+	 */
 	protected void addAltStyles(Map<String, Bundle> altStyles) {
-        if (altStyles == null)
-            return;
-        if (this.altStyles == null)
-            // delay creation until needed.
+		if (altStyles == null)
+			return;
+		if (this.altStyles == null)
+			// delay creation until needed.
 			this.altStyles = new Hashtable<>();
-        this.altStyles.putAll(altStyles);
-    }
+		this.altStyles.putAll(altStyles);
+	}
 
 
-    private boolean initStyles(String style) {
-        if (style == null)
-            return false;
-        if (this.styles == null)
-            // delay creation until needed.
+	private boolean initStyles(String style) {
+		if (style == null)
+			return false;
+		if (this.styles == null)
+			// delay creation until needed.
 			this.styles = new Vector<>();
-        return true;
-    }
+		return true;
+	}
 
-    private boolean initAltStyles(String style) {
-        if (style == null)
-            return false;
-        if (this.altStyles == null)
-            // delay creation until needed.
+	private boolean initAltStyles(String style) {
+		if (style == null)
+			return false;
+		if (this.altStyles == null)
+			// delay creation until needed.
 			this.altStyles = new Hashtable<>();
-        return true;
-    }
+		return true;
+	}
 
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.ABSTRACT_PAGE;
-    }
+		return AbstractIntroElement.ABSTRACT_PAGE;
+	}
 
-    /*
-     * Override parent behavior to lazily initialize styles vectors. This will
-     * only be called once, if resolved == false. In the case of DOM model,
-     * resolve this page's full DOM.
-     *
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroContainer#resolveChildren()
-     */
-    @Override
+	/*
+	 * Override parent behavior to lazily initialize styles vectors. This will
+	 * only be called once, if resolved == false. In the case of DOM model,
+	 * resolve this page's full DOM.
+	 *
+	 * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroContainer#resolveChildren()
+	 */
+	@Override
 	protected void resolveChildren() {
-        // flag would be set
-        if (isXHTMLPage)
-            resolvePage();
-        else
-            super.resolveChildren();
-    }
+		// flag would be set
+		if (isXHTMLPage)
+			resolvePage();
+		else
+			super.resolveChildren();
+	}
 
 
 
-    /**
-     * Override parent behavior to add support for HEAD & Title element in pages
-     * only, and not in divs.
-     *
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroContainer#getModelChild(org.eclipse.core.runtime.IConfigurationElement)
-     */
-    @Override
+	/**
+	 * Override parent behavior to add support for HEAD & Title element in pages
+	 * only, and not in divs.
+	 *
+	 * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroContainer#getModelChild(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	@Override
 	protected AbstractIntroElement getModelChild(Element childElement,
-            Bundle bundle, String base) {
-        AbstractIntroElement child = null;
-        if (childElement.getNodeName().equalsIgnoreCase(IntroHead.TAG_HEAD)) {
-            child = new IntroHead(childElement, bundle, base);
-        } else if (childElement.getNodeName().equalsIgnoreCase(
-            IntroPageTitle.TAG_TITLE)) {
-            // if we have a title, only add it as a child if we did not load one
-            // before. A page can only have one title.
-            if (title == null) {
-                child = new IntroPageTitle(childElement, bundle);
-            }
-        }
-        if (child != null)
-            return child;
-        return super.getModelChild(childElement, bundle, base);
-    }
+			Bundle bundle, String base) {
+		AbstractIntroElement child = null;
+		if (childElement.getNodeName().equalsIgnoreCase(IntroHead.TAG_HEAD)) {
+			child = new IntroHead(childElement, bundle, base);
+		} else if (childElement.getNodeName().equalsIgnoreCase(
+			IntroPageTitle.TAG_TITLE)) {
+			// if we have a title, only add it as a child if we did not load one
+			// before. A page can only have one title.
+			if (title == null) {
+				child = new IntroPageTitle(childElement, bundle);
+			}
+		}
+		if (child != null)
+			return child;
+		return super.getModelChild(childElement, bundle, base);
+	}
 
-    /**
-     * Returns all head contributions in this page. There can be more than one
-     * head contribution in the page;
-     *
-     * @return
-     */
-    public IntroHead[] getHTMLHeads() {
-        return (IntroHead[]) getChildrenOfType(AbstractIntroElement.HEAD);
-    }
+	/**
+	 * Returns all head contributions in this page. There can be more than one
+	 * head contribution in the page;
+	 *
+	 * @return
+	 */
+	public IntroHead[] getHTMLHeads() {
+		return (IntroHead[]) getChildrenOfType(AbstractIntroElement.HEAD);
+	}
 
 
-    /**
-     * load the children of this container. Override parent behavior because we
-     * want to support loading content from other xml files. The design is that
-     * only the id and content from the existing page are honored. All other
-     * attributes are what they are defined in the external paget. For XHTML
-     * content, all info is in the xhtml page. If we fail to load the page,
-     * display the Invalid Page page.
-     */
-    @Override
+	/**
+	 * load the children of this container. Override parent behavior because we
+	 * want to support loading content from other xml files. The design is that
+	 * only the id and content from the existing page are honored. All other
+	 * attributes are what they are defined in the external paget. For XHTML
+	 * content, all info is in the xhtml page. If we fail to load the page,
+	 * display the Invalid Page page.
+	 */
+	@Override
 	protected void loadChildren() {
-        if (content == null) {
-            // no content. do regular loading.
-            super.loadChildren();
-            return;
-        }
+		if (content == null) {
+			// no content. do regular loading.
+			super.loadChildren();
+			return;
+		}
 
-        // content attribute is defined. It either points to an XHTML file, or
-        // an introContent.xml file. Process each case. Assume it is an
-        // introContent file.
-        // INTRO: XHTML file is loaded needlessly when we have XHTML content and
-        // SWT presentation.
-        IntroContentParser parser = new IntroContentParser(content);
-        Document dom = parser.getDocument();
-        if (dom == null) {
-            // bad xml. This could be bad XHTML or bad intro XML. Parser would
-            // have logged fact. Load dom for invalid page, and make sure to
-            // force an extract on parent folder to enabling jarring.
-            Bundle introBundle = Platform.getBundle(IIntroConstants.PLUGIN_ID);
-            ModelUtil.ensureFileURLsExist(introBundle, INVALID_CONTENT);
+		// content attribute is defined. It either points to an XHTML file, or
+		// an introContent.xml file. Process each case. Assume it is an
+		// introContent file.
+		// INTRO: XHTML file is loaded needlessly when we have XHTML content and
+		// SWT presentation.
+		IntroContentParser parser = new IntroContentParser(content);
+		Document dom = parser.getDocument();
+		if (dom == null) {
+			// bad xml. This could be bad XHTML or bad intro XML. Parser would
+			// have logged fact. Load dom for invalid page, and make sure to
+			// force an extract on parent folder to enabling jarring.
+			Bundle introBundle = Platform.getBundle(IIntroConstants.PLUGIN_ID);
+			ModelUtil.ensureFileURLsExist(introBundle, INVALID_CONTENT);
 
-            String invalidContentFilePath = BundleUtil
-                .getResolvedResourceLocation(INVALID_CONTENT, introBundle);
-            parser = new IntroContentParser(invalidContentFilePath);
-            dom = parser.getDocument();
-            // make sure to override all attributes to resolve the Invalid
-            // Page page correctly.
-            content = invalidContentFilePath;
-            this.base = INVALID_CONTENT_BASE;
-            setBundle(introBundle);
-        }
+			String invalidContentFilePath = BundleUtil
+				.getResolvedResourceLocation(INVALID_CONTENT, introBundle);
+			parser = new IntroContentParser(invalidContentFilePath);
+			dom = parser.getDocument();
+			// make sure to override all attributes to resolve the Invalid
+			// Page page correctly.
+			content = invalidContentFilePath;
+			this.base = INVALID_CONTENT_BASE;
+			setBundle(introBundle);
+		}
 
-        // parse content depending on type. Make sure to set the loaded flag
-        // accordingly, otherwise content file will always be parsed.
-        if (parser.hasXHTMLContent()) {
-            loadXHTMLContent(dom);
-            // make sure to use correct base.
-            init(element, getBundle(), initialBase);
-            super.loadChildren();
-        } else
-            // load the first page with correct id, from content xml file.
-            loadXMLContent(dom);
-    }
+		// parse content depending on type. Make sure to set the loaded flag
+		// accordingly, otherwise content file will always be parsed.
+		if (parser.hasXHTMLContent()) {
+			loadXHTMLContent(dom);
+			// make sure to use correct base.
+			init(element, getBundle(), initialBase);
+			super.loadChildren();
+		} else
+			// load the first page with correct id, from content xml file.
+			loadXMLContent(dom);
+	}
 
-    /**
-     * Load the xml content from the introContent.xml file pointed to by the
-     * content attribute, and loaded into the passed DOM. Load the first page
-     * with correct id from this content file.
-     *
-     * @param dom
-     */
-    private void loadXMLContent(Document dom) {
-        Element[] pages = ModelUtil.getElementsByTagName(dom,
-            AbstractIntroPage.TAG_PAGE);
-        if (pages.length == 0) {
-            Log.warning("Content file has no pages."); //$NON-NLS-1$
-            return;
-        }
-        // point the element of this page to the new element. Pick first page
-        // with matching id. Make sure to disable loading of children of current
-        // element if a matching page in the external content file is not found.
-        boolean foundMatchingPage = false;
-        for (int i = 0; i < pages.length; i++) {
-            Element pageElement = pages[i];
-            if (pageElement.getAttribute(AbstractIntroIdElement.ATT_ID).equals(
-                getId())) {
-                this.element = pageElement;
-                // call init on the new element. the filtering and the style-id
-                // are loaded by the parent class.
-                init(pageElement, getBundle(), base);
-                // INTRO: revisit. Special processing here should be made more
-                // general. we know id is correct.
-                style_id = getAttribute(element,
-                    AbstractBaseIntroElement.ATT_STYLE_ID);
-                filteredFrom = getAttribute(element,
-                    AbstractBaseIntroElement.ATT_FILTERED_FROM);
-                sharedStyle = getAttribute(element, ATT_SHARED_STYLE);
-                if (sharedStyle == null)
-                    sharedStyle = "true"; //$NON-NLS-1$
-                foundMatchingPage = true;
-            }
-        }
-        if (foundMatchingPage)
-            // now do children loading as usual.
-            super.loadChildren();
-        else {
-            // page was not found in content file. Perform load actions, and log
-            // fact. init the children vector.
+	/**
+	 * Load the xml content from the introContent.xml file pointed to by the
+	 * content attribute, and loaded into the passed DOM. Load the first page
+	 * with correct id from this content file.
+	 *
+	 * @param dom
+	 */
+	private void loadXMLContent(Document dom) {
+		Element[] pages = ModelUtil.getElementsByTagName(dom,
+			AbstractIntroPage.TAG_PAGE);
+		if (pages.length == 0) {
+			Log.warning("Content file has no pages."); //$NON-NLS-1$
+			return;
+		}
+		// point the element of this page to the new element. Pick first page
+		// with matching id. Make sure to disable loading of children of current
+		// element if a matching page in the external content file is not found.
+		boolean foundMatchingPage = false;
+		for (int i = 0; i < pages.length; i++) {
+			Element pageElement = pages[i];
+			if (pageElement.getAttribute(AbstractIntroIdElement.ATT_ID).equals(
+				getId())) {
+				this.element = pageElement;
+				// call init on the new element. the filtering and the style-id
+				// are loaded by the parent class.
+				init(pageElement, getBundle(), base);
+				// INTRO: revisit. Special processing here should be made more
+				// general. we know id is correct.
+				style_id = getAttribute(element,
+					AbstractBaseIntroElement.ATT_STYLE_ID);
+				filteredFrom = getAttribute(element,
+					AbstractBaseIntroElement.ATT_FILTERED_FROM);
+				sharedStyle = getAttribute(element, ATT_SHARED_STYLE);
+				if (sharedStyle == null)
+					sharedStyle = "true"; //$NON-NLS-1$
+				foundMatchingPage = true;
+			}
+		}
+		if (foundMatchingPage)
+			// now do children loading as usual.
+			super.loadChildren();
+		else {
+			// page was not found in content file. Perform load actions, and log
+			// fact. init the children vector.
 			children = new Vector<>();
-            loaded = true;
-            // free DOM model for memory performance.
-            element = null;
-            Log.warning("Content file does not have page with id= " + getId()); //$NON-NLS-1$
-        }
-    }
+			loaded = true;
+			// free DOM model for memory performance.
+			element = null;
+			Log.warning("Content file does not have page with id= " + getId()); //$NON-NLS-1$
+		}
+	}
 
-    private void loadXHTMLContent(Document dom) {
-        // no need to load any children since we use XSLT to print XHTML
-        // content. Simply cache DOM.
-        this.dom = dom;
-        this.isXHTMLPage = true;
-        // init empty children vector.
+	private void loadXHTMLContent(Document dom) {
+		// no need to load any children since we use XSLT to print XHTML
+		// content. Simply cache DOM.
+		this.dom = dom;
+		this.isXHTMLPage = true;
+		// init empty children vector.
 		children = new Vector<>();
-        loaded = true;
-    }
+		loaded = true;
+	}
 
-    /**
-     * Returns the DOM representing an external XHTML file. May return null if
-     * extension content is 3.0 format. The page is resolved before returning,
-     * meaning includes are resolved, and the base of the page is defined.
-     *
-     * @return
-     */
-    public Document getResolvedDocument() {
-        // we need to force a getChildren to resolve the page.
-        getChildren();
-        return dom;
-    }
+	/**
+	 * Returns the DOM representing an external XHTML file. May return null if
+	 * extension content is 3.0 format. The page is resolved before returning,
+	 * meaning includes are resolved, and the base of the page is defined.
+	 *
+	 * @return
+	 */
+	public Document getResolvedDocument() {
+		// we need to force a getChildren to resolve the page.
+		getChildren();
+		return dom;
+	}
 
 
-    /**
-     * Returns the DOM representing an external XHTML file. May return null if
-     * extension content is 3.0 format. The page is NOT resolved before
-     * returning. It is retruned as given by the dom parser.
-     *
-     * @return
-     */
-    public Document getDocument() {
-        // we only need to load children here.
-        if (!loaded)
-            loadChildren();
-        return dom;
-    }
+	/**
+	 * Returns the DOM representing an external XHTML file. May return null if
+	 * extension content is 3.0 format. The page is NOT resolved before
+	 * returning. It is retruned as given by the dom parser.
+	 *
+	 * @return
+	 */
+	public Document getDocument() {
+		// we only need to load children here.
+		if (!loaded)
+			loadChildren();
+		return dom;
+	}
 
 
-    /**
-     * Returns whether or not we have an XHTML page as the content for this
-     * page. The XHTML page is defined through the content attribute. This
-     * method forces the content file to be parsed and loaded in memory.
-     *
-     * @return
-     */
-    public boolean isXHTMLPage() {
-        // we need to force loading of children since we need to determine
-        // content type. Load the children without resolving (for performance),
-        // this will set the XHTML flag at the page level.
-        if (!loaded)
-            loadChildren();
-        return isXHTMLPage;
-    }
+	/**
+	 * Returns whether or not we have an XHTML page as the content for this
+	 * page. The XHTML page is defined through the content attribute. This
+	 * method forces the content file to be parsed and loaded in memory.
+	 *
+	 * @return
+	 */
+	public boolean isXHTMLPage() {
+		// we need to force loading of children since we need to determine
+		// content type. Load the children without resolving (for performance),
+		// this will set the XHTML flag at the page level.
+		if (!loaded)
+			loadChildren();
+		return isXHTMLPage;
+	}
 
 
-    /**
-     * Deep searches all children in this container's DOM for the first child
-     * with the given id. The element retrieved must have the passed local name.
-     * Note that in an XHTML file (aka DOM) elements should have a unique id
-     * within the scope of a document. We use local name because this allows for
-     * finding intro anchors, includes and dynamic content element regardless of
-     * whether or not an xmlns was used in the xml. note: could not have used
-     * inheritance from parent container because return type for parent is intro
-     * legacy model.
-     *
-     */
-    public Element findDomChild(String id, String localElementName) {
-        if (!loaded)
-            loadChildren();
-        // using getElementById is tricky and we need to have intro XHTML
-        // modules to properly use this method.
-        return ModelUtil.getElementById(dom, id, localElementName);
-    }
+	/**
+	 * Deep searches all children in this container's DOM for the first child
+	 * with the given id. The element retrieved must have the passed local name.
+	 * Note that in an XHTML file (aka DOM) elements should have a unique id
+	 * within the scope of a document. We use local name because this allows for
+	 * finding intro anchors, includes and dynamic content element regardless of
+	 * whether or not an xmlns was used in the xml. note: could not have used
+	 * inheritance from parent container because return type for parent is intro
+	 * legacy model.
+	 *
+	 */
+	public Element findDomChild(String id, String localElementName) {
+		if (!loaded)
+			loadChildren();
+		// using getElementById is tricky and we need to have intro XHTML
+		// modules to properly use this method.
+		return ModelUtil.getElementById(dom, id, localElementName);
+	}
 
-    /**
-     * Search for any element with the given id.
-     *
-     * @param id
-     * @return
-     */
-    public Element findDomChild(String id) {
-        return findDomChild(id, "*"); //$NON-NLS-1$
+	/**
+	 * Search for any element with the given id.
+	 *
+	 * @param id
+	 * @return
+	 */
+	public Element findDomChild(String id) {
+		return findDomChild(id, "*"); //$NON-NLS-1$
 
-    }
+	}
 
 
 
-    /**
-     * Resolves the full page. It is called just before the page needs to be
-     * displayed.
-     * <li>adds a BASE child to the DOM HEAD element, if one is not defined.
-     * All intro documents must have a base defined to resolve all urls.</li>
-     * <li>resolves all includes in the page. This means importing target DOM.
-     * </li>
-     * <li>resolves all XHTML attributes for resources, eg: src, href
-     * attributes.</li>
-     */
-    protected void resolvePage() {
-        // insert base meta-tag,
-        ModelUtil.insertBase(dom, ModelUtil.getParentFolderOSString(content));
+	/**
+	 * Resolves the full page. It is called just before the page needs to be
+	 * displayed.
+	 * <li>adds a BASE child to the DOM HEAD element, if one is not defined.
+	 * All intro documents must have a base defined to resolve all urls.</li>
+	 * <li>resolves all includes in the page. This means importing target DOM.
+	 * </li>
+	 * <li>resolves all XHTML attributes for resources, eg: src, href
+	 * attributes.</li>
+	 */
+	protected void resolvePage() {
+		// insert base meta-tag,
+		ModelUtil.insertBase(dom, ModelUtil.getParentFolderOSString(content));
 
-        // resolve all relative resources relative to content file. Do it before
-        // inserting shared style to enable comparing fully qualified styles.
-        ModelUtil.updateResourceAttributes(dom.getDocumentElement(), this);
+		// resolve all relative resources relative to content file. Do it before
+		// inserting shared style to enable comparing fully qualified styles.
+		ModelUtil.updateResourceAttributes(dom.getDocumentElement(), this);
 
-        // now add shared style.
-        IntroModelRoot modelRoot = (IntroModelRoot)getParent();
-        IntroPartPresentation presentation = modelRoot.getPresentation();
-        String [] styles = presentation!=null?presentation.getImplementationStyles():null;
-        if (styles != null && injectSharedStyle()) {
-        	for (int i=0; i<styles.length; i++)
-        		ModelUtil.insertStyle(dom, styles[i]);
-        }
+		// now add shared style.
+		IntroModelRoot modelRoot = (IntroModelRoot)getParent();
+		IntroPartPresentation presentation = modelRoot.getPresentation();
+		String [] styles = presentation!=null?presentation.getImplementationStyles():null;
+		if (styles != null && injectSharedStyle()) {
+			for (int i=0; i<styles.length; i++)
+				ModelUtil.insertStyle(dom, styles[i]);
+		}
 
-        // filter the content
-        if (domProcessor == null) {
-        	domProcessor = new DocumentProcessor(new ProcessorHandler[] { new FilterHandler(IntroEvaluationContext.getContext()) });
-        }
-        UAElement element = UAElementFactory.newElement(dom.getDocumentElement());
-        domProcessor.process(element, null);
+		// filter the content
+		if (domProcessor == null) {
+			domProcessor = new DocumentProcessor(new ProcessorHandler[] { new FilterHandler(IntroEvaluationContext.getContext()) });
+		}
+		UAElement element = UAElementFactory.newElement(dom.getDocumentElement());
+		domProcessor.process(element, null);
 
-        // and resolve includes.
-        resolveIncludes();
+		// and resolve includes.
+		resolveIncludes();
 
-        // now remove all anchors from this page.
-        ModelUtil.removeAllElements(dom, IntroAnchor.TAG_ANCHOR);
-        resolved = true;
-    }
+		// now remove all anchors from this page.
+		ModelUtil.removeAllElements(dom, IntroAnchor.TAG_ANCHOR);
+		resolved = true;
+	}
 
-    /**
-     * Resolves all includes in this page. This means importing the DOM of the
-     * target path into the current page DOM, and resolving XHTML attributes for
-     * resources.
-     */
-    protected void resolveIncludes() {
-        // get all includes elements in DOM.
-        NodeList includes = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
-            IntroInclude.TAG_INCLUDE);
-        // get the array version of the include nodelist to work around
-        // replaceChild() DOM api design.
-        Node[] nodes = ModelUtil.getArray(includes);
-        for (int i = 0; i < nodes.length; i++) {
-            Element includeElement = (Element) nodes[i];
-            IntroInclude include = new IntroInclude(includeElement, getBundle());
-            // result[0] is target parent page, result[1] is target element.
-            Object[] results = findDOMIncludeTarget(include);
-            Element targetElement = (Element) results[1];
-            if (targetElement == null) {
-                String message = "Could not resolve following include:  " //$NON-NLS-1$
-                        + ModelLoaderUtil.getLogString(getBundle(),
-                            includeElement, IntroInclude.ATT_PATH);
-                Log.warning(message);
-                return;
-            }
+	/**
+	 * Resolves all includes in this page. This means importing the DOM of the
+	 * target path into the current page DOM, and resolving XHTML attributes for
+	 * resources.
+	 */
+	protected void resolveIncludes() {
+		// get all includes elements in DOM.
+		NodeList includes = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
+			IntroInclude.TAG_INCLUDE);
+		// get the array version of the include nodelist to work around
+		// replaceChild() DOM api design.
+		Node[] nodes = ModelUtil.getArray(includes);
+		for (int i = 0; i < nodes.length; i++) {
+			Element includeElement = (Element) nodes[i];
+			IntroInclude include = new IntroInclude(includeElement, getBundle());
+			// result[0] is target parent page, result[1] is target element.
+			Object[] results = findDOMIncludeTarget(include);
+			Element targetElement = (Element) results[1];
+			if (targetElement == null) {
+				String message = "Could not resolve following include:  " //$NON-NLS-1$
+						+ ModelLoaderUtil.getLogString(getBundle(),
+							includeElement, IntroInclude.ATT_PATH);
+				Log.warning(message);
+				return;
+			}
 
-            // insert the target element instead of the include.
-            Node targetNode = dom.importNode(targetElement, true);
-            // update the src attribute of this node, if defined by w3
-            // specs.
-            AbstractIntroPage page = ((AbstractIntroPage) results[0]);
-            ModelUtil.updateResourceAttributes((Element) targetNode, page);
-            // use of replace API to remove include element is tricky. It
-            // confuses the NodeList used in the loop above. Removing an include
-            // removes it from the NodeList. Used cloned Array instead.
-            includeElement.getParentNode().replaceChild(targetNode,
-                includeElement);
-        }
-    }
+			// insert the target element instead of the include.
+			Node targetNode = dom.importNode(targetElement, true);
+			// update the src attribute of this node, if defined by w3
+			// specs.
+			AbstractIntroPage page = ((AbstractIntroPage) results[0]);
+			ModelUtil.updateResourceAttributes((Element) targetNode, page);
+			// use of replace API to remove include element is tricky. It
+			// confuses the NodeList used in the loop above. Removing an include
+			// removes it from the NodeList. Used cloned Array instead.
+			includeElement.getParentNode().replaceChild(targetNode,
+				includeElement);
+		}
+	}
 
 
-    /**
-     * Find the target Element pointed to by the path in the include. It is
-     * assumed that configId always points to an external config, and not the
-     * same config of the inlcude.
-     *
-     * @param include
-     * @param path
-     * @return
-     */
-    private Object[] findDOMIncludeTarget(IntroInclude include) {
-        String path = include.getPath();
-        IntroModelRoot targetModelRoot = (IntroModelRoot) getParentPage()
-            .getParent();
-        String targetConfigID = include.getConfigId();
-        if (targetConfigID != null)
-            targetModelRoot = ExtensionPointManager.getInst().getModel(
-                targetConfigID);
-        if (targetModelRoot == null)
-            // if the target config was not found, skip this include.
-            return null;
-        return findDOMTarget(targetModelRoot, path);
+	/**
+	 * Find the target Element pointed to by the path in the include. It is
+	 * assumed that configId always points to an external config, and not the
+	 * same config of the inlcude.
+	 *
+	 * @param include
+	 * @param path
+	 * @return
+	 */
+	private Object[] findDOMIncludeTarget(IntroInclude include) {
+		String path = include.getPath();
+		IntroModelRoot targetModelRoot = (IntroModelRoot) getParentPage()
+			.getParent();
+		String targetConfigID = include.getConfigId();
+		if (targetConfigID != null)
+			targetModelRoot = ExtensionPointManager.getInst().getModel(
+				targetConfigID);
+		if (targetModelRoot == null)
+			// if the target config was not found, skip this include.
+			return null;
+		return findDOMTarget(targetModelRoot, path);
 
-    }
+	}
 
 
 
-    /**
-     * Finds the child element that corresponds to the given path in the passed
-     * model.
-     *
-     * @param model
-     *            model containing target path.
-     * @param path
-     *            the path to look for
-     * @param results
-     *            two object array that will return the target intro page as the
-     *            first result, and the actual target DOM Element as the second
-     *            result. It is gauranteed to not be null. Content may be null.
-     * @return target DOM element
-     */
-    public Object[] findDOMTarget(IntroModelRoot model, String path) {
-        Object[] results = new Object[2];
-        // path must be pageId/anchorID in the case of of XHTML pages.
-        // pages.
-        String[] pathSegments = path.split("/"); //$NON-NLS-1$
-        if (pathSegments.length != 2)
-            // path does not have correct format. Return empty results.
-            return results;
+	/**
+	 * Finds the child element that corresponds to the given path in the passed
+	 * model.
+	 *
+	 * @param model
+	 *            model containing target path.
+	 * @param path
+	 *            the path to look for
+	 * @param results
+	 *            two object array that will return the target intro page as the
+	 *            first result, and the actual target DOM Element as the second
+	 *            result. It is gauranteed to not be null. Content may be null.
+	 * @return target DOM element
+	 */
+	public Object[] findDOMTarget(IntroModelRoot model, String path) {
+		Object[] results = new Object[2];
+		// path must be pageId/anchorID in the case of of XHTML pages.
+		// pages.
+		String[] pathSegments = path.split("/"); //$NON-NLS-1$
+		if (pathSegments.length != 2)
+			// path does not have correct format. Return empty results.
+			return results;
 
-        // save to cast.
-        AbstractIntroPage targetPage = (AbstractIntroPage) model.findChild(
-            pathSegments[0], ABSTRACT_PAGE);
+		// save to cast.
+		AbstractIntroPage targetPage = (AbstractIntroPage) model.findChild(
+			pathSegments[0], ABSTRACT_PAGE);
 
-        if (targetPage != null) {
-            results[0] = targetPage;
-            Element targetElement = targetPage.findDomChild(pathSegments[1]);
-            if (targetElement != null)
-                results[1] = targetElement;
-        }
-        return results;
-    }
+		if (targetPage != null) {
+			results[0] = targetPage;
+			Element targetElement = targetPage.findDomChild(pathSegments[1]);
+			if (targetElement != null)
+				results[1] = targetElement;
+		}
+		return results;
+	}
 
 
-    /**
-     * @return Returns the content.
-     */
-    public String getContent() {
-        return content;
-    }
+	/**
+	 * @return Returns the content.
+	 */
+	public String getContent() {
+		return content;
+	}
 
 
 
-    /**
-     * Deep copy since class has mutable objects.
-     */
-    @Override
+	/**
+	 * Deep copy since class has mutable objects.
+	 */
+	@Override
 	public Object clone() throws CloneNotSupportedException {
-        AbstractIntroPage clone = (AbstractIntroPage) super.clone();
-        if (title != null) {
-            IntroPageTitle clonedTitle = (IntroPageTitle) title.clone();
-            clonedTitle.setParent(clone);
-            clone.title = clonedTitle;
-        }
-        // styles are safe for a shallow copy.
-        if (styles != null)
+		AbstractIntroPage clone = (AbstractIntroPage) super.clone();
+		if (title != null) {
+			IntroPageTitle clonedTitle = (IntroPageTitle) title.clone();
+			clonedTitle.setParent(clone);
+			clone.title = clonedTitle;
+		}
+		// styles are safe for a shallow copy.
+		if (styles != null)
 			clone.styles = new Vector<>(styles);
-        if (altStyles != null)
+		if (altStyles != null)
 			clone.altStyles = new Hashtable<>(altStyles);
-        return clone;
-    }
+		return clone;
+	}
 
-    /**
-     * Used when cloning pages to assign a unique id. Cache original id before
-     * setting.
-     *
-     * @param id
-     */
-    public void setId(String id) {
-        this.originalId = this.id;
-        this.id = id;
-    }
+	/**
+	 * Used when cloning pages to assign a unique id. Cache original id before
+	 * setting.
+	 *
+	 * @param id
+	 */
+	public void setId(String id) {
+		this.originalId = this.id;
+		this.id = id;
+	}
 
-    /*
-     * Creates an IFrame and injects it as the only child of the specified path.
-     */
-    public boolean injectIFrame(String url, String embedTarget) {
-        // embed url as IFrame in target div. We need to find target div in
-        // this cloned page not in the original page.
-        IntroGroup divToReplace = (IntroGroup) findTarget(embedTarget);
-        if (divToReplace == null) {
-            // we failed to find embed div, log and exit.
-            Log.warning("Failed to find embedTarget: " + embedTarget //$NON-NLS-1$
-                    + " in page " + getId()); //$NON-NLS-1$
-            return false;
-        }
+	/*
+	 * Creates an IFrame and injects it as the only child of the specified path.
+	 */
+	public boolean injectIFrame(String url, String embedTarget) {
+		// embed url as IFrame in target div. We need to find target div in
+		// this cloned page not in the original page.
+		IntroGroup divToReplace = (IntroGroup) findTarget(embedTarget);
+		if (divToReplace == null) {
+			// we failed to find embed div, log and exit.
+			Log.warning("Failed to find embedTarget: " + embedTarget //$NON-NLS-1$
+					+ " in page " + getId()); //$NON-NLS-1$
+			return false;
+		}
 
-        this.iframe = new IntroInjectedIFrame(getElement(), getBundle());
-        this.iframe.setParent(divToReplace);
-        this.iframe.setIFrameURL(url);
-        divToReplace.clearChildren();
-        divToReplace.addChild(iframe);
-        return true;
-    }
+		this.iframe = new IntroInjectedIFrame(getElement(), getBundle());
+		this.iframe.setParent(divToReplace);
+		this.iframe.setIFrameURL(url);
+		divToReplace.clearChildren();
+		divToReplace.addChild(iframe);
+		return true;
+	}
 
-    /**
-     * Return true if this page is a cloned page that has an IFrame.
-     *
-     * @return
-     */
-    public boolean isIFramePage() {
-        return (iframe != null) ? true : false;
-    }
+	/**
+	 * Return true if this page is a cloned page that has an IFrame.
+	 *
+	 * @return
+	 */
+	public boolean isIFramePage() {
+		return (iframe != null) ? true : false;
+	}
 
 
-    public String getUnmangledId() {
-        if (isIFramePage())
-            return originalId;
-        return id;
-    }
+	public String getUnmangledId() {
+		if (isIFramePage())
+			return originalId;
+		return id;
+	}
 
 
-    /**
-     * Set the url of the embedded IFrame, if this page is an IFrame page.
-     *
-     * @param url
-     */
-    public void setIFrameURL(String url) {
-        if (!isIFramePage())
-            return;
-        this.iframe.setIFrameURL(url);
-    }
+	/**
+	 * Set the url of the embedded IFrame, if this page is an IFrame page.
+	 *
+	 * @param url
+	 */
+	public void setIFrameURL(String url) {
+		if (!isIFramePage())
+			return;
+		this.iframe.setIFrameURL(url);
+	}
 
-    /**
-     * Return the url of the embedded IFrame, if this page is an IFrame page.
-     *
-     * @param url
-     */
-    public String getIFrameURL() {
-        if (!isIFramePage())
-            return null;
-        return this.iframe.getIFrameURL();
-    }
+	/**
+	 * Return the url of the embedded IFrame, if this page is an IFrame page.
+	 *
+	 * @param url
+	 */
+	public String getIFrameURL() {
+		if (!isIFramePage())
+			return null;
+		return this.iframe.getIFrameURL();
+	}
 
-    /**
-     * Returns the raw or unprocessed base location.
-     */
-    public String getInitialBase() {
-    	return initialBase;
-    }
+	/**
+	 * Returns the raw or unprocessed base location.
+	 */
+	public String getInitialBase() {
+		return initialBase;
+	}
 
-    /**
-     * Return the url of the embedded IFrame, if this page is an IFrame page.
-     *
-     * @param url
-     */
-    public boolean injectSharedStyle() {
-        return this.sharedStyle.equals("true") ? true : false; //$NON-NLS-1$
-    }
+	/**
+	 * Return the url of the embedded IFrame, if this page is an IFrame page.
+	 *
+	 * @param url
+	 */
+	public boolean injectSharedStyle() {
+		return this.sharedStyle.equals("true") ? true : false; //$NON-NLS-1$
+	}
 
 	/**
 	 * Returns true if this is a dynamicpage or not.
 	 * @return Returns the isDynamic.
 	 */
 	public boolean isDynamic() {
-	    return isDynamic;
+		return isDynamic;
 	}
 
 	/**
-     * @return Returns the url.
-     */
-    public String getUrl() {
-        return url;
-    }
+	 * @return Returns the url.
+	 */
+	public String getUrl() {
+		return url;
+	}
 
 	/**
 	 * @return Returns the isStandbyPage.
 	 */
 	public boolean isStandbyPage() {
-	    return isStandbyPage;
+		return isStandbyPage;
 	}
 
 	/**
@@ -928,7 +928,7 @@
 	 *            The isStandbyPage to set.
 	 */
 	public void setStandbyPage(boolean isStandbyPage) {
-	    this.isStandbyPage = isStandbyPage;
+		this.isStandbyPage = isStandbyPage;
 	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPartImplementation.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPartImplementation.java
index 2341c71..ec5bfcc 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPartImplementation.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPartImplementation.java
@@ -42,363 +42,363 @@
  */
 public abstract class AbstractIntroPartImplementation {
 
-    // CustomizableIntroPart instance.
-    private CustomizableIntroPart introPart = null;
+	// CustomizableIntroPart instance.
+	private CustomizableIntroPart introPart = null;
 
-    // IMemento for restoring state.
-    private IMemento memento;
+	// IMemento for restoring state.
+	private IMemento memento;
 
-    protected History history = new History();
+	protected History history = new History();
 
-    // flag used to enable logging of perf data for full UI creation only once.
-    // Since standbyStateChanged is called several times, flag is used in method
-    // to filter out all subsequent calls.
-    boolean logUIcreationTime = true;
+	// flag used to enable logging of perf data for full UI creation only once.
+	// Since standbyStateChanged is called several times, flag is used in method
+	// to filter out all subsequent calls.
+	boolean logUIcreationTime = true;
 
-    // Global actions
-    protected Action backAction = new Action() {
+	// Global actions
+	protected Action backAction = new Action() {
 
-        {
-            setToolTipText(Messages.Browser_backwardButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/backward_nav.png")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                .createImageDescriptor("full/dlcl16/backward_nav.png")); //$NON-NLS-1$
-        }
+		{
+			setToolTipText(Messages.Browser_backwardButton_tooltip);
+			setImageDescriptor(ImageUtil
+				.createImageDescriptor("full/elcl16/backward_nav.png")); //$NON-NLS-1$
+			setDisabledImageDescriptor(ImageUtil
+				.createImageDescriptor("full/dlcl16/backward_nav.png")); //$NON-NLS-1$
+		}
 
-        @Override
+		@Override
 		public void run() {
-            navigateBackward();
-        }
-    };
+			navigateBackward();
+		}
+	};
 
-    protected Action forwardAction = new Action() {
+	protected Action forwardAction = new Action() {
 
-        {
-            setToolTipText(Messages.Browser_forwardButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/forward_nav.png")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                .createImageDescriptor("full/dlcl16/forward_nav.png")); //$NON-NLS-1$
-        }
+		{
+			setToolTipText(Messages.Browser_forwardButton_tooltip);
+			setImageDescriptor(ImageUtil
+				.createImageDescriptor("full/elcl16/forward_nav.png")); //$NON-NLS-1$
+			setDisabledImageDescriptor(ImageUtil
+				.createImageDescriptor("full/dlcl16/forward_nav.png")); //$NON-NLS-1$
+		}
 
-        @Override
+		@Override
 		public void run() {
-            navigateForward();
-        }
-    };
+			navigateForward();
+		}
+	};
 
-    protected Action homeAction = new Action() {
+	protected Action homeAction = new Action() {
 
-        {
-            setToolTipText(Messages.Browser_homeButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/home_nav.png")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                .createImageDescriptor("full/dlcl16/home_nav.png")); //$NON-NLS-1$
-        }
+		{
+			setToolTipText(Messages.Browser_homeButton_tooltip);
+			setImageDescriptor(ImageUtil
+				.createImageDescriptor("full/elcl16/home_nav.png")); //$NON-NLS-1$
+			setDisabledImageDescriptor(ImageUtil
+				.createImageDescriptor("full/dlcl16/home_nav.png")); //$NON-NLS-1$
+		}
 
-        @Override
+		@Override
 		public void run() {
-            navigateHome();
-        }
-    };
+			navigateHome();
+		}
+	};
 
-    protected Action viewIntroModelAction = new Action() {
+	protected Action viewIntroModelAction = new Action() {
 
-        {
-            setToolTipText(Messages.IntroPart_showContentButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("contents_view.png")); //$NON-NLS-1$
-        }
+		{
+			setToolTipText(Messages.IntroPart_showContentButton_tooltip);
+			setImageDescriptor(ImageUtil
+				.createImageDescriptor("contents_view.png")); //$NON-NLS-1$
+		}
 
-        @Override
+		@Override
 		public void run() {
-            ElementTreeSelectionDialog treeViewer = new ElementTreeSelectionDialog(
-                getIntroPart().getIntroSite().getShell(),
-                new IntroModelLabelProvider(), new IntroModelContentProvider());
-            treeViewer.setInput(getModel());
-            treeViewer.open();
-        }
-    };
+			ElementTreeSelectionDialog treeViewer = new ElementTreeSelectionDialog(
+				getIntroPart().getIntroSite().getShell(),
+				new IntroModelLabelProvider(), new IntroModelContentProvider());
+			treeViewer.setInput(getModel());
+			treeViewer.open();
+		}
+	};
 
-    /**
-     * Creates the UI based on this implementation class. .
-     *
-     * @param parent
-     */
-    public abstract void createPartControl(Composite parent);
+	/**
+	 * Creates the UI based on this implementation class. .
+	 *
+	 * @param parent
+	 */
+	public abstract void createPartControl(Composite parent);
 
-    /**
-     * Called when the init method is called in the IIntroPart. Subclasses may
-     * extend, for example to get the passed Memento. When extending, make sure
-     * you include a call to super.
-     *
-     * @param introPart
-     */
-    public void init(IIntroPart introPart, IMemento memento) {
-        // we know the class type to cast to.
-        this.introPart = (CustomizableIntroPart) introPart;
-        this.memento = memento;
-    }
+	/**
+	 * Called when the init method is called in the IIntroPart. Subclasses may
+	 * extend, for example to get the passed Memento. When extending, make sure
+	 * you include a call to super.
+	 *
+	 * @param introPart
+	 */
+	public void init(IIntroPart introPart, IMemento memento) {
+		// we know the class type to cast to.
+		this.introPart = (CustomizableIntroPart) introPart;
+		this.memento = memento;
+	}
 
-    /**
-     * @return
-     */
-    public IntroModelRoot getModel() {
-        return IntroPlugin.getDefault().getIntroModelRoot();
-    }
+	/**
+	 * @return
+	 */
+	public IntroModelRoot getModel() {
+		return IntroPlugin.getDefault().getIntroModelRoot();
+	}
 
-    /**
-     * @return Returns the introPart.
-     */
-    public CustomizableIntroPart getIntroPart() {
-        return introPart;
-    }
+	/**
+	 * @return Returns the introPart.
+	 */
+	public CustomizableIntroPart getIntroPart() {
+		return introPart;
+	}
 
 
-    /**
-     * Updates the UI navigation history with either a real URL.
-     *
-     * @param location
-     */
-    public void updateHistory(String location) {
-        history.updateHistory(location);
-        updateNavigationActionsState();
-    }
+	/**
+	 * Updates the UI navigation history with either a real URL.
+	 *
+	 * @param location
+	 */
+	public void updateHistory(String location) {
+		history.updateHistory(location);
+		updateNavigationActionsState();
+	}
 
-    /**
-     * Updates the UI navigation history with a page ID.
-     *
-     * @param pageId
-     */
-    public void updateHistory(AbstractIntroPage page) {
-        history.updateHistory(page);
-        updateNavigationActionsState();
-    }
+	/**
+	 * Updates the UI navigation history with a page ID.
+	 *
+	 * @param pageId
+	 */
+	public void updateHistory(AbstractIntroPage page) {
+		history.updateHistory(page);
+		updateNavigationActionsState();
+	}
 
 
-    /**
-     * Subclasses must implement to set the state of the navigation actions in
-     * the toolbar.
-     *
-     */
-    public abstract void setFocus();
+	/**
+	 * Subclasses must implement to set the state of the navigation actions in
+	 * the toolbar.
+	 *
+	 */
+	public abstract void setFocus();
 
 
-    /**
-     * Subclasses must implement to update the intro view actions when history
-     * is updated.
-     *
-     */
-    protected abstract void updateNavigationActionsState();
+	/**
+	 * Subclasses must implement to update the intro view actions when history
+	 * is updated.
+	 *
+	 */
+	protected abstract void updateNavigationActionsState();
 
 
 
-    public abstract boolean navigateBackward();
+	public abstract boolean navigateBackward();
 
-    public abstract boolean navigateForward();
+	public abstract boolean navigateForward();
 
-    public abstract boolean navigateHome();
+	public abstract boolean navigateHome();
 
 
-    /**
-     * Called when the IntroPart is disposed. Subclasses should override to
-     * dispose of resources. By default, this implementation does nothing.
-     */
-    public void dispose() {
-        // no-op
-    }
+	/**
+	 * Called when the IntroPart is disposed. Subclasses should override to
+	 * dispose of resources. By default, this implementation does nothing.
+	 */
+	public void dispose() {
+		// no-op
+	}
 
 
-    /*
-     * Add the Intro Model Viewer as an action to all implementations.
-     */
-    protected void addToolBarActions() {
-        // Handle menus:
-        IActionBars actionBars = getIntroPart().getIntroSite().getActionBars();
-        IToolBarManager toolBarManager = actionBars.getToolBarManager();
-        toolBarManager.add(viewIntroModelAction);
-        toolBarManager.update(true);
-        actionBars.updateActionBars();
-    }
+	/*
+	 * Add the Intro Model Viewer as an action to all implementations.
+	 */
+	protected void addToolBarActions() {
+		// Handle menus:
+		IActionBars actionBars = getIntroPart().getIntroSite().getActionBars();
+		IToolBarManager toolBarManager = actionBars.getToolBarManager();
+		toolBarManager.add(viewIntroModelAction);
+		toolBarManager.update(true);
+		actionBars.updateActionBars();
+	}
 
-    /**
-     * Called when the Intro changes state. This method should not be
-     * subclassed. It adds performance logging calls. Subclasses must implement
-     * doStandbyStateChanged instead.
-     *
-     * @param standby
-     */
-    public void standbyStateChanged(boolean standby, boolean isStandbyPartNeeded) {
-        PerformanceStats setStandbyStateStats = null;
-        long start = 0;
-        if (Log.logPerformance) {
-            if (logUIcreationTime && PerformanceStats.ENABLED) {
-                PerformanceStats stats = PerformanceStats.getStats(
-                    IIntroConstants.PERF_UI_ZOOM, IIntroConstants.INTRO);
-                stats.endRun();
-                Util
-                    .logPerformanceMessage(
-                        "(perf stats) time spent in UI code before content is displayed (standbyStateChanged event is fired) ", //$NON-NLS-1$
-                        stats.getRunningTime());
-                stats.reset();
-            }
+	/**
+	 * Called when the Intro changes state. This method should not be
+	 * subclassed. It adds performance logging calls. Subclasses must implement
+	 * doStandbyStateChanged instead.
+	 *
+	 * @param standby
+	 */
+	public void standbyStateChanged(boolean standby, boolean isStandbyPartNeeded) {
+		PerformanceStats setStandbyStateStats = null;
+		long start = 0;
+		if (Log.logPerformance) {
+			if (logUIcreationTime && PerformanceStats.ENABLED) {
+				PerformanceStats stats = PerformanceStats.getStats(
+					IIntroConstants.PERF_UI_ZOOM, IIntroConstants.INTRO);
+				stats.endRun();
+				Util
+					.logPerformanceMessage(
+						"(perf stats) time spent in UI code before content is displayed (standbyStateChanged event is fired) ", //$NON-NLS-1$
+						stats.getRunningTime());
+				stats.reset();
+			}
 
-            // standby time.
-            setStandbyStateStats = PerformanceStats.getStats(
-                IIntroConstants.PERF_SET_STANDBY_STATE, IIntroConstants.INTRO);
-            setStandbyStateStats.startRun();
-            start = System.currentTimeMillis();
-        }
+			// standby time.
+			setStandbyStateStats = PerformanceStats.getStats(
+				IIntroConstants.PERF_SET_STANDBY_STATE, IIntroConstants.INTRO);
+			setStandbyStateStats.startRun();
+			start = System.currentTimeMillis();
+		}
 
 
-        doStandbyStateChanged(standby, isStandbyPartNeeded);
+		doStandbyStateChanged(standby, isStandbyPartNeeded);
 
-        // now log performance
-        if (Log.logPerformance) {
-            if (PerformanceStats.ENABLED) {
-                setStandbyStateStats.endRun();
-                Util
-                    .logPerformanceMessage(
-                        "(perf stats) setting standby state (zooming, displaying content) took:", //$NON-NLS-1$
-                        +setStandbyStateStats.getRunningTime());
-                setStandbyStateStats.reset();
-            } else
-                Util
-                    .logPerformanceTime(
-                        "setting standby state (zooming, generating content, setText() ) took:", //$NON-NLS-1$
-                        +start);
+		// now log performance
+		if (Log.logPerformance) {
+			if (PerformanceStats.ENABLED) {
+				setStandbyStateStats.endRun();
+				Util
+					.logPerformanceMessage(
+						"(perf stats) setting standby state (zooming, displaying content) took:", //$NON-NLS-1$
+						+setStandbyStateStats.getRunningTime());
+				setStandbyStateStats.reset();
+			} else
+				Util
+					.logPerformanceTime(
+						"setting standby state (zooming, generating content, setText() ) took:", //$NON-NLS-1$
+						+start);
 
-            if (logUIcreationTime) {
-                if (PerformanceStats.ENABLED) {
-                    PerformanceStats stats = PerformanceStats.getStats(
-                        IIntroConstants.PERF_VIEW_CREATION_TIME,
-                        IIntroConstants.INTRO);
-                    stats.endRun();
-                    Util
-                        .logPerformanceMessage(
-                            "END - (perf stats): creating CustomizableIntroPart view took:", //$NON-NLS-1$
-                            +stats.getRunningTime());
-                    stats.reset();
-                } else
-                    Util.logPerformanceTime(
-                        "END: creating CustomizableIntroPart view took:", //$NON-NLS-1$
-                        +IntroPlugin.getDefault().gettUICreationStartTime());
+			if (logUIcreationTime) {
+				if (PerformanceStats.ENABLED) {
+					PerformanceStats stats = PerformanceStats.getStats(
+						IIntroConstants.PERF_VIEW_CREATION_TIME,
+						IIntroConstants.INTRO);
+					stats.endRun();
+					Util
+						.logPerformanceMessage(
+							"END - (perf stats): creating CustomizableIntroPart view took:", //$NON-NLS-1$
+							+stats.getRunningTime());
+					stats.reset();
+				} else
+					Util.logPerformanceTime(
+						"END: creating CustomizableIntroPart view took:", //$NON-NLS-1$
+						+IntroPlugin.getDefault().gettUICreationStartTime());
 
 
-                // prevent further logging of UI creation time.
-                logUIcreationTime = false;
-            }
+				// prevent further logging of UI creation time.
+				logUIcreationTime = false;
+			}
 
-        }
-    }
+		}
+	}
 
 
 
-    /*
-     * Subclasses must implement the actual logic for the method.
-     */
-    protected abstract void doStandbyStateChanged(boolean standby,
-            boolean isStandbyPartNeeded);
+	/*
+	 * Subclasses must implement the actual logic for the method.
+	 */
+	protected abstract void doStandbyStateChanged(boolean standby,
+			boolean isStandbyPartNeeded);
 
 
-    /**
-     * Save the current state of the intro. Currently, we only store information
-     * about the most recently visited intro page. In static case, the last HTML
-     * page is remembered. In dynamic case, the last UI page or HTML page is
-     * remembered.
-     *
-     * Note: This method saves the last visited intro page in a dynamic case.
-     * Subclasses need to extend to get the desired behavior relavent to the
-     * specific implementation. Broswer implementation needs to cache an http
-     * web page, if it happens to be the last page visited.
-     *
-     * @param memento
-     */
-    public void saveState(IMemento memento) {
-        saveCurrentPage(memento);
-    }
+	/**
+	 * Save the current state of the intro. Currently, we only store information
+	 * about the most recently visited intro page. In static case, the last HTML
+	 * page is remembered. In dynamic case, the last UI page or HTML page is
+	 * remembered.
+	 *
+	 * Note: This method saves the last visited intro page in a dynamic case.
+	 * Subclasses need to extend to get the desired behavior relavent to the
+	 * specific implementation. Broswer implementation needs to cache an http
+	 * web page, if it happens to be the last page visited.
+	 *
+	 * @param memento
+	 */
+	public void saveState(IMemento memento) {
+		saveCurrentPage(memento);
+	}
 
 
-    /**
-     * This method saves the most recently visited dynamic intro page in the
-     * memento. If a given implementation requires saving alternative
-     * information (e.g., information about the most recently visited static
-     * page) it should override this method.
-     *
-     * @param memento
-     */
-    protected void saveCurrentPage(IMemento memento) {
-        IntroModelRoot model = getModel();
+	/**
+	 * This method saves the most recently visited dynamic intro page in the
+	 * memento. If a given implementation requires saving alternative
+	 * information (e.g., information about the most recently visited static
+	 * page) it should override this method.
+	 *
+	 * @param memento
+	 */
+	protected void saveCurrentPage(IMemento memento) {
+		IntroModelRoot model = getModel();
 
-        if (memento == null || model == null)
-            return;
-        String currentPage = model.getCurrentPageId();
-        if (currentPage != null && currentPage.length() > 0) {
-            memento.putString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT,
-                currentPage);
-        }
-    }
+		if (memento == null || model == null)
+			return;
+		String currentPage = model.getCurrentPageId();
+		if (currentPage != null && currentPage.length() > 0) {
+			memento.putString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT,
+				currentPage);
+		}
+	}
 
 
-    /**
-     * get the last page if it was stored in memento. This page is the last
-     * visited intro page. It can be a intro page id, in the case of dynamic
-     * intro. Or it can be an http in the case of static intro. It can also be
-     * an http in the case of dynamic intro where the last visited page is a
-     * url.
-     */
-    protected String getCachedCurrentPage() {
-    	// Check to see if the start page has been overridden because
-    	// content
-    	String newContentPage = ExtensionMap.getInstance().getStartPage();
-    	if (newContentPage != null) {
-    		return newContentPage;
-    	}
-        IMemento memento = getMemento();
-        if (memento == null) {
-            String startPageId = getModel().getStartPageId();
-            if (startPageId.length() > 0) {
-			    return startPageId;
-            } else {
-            	return null;
-            }
-        }
-        return memento.getString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT);
-    }
+	/**
+	 * get the last page if it was stored in memento. This page is the last
+	 * visited intro page. It can be a intro page id, in the case of dynamic
+	 * intro. Or it can be an http in the case of static intro. It can also be
+	 * an http in the case of dynamic intro where the last visited page is a
+	 * url.
+	 */
+	protected String getCachedCurrentPage() {
+		// Check to see if the start page has been overridden because
+		// content
+		String newContentPage = ExtensionMap.getInstance().getStartPage();
+		if (newContentPage != null) {
+			return newContentPage;
+		}
+		IMemento memento = getMemento();
+		if (memento == null) {
+			String startPageId = getModel().getStartPageId();
+			if (startPageId.length() > 0) {
+				return startPageId;
+			} else {
+				return null;
+			}
+		}
+		return memento.getString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT);
+	}
 
 
-    /**
-     * @return Returns the memento passed on creation.
-     */
-    public IMemento getMemento() {
-        return memento;
-    }
+	/**
+	 * @return Returns the memento passed on creation.
+	 */
+	public IMemento getMemento() {
+		return memento;
+	}
 
-    /**
-     * Support dynamic awarness. Clear cached models first, then update UI by
-     * delegating to implementation.
-     *
-     * @see org.eclipse.core.runtime.IRegistryChangeListener#registryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
-     */
-    public void registryChanged(IRegistryChangeEvent event) {
-        history.clear();
-        // give implementation a chance to react to change.
-        handleRegistryChanged(event);
-    }
+	/**
+	 * Support dynamic awarness. Clear cached models first, then update UI by
+	 * delegating to implementation.
+	 *
+	 * @see org.eclipse.core.runtime.IRegistryChangeListener#registryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
+	 */
+	public void registryChanged(IRegistryChangeEvent event) {
+		history.clear();
+		// give implementation a chance to react to change.
+		handleRegistryChanged(event);
+	}
 
-    /*
-     * Handle reacting to plugin registry changes. This method will only be
-     * called when regitry changes pertaining to Intro extension points is
-     * detected.
-     */
-    protected abstract void handleRegistryChanged(IRegistryChangeEvent event);
+	/*
+	 * Handle reacting to plugin registry changes. This method will only be
+	 * called when regitry changes pertaining to Intro extension points is
+	 * detected.
+	 */
+	protected abstract void handleRegistryChanged(IRegistryChangeEvent event);
 
 
-    public History getHistory() {
-        return history;
-    }
+	public History getHistory() {
+		return history;
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractTextElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractTextElement.java
index df4aed8..f1ccb89 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractTextElement.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractTextElement.java
@@ -24,37 +24,37 @@
  */
 public abstract class AbstractTextElement extends AbstractIntroContainer {
 
-    AbstractTextElement(Element element, Bundle bundle) {
-        super(element, bundle);
-    }
+	AbstractTextElement(Element element, Bundle bundle) {
+		super(element, bundle);
+	}
 
-    /**
-     * Retruns the intro text element embedded in this element.
-     */
-    public IntroText getIntroText() {
-    	AbstractIntroElement[] children = getChildren();
-    	for (int i=0;i<children.length;++i) {
-    		if (children[i] instanceof IntroText) {
-    			return (IntroText)children[i];
-    		}
-    	}
-    	return null;
-    }
+	/**
+	 * Retruns the intro text element embedded in this element.
+	 */
+	public IntroText getIntroText() {
+		AbstractIntroElement[] children = getChildren();
+		for (int i=0;i<children.length;++i) {
+			if (children[i] instanceof IntroText) {
+				return (IntroText)children[i];
+			}
+		}
+		return null;
+	}
 
-    /**
-     * @return Returns the text of the child text of this element.
-     */
-    public String getText() {
-        // intro text may be null if there is no child Text element.
-    	IntroText text = getIntroText();
-        if (text != null) {
-            return text.getText();
-        }
-        return null;
-    }
+	/**
+	 * @return Returns the text of the child text of this element.
+	 */
+	public String getText() {
+		// intro text may be null if there is no child Text element.
+		IntroText text = getIntroText();
+		if (text != null) {
+			return text.getText();
+		}
+		return null;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.ABSTRACT_TEXT;
-    }
+		return AbstractIntroElement.ABSTRACT_TEXT;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/ExtensionMap.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/ExtensionMap.java
index 7b91352..acc8123 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/ExtensionMap.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/ExtensionMap.java
@@ -51,7 +51,7 @@
 	 */
 	public void putPluginId(String anchorId, String pluginId) {
 		if (anchorId != null) {
-		    extensions.put(anchorId, pluginId);
+			extensions.put(anchorId, pluginId);
 		}
 	}
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/History.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/History.java
index 4ac0657..f02839a 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/History.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/History.java
@@ -22,250 +22,250 @@
  * Intro History Model.
  */
 public class History {
-    // History of Intro Pages and real URL visited by Intro Browser. All
-    // elements are all of type HistoryObject.
+	// History of Intro Pages and real URL visited by Intro Browser. All
+	// elements are all of type HistoryObject.
 	private Vector<HistoryObject> history = new Vector<>();
-    private int navigationLocation = 0;
+	private int navigationLocation = 0;
 
 
-    // Model class for history objects. A history object may be a url or an
-    // Intro page. A url is a regular URL navigated to from a fully qualified
-    // link. An intro page may be an IFrame page. IFrame pages are not created
-    // for every Help topic navigated in an embedded IFrame. Instead the same
-    // IFrame is stored in history as a different object with the IFrameURL set.
-    // This way the model actually creates one page for every embedded Help
-    // Topic target but the navigation history updates the IFrame accordingly.
-    class HistoryObject {
-        AbstractIntroPage page;
-        String iframeUrl;
-        String url;
+	// Model class for history objects. A history object may be a url or an
+	// Intro page. A url is a regular URL navigated to from a fully qualified
+	// link. An intro page may be an IFrame page. IFrame pages are not created
+	// for every Help topic navigated in an embedded IFrame. Instead the same
+	// IFrame is stored in history as a different object with the IFrameURL set.
+	// This way the model actually creates one page for every embedded Help
+	// Topic target but the navigation history updates the IFrame accordingly.
+	class HistoryObject {
+		AbstractIntroPage page;
+		String iframeUrl;
+		String url;
 
-        HistoryObject(Object location) {
-            if (location instanceof String)
-                this.url = (String) location;
+		HistoryObject(Object location) {
+			if (location instanceof String)
+				this.url = (String) location;
 
-            if (location instanceof AbstractIntroPage) {
-                this.page = (AbstractIntroPage) location;
-                // will be set to null if the page is not an IFrame page.
-                this.iframeUrl = this.page.getIFrameURL();
-            }
-        }
+			if (location instanceof AbstractIntroPage) {
+				this.page = (AbstractIntroPage) location;
+				// will be set to null if the page is not an IFrame page.
+				this.iframeUrl = this.page.getIFrameURL();
+			}
+		}
 
-        /**
-         * returns the history page. If iframe page, updated to correct url.
-         *
-         * @return
-         */
-        AbstractIntroPage getPage() {
-            if (page.isIFramePage())
-                // when page was stored, the IFrame url was also stored. Make
-                // sure to return the same state. The page is the same, only the
-                // IFrame url changes.
-                page.setIFrameURL(getIFrameUrl());
-            return page;
-        }
+		/**
+		 * returns the history page. If iframe page, updated to correct url.
+		 *
+		 * @return
+		 */
+		AbstractIntroPage getPage() {
+			if (page.isIFramePage())
+				// when page was stored, the IFrame url was also stored. Make
+				// sure to return the same state. The page is the same, only the
+				// IFrame url changes.
+				page.setIFrameURL(getIFrameUrl());
+			return page;
+		}
 
-        String getPageId() {
-            return page.getId();
-        }
+		String getPageId() {
+			return page.getId();
+		}
 
-        String getIFrameUrl() {
-            return iframeUrl;
-        }
+		String getIFrameUrl() {
+			return iframeUrl;
+		}
 
-        String getUrl() {
-            return url;
-        }
+		String getUrl() {
+			return url;
+		}
 
-        boolean isURL() {
-            return (url != null) ? true : false;
-        }
+		boolean isURL() {
+			return (url != null) ? true : false;
+		}
 
-        boolean isIntroPage() {
-            return (page != null) ? true : false;
-        }
+		boolean isIntroPage() {
+			return (page != null) ? true : false;
+		}
 
-        boolean isIFramePage() {
-            return (iframeUrl != null) ? true : false;
-        }
+		boolean isIFramePage() {
+			return (iframeUrl != null) ? true : false;
+		}
 
-    }
+	}
 
 
-    /**
-     * Updates the UI navigation history with either a real URL, or a page ID.
-     *
-     * @param pageId
-     */
-    public void updateHistory(String location) {
-        // quick exit.
-        if (!history.isEmpty() && isSameLocation(location))
-            // resetting the same location is useless.
-            return;
-        doUpdateHistory(location);
-    }
+	/**
+	 * Updates the UI navigation history with either a real URL, or a page ID.
+	 *
+	 * @param pageId
+	 */
+	public void updateHistory(String location) {
+		// quick exit.
+		if (!history.isEmpty() && isSameLocation(location))
+			// resetting the same location is useless.
+			return;
+		doUpdateHistory(location);
+	}
 
-    /**
-     * Updates the UI navigation history with either a real URL, or a page ID.
-     *
-     * @param page
-     */
-    public void updateHistory(AbstractIntroPage page) {
-        // quick exit.
-        if (!history.isEmpty() && isSameLocation(page))
-            // resetting the same location is useless.
-            return;
-        doUpdateHistory(page);
-    }
+	/**
+	 * Updates the UI navigation history with either a real URL, or a page ID.
+	 *
+	 * @param page
+	 */
+	public void updateHistory(AbstractIntroPage page) {
+		// quick exit.
+		if (!history.isEmpty() && isSameLocation(page))
+			// resetting the same location is useless.
+			return;
+		doUpdateHistory(page);
+	}
 
-    private void doUpdateHistory(Object location) {
-        // we got here due to an intro URL listener or an SWT Form hyperlink
-        // listener. location may be a url or an IntroPage.
-        if (navigationLocation == getHistoryEndPosition())
-            // we are at the end of the vector, just push.
-            pushToHistory(location);
-        else
-            // we already navigated. add item at current location, and clear
-            // rest of history. (Same as browser behavior.)
-            trimHistory(location);
-    }
+	private void doUpdateHistory(Object location) {
+		// we got here due to an intro URL listener or an SWT Form hyperlink
+		// listener. location may be a url or an IntroPage.
+		if (navigationLocation == getHistoryEndPosition())
+			// we are at the end of the vector, just push.
+			pushToHistory(location);
+		else
+			// we already navigated. add item at current location, and clear
+			// rest of history. (Same as browser behavior.)
+			trimHistory(location);
+	}
 
 
-    private boolean isSameLocation(Object location) {
-        HistoryObject currentLocation = getCurrentLocation();
-        if (location instanceof String && currentLocation.isURL())
-            return currentLocation.getUrl().equals(location);
+	private boolean isSameLocation(Object location) {
+		HistoryObject currentLocation = getCurrentLocation();
+		if (location instanceof String && currentLocation.isURL())
+			return currentLocation.getUrl().equals(location);
 
-        if (location instanceof AbstractIntroPage
-                && currentLocation.isIntroPage()) {
+		if (location instanceof AbstractIntroPage
+				&& currentLocation.isIntroPage()) {
 
-            AbstractIntroPage locationPage = (AbstractIntroPage) location;
-            // be carefull here with calling getPage on historyOvject.
-            if (!currentLocation.getPageId().equals(locationPage.getId()))
-                return false;
+			AbstractIntroPage locationPage = (AbstractIntroPage) location;
+			// be carefull here with calling getPage on historyOvject.
+			if (!currentLocation.getPageId().equals(locationPage.getId()))
+				return false;
 
-            // both pages have same ids, they are either both regular pages or
-            // both are Iframe pages. check if they have the same IFrame urls
-            if (currentLocation.isIFramePage() && locationPage.isIFramePage())
-                return currentLocation.getIFrameUrl().equals(
-                    locationPage.getIFrameURL());
+			// both pages have same ids, they are either both regular pages or
+			// both are Iframe pages. check if they have the same IFrame urls
+			if (currentLocation.isIFramePage() && locationPage.isIFramePage())
+				return currentLocation.getIFrameUrl().equals(
+					locationPage.getIFrameURL());
 
-            // both pages are not IFrame pages, and they have same id.
-            return true;
-        }
+			// both pages are not IFrame pages, and they have same id.
+			return true;
+		}
 
-        return false;
-    }
+		return false;
+	}
 
 
 
 
-    private void pushToHistory(Object location) {
-        history.add(new HistoryObject(location));
-        // point the nav location to the end of the vector.
-        navigationLocation = getHistoryEndPosition();
-    }
+	private void pushToHistory(Object location) {
+		history.add(new HistoryObject(location));
+		// point the nav location to the end of the vector.
+		navigationLocation = getHistoryEndPosition();
+	}
 
-     public void removeLastHistory() {
-        history.remove(getHistoryEndPosition());
-        // point the nav location to the end of the vector.
-        navigationLocation = getHistoryEndPosition();
-    }
+	 public void removeLastHistory() {
+		history.remove(getHistoryEndPosition());
+		// point the nav location to the end of the vector.
+		navigationLocation = getHistoryEndPosition();
+	}
 
-    private void trimHistory(Object location) {
+	private void trimHistory(Object location) {
 		List<HistoryObject> newHistory = history.subList(0, navigationLocation + 1);
 		history = new Vector<>(newHistory);
-        history.add(new HistoryObject(location));
-        // point the nav location to the end of the vector.
-        navigationLocation = getHistoryEndPosition();
-    }
+		history.add(new HistoryObject(location));
+		// point the nav location to the end of the vector.
+		navigationLocation = getHistoryEndPosition();
+	}
 
-    /**
-     * Return the position of the last element in the navigation history. If
-     * vector is empty, return 0.
-     *
-     * @param vector
-     * @return
-     */
-    private int getHistoryEndPosition() {
-        if (history.isEmpty())
-            return 0;
-        return history.size() - 1;
-    }
+	/**
+	 * Return the position of the last element in the navigation history. If
+	 * vector is empty, return 0.
+	 *
+	 * @param vector
+	 * @return
+	 */
+	private int getHistoryEndPosition() {
+		if (history.isEmpty())
+			return 0;
+		return history.size() - 1;
+	}
 
-    public void navigateHistoryBackward() {
-        if (badNavigationLocation(navigationLocation - 1))
-            // do nothing. We are at the begining.
-            return;
-        --navigationLocation;
-    }
+	public void navigateHistoryBackward() {
+		if (badNavigationLocation(navigationLocation - 1))
+			// do nothing. We are at the begining.
+			return;
+		--navigationLocation;
+	}
 
-    /**
-     * Navigate forward in the history.
-     *
-     * @return
-     */
-    public void navigateHistoryForward() {
-        if (badNavigationLocation(navigationLocation + 1))
-            // do nothing. We are at the begining.
-            return;
-        ++navigationLocation;
-    }
+	/**
+	 * Navigate forward in the history.
+	 *
+	 * @return
+	 */
+	public void navigateHistoryForward() {
+		if (badNavigationLocation(navigationLocation + 1))
+			// do nothing. We are at the begining.
+			return;
+		++navigationLocation;
+	}
 
 
-    private boolean badNavigationLocation(int navigationLocation) {
-        if (navigationLocation < 0 || navigationLocation >= history.size())
-            // bad nav location.
-            return true;
-        return false;
-    }
+	private boolean badNavigationLocation(int navigationLocation) {
+		if (navigationLocation < 0 || navigationLocation >= history.size())
+			// bad nav location.
+			return true;
+		return false;
+	}
 
 
-    /**
-     * Returns true if the current location in the navigation history represents
-     * a URL. False if the location is an Intro Page id.
-     *
-     * @return Returns the locationIsURL.
-     */
-    private HistoryObject getCurrentLocation() {
-        return history.elementAt(navigationLocation);
-    }
+	/**
+	 * Returns true if the current location in the navigation history represents
+	 * a URL. False if the location is an Intro Page id.
+	 *
+	 * @return Returns the locationIsURL.
+	 */
+	private HistoryObject getCurrentLocation() {
+		return history.elementAt(navigationLocation);
+	}
 
-    public boolean canNavigateForward() {
-        return navigationLocation != getHistoryEndPosition() ? true : false;
-    }
+	public boolean canNavigateForward() {
+		return navigationLocation != getHistoryEndPosition() ? true : false;
+	}
 
-    public boolean canNavigateBackward() {
-        return navigationLocation == 0 ? false : true;
-    }
+	public boolean canNavigateBackward() {
+		return navigationLocation == 0 ? false : true;
+	}
 
-    public boolean currentLocationIsUrl() {
-    	if (history.size() == 0) {
-    		return false;
-    	}
-        return getCurrentLocation().isURL();
-    }
+	public boolean currentLocationIsUrl() {
+		if (history.size() == 0) {
+			return false;
+		}
+		return getCurrentLocation().isURL();
+	}
 
-    public String getCurrentLocationAsUrl() {
-        return getCurrentLocation().getUrl();
-    }
+	public String getCurrentLocationAsUrl() {
+		return getCurrentLocation().getUrl();
+	}
 
-    public AbstractIntroPage getCurrentLocationAsPage() {
-        return getCurrentLocation().getPage();
-    }
+	public AbstractIntroPage getCurrentLocationAsPage() {
+		return getCurrentLocation().getPage();
+	}
 
-    public static boolean isURL(String aString) {
-        IntroURLParser parser = new IntroURLParser(aString);
-        if (parser.hasProtocol())
-            return true;
-        return false;
-    }
+	public static boolean isURL(String aString) {
+		IntroURLParser parser = new IntroURLParser(aString);
+		if (parser.hasProtocol())
+			return true;
+		return false;
+	}
 
 
-    public void clear() {
-        history.clear();
-        navigationLocation = 0;
-    }
+	public void clear() {
+		history.clear();
+		navigationLocation = 0;
+	}
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroAnchor.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroAnchor.java
index eb7922a..751935a 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroAnchor.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroAnchor.java
@@ -22,19 +22,19 @@
  */
 public class IntroAnchor extends AbstractIntroIdElement {
 
-    protected static final String TAG_ANCHOR = "anchor"; //$NON-NLS-1$
+	protected static final String TAG_ANCHOR = "anchor"; //$NON-NLS-1$
 
-    /**
-     * @param element
-     */
-    IntroAnchor(Element element, Bundle bundle) {
-        super(element, bundle);
-    }
+	/**
+	 * @param element
+	 */
+	IntroAnchor(Element element, Bundle bundle) {
+		super(element, bundle);
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.ANCHOR;
-    }
+		return AbstractIntroElement.ANCHOR;
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroContentProvider.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroContentProvider.java
index ed5f87d..afdf42a 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroContentProvider.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroContentProvider.java
@@ -29,42 +29,42 @@
  * schema.
  */
 public class IntroContentProvider extends AbstractTextElement {
-    public static final String TAG_CONTENT_PROVIDER = "contentProvider"; //$NON-NLS-1$
+	public static final String TAG_CONTENT_PROVIDER = "contentProvider"; //$NON-NLS-1$
 
-    private static final String ATT_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
-    private static final String ATT_CLASS = "class"; //$NON-NLS-1$
+	private static final String ATT_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
+	private static final String ATT_CLASS = "class"; //$NON-NLS-1$
 
-    private String contentProvider;
-    private String pluginId;
+	private String contentProvider;
+	private String pluginId;
 
 
-    public IntroContentProvider(Element element, Bundle bundle) {
-        super(element, bundle);
-        contentProvider = getAttribute(element, ATT_CLASS);
-        pluginId = getAttribute(element, ATT_PLUGIN_ID);
-    }
+	public IntroContentProvider(Element element, Bundle bundle) {
+		super(element, bundle);
+		contentProvider = getAttribute(element, ATT_CLASS);
+		pluginId = getAttribute(element, ATT_PLUGIN_ID);
+	}
 
-    /**
-     * Returns the content provider, which should implement
-     * IIntroContentProvider
-     *
-     * @return Returns the contentProvider.
-     */
-    public String getClassName() {
-        return contentProvider;
-    }
+	/**
+	 * Returns the content provider, which should implement
+	 * IIntroContentProvider
+	 *
+	 * @return Returns the contentProvider.
+	 */
+	public String getClassName() {
+		return contentProvider;
+	}
 
-    /**
-     * Returns the id of the plugin that contains the content provider class
-     *
-     * @return Returns the pluginId.
-     */
-    public String getPluginId() {
-        return pluginId;
-    }
+	/**
+	 * Returns the id of the plugin that contains the content provider class
+	 *
+	 * @return Returns the pluginId.
+	 */
+	public String getPluginId() {
+		return pluginId;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.CONTENT_PROVIDER;
-    }
+		return AbstractIntroElement.CONTENT_PROVIDER;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroExtensionContent.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroExtensionContent.java
index 2f9c204..7be2546 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroExtensionContent.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroExtensionContent.java
@@ -41,159 +41,159 @@
  */
 public class IntroExtensionContent extends AbstractIntroElement {
 
-    protected static final String TAG_CONTAINER_EXTENSION = "extensionContent"; //$NON-NLS-1$
-    protected static final String TAG_CONTAINER_REPLACE = "replacementContent"; //$NON-NLS-1$
+	protected static final String TAG_CONTAINER_EXTENSION = "extensionContent"; //$NON-NLS-1$
+	protected static final String TAG_CONTAINER_REPLACE = "replacementContent"; //$NON-NLS-1$
 
-    public static final int TYPE_CONTRIBUTION = 0;
-    public static final int TYPE_REPLACEMENT = 1;
+	public static final int TYPE_CONTRIBUTION = 0;
+	public static final int TYPE_REPLACEMENT = 1;
 
-    protected static final String ATT_PATH = "path"; //$NON-NLS-1$
-    protected static final String ATT_ID = "id"; //$NON-NLS-1$
-    private static final String ATT_STYLE = "style"; //$NON-NLS-1$
-    private static final String ATT_ALT_STYLE = "alt-style"; //$NON-NLS-1$
-    private static final String ATT_CONTENT = "content"; //$NON-NLS-1$
+	protected static final String ATT_PATH = "path"; //$NON-NLS-1$
+	protected static final String ATT_ID = "id"; //$NON-NLS-1$
+	private static final String ATT_STYLE = "style"; //$NON-NLS-1$
+	private static final String ATT_ALT_STYLE = "alt-style"; //$NON-NLS-1$
+	private static final String ATT_CONTENT = "content"; //$NON-NLS-1$
 
 	private static final Element[] EMPTY_ELEMENT_ARRAY = new Element[0];
 
-    private String path;
-    private String content;
-    private String contentFile;
-    private String contentId;
-    private String anchorId;
+	private String path;
+	private String content;
+	private String contentFile;
+	private String contentId;
+	private String anchorId;
 
-    private Element element;
-    private String base;
+	private Element element;
+	private String base;
 
 	private Vector<String> styles = new Vector<>();
 	private Map<String, Bundle> altStyles = new HashMap<>();
 
-    IntroExtensionContent(Element element, Bundle bundle, String base, IConfigurationElement configExtElement) {
-        super(element, bundle);
-        path = getAttribute(element, ATT_PATH);
-        content = getAttribute(element, ATT_CONTENT);
-        anchorId = getAttribute(element, ATT_ID);
-        this.element = element;
-        this.base = base;
+	IntroExtensionContent(Element element, Bundle bundle, String base, IConfigurationElement configExtElement) {
+		super(element, bundle);
+		path = getAttribute(element, ATT_PATH);
+		content = getAttribute(element, ATT_CONTENT);
+		anchorId = getAttribute(element, ATT_ID);
+		this.element = element;
+		this.base = base;
 
-        // load and resolve styles, first.
-        init(element, bundle, base);
+		// load and resolve styles, first.
+		init(element, bundle, base);
 
-        // if content is not null we have XHTML extension.
-        if (content != null) {
-            // BASE: since content is being loaded from another XHTML file and
-            // not this xml file, point the base of this page to be relative to
-            // the new xml file location.
-            IPath subBase = ModelUtil.getParentFolderPath(content);
-            String newBase = new Path(base).append(subBase).toString();
-    		extractFileAndId(bundle);
-    		contentFile = BundleUtil.getResolvedResourceLocation(base, contentFile,
-                bundle);
-            this.base = newBase;
-        }
+		// if content is not null we have XHTML extension.
+		if (content != null) {
+			// BASE: since content is being loaded from another XHTML file and
+			// not this xml file, point the base of this page to be relative to
+			// the new xml file location.
+			IPath subBase = ModelUtil.getParentFolderPath(content);
+			String newBase = new Path(base).append(subBase).toString();
+			extractFileAndId(bundle);
+			contentFile = BundleUtil.getResolvedResourceLocation(base, contentFile,
+				bundle);
+			this.base = newBase;
+		}
 
-        // Save the mapping between plugin registry id and base/anchor id
-        String contributor = configExtElement.getContributor().getName();
-        ExtensionMap.getInstance().putPluginId(anchorId, contributor);
-    }
+		// Save the mapping between plugin registry id and base/anchor id
+		String contributor = configExtElement.getContributor().getName();
+		ExtensionMap.getInstance().putPluginId(anchorId, contributor);
+	}
 
-    public String getId() {
-    	return anchorId;
-    }
+	public String getId() {
+		return anchorId;
+	}
 
 
-    /**
-     * Initialize styles. Take first style in style attribute and make it the
-     * page style. Then put other styles in styles vectors. Make sure to resolve
-     * each style.
-     *
-     * @param element
-     * @param bundle
-     */
-    private void init(Element element, Bundle bundle, String base) {
-        String[] styleValues = getAttributeList(element, ATT_STYLE);
-        if (styleValues != null && styleValues.length > 0) {
-            for (int i = 0; i < styleValues.length; i++) {
-                String style = styleValues[i];
-                style = BundleUtil.getResolvedResourceLocation(base, style,
-                    bundle);
-                addStyle(style);
-            }
-        }
+	/**
+	 * Initialize styles. Take first style in style attribute and make it the
+	 * page style. Then put other styles in styles vectors. Make sure to resolve
+	 * each style.
+	 *
+	 * @param element
+	 * @param bundle
+	 */
+	private void init(Element element, Bundle bundle, String base) {
+		String[] styleValues = getAttributeList(element, ATT_STYLE);
+		if (styleValues != null && styleValues.length > 0) {
+			for (int i = 0; i < styleValues.length; i++) {
+				String style = styleValues[i];
+				style = BundleUtil.getResolvedResourceLocation(base, style,
+					bundle);
+				addStyle(style);
+			}
+		}
 
-        String[] altStyleValues = getAttributeList(element, ATT_ALT_STYLE);
-        if (altStyleValues != null && altStyleValues.length > 0) {
-            for (int i = 0; i < altStyleValues.length; i++) {
-                String style = altStyleValues[i];
-                style = BundleUtil.getResolvedResourceLocation(base, style,
-                    bundle);
-                addAltStyle(style, bundle);
-            }
-        }
-    }
+		String[] altStyleValues = getAttributeList(element, ATT_ALT_STYLE);
+		if (altStyleValues != null && altStyleValues.length > 0) {
+			for (int i = 0; i < altStyleValues.length; i++) {
+				String style = altStyleValues[i];
+				style = BundleUtil.getResolvedResourceLocation(base, style,
+					bundle);
+				addAltStyle(style, bundle);
+			}
+		}
+	}
 
-    /**
-     * Adds the given style to the list. Style is not added if it already exists
-     * in the list.
-     *
-     * @param style
-     */
-    protected void addStyle(String style) {
-        if (styles.contains(style))
-            return;
-        styles.add(style);
-    }
+	/**
+	 * Adds the given style to the list. Style is not added if it already exists
+	 * in the list.
+	 *
+	 * @param style
+	 */
+	protected void addStyle(String style) {
+		if (styles.contains(style))
+			return;
+		styles.add(style);
+	}
 
 
-    /**
-     * Adds the given style to the list.Style is not added if it already exists
-     * in the list.
-     *
-     * @param altStyle
-     */
-    protected void addAltStyle(String altStyle, Bundle bundle) {
-        if (altStyles.containsKey(altStyle))
-            return;
-        altStyles.put(altStyle, bundle);
-    }
+	/**
+	 * Adds the given style to the list.Style is not added if it already exists
+	 * in the list.
+	 *
+	 * @param altStyle
+	 */
+	protected void addAltStyle(String altStyle, Bundle bundle) {
+		if (altStyles.containsKey(altStyle))
+			return;
+		altStyles.put(altStyle, bundle);
+	}
 
-    /**
-     * Returns the extension type; either contribution into an anchor or replacement
-     * of an element.
-     */
-    public int getExtensionType() {
-    	return TAG_CONTAINER_REPLACE.equals(element.getNodeName()) ? TYPE_REPLACEMENT : TYPE_CONTRIBUTION;
-    }
+	/**
+	 * Returns the extension type; either contribution into an anchor or replacement
+	 * of an element.
+	 */
+	public int getExtensionType() {
+		return TAG_CONTAINER_REPLACE.equals(element.getNodeName()) ? TYPE_REPLACEMENT : TYPE_CONTRIBUTION;
+	}
 
-    /**
-     * @return Returns the path.
-     */
-    public String getPath() {
-        return path;
-    }
+	/**
+	 * @return Returns the path.
+	 */
+	public String getPath() {
+		return path;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.CONTAINER_EXTENSION;
-    }
+		return AbstractIntroElement.CONTAINER_EXTENSION;
+	}
 
-    protected Element[] getChildren() {
-        NodeList nodeList = element.getChildNodes();
+	protected Element[] getChildren() {
+		NodeList nodeList = element.getChildNodes();
 		Vector<Node> vector = new Vector<>();
-        for (int i = 0; i < nodeList.getLength(); i++) {
-            Node node = nodeList.item(i);
-            if (node.getNodeType() == Node.ELEMENT_NODE)
-                vector.add(node);
-        }
-        Element[] filteredElements = new Element[vector.size()];
-        vector.copyInto(filteredElements);
-        // free DOM model for memory performance.
-        this.element = null;
-        return filteredElements;
-    }
+		for (int i = 0; i < nodeList.getLength(); i++) {
+			Node node = nodeList.item(i);
+			if (node.getNodeType() == Node.ELEMENT_NODE)
+				vector.add(node);
+		}
+		Element[] filteredElements = new Element[vector.size()];
+		vector.copyInto(filteredElements);
+		// free DOM model for memory performance.
+		this.element = null;
+		return filteredElements;
+	}
 
-    public boolean isXHTMLContent() {
-        return content != null ? true : false;
-    }
+	public boolean isXHTMLContent() {
+		return content != null ? true : false;
+	}
 
 	/**
 	 * Returns the elements loaded from the content attribute. This is the content
@@ -203,56 +203,56 @@
 	 *
 	 * @return the elements to be inserted
 	 */
-    public Element[] getElements() {
-    	// only applicable when content attribute is specified
-        if (isXHTMLContent()) {
-            IntroContentParser parser = new IntroContentParser(contentFile);
-            Document dom = parser.getDocument();
-            if (dom != null) {
-	            // parser content should be XHTML because defining content here
-	            // means that we want XHTML extension.
-	            if (parser.hasXHTMLContent()) {
-	    			if (contentId != null) {
-	    				// id specified, only get that element
-	    				return new Element[] { ModelUtil.getElementById(dom, contentId) };
-	    			}
-	    			else {
-	    				// no id specified, use the whole body
-	    				Element extensionBody = ModelUtil.getBodyElement(dom);
-	    				return ModelUtil.getElementsByTagName(extensionBody, "*"); //$NON-NLS-1$
-	    			}
-	            }
-            }
-        }
-        return EMPTY_ELEMENT_ARRAY;
-    }
+	public Element[] getElements() {
+		// only applicable when content attribute is specified
+		if (isXHTMLContent()) {
+			IntroContentParser parser = new IntroContentParser(contentFile);
+			Document dom = parser.getDocument();
+			if (dom != null) {
+				// parser content should be XHTML because defining content here
+				// means that we want XHTML extension.
+				if (parser.hasXHTMLContent()) {
+					if (contentId != null) {
+						// id specified, only get that element
+						return new Element[] { ModelUtil.getElementById(dom, contentId) };
+					}
+					else {
+						// no id specified, use the whole body
+						Element extensionBody = ModelUtil.getBodyElement(dom);
+						return ModelUtil.getElementsByTagName(extensionBody, "*"); //$NON-NLS-1$
+					}
+				}
+			}
+		}
+		return EMPTY_ELEMENT_ARRAY;
+	}
 
-    /**
-     * @return Returns the altStyle.
-     */
+	/**
+	 * @return Returns the altStyle.
+	 */
 	protected Map<String, Bundle> getAltStyles() {
-        return altStyles;
-    }
+		return altStyles;
+	}
 
-    /**
-     * @return Returns the style.
-     */
-    protected String[] getStyles() {
-        String[] stylesArray = new String[styles.size()];
-        styles.copyInto(stylesArray);
-        return stylesArray;
-    }
+	/**
+	 * @return Returns the style.
+	 */
+	protected String[] getStyles() {
+		String[] stylesArray = new String[styles.size()];
+		styles.copyInto(stylesArray);
+		return stylesArray;
+	}
 
-    /**
-     * @return Returns the content.
-     */
-    public String getContent() {
-        return content;
-    }
+	/**
+	 * @return Returns the content.
+	 */
+	public String getContent() {
+		return content;
+	}
 
-    public String getBase() {
-        return base;
-    }
+	public String getBase() {
+		return base;
+	}
 
 	/**
 	 * Extracts the file and id parts of the content attribute. This attribute has two modes -
@@ -262,7 +262,7 @@
 	 *
 	 * @param bundle the bundle that contributed this extension
 	 */
-    private void extractFileAndId(Bundle bundle) {
+	private void extractFileAndId(Bundle bundle) {
 		// look for the file
 		IPath resourcePath = new Path(base + content);
 		if (FileLocator.find(bundle, resourcePath, null) != null) {
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroGroup.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroGroup.java
index c844200..9617313 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroGroup.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroGroup.java
@@ -28,111 +28,111 @@
  */
 public class IntroGroup extends AbstractIntroContainer {
 
-    protected static final String TAG_GROUP = "group"; //$NON-NLS-1$
-    private static final String ATT_LABEL = "label"; //$NON-NLS-1$
-    private static final String ATT_COMPUTED = "computed"; //$NON-NLS-1$
-    private static final String ATT_EXPANDABLE = "expandable"; //$NON-NLS-1$
-    private static final String ATT_EXPANDED = "expanded"; //$NON-NLS-1$
-    private static final String P_UPPERCASE = "capitalizeTitles"; //$NON-NLS-1$
-    private String label;
-    /**
-     * @param element
-     */
-    IntroGroup(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-    }
+	protected static final String TAG_GROUP = "group"; //$NON-NLS-1$
+	private static final String ATT_LABEL = "label"; //$NON-NLS-1$
+	private static final String ATT_COMPUTED = "computed"; //$NON-NLS-1$
+	private static final String ATT_EXPANDABLE = "expandable"; //$NON-NLS-1$
+	private static final String ATT_EXPANDED = "expanded"; //$NON-NLS-1$
+	private static final String P_UPPERCASE = "capitalizeTitles"; //$NON-NLS-1$
+	private String label;
+	/**
+	 * @param element
+	 */
+	IntroGroup(Element element, Bundle bundle, String base) {
+		super(element, bundle, base);
+	}
 
-    @Override
+	@Override
 	protected void loadFromParent() {
-    }
+	}
 
-    private void resolve() {
-    	// reinitialize if there are variables in the value.
-    	if (label==null) {
-    		label = getAttribute(element, ATT_LABEL);
-    		if (label!=null) {
-    			IntroModelRoot root = getModelRoot();
-    			if (root!=null && root.getTheme()!=null) {
-    				Map props = root.getTheme().getProperties();
-    				String value = (String)props.get(P_UPPERCASE);
-    				if (value!=null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
-    					label = label.toUpperCase();
-    			}
-    		}
-   		}
-    }
+	private void resolve() {
+		// reinitialize if there are variables in the value.
+		if (label==null) {
+			label = getAttribute(element, ATT_LABEL);
+			if (label!=null) {
+				IntroModelRoot root = getModelRoot();
+				if (root!=null && root.getTheme()!=null) {
+					Map props = root.getTheme().getProperties();
+					String value = (String)props.get(P_UPPERCASE);
+					if (value!=null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
+						label = label.toUpperCase();
+				}
+			}
+		}
+	}
 
-    /**
-     * @return Returns the label.
-     */
-    public String getLabel() {
-    	resolve();
-        return label;
-    }
+	/**
+	 * @return Returns the label.
+	 */
+	public String getLabel() {
+		resolve();
+		return label;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.GROUP;
-    }
+		return AbstractIntroElement.GROUP;
+	}
 
-    public boolean isExpandable() {
-    	String value=getAttribute(element, ATT_EXPANDABLE);
-    	return value!=null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-    }
+	public boolean isExpandable() {
+		String value=getAttribute(element, ATT_EXPANDABLE);
+		return value!=null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
+	}
 
-    public boolean isExpanded() {
-    	String value=getAttribute(element, ATT_EXPANDED);
-    	return value!=null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-    }
+	public boolean isExpanded() {
+		String value=getAttribute(element, ATT_EXPANDED);
+		return value!=null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
+	}
 
-    @Override
+	@Override
 	protected void loadChildren() {
-    	String value = getAttribute(element, ATT_COMPUTED);
-    	if (value!=null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
-    		loadDynamicNodes();
-    	super.loadChildren();
-    }
+		String value = getAttribute(element, ATT_COMPUTED);
+		if (value!=null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
+			loadDynamicNodes();
+		super.loadChildren();
+	}
 
-    private void loadDynamicNodes() {
-    	IntroModelRoot root = getModelRoot();
-    	if (root==null)
-    		return;
-    	AbstractIntroPage page = getParentPage();
-    	String pageId = page.getId();
-    	IntroConfigurer configurer = root.getConfigurer();
-    	if (configurer != null) {
-		    IntroElement [] nodes = configurer.getGroupChildren(pageId, getId());
-    	    addDynamicNodes(this.element, nodes);
-    	}
-    }
+	private void loadDynamicNodes() {
+		IntroModelRoot root = getModelRoot();
+		if (root==null)
+			return;
+		AbstractIntroPage page = getParentPage();
+		String pageId = page.getId();
+		IntroConfigurer configurer = root.getConfigurer();
+		if (configurer != null) {
+			IntroElement [] nodes = configurer.getGroupChildren(pageId, getId());
+			addDynamicNodes(this.element, nodes);
+		}
+	}
 
-    private void addDynamicNodes(Element target, IntroElement [] nodes) {
-    	for (int i=0; i<nodes.length; i++) {
-    		IntroElement node = nodes[i];
-    		addDynamicNode(target, node);
-    	}
-    }
-    private void addDynamicNode(Element target, IntroElement node) {
-    	// clone node itself
-    	Element clone = target.getOwnerDocument().createElement(node.getName());
-    	// set attributes
-    	Enumeration atts = node.getAttributes();
-    	for (;atts.hasMoreElements();) {
-    		String aname = (String)atts.nextElement();
-    		String avalue = node.getAttribute(aname);
-    		clone.setAttribute(aname, avalue);
-    	}
-    	// set value
-    	String value = node.getValue();
-    	if (value!=null) {
-    		Text textNode = target.getOwnerDocument().createTextNode(value);
-    		clone.appendChild(textNode);
-    	}
-    	// clone children
-    	IntroElement [] cnodes = node.getChildren();
-    	if (cnodes.length>0)
-    		addDynamicNodes(clone, cnodes);
-    	// add the clone to the target
-    	target.appendChild(clone);
-    }
+	private void addDynamicNodes(Element target, IntroElement [] nodes) {
+		for (int i=0; i<nodes.length; i++) {
+			IntroElement node = nodes[i];
+			addDynamicNode(target, node);
+		}
+	}
+	private void addDynamicNode(Element target, IntroElement node) {
+		// clone node itself
+		Element clone = target.getOwnerDocument().createElement(node.getName());
+		// set attributes
+		Enumeration atts = node.getAttributes();
+		for (;atts.hasMoreElements();) {
+			String aname = (String)atts.nextElement();
+			String avalue = node.getAttribute(aname);
+			clone.setAttribute(aname, avalue);
+		}
+		// set value
+		String value = node.getValue();
+		if (value!=null) {
+			Text textNode = target.getOwnerDocument().createTextNode(value);
+			clone.appendChild(textNode);
+		}
+		// clone children
+		IntroElement [] cnodes = node.getChildren();
+		if (cnodes.length>0)
+			addDynamicNodes(clone, cnodes);
+		// add the clone to the target
+		target.appendChild(clone);
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHTML.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHTML.java
index c4be837..8e1d1a0 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHTML.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHTML.java
@@ -29,115 +29,115 @@
  */
 public class IntroHTML extends AbstractTextElement {
 
-    protected static final String TAG_HTML = "html"; //$NON-NLS-1$
+	protected static final String TAG_HTML = "html"; //$NON-NLS-1$
 
-    private static final String ATT_SRC = "src"; //$NON-NLS-1$
-    /**
-     * type must be "inline" or "embed".
-     */
-    private static final String ATT_TYPE = "type"; //$NON-NLS-1$
-    // Default is UTF-8.
-    private static final String ATT_ENCODING = "encoding"; //$NON-NLS-1$
+	private static final String ATT_SRC = "src"; //$NON-NLS-1$
+	/**
+	 * type must be "inline" or "embed".
+	 */
+	private static final String ATT_TYPE = "type"; //$NON-NLS-1$
+	// Default is UTF-8.
+	private static final String ATT_ENCODING = "encoding"; //$NON-NLS-1$
 
-    private String src;
-    private String html_type;
-    private String encoding;
-    private IntroImage introImage;
+	private String src;
+	private String html_type;
+	private String encoding;
+	private IntroImage introImage;
 
-    IntroHTML(Element element, Bundle bundle, String base) {
-        super(element, bundle);
-        src = getAttribute(element, ATT_SRC);
-        html_type = getAttribute(element, ATT_TYPE);
-        encoding = getAttribute(element, ATT_ENCODING);
-        if (encoding == null)
-            encoding = "UTF-8"; //$NON-NLS-1$
-        if (html_type != null && !html_type.equalsIgnoreCase("inline") //$NON-NLS-1$
-                && !html_type.equalsIgnoreCase("embed")) //$NON-NLS-1$
-            // if type is not correct, null it.
-            html_type = null;
+	IntroHTML(Element element, Bundle bundle, String base) {
+		super(element, bundle);
+		src = getAttribute(element, ATT_SRC);
+		html_type = getAttribute(element, ATT_TYPE);
+		encoding = getAttribute(element, ATT_ENCODING);
+		if (encoding == null)
+			encoding = "UTF-8"; //$NON-NLS-1$
+		if (html_type != null && !html_type.equalsIgnoreCase("inline") //$NON-NLS-1$
+				&& !html_type.equalsIgnoreCase("embed")) //$NON-NLS-1$
+			// if type is not correct, null it.
+			html_type = null;
 
-        // description will be null if there is no description element.
-        introImage = getIntroImage(element, base);
+		// description will be null if there is no description element.
+		introImage = getIntroImage(element, base);
 
-        // Resolve.
-        src = BundleUtil.getResolvedResourceLocation(base, src, bundle);
-    }
+		// Resolve.
+		src = BundleUtil.getResolvedResourceLocation(base, src, bundle);
+	}
 
-    /**
-     * Retruns the intro image element embedded in this element.
-     */
-    private IntroImage getIntroImage(Element element, String base) {
-        try {
-            // There should only be one text element. Since elements where
-            // obtained by name, no point validating name.
-            NodeList imageElements = element
-                .getElementsByTagName(IntroImage.TAG_IMAGE);
-            if (imageElements.getLength() == 0)
-                // no contributions. done.
-                return null;
-            IntroImage image = new IntroImage((Element) imageElements.item(0),
-                getBundle(), base);
-            image.setParent(this);
-            return image;
-        } catch (Exception e) {
-            Log.error(e.getMessage(), e);
-            return null;
-        }
-    }
+	/**
+	 * Retruns the intro image element embedded in this element.
+	 */
+	private IntroImage getIntroImage(Element element, String base) {
+		try {
+			// There should only be one text element. Since elements where
+			// obtained by name, no point validating name.
+			NodeList imageElements = element
+				.getElementsByTagName(IntroImage.TAG_IMAGE);
+			if (imageElements.getLength() == 0)
+				// no contributions. done.
+				return null;
+			IntroImage image = new IntroImage((Element) imageElements.item(0),
+				getBundle(), base);
+			image.setParent(this);
+			return image;
+		} catch (Exception e) {
+			Log.error(e.getMessage(), e);
+			return null;
+		}
+	}
 
-    /**
-     * Returns the html type. Will be either "inline" or "embed". If not, null
-     * will be returned as if the attibute was nto defined.
-     *
-     * @return Returns the html type value.
-     */
-    public boolean isInlined() {
-        return (html_type != null && html_type.equalsIgnoreCase("inline")) ? true //$NON-NLS-1$
-                : false;
-    }
+	/**
+	 * Returns the html type. Will be either "inline" or "embed". If not, null
+	 * will be returned as if the attibute was nto defined.
+	 *
+	 * @return Returns the html type value.
+	 */
+	public boolean isInlined() {
+		return (html_type != null && html_type.equalsIgnoreCase("inline")) ? true //$NON-NLS-1$
+				: false;
+	}
 
-    /**
-     * @return Returns the src.
-     */
-    public String getSrc() {
-        return src;
-    }
+	/**
+	 * @return Returns the src.
+	 */
+	public String getSrc() {
+		return src;
+	}
 
-    /**
-     * @return Returns the encoding of the inlined file. This is not needed for
-     *         embedded files. Default is UTF-8.
-     */
-    public String getInlineEncoding() {
-        return encoding;
-    }
+	/**
+	 * @return Returns the encoding of the inlined file. This is not needed for
+	 *         embedded files. Default is UTF-8.
+	 */
+	public String getInlineEncoding() {
+		return encoding;
+	}
 
-    /**
-     * Returns the intro image used as a replacement if this HTML element fails.
-     * May return null if there is no image child.
-     *
-     * @return Returns the introImage.
-     */
-    public IntroImage getIntroImage() {
-        return introImage;
-    }
+	/**
+	 * Returns the intro image used as a replacement if this HTML element fails.
+	 * May return null if there is no image child.
+	 *
+	 * @return Returns the introImage.
+	 */
+	public IntroImage getIntroImage() {
+		return introImage;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.HTML;
-    }
+		return AbstractIntroElement.HTML;
+	}
 
-    /**
-     * Deep copy since class has mutable objects.
-     */
-    @Override
+	/**
+	 * Deep copy since class has mutable objects.
+	 */
+	@Override
 	public Object clone() throws CloneNotSupportedException {
-        IntroHTML clone = (IntroHTML) super.clone();
-        if (introImage != null) {
-            IntroImage cloneIntroImage = (IntroImage) introImage.clone();
-            cloneIntroImage.setParent(clone);
-            clone.introImage = cloneIntroImage;
-        }
-        return clone;
-    }
+		IntroHTML clone = (IntroHTML) super.clone();
+		if (introImage != null) {
+			IntroImage cloneIntroImage = (IntroImage) introImage.clone();
+			cloneIntroImage.setParent(clone);
+			clone.introImage = cloneIntroImage;
+		}
+		return clone;
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHead.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHead.java
index e3ed32e..f3a1788 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHead.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHead.java
@@ -25,56 +25,56 @@
  */
 public class IntroHead extends AbstractIntroElement {
 
-    protected static final String TAG_HEAD = "head"; //$NON-NLS-1$
+	protected static final String TAG_HEAD = "head"; //$NON-NLS-1$
 
-    private static final String ATT_SRC = "src"; //$NON-NLS-1$
-    // default encoding is UTF-8
-    private static final String ATT_ENCODING = "encoding"; //$NON-NLS-1$
+	private static final String ATT_SRC = "src"; //$NON-NLS-1$
+	// default encoding is UTF-8
+	private static final String ATT_ENCODING = "encoding"; //$NON-NLS-1$
 
-    private String src;
-    private String encoding;
+	private String src;
+	private String encoding;
 
-    IntroHead(IConfigurationElement element) {
-        super(element);
-        src = element.getAttribute(ATT_SRC);
-        encoding = element.getAttribute(ATT_ENCODING);
-        if (encoding == null)
-            encoding = "UTF-8"; //$NON-NLS-1$
+	IntroHead(IConfigurationElement element) {
+		super(element);
+		src = element.getAttribute(ATT_SRC);
+		encoding = element.getAttribute(ATT_ENCODING);
+		if (encoding == null)
+			encoding = "UTF-8"; //$NON-NLS-1$
 
-        // Resolve.
-        src = BundleUtil.getResourceLocation(src, element);
-    }
+		// Resolve.
+		src = BundleUtil.getResourceLocation(src, element);
+	}
 
 
-    IntroHead(Element element, Bundle bundle, String base) {
-        super(element, bundle);
-        src = getAttribute(element, ATT_SRC);
-        encoding = getAttribute(element, ATT_ENCODING);
-        if (encoding == null)
-            encoding = "UTF-8"; //$NON-NLS-1$
+	IntroHead(Element element, Bundle bundle, String base) {
+		super(element, bundle);
+		src = getAttribute(element, ATT_SRC);
+		encoding = getAttribute(element, ATT_ENCODING);
+		if (encoding == null)
+			encoding = "UTF-8"; //$NON-NLS-1$
 
-        // Resolve.
-        src = BundleUtil.getResolvedResourceLocation(base, src, bundle);
-    }
+		// Resolve.
+		src = BundleUtil.getResolvedResourceLocation(base, src, bundle);
+	}
 
 
-    /**
-     * @return Returns the src.
-     */
-    public String getSrc() {
-        return src;
-    }
+	/**
+	 * @return Returns the src.
+	 */
+	public String getSrc() {
+		return src;
+	}
 
-    /**
-     * @return Returns the encoding of the inlined file. Default is UTF-8.
-     */
-    public String getInlineEncoding() {
-        return encoding;
-    }
+	/**
+	 * @return Returns the encoding of the inlined file. Default is UTF-8.
+	 */
+	public String getInlineEncoding() {
+		return encoding;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.HEAD;
-    }
+		return AbstractIntroElement.HEAD;
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHomePage.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHomePage.java
index a9f955f..eb9f90c 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHomePage.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHomePage.java
@@ -27,48 +27,48 @@
 public class IntroHomePage extends AbstractIntroPage {
 
 	IntroHomePage(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-    }
+		super(element, bundle, base);
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.HOME_PAGE;
-    }
+		return AbstractIntroElement.HOME_PAGE;
+	}
 
-    // THESE METHODS WILL BE REMOVED!
-    /**
-     * This method is a customized method for root page to return the root page
-     * links. Try to get the real links in the page, and all links in all divs.
-     */
-    public IntroLink[] getLinks() {
+	// THESE METHODS WILL BE REMOVED!
+	/**
+	 * This method is a customized method for root page to return the root page
+	 * links. Try to get the real links in the page, and all links in all divs.
+	 */
+	public IntroLink[] getLinks() {
 		Vector<AbstractIntroElement> linkVector = new Vector<>();
 
-        AbstractIntroElement[] children = getChildren();
-        for (int i = 0; i < children.length; i++) {
-            AbstractIntroElement child = children[i];
-            if (child.isOfType(AbstractIntroElement.LINK))
-                linkVector.add(child);
-            else if (child.isOfType(AbstractIntroElement.GROUP)) {
-                addLinks((IntroGroup) child, linkVector);
-            }
-        }
+		AbstractIntroElement[] children = getChildren();
+		for (int i = 0; i < children.length; i++) {
+			AbstractIntroElement child = children[i];
+			if (child.isOfType(AbstractIntroElement.LINK))
+				linkVector.add(child);
+			else if (child.isOfType(AbstractIntroElement.GROUP)) {
+				addLinks((IntroGroup) child, linkVector);
+			}
+		}
 
-        IntroLink[] links = new IntroLink[linkVector.size()];
-        linkVector.copyInto(links);
-        return links;
-    }
+		IntroLink[] links = new IntroLink[linkVector.size()];
+		linkVector.copyInto(links);
+		return links;
+	}
 
 	private void addLinks(IntroGroup group, Vector<AbstractIntroElement> linkVector) {
-        AbstractIntroElement[] children = group.getChildren();
-        for (int i = 0; i < children.length; i++) {
-            AbstractIntroElement child = children[i];
-            if (child.isOfType(AbstractIntroElement.LINK))
-                linkVector.add(child);
-            else if (child.isOfType(AbstractIntroElement.GROUP)) {
-                addLinks((IntroGroup) child, linkVector);
-            }
-        }
-    }
+		AbstractIntroElement[] children = group.getChildren();
+		for (int i = 0; i < children.length; i++) {
+			AbstractIntroElement child = children[i];
+			if (child.isOfType(AbstractIntroElement.LINK))
+				linkVector.add(child);
+			else if (child.isOfType(AbstractIntroElement.GROUP)) {
+				addLinks((IntroGroup) child, linkVector);
+			}
+		}
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroImage.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroImage.java
index 789e10f..d79ff01 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroImage.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroImage.java
@@ -23,55 +23,55 @@
  */
 public class IntroImage extends AbstractBaseIntroElement {
 
-    protected static final String TAG_IMAGE = "img"; //$NON-NLS-1$
+	protected static final String TAG_IMAGE = "img"; //$NON-NLS-1$
 
-    private static final String ATT_SRC = "src"; //$NON-NLS-1$
-    private static final String ATT_ALT = "alt"; //$NON-NLS-1$
-    private static final String ATT_TITLE = "title"; //$NON-NLS-1$
+	private static final String ATT_SRC = "src"; //$NON-NLS-1$
+	private static final String ATT_ALT = "alt"; //$NON-NLS-1$
+	private static final String ATT_TITLE = "title"; //$NON-NLS-1$
 
-    private Element element;
-    private String src;
-    private String base;
+	private Element element;
+	private String src;
+	private String base;
 
-    IntroImage(Element element, Bundle bundle, String base) {
-        super(element, bundle);
-        this.element = element;
-        this.base = base;
-    }
+	IntroImage(Element element, Bundle bundle, String base) {
+		super(element, bundle);
+		this.element = element;
+		this.base = base;
+	}
 
-    /**
-     * @return Returns the alt.
-     */
-    public String getAlt() {
-        return getAttribute(element, ATT_ALT);
-    }
+	/**
+	 * @return Returns the alt.
+	 */
+	public String getAlt() {
+		return getAttribute(element, ATT_ALT);
+	}
 
-    /**
-     * @return Returns the title.
-     */
-    public String getTitle() {
-        return getAttribute(element, ATT_TITLE);
-    }
+	/**
+	 * @return Returns the title.
+	 */
+	public String getTitle() {
+		return getAttribute(element, ATT_TITLE);
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.IMAGE;
-    }
+		return AbstractIntroElement.IMAGE;
+	}
 
-    /**
-     * @return Returns the src value, already resolved as a local url.
-     */
-    public String getSrc() {
-    	if (src==null)// Resolve src.
-    		src = BundleUtil.getResolvedResourceLocation(base, getSrcAsIs(), getBundle());
-        return src;
-    }
+	/**
+	 * @return Returns the src value, already resolved as a local url.
+	 */
+	public String getSrc() {
+		if (src==null)// Resolve src.
+			src = BundleUtil.getResolvedResourceLocation(base, getSrcAsIs(), getBundle());
+		return src;
+	}
 
-    /**
-     * @return Returns the src value, as is, without resolving it as a local
-     *         url. The src value is relative to the parent plugin.
-     */
-    public String getSrcAsIs() {
-        return getAttribute(element, ATT_SRC);
-    }
+	/**
+	 * @return Returns the src value, as is, without resolving it as a local
+	 *         url. The src value is relative to the parent plugin.
+	 */
+	public String getSrcAsIs() {
+		return getAttribute(element, ATT_SRC);
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInclude.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInclude.java
index 1535ca0..151a849 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInclude.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInclude.java
@@ -22,52 +22,52 @@
  */
 public class IntroInclude extends AbstractIntroElement {
 
-    protected static final String TAG_INCLUDE = "include"; //$NON-NLS-1$
+	protected static final String TAG_INCLUDE = "include"; //$NON-NLS-1$
 
-    private static final String ATT_CONFIG_ID = "configId"; //$NON-NLS-1$
-    protected static final String ATT_PATH = "path"; //$NON-NLS-1$
-    /**
-     * boolean attribute, default is false.
-     */
-    private static final String ATT_MERGE_STYLE = "merge-style"; //$NON-NLS-1$
+	private static final String ATT_CONFIG_ID = "configId"; //$NON-NLS-1$
+	protected static final String ATT_PATH = "path"; //$NON-NLS-1$
+	/**
+	 * boolean attribute, default is false.
+	 */
+	private static final String ATT_MERGE_STYLE = "merge-style"; //$NON-NLS-1$
 
-    private String configId;
-    private String path;
-    private boolean mergeStyle = false;
+	private String configId;
+	private String path;
+	private boolean mergeStyle = false;
 
-    IntroInclude(Element element, Bundle bundle) {
-        super(element, bundle);
-        configId = getAttribute(element, ATT_CONFIG_ID);
-        path = getAttribute(element, ATT_PATH);
-        String mergeStyleString = getAttribute(element, ATT_MERGE_STYLE);
-        mergeStyle = (mergeStyleString != null && mergeStyleString
-            .equalsIgnoreCase("true")) ? true : false; //$NON-NLS-1$
-    }
+	IntroInclude(Element element, Bundle bundle) {
+		super(element, bundle);
+		configId = getAttribute(element, ATT_CONFIG_ID);
+		path = getAttribute(element, ATT_PATH);
+		String mergeStyleString = getAttribute(element, ATT_MERGE_STYLE);
+		mergeStyle = (mergeStyleString != null && mergeStyleString
+			.equalsIgnoreCase("true")) ? true : false; //$NON-NLS-1$
+	}
 
-    /**
-     * @return Returns the configId.
-     */
-    public String getConfigId() {
-        return configId;
-    }
+	/**
+	 * @return Returns the configId.
+	 */
+	public String getConfigId() {
+		return configId;
+	}
 
-    /**
-     * @return Returns the mergeStyle.
-     */
-    public boolean getMergeStyle() {
-        return mergeStyle;
-    }
+	/**
+	 * @return Returns the mergeStyle.
+	 */
+	public boolean getMergeStyle() {
+		return mergeStyle;
+	}
 
-    /**
-     * @return Returns the path.
-     */
-    public String getPath() {
-        return path;
-    }
+	/**
+	 * @return Returns the path.
+	 */
+	public String getPath() {
+		return path;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.INCLUDE;
-    }
+		return AbstractIntroElement.INCLUDE;
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInjectedIFrame.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInjectedIFrame.java
index 6ce2e70..999b80c 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInjectedIFrame.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInjectedIFrame.java
@@ -24,25 +24,25 @@
  */
 public class IntroInjectedIFrame extends AbstractIntroIdElement {
 
-    private String url;
+	private String url;
 
-    IntroInjectedIFrame(Element element, Bundle bundle) {
-        super(element, bundle);
-    }
+	IntroInjectedIFrame(Element element, Bundle bundle) {
+		super(element, bundle);
+	}
 
-    public void setIFrameURL(String url) {
-        this.url = url;
-    }
+	public void setIFrameURL(String url) {
+		this.url = url;
+	}
 
-    public String getIFrameURL() {
-        return this.url;
-    }
+	public String getIFrameURL() {
+		return this.url;
+	}
 
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.INJECTED_IFRAME;
-    }
+		return AbstractIntroElement.INJECTED_IFRAME;
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarElement.java
index 592b91a..91a311e 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarElement.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarElement.java
@@ -36,156 +36,156 @@
 
 	private List<IntroLaunchBarShortcut> shortcuts;
 
-    IntroLaunchBarElement(IConfigurationElement element) {
-        super(element);
-    }
+	IntroLaunchBarElement(IConfigurationElement element) {
+		super(element);
+	}
 
 
-    /**
-     * Returns LAUNCH_BAR.
-     */
-    @Override
+	/**
+	 * Returns LAUNCH_BAR.
+	 */
+	@Override
 	public int getType() {
-        return AbstractIntroElement.LAUNCH_BAR;
-    }
+		return AbstractIntroElement.LAUNCH_BAR;
+	}
 
-    /**
-     * Returns the desired launch bar orientation that results from the desired
-     * location. Valid values are <code>SWT.VERTICAL</code> and
-     * <code>SWT.HORIZONTAL</code>.
-     *
-     * @return
-     */
-    public int getOrientation() {
-        int location = getLocation();
-        return (location == SWT.RIGHT || location == SWT.LEFT) ? SWT.VERTICAL
-                : SWT.HORIZONTAL;
-    }
+	/**
+	 * Returns the desired launch bar orientation that results from the desired
+	 * location. Valid values are <code>SWT.VERTICAL</code> and
+	 * <code>SWT.HORIZONTAL</code>.
+	 *
+	 * @return
+	 */
+	public int getOrientation() {
+		int location = getLocation();
+		return (location == SWT.RIGHT || location == SWT.LEFT) ? SWT.VERTICAL
+				: SWT.HORIZONTAL;
+	}
 
-    /**
-     * Returns the location of the launch bar in the workbench window. Valid
-     * values are <code>SWT.RIGHT</code>,<code>SWT.LEFT</code> and
-     * <code>SWT.BOTTOM</code>.
-     *
-     * @return
-     */
-    public int getLocation() {
-        String location = getCfgElement().getAttribute("location"); //$NON-NLS-1$
+	/**
+	 * Returns the location of the launch bar in the workbench window. Valid
+	 * values are <code>SWT.RIGHT</code>,<code>SWT.LEFT</code> and
+	 * <code>SWT.BOTTOM</code>.
+	 *
+	 * @return
+	 */
+	public int getLocation() {
+		String location = getCfgElement().getAttribute("location"); //$NON-NLS-1$
 
-        if (location != null) {
-            if (location.equals("left")) //$NON-NLS-1$
-                return SWT.LEFT;
-            if (location.equals("bottom")) //$NON-NLS-1$
-                return SWT.BOTTOM;
-            if (location.equals("right")) //$NON-NLS-1$
-                return SWT.RIGHT;
-        }
-        // default to the initial fast view location
-        String fastviewLocation = PlatformUI.getPreferenceStore().getString(
-            IWorkbenchPreferenceConstants.INITIAL_FAST_VIEW_BAR_LOCATION);
-        if (fastviewLocation.equals(IWorkbenchPreferenceConstants.LEFT))
-            return SWT.LEFT;
-        if (fastviewLocation.equals(IWorkbenchPreferenceConstants.RIGHT))
-            return SWT.RIGHT;
-        if (fastviewLocation.equals(IWorkbenchPreferenceConstants.BOTTOM))
-            return SWT.BOTTOM;
-        // just in case
-        return SWT.RIGHT;
-    }
+		if (location != null) {
+			if (location.equals("left")) //$NON-NLS-1$
+				return SWT.LEFT;
+			if (location.equals("bottom")) //$NON-NLS-1$
+				return SWT.BOTTOM;
+			if (location.equals("right")) //$NON-NLS-1$
+				return SWT.RIGHT;
+		}
+		// default to the initial fast view location
+		String fastviewLocation = PlatformUI.getPreferenceStore().getString(
+			IWorkbenchPreferenceConstants.INITIAL_FAST_VIEW_BAR_LOCATION);
+		if (fastviewLocation.equals(IWorkbenchPreferenceConstants.LEFT))
+			return SWT.LEFT;
+		if (fastviewLocation.equals(IWorkbenchPreferenceConstants.RIGHT))
+			return SWT.RIGHT;
+		if (fastviewLocation.equals(IWorkbenchPreferenceConstants.BOTTOM))
+			return SWT.BOTTOM;
+		// just in case
+		return SWT.RIGHT;
+	}
 
-    public String getBackground() {
-        return getCfgElement().getAttribute("bg"); //$NON-NLS-1$
-    }
+	public String getBackground() {
+		return getCfgElement().getAttribute("bg"); //$NON-NLS-1$
+	}
 
-    public String getForeground() {
-        return getCfgElement().getAttribute("fg"); //$NON-NLS-1$
-    }
+	public String getForeground() {
+		return getCfgElement().getAttribute("fg"); //$NON-NLS-1$
+	}
 
-    public boolean getCreateHandle() {
-        return getHandleElement() != null;
-    }
+	public boolean getCreateHandle() {
+		return getHandleElement() != null;
+	}
 
-    public boolean getClose() {
-        IConfigurationElement handle = getHandleElement();
-        if (handle != null) {
-            String value = handle.getAttribute("close"); //$NON-NLS-1$
-            return value == null || value.equals("true"); //$NON-NLS-1$
-        }
-        return true;
-    }
+	public boolean getClose() {
+		IConfigurationElement handle = getHandleElement();
+		if (handle != null) {
+			String value = handle.getAttribute("close"); //$NON-NLS-1$
+			return value == null || value.equals("true"); //$NON-NLS-1$
+		}
+		return true;
+	}
 
-    /**
-     * Returns the relative icon path of the handle image.
-     *
-     * @return
-     */
-    private String getHandleImage() {
-        IConfigurationElement handle = getHandleElement();
-        if (handle == null)
-            return null;
-        return handle.getAttribute("image"); //$NON-NLS-1$
-    }
+	/**
+	 * Returns the relative icon path of the handle image.
+	 *
+	 * @return
+	 */
+	private String getHandleImage() {
+		IConfigurationElement handle = getHandleElement();
+		if (handle == null)
+			return null;
+		return handle.getAttribute("image"); //$NON-NLS-1$
+	}
 
-    /**
-     * Returns the icon image of the handle, or <code>null</code> if not
-     * defined or found.
-     *
-     * @return
-     */
-    public ImageDescriptor getHandleImageDescriptor() {
-        String path = getHandleImage();
-        if (path == null)
-            return null;
-        return ImageUtil.createImageDescriptor(getBundle(), path);
-    }
+	/**
+	 * Returns the icon image of the handle, or <code>null</code> if not
+	 * defined or found.
+	 *
+	 * @return
+	 */
+	public ImageDescriptor getHandleImageDescriptor() {
+		String path = getHandleImage();
+		if (path == null)
+			return null;
+		return ImageUtil.createImageDescriptor(getBundle(), path);
+	}
 
-    private IConfigurationElement getHandleElement() {
-        IConfigurationElement[] children = getCfgElement().getChildren(
-            "handle"); //$NON-NLS-1$
-        if (children.length > 0)
-            return children[0];
-        return null;
-    }
+	private IConfigurationElement getHandleElement() {
+		IConfigurationElement[] children = getCfgElement().getChildren(
+			"handle"); //$NON-NLS-1$
+		if (children.length > 0)
+			return children[0];
+		return null;
+	}
 
-    /**
-     * Returns an array of shorcut elements.
-     *
-     * @return
-     */
-    public IntroLaunchBarShortcut[] getShortcuts() {
-        if (shortcuts == null) {
-            createShortcuts();
-        }
-        return shortcuts.toArray(new IntroLaunchBarShortcut[shortcuts.size()]);
-    }
+	/**
+	 * Returns an array of shorcut elements.
+	 *
+	 * @return
+	 */
+	public IntroLaunchBarShortcut[] getShortcuts() {
+		if (shortcuts == null) {
+			createShortcuts();
+		}
+		return shortcuts.toArray(new IntroLaunchBarShortcut[shortcuts.size()]);
+	}
 
-    /**
-     * Creates an array of shortcut elements
-     *
-     */
-    private void createShortcuts() {
+	/**
+	 * Creates an array of shortcut elements
+	 *
+	 */
+	private void createShortcuts() {
 		shortcuts = new ArrayList<>();
-        IntroModelRoot model = getModelRoot();
-        IntroConfigurer configurer = model!=null?model.getConfigurer():null;
+		IntroModelRoot model = getModelRoot();
+		IntroConfigurer configurer = model!=null?model.getConfigurer():null;
 
-        String cvalue = getCfgElement().getAttribute("computed"); //$NON-NLS-1$
-        boolean computed = cvalue!=null && cvalue.equalsIgnoreCase("true"); //$NON-NLS-1$
+		String cvalue = getCfgElement().getAttribute("computed"); //$NON-NLS-1$
+		boolean computed = cvalue!=null && cvalue.equalsIgnoreCase("true"); //$NON-NLS-1$
 
-        if (computed && configurer!=null) {
-        	IntroElement [] children = configurer.getLaunchBarShortcuts();
-        	for (int i=0; i<children.length; i++) {
-        		IntroLaunchBarShortcut shortcut = new IntroLaunchBarShortcut(getCfgElement(), children[i]);
-        		shortcuts.add(shortcut);
-        	}
-        }
-        else {
-            IConfigurationElement[] children = getCfgElement().getChildren(
-                    IntroLaunchBarShortcut.TAG_SHORTCUT);
-        	for (int i = 0; i < children.length; i++) {
-        		IConfigurationElement child = children[i];
-        		IntroLaunchBarShortcut shortcut = new IntroLaunchBarShortcut(child);
-        		shortcuts.add(shortcut);
-        	}
-        }
-    }
+		if (computed && configurer!=null) {
+			IntroElement [] children = configurer.getLaunchBarShortcuts();
+			for (int i=0; i<children.length; i++) {
+				IntroLaunchBarShortcut shortcut = new IntroLaunchBarShortcut(getCfgElement(), children[i]);
+				shortcuts.add(shortcut);
+			}
+		}
+		else {
+			IConfigurationElement[] children = getCfgElement().getChildren(
+					IntroLaunchBarShortcut.TAG_SHORTCUT);
+			for (int i = 0; i < children.length; i++) {
+				IConfigurationElement child = children[i];
+				IntroLaunchBarShortcut shortcut = new IntroLaunchBarShortcut(child);
+				shortcuts.add(shortcut);
+			}
+		}
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarShortcut.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarShortcut.java
index ac7a5ae..63bb2fc 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarShortcut.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarShortcut.java
@@ -28,80 +28,80 @@
  */
 public class IntroLaunchBarShortcut extends AbstractIntroElement {
 
-    protected static final String TAG_SHORTCUT = "shortcut"; //$NON-NLS-1$
+	protected static final String TAG_SHORTCUT = "shortcut"; //$NON-NLS-1$
 
-    private static final String ATT_TOOLTIP = "tooltip"; //$NON-NLS-1$
-    private static final String ATT_ICON = "icon"; //$NON-NLS-1$
-    private static final String ATT_URL = "url"; //$NON-NLS-1$
+	private static final String ATT_TOOLTIP = "tooltip"; //$NON-NLS-1$
+	private static final String ATT_ICON = "icon"; //$NON-NLS-1$
+	private static final String ATT_URL = "url"; //$NON-NLS-1$
 
-    private IntroElement ielement;
+	private IntroElement ielement;
 
-    IntroLaunchBarShortcut(IConfigurationElement element, IntroElement ielement) {
-    	super(element);
-    	this.ielement = ielement;
-    }
+	IntroLaunchBarShortcut(IConfigurationElement element, IntroElement ielement) {
+		super(element);
+		this.ielement = ielement;
+	}
 
-    IntroLaunchBarShortcut(IConfigurationElement element) {
-        super(element);
-    }
+	IntroLaunchBarShortcut(IConfigurationElement element) {
+		super(element);
+	}
 
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.LAUNCH_BAR_SHORTCUT;
-    }
+		return AbstractIntroElement.LAUNCH_BAR_SHORTCUT;
+	}
 
-    private String getAttribute(String name) {
-    	if (ielement!=null)
-    		return ielement.getAttribute(name);
-    	return getCfgElement().getAttribute(name);
-    }
+	private String getAttribute(String name) {
+		if (ielement!=null)
+			return ielement.getAttribute(name);
+		return getCfgElement().getAttribute(name);
+	}
 
-    /**
-     * Returns the URL of this shortcut.
-     *
-     * @return
-     */
-    public String getURL() {
-    	return getAttribute(ATT_URL);
-    }
+	/**
+	 * Returns the URL of this shortcut.
+	 *
+	 * @return
+	 */
+	public String getURL() {
+		return getAttribute(ATT_URL);
+	}
 
-    /**
-     * Returns the tooltip of this shortcut.
-     *
-     * @return
-     */
-    public String getToolTip() {
-        return getAttribute(ATT_TOOLTIP);
-    }
+	/**
+	 * Returns the tooltip of this shortcut.
+	 *
+	 * @return
+	 */
+	public String getToolTip() {
+		return getAttribute(ATT_TOOLTIP);
+	}
 
-    /**
-     * Returns the relative icon path of this shortcut.
-     *
-     * @return
-     */
-    private String getIcon() {
-        return getAttribute(ATT_ICON);
-    }
+	/**
+	 * Returns the relative icon path of this shortcut.
+	 *
+	 * @return
+	 */
+	private String getIcon() {
+		return getAttribute(ATT_ICON);
+	}
 
-    /**
-     * Returns the icon image of this shortcut, or <code>null</code> if not
-     * found.
-     *
-     * @return
-     */
-    public ImageDescriptor getImageDescriptor() {
-    	String icon = getIcon();
-    	if (icon!=null) {
-    		try {
-    			URL imageUrl = new URL(icon);
-                ImageDescriptor desc = ImageDescriptor.createFromURL(imageUrl);
-                return desc;
-    		}
-    		catch (MalformedURLException e) {
-    			// not a full url
-    		}
-    	}
-        return ImageUtil.createImageDescriptor(getBundle(), getIcon());
-    }
+	/**
+	 * Returns the icon image of this shortcut, or <code>null</code> if not
+	 * found.
+	 *
+	 * @return
+	 */
+	public ImageDescriptor getImageDescriptor() {
+		String icon = getIcon();
+		if (icon!=null) {
+			try {
+				URL imageUrl = new URL(icon);
+				ImageDescriptor desc = ImageDescriptor.createFromURL(imageUrl);
+				return desc;
+			}
+			catch (MalformedURLException e) {
+				// not a full url
+			}
+		}
+		return ImageUtil.createImageDescriptor(getBundle(), getIcon());
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLink.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLink.java
index 77be67f..2f0f57b 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLink.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLink.java
@@ -27,94 +27,94 @@
  */
 public class IntroLink extends AbstractTextElement {
 
-    protected static final String TAG_LINK = "link"; //$NON-NLS-1$
+	protected static final String TAG_LINK = "link"; //$NON-NLS-1$
 
-    private static final String ATT_LABEL = "label"; //$NON-NLS-1$
-    private static final String ATT_URL = "url"; //$NON-NLS-1$
-    private static final String TAG_IMG = "img"; //$NON-NLS-1$
+	private static final String ATT_LABEL = "label"; //$NON-NLS-1$
+	private static final String ATT_URL = "url"; //$NON-NLS-1$
+	private static final String TAG_IMG = "img"; //$NON-NLS-1$
 
-    private String label;
-    private String url;
-    private IntroImage img;
-    private IntroURL introURL;
+	private String label;
+	private String url;
+	private IntroImage img;
+	private IntroURL introURL;
 
-    /**
-     * @param element
-     */
-    IntroLink(Element element, Bundle bundle, String base) {
-        super(element, bundle);
-        url = getAttribute(element, ATT_URL);
-        label = getAttribute(element, ATT_LABEL);
+	/**
+	 * @param element
+	 */
+	IntroLink(Element element, Bundle bundle, String base) {
+		super(element, bundle);
+		url = getAttribute(element, ATT_URL);
+		label = getAttribute(element, ATT_LABEL);
 
-        url = ModelUtil.resolveURL(base, url, bundle);
-        if (url != null) {
-            // check the URL.
-            IntroURLParser parser = new IntroURLParser(url);
-            if (parser.hasIntroUrl())
-                introURL = parser.getIntroURL();
-        }
+		url = ModelUtil.resolveURL(base, url, bundle);
+		if (url != null) {
+			// check the URL.
+			IntroURLParser parser = new IntroURLParser(url);
+			if (parser.hasIntroUrl())
+				introURL = parser.getIntroURL();
+		}
 
-        // There should be at most one img element.
-        NodeList imgElements = element.getElementsByTagName(TAG_IMG);
-        if (imgElements.getLength() > 0) {
-            img = new IntroImage((Element) imgElements.item(0), getBundle(),
-                base);
-            img.setParent(this);
-        }
-    }
+		// There should be at most one img element.
+		NodeList imgElements = element.getElementsByTagName(TAG_IMG);
+		if (imgElements.getLength() > 0) {
+			img = new IntroImage((Element) imgElements.item(0), getBundle(),
+				base);
+			img.setParent(this);
+		}
+	}
 
-    /**
-     * @return Returns the label.
-     */
-    public String getLabel() {
-    	IntroModelRoot root = getModelRoot();
-    	 if (root!=null) {
-    	     return root.resolveVariables(label);
-    	 }
-    	 return label;
-    }
+	/**
+	 * @return Returns the label.
+	 */
+	public String getLabel() {
+		IntroModelRoot root = getModelRoot();
+		 if (root!=null) {
+			 return root.resolveVariables(label);
+		 }
+		 return label;
+	}
 
-    /**
-     * @return Returns the url.
-     */
-    public String getUrl() {
-        return url;
-    }
+	/**
+	 * @return Returns the url.
+	 */
+	public String getUrl() {
+		return url;
+	}
 
-    /**
-     * Retruns an IntroURL instance if link has a valid intro url. Returns null
-     * otherwise.
-     *
-     * @return Returns the introURL.
-     */
-    public IntroURL getIntroURL() {
-        return introURL;
-    }
+	/**
+	 * Retruns an IntroURL instance if link has a valid intro url. Returns null
+	 * otherwise.
+	 *
+	 * @return Returns the introURL.
+	 */
+	public IntroURL getIntroURL() {
+		return introURL;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.LINK;
-    }
+		return AbstractIntroElement.LINK;
+	}
 
-    /**
-     * @return Returns the img.
-     */
-    public IntroImage getImg() {
-        return img;
-    }
+	/**
+	 * @return Returns the img.
+	 */
+	public IntroImage getImg() {
+		return img;
+	}
 
-    /**
-     * Deep copy since class has mutable objects.
-     */
-    @Override
+	/**
+	 * Deep copy since class has mutable objects.
+	 */
+	@Override
 	public Object clone() throws CloneNotSupportedException {
-        IntroLink clone = (IntroLink) super.clone();
-        if (img != null) {
-            IntroImage cloneIntroImage = (IntroImage) img.clone();
-            cloneIntroImage.setParent(clone);
-            clone.img = cloneIntroImage;
-        }
-        // no need to clobe IntroURL.
-        return clone;
-    }
+		IntroLink clone = (IntroLink) super.clone();
+		if (img != null) {
+			IntroImage cloneIntroImage = (IntroImage) img.clone();
+			cloneIntroImage.setParent(clone);
+			clone.img = cloneIntroImage;
+		}
+		// no need to clobe IntroURL.
+		return clone;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroModelRoot.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroModelRoot.java
index 2151dde..fbde4a2 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroModelRoot.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroModelRoot.java
@@ -103,862 +103,862 @@
  */
 public class IntroModelRoot extends AbstractIntroContainer {
 
-    /**
-     * Model constants that fire property change event when they are changed in
-     * the model.
-     */
-    public static final int CURRENT_PAGE_PROPERTY_ID = 1;
+	/**
+	 * Model constants that fire property change event when they are changed in
+	 * the model.
+	 */
+	public static final int CURRENT_PAGE_PROPERTY_ID = 1;
 
-    private static final String ATT_CONTENT = "content"; //$NON-NLS-1$
-    private static final String ATT_CONFIGURER = "configurer"; //$NON-NLS-1$
-    private static final String VAR_THEME = "theme";  //$NON-NLS-1$
-    private static final String VAR_DIRECTION = "direction";  //$NON-NLS-1$
+	private static final String ATT_CONTENT = "content"; //$NON-NLS-1$
+	private static final String ATT_CONFIGURER = "configurer"; //$NON-NLS-1$
+	private static final String VAR_THEME = "theme";  //$NON-NLS-1$
+	private static final String VAR_DIRECTION = "direction";  //$NON-NLS-1$
 
-    // False if there is no valid contribution to the
-    // org.eclipse.ui.intro.config extension point. Start off with true, and set
-    // to false whenever something bad happens.
-    private boolean hasValidConfig = true;
-    private IntroConfigurer configurer;
-    private IntroTheme theme;
-    private IntroPartPresentation introPartPresentation;
-    private IntroHomePage rootPage;
-    private String currentPageId;
-    private String startPageId;
-    private AbstractIntroPage standbyPage;
-    private AbstractIntroPage homePage;
+	// False if there is no valid contribution to the
+	// org.eclipse.ui.intro.config extension point. Start off with true, and set
+	// to false whenever something bad happens.
+	private boolean hasValidConfig = true;
+	private IntroConfigurer configurer;
+	private IntroTheme theme;
+	private IntroPartPresentation introPartPresentation;
+	private IntroHomePage rootPage;
+	private String currentPageId;
+	private String startPageId;
+	private AbstractIntroPage standbyPage;
+	private AbstractIntroPage homePage;
 	private String modelStandbyPageId;
 
-    // the config extensions for this model.
-    private IConfigurationElement[] configExtensionElements;
+	// the config extensions for this model.
+	private IConfigurationElement[] configExtensionElements;
 
-    // maintain listener list for model changes.
+	// maintain listener list for model changes.
 	public ListenerList<IPropertyListener> propChangeListeners = new ListenerList<>();
 
-    // a list to hold all loaded DOMs until resolving all configExtensions
-    // is done.
+	// a list to hold all loaded DOMs until resolving all configExtensions
+	// is done.
 	private List<ExtensionContent> unresolvedConfigExt = new ArrayList<>();
 
 
-    private class ExtensionContent {
-    	Element element;
-        IConfigurationElement configExtElement;
-        ExtensionContent(Element element,
-                IConfigurationElement configExtElement) {
-            this.element = element;
-            this.configExtElement = configExtElement;
-        }
-    }
+	private class ExtensionContent {
+		Element element;
+		IConfigurationElement configExtElement;
+		ExtensionContent(Element element,
+				IConfigurationElement configExtElement) {
+			this.element = element;
+			this.configExtElement = configExtElement;
+		}
+	}
 
-    /**
-     * Model root. Takes a configElement that represents <config>in the
-     * plugin.xml markup AND all the extension contributed to this model through
-     * the configExtension point.
-     */
-    public IntroModelRoot(IConfigurationElement configElement,
-            IConfigurationElement[] configExtensionElements) {
-        // the config element that represents the correct model root.
-        super(configElement);
-        this.configExtensionElements = configExtensionElements;
+	/**
+	 * Model root. Takes a configElement that represents <config>in the
+	 * plugin.xml markup AND all the extension contributed to this model through
+	 * the configExtension point.
+	 */
+	public IntroModelRoot(IConfigurationElement configElement,
+			IConfigurationElement[] configExtensionElements) {
+		// the config element that represents the correct model root.
+		super(configElement);
+		this.configExtensionElements = configExtensionElements;
 
-    }
+	}
 
-    public void loadModel() {
-        getChildren();
-        determineHomePage();
-    }
+	public void loadModel() {
+		getChildren();
+		determineHomePage();
+	}
 
-    /**
-     * Loads the full model. The children of a model root are the presentation,
-     * followed by all pages, and all shared groups. Then if the model has
-     * extension, its the unresolved container extensions, followed by all
-     * extension pages and groups. The presentation is loaded from the
-     * IConfiguration element representing the config. All else is loaded from
-     * xml content file.
-     *
-     */
-    @Override
+	/**
+	 * Loads the full model. The children of a model root are the presentation,
+	 * followed by all pages, and all shared groups. Then if the model has
+	 * extension, its the unresolved container extensions, followed by all
+	 * extension pages and groups. The presentation is loaded from the
+	 * IConfiguration element representing the config. All else is loaded from
+	 * xml content file.
+	 *
+	 */
+	@Override
 	protected void loadChildren() {
 		children = new Vector<>();
-        if (Log.logInfo)
-            Log.info("Creating Intro plugin model...."); //$NON-NLS-1$
+		if (Log.logInfo)
+			Log.info("Creating Intro plugin model...."); //$NON-NLS-1$
 
-        // load presentation first and create the model class for it. If there
-        // is more than one presentation, load first one, and log rest.
-        IConfigurationElement presentationElement = loadPresentation();
-        if (presentationElement == null) {
-            // no presentations at all, exit.
-            setModelState(true, false);
-            Log.warning("Could not find presentation element in intro config."); //$NON-NLS-1$
-            return;
-        }
+		// load presentation first and create the model class for it. If there
+		// is more than one presentation, load first one, and log rest.
+		IConfigurationElement presentationElement = loadPresentation();
+		if (presentationElement == null) {
+			// no presentations at all, exit.
+			setModelState(true, false);
+			Log.warning("Could not find presentation element in intro config."); //$NON-NLS-1$
+			return;
+		}
 
-        loadTheme();
-        loadConfigurer();
+		loadTheme();
+		loadConfigurer();
 
-        introPartPresentation = new IntroPartPresentation(presentationElement);
-        children.add(introPartPresentation);
-        // set parent.
-        introPartPresentation.setParent(this);
+		introPartPresentation = new IntroPartPresentation(presentationElement);
+		children.add(introPartPresentation);
+		// set parent.
+		introPartPresentation.setParent(this);
 
-        // now load all children of the config. There should only be pages and
-        // groups here. And order is not important. These elements are loaded
-        // from the content file DOM.
-        Document document = loadDOM(getCfgElement());
-        if (document == null) {
-            // we failed to parse the content file. Intro Parser would have
-            // logged the fact. Parser would also have checked to see if the
-            // content file has the correct root tag.
-            setModelState(true, false);
-            return;
-        }
+		// now load all children of the config. There should only be pages and
+		// groups here. And order is not important. These elements are loaded
+		// from the content file DOM.
+		Document document = loadDOM(getCfgElement());
+		if (document == null) {
+			// we failed to parse the content file. Intro Parser would have
+			// logged the fact. Parser would also have checked to see if the
+			// content file has the correct root tag.
+			setModelState(true, false);
+			return;
+		}
 
-        // set base for this model.
-        this.base = getBase(getCfgElement());
+		// set base for this model.
+		this.base = getBase(getCfgElement());
 
-        // now load content.
-        loadPages(document, getBundle());
-        loadSharedGroups(document, getBundle());
+		// now load content.
+		loadPages(document, getBundle());
+		loadSharedGroups(document, getBundle());
 
-        // Attributes of root page decide if we have a static or dynamic case.
-        setModelState(true, true);
+		// Attributes of root page decide if we have a static or dynamic case.
+		setModelState(true, true);
 
 		if (configurer != null) {
 			// The configurer may vary its returned results based on the theme
 			// properties
 			configurer.bind(this);
 		}
-    }
+	}
 
-    /**
-     * Sets the presentation to the given presentation. The model always has the
-     * presentation as the first child, so use that fact. This method is used
-     * for dynamic awarness to enable replacing the new presentation with the
-     * existing one after a model refresh.
-     *
-     * @param presentation
-     */
-    public void setPresentation(IntroPartPresentation presentation) {
-        this.introPartPresentation = presentation;
-        presentation.setParent(this);
-        children.set(0, presentation);
-    }
+	/**
+	 * Sets the presentation to the given presentation. The model always has the
+	 * presentation as the first child, so use that fact. This method is used
+	 * for dynamic awarness to enable replacing the new presentation with the
+	 * existing one after a model refresh.
+	 *
+	 * @param presentation
+	 */
+	public void setPresentation(IntroPartPresentation presentation) {
+		this.introPartPresentation = presentation;
+		presentation.setParent(this);
+		children.set(0, presentation);
+	}
 
-    /**
-     * Resolve contributions into this container's children.
-     */
-    @Override
+	/**
+	 * Resolve contributions into this container's children.
+	 */
+	@Override
 	protected void resolveChildren() {
-        // now handle config extension.
-        resolveConfigExtensions();
-        resolved = true;
-    }
+		// now handle config extension.
+		resolveConfigExtensions();
+		resolved = true;
+	}
 
-    private IConfigurationElement loadPresentation() {
-        // If there is more than one presentation, load first one, and log
-        // rest.
-        IConfigurationElement[] presentationElements = getCfgElement()
-            .getChildren(IntroPartPresentation.TAG_PRESENTATION);
+	private IConfigurationElement loadPresentation() {
+		// If there is more than one presentation, load first one, and log
+		// rest.
+		IConfigurationElement[] presentationElements = getCfgElement()
+			.getChildren(IntroPartPresentation.TAG_PRESENTATION);
 
-        IConfigurationElement presentationElement = ModelLoaderUtil
-            .validateSingleContribution(presentationElements,
-                IntroPartPresentation.ATT_HOME_PAGE_ID);
-        return presentationElement;
-    }
+		IConfigurationElement presentationElement = ModelLoaderUtil
+			.validateSingleContribution(presentationElements,
+				IntroPartPresentation.ATT_HOME_PAGE_ID);
+		return presentationElement;
+	}
 
-    private void loadConfigurer() {
-    	String cname = getCfgElement().getAttribute(ATT_CONFIGURER);
-    	if (cname!=null) {
-    		try {
-    			Object obj = getCfgElement().createExecutableExtension(ATT_CONFIGURER);
+	private void loadConfigurer() {
+		String cname = getCfgElement().getAttribute(ATT_CONFIGURER);
+		if (cname!=null) {
+			try {
+				Object obj = getCfgElement().createExecutableExtension(ATT_CONFIGURER);
 				if (obj instanceof IntroConfigurer) {
-    				configurer = (IntroConfigurer)obj;
+					configurer = (IntroConfigurer)obj;
 				}
-    		}
-    		catch (CoreException e) {
-    			Log.error("Error loading intro configurer", e); //$NON-NLS-1$
-    		}
-    	}
-    }
+			}
+			catch (CoreException e) {
+				Log.error("Error loading intro configurer", e); //$NON-NLS-1$
+			}
+		}
+	}
 
-    private void determineHomePage() {
-	    	homePage = rootPage;  // Default, may be overridden
-	    	if (Platform.getProduct() == null) {
-	    		return;
-	    	}
-	    	String pid = Platform.getProduct().getId();
-	    	startPageId = getProcessPreference("INTRO_START_PAGE", pid); //$NON-NLS-1$
-	    	String homePagePreference = getProcessPreference("INTRO_HOME_PAGE", pid); //$NON-NLS-1$
-	    	if (homePagePreference.length() != 0) {
-	    		AbstractIntroPage page = (AbstractIntroPage) findChild(homePagePreference,
-	    	            ABSTRACT_PAGE);
-	    		if (page != null) {
-	    			homePage = page;
-	    		    if(startPageId.length() == 0) {
-	    			    startPageId = homePagePreference;
-	    		    }
-	    		}
-	    	}
-	    	String standbyPagePreference = getProcessPreference("INTRO_STANDBY_PAGE", pid); //$NON-NLS-1$
-        modelStandbyPageId = getPresentation().getStandbyPageId();
+	private void determineHomePage() {
+			homePage = rootPage;  // Default, may be overridden
+			if (Platform.getProduct() == null) {
+				return;
+			}
+			String pid = Platform.getProduct().getId();
+			startPageId = getProcessPreference("INTRO_START_PAGE", pid); //$NON-NLS-1$
+			String homePagePreference = getProcessPreference("INTRO_HOME_PAGE", pid); //$NON-NLS-1$
+			if (homePagePreference.length() != 0) {
+				AbstractIntroPage page = (AbstractIntroPage) findChild(homePagePreference,
+						ABSTRACT_PAGE);
+				if (page != null) {
+					homePage = page;
+					if(startPageId.length() == 0) {
+						startPageId = homePagePreference;
+					}
+				}
+			}
+			String standbyPagePreference = getProcessPreference("INTRO_STANDBY_PAGE", pid); //$NON-NLS-1$
+		modelStandbyPageId = getPresentation().getStandbyPageId();
 
-        if (standbyPagePreference.length() != 0) {
-        	standbyPage = (AbstractIntroPage) findChild(standbyPagePreference,
-    	            ABSTRACT_PAGE);
-        }
-        if (standbyPage == null && modelStandbyPageId != null && modelStandbyPageId.length() != 0) {
-        	standbyPage = (AbstractIntroPage) findChild(modelStandbyPageId,
-    	            ABSTRACT_PAGE);
-        }
-        if (standbyPage != null) {
-            standbyPage.setStandbyPage(true);
-        }
-    }
+		if (standbyPagePreference.length() != 0) {
+			standbyPage = (AbstractIntroPage) findChild(standbyPagePreference,
+					ABSTRACT_PAGE);
+		}
+		if (standbyPage == null && modelStandbyPageId != null && modelStandbyPageId.length() != 0) {
+			standbyPage = (AbstractIntroPage) findChild(modelStandbyPageId,
+					ABSTRACT_PAGE);
+		}
+		if (standbyPage != null) {
+			standbyPage.setStandbyPage(true);
+		}
+	}
 
-    private void loadTheme() {
-	    	String pid = Platform.getProduct() != null ? Platform.getProduct().getId() : null;
-	    	String themeId = pid != null ? getProcessPreference("INTRO_THEME", pid) : null; //$NON-NLS-1$
+	private void loadTheme() {
+			String pid = Platform.getProduct() != null ? Platform.getProduct().getId() : null;
+			String themeId = pid != null ? getProcessPreference("INTRO_THEME", pid) : null; //$NON-NLS-1$
 
-	    	IConfigurationElement [] elements = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.ui.intro.configExtension"); //$NON-NLS-1$
-	    	IConfigurationElement themeElement=null;
-	    	for (int i=0; i<elements.length; i++) {
-	    		if (elements[i].getName().equals("theme")) { //$NON-NLS-1$
-	    			String id = elements[i].getAttribute("id"); //$NON-NLS-1$
-	    			if (themeId!=null) {
-	    				if (id!=null && themeId.equals(id)) {
-	    					// use this one
-	    					themeElement = elements[i];
-	    					break;
-	    				}
-	    			}
-	    			else {
-	    				// see if this one is the default
-	    				String value = elements[i].getAttribute("default"); //$NON-NLS-1$
-	    				if (value!=null && value.equalsIgnoreCase("true")) { //$NON-NLS-1$
-	    					themeElement = elements[i];
-	    					break;
-	    				}
-	    			}
-	    		}
-	    	}
-	    	if (themeElement!=null) {
-	    		theme = new IntroTheme(themeElement);
-	    	}
-    }
+			IConfigurationElement [] elements = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.ui.intro.configExtension"); //$NON-NLS-1$
+			IConfigurationElement themeElement=null;
+			for (int i=0; i<elements.length; i++) {
+				if (elements[i].getName().equals("theme")) { //$NON-NLS-1$
+					String id = elements[i].getAttribute("id"); //$NON-NLS-1$
+					if (themeId!=null) {
+						if (id!=null && themeId.equals(id)) {
+							// use this one
+							themeElement = elements[i];
+							break;
+						}
+					}
+					else {
+						// see if this one is the default
+						String value = elements[i].getAttribute("default"); //$NON-NLS-1$
+						if (value!=null && value.equalsIgnoreCase("true")) { //$NON-NLS-1$
+							themeElement = elements[i];
+							break;
+						}
+					}
+				}
+			}
+			if (themeElement!=null) {
+				theme = new IntroTheme(themeElement);
+			}
+	}
 
-    /**
-     * Loads all pages defined in this config from the xml content file.
-     */
-    private void loadPages(Document dom, Bundle bundle) {
-        String rootPageId = getPresentation().getHomePageId();
-        Element[] pages = ModelUtil.getElementsByTagName(dom,
-            AbstractIntroPage.TAG_PAGE);
-        for (int i = 0; i < pages.length; i++) {
-            Element pageElement = pages[i];
-            if (pageElement.getAttribute(AbstractIntroIdElement.ATT_ID).equals(
-                rootPageId)) {
-                // Create the model class for the Root Page.
-                rootPage = new IntroHomePage(pageElement, bundle, base);
-                rootPage.setParent(this);
-                currentPageId = rootPage.getId();
-                children.add(rootPage);
-            } else {
-                // Create the model class for an intro Page.
-                IntroPage page = new IntroPage(pageElement, bundle, base);
-                page.setParent(this);
-                children.add(page);
-            }
-        }
-    }
+	/**
+	 * Loads all pages defined in this config from the xml content file.
+	 */
+	private void loadPages(Document dom, Bundle bundle) {
+		String rootPageId = getPresentation().getHomePageId();
+		Element[] pages = ModelUtil.getElementsByTagName(dom,
+			AbstractIntroPage.TAG_PAGE);
+		for (int i = 0; i < pages.length; i++) {
+			Element pageElement = pages[i];
+			if (pageElement.getAttribute(AbstractIntroIdElement.ATT_ID).equals(
+				rootPageId)) {
+				// Create the model class for the Root Page.
+				rootPage = new IntroHomePage(pageElement, bundle, base);
+				rootPage.setParent(this);
+				currentPageId = rootPage.getId();
+				children.add(rootPage);
+			} else {
+				// Create the model class for an intro Page.
+				IntroPage page = new IntroPage(pageElement, bundle, base);
+				page.setParent(this);
+				children.add(page);
+			}
+		}
+	}
 
-    /**
-     * Loads all shared groups defined in this config, from the DOM.
-     */
-    private void loadSharedGroups(Document dom, Bundle bundle) {
-        Element[] groups = ModelUtil.getElementsByTagName(dom,
-            IntroGroup.TAG_GROUP);
-        for (int i = 0; i < groups.length; i++) {
-            IntroGroup group = new IntroGroup(groups[i], bundle, base);
-            group.setParent(this);
-            children.add(group);
-        }
-    }
+	/**
+	 * Loads all shared groups defined in this config, from the DOM.
+	 */
+	private void loadSharedGroups(Document dom, Bundle bundle) {
+		Element[] groups = ModelUtil.getElementsByTagName(dom,
+			IntroGroup.TAG_GROUP);
+		for (int i = 0; i < groups.length; i++) {
+			IntroGroup group = new IntroGroup(groups[i], bundle, base);
+			group.setParent(this);
+			children.add(group);
+		}
+	}
 
-    /**
-     * Handles all the configExtensions to this current model. Resolving
-     * configExts means finding target anchor and inserting extension content at
-     * target. Also, several passes are used to resolve as many extensions as
-     * possible. This allows for resolving nested anchors (ie: anchors to
-     * anchors in contributions).
-     */
-    private void resolveConfigExtensions() {
-        for (int i = 0; i < configExtensionElements.length; i++) {
-            processConfigExtension(configExtensionElements[i]);
-        }
+	/**
+	 * Handles all the configExtensions to this current model. Resolving
+	 * configExts means finding target anchor and inserting extension content at
+	 * target. Also, several passes are used to resolve as many extensions as
+	 * possible. This allows for resolving nested anchors (ie: anchors to
+	 * anchors in contributions).
+	 */
+	private void resolveConfigExtensions() {
+		for (int i = 0; i < configExtensionElements.length; i++) {
+			processConfigExtension(configExtensionElements[i]);
+		}
 
-        tryResolvingExtensions();
+		tryResolvingExtensions();
 
-        // At this stage all pages will be resolved, some contributions may not be
+		// At this stage all pages will be resolved, some contributions may not be
 
-        // now add all unresolved extensions as model children and log fact.
-        Iterator keys = unresolvedConfigExt.iterator();
-        while (keys.hasNext()) {
-            ExtensionContent extension = (ExtensionContent) keys.next();
-            Element configExtensionElement = extension.element;
-            IConfigurationElement configExtConfigurationElement = extension.configExtElement;
-            Bundle bundle = BundleUtil
-                .getBundleFromConfigurationElement(configExtConfigurationElement);
-            String base = getBase(configExtConfigurationElement);
-            children.add(new IntroExtensionContent(configExtensionElement,
-                bundle, base, configExtConfigurationElement));
+		// now add all unresolved extensions as model children and log fact.
+		Iterator keys = unresolvedConfigExt.iterator();
+		while (keys.hasNext()) {
+			ExtensionContent extension = (ExtensionContent) keys.next();
+			Element configExtensionElement = extension.element;
+			IConfigurationElement configExtConfigurationElement = extension.configExtElement;
+			Bundle bundle = BundleUtil
+				.getBundleFromConfigurationElement(configExtConfigurationElement);
+			String base = getBase(configExtConfigurationElement);
+			children.add(new IntroExtensionContent(configExtensionElement,
+				bundle, base, configExtConfigurationElement));
 
-            // INTRO: fix log strings.
-            Log
-                .warning("Could not resolve the following configExtension: " //$NON-NLS-1$
-                        + ModelLoaderUtil.getLogString(bundle,
-                            configExtensionElement,
-                            IntroExtensionContent.ATT_PATH));
-        }
-    }
+			// INTRO: fix log strings.
+			Log
+				.warning("Could not resolve the following configExtension: " //$NON-NLS-1$
+						+ ModelLoaderUtil.getLogString(bundle,
+							configExtensionElement,
+							IntroExtensionContent.ATT_PATH));
+		}
+	}
 
-    private void processConfigExtension(IConfigurationElement configExtElement) {
-        // This call will extract the parent folder if needed.
-        Document dom = loadDOM(configExtElement);
-        if (dom == null)
-            // we failed to parse the content file. Intro Parser would
-            // have logged the fact. Parser would also have checked to
-            // see if the content file has the correct root tag.
-            return;
-        processConfigExtension(dom, configExtElement);
-    }
+	private void processConfigExtension(IConfigurationElement configExtElement) {
+		// This call will extract the parent folder if needed.
+		Document dom = loadDOM(configExtElement);
+		if (dom == null)
+			// we failed to parse the content file. Intro Parser would
+			// have logged the fact. Parser would also have checked to
+			// see if the content file has the correct root tag.
+			return;
+		processConfigExtension(dom, configExtElement);
+	}
 
 
-    private void processConfigExtension(Document dom,
-            IConfigurationElement configExtElement) {
+	private void processConfigExtension(Document dom,
+			IConfigurationElement configExtElement) {
 
-        // Find the target of this container extension, and add all its
-        // children to target. Make sure to pass correct bundle and base to
-        // propagate to all children.
-        String base = getBase(configExtElement);
-        Element[] extensionContentElements = loadExtensionContent(dom,
-            configExtElement, base);
-        for (int i = 0; i < extensionContentElements.length; i++) {
-        	Element extensionContentElement = extensionContentElements[i];
-             unresolvedConfigExt.add(new ExtensionContent(extensionContentElement,
-                         configExtElement));
-        }
+		// Find the target of this container extension, and add all its
+		// children to target. Make sure to pass correct bundle and base to
+		// propagate to all children.
+		String base = getBase(configExtElement);
+		Element[] extensionContentElements = loadExtensionContent(dom,
+			configExtElement, base);
+		for (int i = 0; i < extensionContentElements.length; i++) {
+			Element extensionContentElement = extensionContentElements[i];
+			 unresolvedConfigExt.add(new ExtensionContent(extensionContentElement,
+						 configExtElement));
+		}
 
-        // Now load all pages and shared groups
-        // from this config extension. Get the bundle from the extensions since they are
-        // defined in other plugins.
-        Bundle bundle = BundleUtil
-            .getBundleFromConfigurationElement(configExtElement);
+		// Now load all pages and shared groups
+		// from this config extension. Get the bundle from the extensions since they are
+		// defined in other plugins.
+		Bundle bundle = BundleUtil
+			.getBundleFromConfigurationElement(configExtElement);
 
-        Element[] pages = ModelUtil.getElementsByTagName(dom,
-            AbstractIntroPage.TAG_PAGE);
-        for (int j = 0; j < pages.length; j++) {
-            // Create the model class for an intro Page.
-        	if (!UAContentFilter.isFiltered(UAElementFactory.newElement(pages[j]), IntroEvaluationContext.getContext())) {
-                IntroPage page = new IntroPage(pages[j], bundle, base);
-                page.setParent(this);
-                children.add(page);
-        	}
-        }
-    }
+		Element[] pages = ModelUtil.getElementsByTagName(dom,
+			AbstractIntroPage.TAG_PAGE);
+		for (int j = 0; j < pages.length; j++) {
+			// Create the model class for an intro Page.
+			if (!UAContentFilter.isFiltered(UAElementFactory.newElement(pages[j]), IntroEvaluationContext.getContext())) {
+				IntroPage page = new IntroPage(pages[j], bundle, base);
+				page.setParent(this);
+				children.add(page);
+			}
+		}
+	}
 
-    private void tryResolvingExtensions() {
-    	int previousSize;
-    	do {
-    		previousSize = unresolvedConfigExt.size();
+	private void tryResolvingExtensions() {
+		int previousSize;
+		do {
+			previousSize = unresolvedConfigExt.size();
 			List<ExtensionContent> stillUnresolved = new ArrayList<>();
 			for (ExtensionContent content : unresolvedConfigExt) {
-                Element extensionContentElement = content.element;
-                IConfigurationElement configExtElement = content.configExtElement;
+				Element extensionContentElement = content.element;
+				IConfigurationElement configExtElement = content.configExtElement;
 				Bundle bundle = BundleUtil.getBundleFromConfigurationElement(configExtElement);
 				String elementBase = getBase(configExtElement);
-                processOneExtension(configExtElement, elementBase, bundle, extensionContentElement);
+				processOneExtension(configExtElement, elementBase, bundle, extensionContentElement);
 				if (extensionContentElement.hasAttribute("failed")) { //$NON-NLS-1$
 					stillUnresolved.add(content);
 				}
-            }
-            unresolvedConfigExt = stillUnresolved;
-        } while (unresolvedConfigExt.size() < previousSize);
-    }
+			}
+			unresolvedConfigExt = stillUnresolved;
+		} while (unresolvedConfigExt.size() < previousSize);
+	}
 
-    /**
-     * load the extension content of this configExtension into model classes,
-     * and insert them at target. A config extension can have only ONE extension
-     * content. This is because if the extension fails, we need to be able to
-     * not include the page and group contributions as part of the model. If
-     * extension content has XHTML content (ie: content attribute is defined) we
-     * load extension DOM into target page dom.
-     *
-     * note: the extension Element is returned to enable creating a child model
-     * element on failure.
-     *
-     * @param
-     * @return
-     */
-    private Element[] loadExtensionContent(Document dom,
-            IConfigurationElement configExtElement, String base) {
+	/**
+	 * load the extension content of this configExtension into model classes,
+	 * and insert them at target. A config extension can have only ONE extension
+	 * content. This is because if the extension fails, we need to be able to
+	 * not include the page and group contributions as part of the model. If
+	 * extension content has XHTML content (ie: content attribute is defined) we
+	 * load extension DOM into target page dom.
+	 *
+	 * note: the extension Element is returned to enable creating a child model
+	 * element on failure.
+	 *
+	 * @param
+	 * @return
+	 */
+	private Element[] loadExtensionContent(Document dom,
+			IConfigurationElement configExtElement, String base) {
 
-        // get the bundle from the extensions since they are defined in
-        // other plugins.
+		// get the bundle from the extensions since they are defined in
+		// other plugins.
 		List<Element> elements = new ArrayList<>();
-        Element[] extensionContents = ModelUtil.getElementsByTagName(dom,
-            IntroExtensionContent.TAG_CONTAINER_EXTENSION);
-        Element[] replacementContents =	 ModelUtil.getElementsByTagName(dom,
-        			IntroExtensionContent.TAG_CONTAINER_REPLACE);
+		Element[] extensionContents = ModelUtil.getElementsByTagName(dom,
+			IntroExtensionContent.TAG_CONTAINER_EXTENSION);
+		Element[] replacementContents =	 ModelUtil.getElementsByTagName(dom,
+					IntroExtensionContent.TAG_CONTAINER_REPLACE);
 
-        addUnfilteredExtensions(elements, extensionContents);
-        addUnfilteredExtensions(elements, replacementContents);
+		addUnfilteredExtensions(elements, extensionContents);
+		addUnfilteredExtensions(elements, replacementContents);
 
-        return elements.toArray(new Element[elements.size()]);
-    }
+		return elements.toArray(new Element[elements.size()]);
+	}
 
 	private void addUnfilteredExtensions(List<Element> elements, Element[] extensionContents) {
 		for (int i = 0; i < extensionContents.length; i++) {
-        	Element extensionContentElement = extensionContents[i];
-        	if (!UAContentFilter.isFiltered(UAElementFactory.newElement(extensionContentElement), IntroEvaluationContext.getContext())) {
-        	    elements.add(extensionContentElement);
-            }
-        }
+			Element extensionContentElement = extensionContents[i];
+			if (!UAContentFilter.isFiltered(UAElementFactory.newElement(extensionContentElement), IntroEvaluationContext.getContext())) {
+				elements.add(extensionContentElement);
+			}
+		}
 	}
 
 	private void processOneExtension(IConfigurationElement configExtElement, String base, Bundle bundle,
 			Element extensionContentElement) {
 		// Create the model class for extension content.
 		IntroExtensionContent extensionContent = new IntroExtensionContent(
-		    extensionContentElement, bundle, base, configExtElement);
+			extensionContentElement, bundle, base, configExtElement);
 		boolean success = false;
 		if (extensionContent.isXHTMLContent())
-		    success = loadXHTMLExtensionContent(extensionContent);
+			success = loadXHTMLExtensionContent(extensionContent);
 		else
-		    success = load3_0ExtensionContent(extensionContent);
+			success = load3_0ExtensionContent(extensionContent);
 
 		if (success) {
-		    if (extensionContentElement.hasAttribute("failed")) //$NON-NLS-1$
-		        extensionContentElement.removeAttribute("failed"); //$NON-NLS-1$
+			if (extensionContentElement.hasAttribute("failed")) //$NON-NLS-1$
+				extensionContentElement.removeAttribute("failed"); //$NON-NLS-1$
 		} else
-		    extensionContentElement.setAttribute("failed", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+			extensionContentElement.setAttribute("failed", "true"); //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
 
-    /**
-     * Insert the extension content into the target.
-     *
-     * @param extensionContent
-     * @return
-     */
-    private boolean loadXHTMLExtensionContent(
-            IntroExtensionContent extensionContent) {
-        String path = extensionContent.getPath();
-        // path must be pageId/anchorID in the case of anchors in XHTML pages.
-        String[] pathSegments = path.split("/"); //$NON-NLS-1$
-        if (pathSegments.length != 2)
-            // path does not have correct format.
-            return false;
-        AbstractIntroPage targetPage = (AbstractIntroPage) findChild(
-            pathSegments[0], ABSTRACT_PAGE);
-        if (targetPage == null)
-            // target could not be found. Signal failure.
-            return false;
+	/**
+	 * Insert the extension content into the target.
+	 *
+	 * @param extensionContent
+	 * @return
+	 */
+	private boolean loadXHTMLExtensionContent(
+			IntroExtensionContent extensionContent) {
+		String path = extensionContent.getPath();
+		// path must be pageId/anchorID in the case of anchors in XHTML pages.
+		String[] pathSegments = path.split("/"); //$NON-NLS-1$
+		if (pathSegments.length != 2)
+			// path does not have correct format.
+			return false;
+		AbstractIntroPage targetPage = (AbstractIntroPage) findChild(
+			pathSegments[0], ABSTRACT_PAGE);
+		if (targetPage == null)
+			// target could not be found. Signal failure.
+			return false;
 
-        // Insert all children of this extension before the target element. Anchors need
-        // to stay in DOM, even after all extensions have been resolved, to enable other
-        // plugins to contribute. Find the target node.
-        Document pageDom = targetPage.getDocument();
-        Element targetElement = targetPage.findDomChild(pathSegments[1], "*"); //$NON-NLS-1$
-        if (targetElement == null)
-            return false;
+		// Insert all children of this extension before the target element. Anchors need
+		// to stay in DOM, even after all extensions have been resolved, to enable other
+		// plugins to contribute. Find the target node.
+		Document pageDom = targetPage.getDocument();
+		Element targetElement = targetPage.findDomChild(pathSegments[1], "*"); //$NON-NLS-1$
+		if (targetElement == null)
+			return false;
 
-        // get extension content
-        Element[] elements = extensionContent.getElements();
-        // insert all children before anchor in page body.
-        for (int i = 0; i < elements.length; i++) {
-            Node targetNode = pageDom.importNode(elements[i], true);
-            // update the src attribute of this node, if defined by w3
-            // specs.
+		// get extension content
+		Element[] elements = extensionContent.getElements();
+		// insert all children before anchor in page body.
+		for (int i = 0; i < elements.length; i++) {
+			Node targetNode = pageDom.importNode(elements[i], true);
+			// update the src attribute of this node, if defined by w3
+			// specs.
 
-            ModelUtil.updateResourceAttributes((Element) targetNode,
-                extensionContent);
-            targetElement.getParentNode().insertBefore(targetNode, targetElement);
-        }
+			ModelUtil.updateResourceAttributes((Element) targetNode,
+				extensionContent);
+			targetElement.getParentNode().insertBefore(targetNode, targetElement);
+		}
 
-        if (extensionContent.getExtensionType() == IntroExtensionContent.TYPE_REPLACEMENT) {
-            targetElement.getParentNode().removeChild(targetElement);
-        }
+		if (extensionContent.getExtensionType() == IntroExtensionContent.TYPE_REPLACEMENT) {
+			targetElement.getParentNode().removeChild(targetElement);
+		}
 
-        // now handle style inheritance.
-        // Update the parent page styles. skip style if it is null;
-        String[] styles = extensionContent.getStyles();
-        if (styles != null) {
-            for (int i = 0; i < styles.length; i++)
-                ModelUtil.insertStyle(pageDom, styles[i]);
-        }
+		// now handle style inheritance.
+		// Update the parent page styles. skip style if it is null;
+		String[] styles = extensionContent.getStyles();
+		if (styles != null) {
+			for (int i = 0; i < styles.length; i++)
+				ModelUtil.insertStyle(pageDom, styles[i]);
+		}
 
-        return true;
+		return true;
 
-    }
+	}
 
 
 
-    /**
-     * Insert the extension content (3.0 format) into the target.
-     *
-     * @param extensionContent
-     * @return
-     */
-    private boolean load3_0ExtensionContent(IntroExtensionContent extensionContent) {
-        String path = extensionContent.getPath();
-        int type = extensionContent.getExtensionType();
-        AbstractIntroElement target = findTarget(this, path, extensionContent.getId());
-        if (target != null && target.isOfType(AbstractIntroElement.ANCHOR) == (type == IntroExtensionContent.TYPE_CONTRIBUTION)) {
-        	// insert all children of this extension before the target element/anchor.
-	        insertExtensionChildren(target, extensionContent, extensionContent.getBundle(), extensionContent.getBase());
-	        // anchors need to stay around to receive other contributions
-	        if (type == IntroExtensionContent.TYPE_REPLACEMENT) {
-	        	AbstractIntroContainer parent = (AbstractIntroContainer)target.getParent();
-	        	parent.removeChild(target);
-	        }
-	        handleExtensionStyleInheritence(target, extensionContent);
-	        return true;
-        }
-        // appropriate target could not be found. Signal failure.
-        return false;
-    }
+	/**
+	 * Insert the extension content (3.0 format) into the target.
+	 *
+	 * @param extensionContent
+	 * @return
+	 */
+	private boolean load3_0ExtensionContent(IntroExtensionContent extensionContent) {
+		String path = extensionContent.getPath();
+		int type = extensionContent.getExtensionType();
+		AbstractIntroElement target = findTarget(this, path, extensionContent.getId());
+		if (target != null && target.isOfType(AbstractIntroElement.ANCHOR) == (type == IntroExtensionContent.TYPE_CONTRIBUTION)) {
+			// insert all children of this extension before the target element/anchor.
+			insertExtensionChildren(target, extensionContent, extensionContent.getBundle(), extensionContent.getBase());
+			// anchors need to stay around to receive other contributions
+			if (type == IntroExtensionContent.TYPE_REPLACEMENT) {
+				AbstractIntroContainer parent = (AbstractIntroContainer)target.getParent();
+				parent.removeChild(target);
+			}
+			handleExtensionStyleInheritence(target, extensionContent);
+			return true;
+		}
+		// appropriate target could not be found. Signal failure.
+		return false;
+	}
 
-    private void insertExtensionChildren(AbstractIntroElement target,
-            IntroExtensionContent extensionContent, Bundle bundle, String base) {
-        AbstractIntroContainer parent = (AbstractIntroContainer)target.getParent();
-        // insert the elements of the extension before the target
-        String mixinStyle = getMixinStyle(extensionContent);
-        Element [] children = extensionContent.getChildren();
-        parent.insertElementsBefore(children, bundle, base, target, mixinStyle);
-    }
+	private void insertExtensionChildren(AbstractIntroElement target,
+			IntroExtensionContent extensionContent, Bundle bundle, String base) {
+		AbstractIntroContainer parent = (AbstractIntroContainer)target.getParent();
+		// insert the elements of the extension before the target
+		String mixinStyle = getMixinStyle(extensionContent);
+		Element [] children = extensionContent.getChildren();
+		parent.insertElementsBefore(children, bundle, base, target, mixinStyle);
+	}
 
-    private String getMixinStyle(IntroExtensionContent extensionContent) {
-    	String path = extensionContent.getPath();
-    	if (!path.endsWith("/@")) //$NON-NLS-1$
-    		return null;
-    	String pageId = path.substring(0, path.length()-2);
-    	IntroModelRoot modelRoot = getModelRoot();
-    	if (modelRoot==null)
-    		return null;
-    	IntroConfigurer configurer = modelRoot.getConfigurer();
-    	if (configurer==null)
-    		return null;
-    	String extensionId = extensionContent.getId();
-    	// if this is a replace, take the mixin style as what is being replaced
-    	if (extensionContent.getExtensionType() == IntroExtensionContent.TYPE_REPLACEMENT) {
-    		IPath ipath = new Path(extensionContent.getPath());
-    		String s2 = ipath.segment(1);
-    		if (s2 != null && s2.startsWith("@") && s2.length() > 1) { //$NON-NLS-1$
-    			extensionId = s2.substring(1);
-    		}
-    	}
-   		return configurer.getMixinStyle(pageId, extensionId);
-    }
+	private String getMixinStyle(IntroExtensionContent extensionContent) {
+		String path = extensionContent.getPath();
+		if (!path.endsWith("/@")) //$NON-NLS-1$
+			return null;
+		String pageId = path.substring(0, path.length()-2);
+		IntroModelRoot modelRoot = getModelRoot();
+		if (modelRoot==null)
+			return null;
+		IntroConfigurer configurer = modelRoot.getConfigurer();
+		if (configurer==null)
+			return null;
+		String extensionId = extensionContent.getId();
+		// if this is a replace, take the mixin style as what is being replaced
+		if (extensionContent.getExtensionType() == IntroExtensionContent.TYPE_REPLACEMENT) {
+			IPath ipath = new Path(extensionContent.getPath());
+			String s2 = ipath.segment(1);
+			if (s2 != null && s2.startsWith("@") && s2.length() > 1) { //$NON-NLS-1$
+				extensionId = s2.substring(1);
+			}
+		}
+		return configurer.getMixinStyle(pageId, extensionId);
+	}
 
 
-    /**
-     * Updates the inherited styles based on the style attribtes defined in the
-     * configExtension. If we are extending a shared group do nothing. For
-     * inherited alt-styles, we have to cache the bundle from which we inherited
-     * the styles to be able to access resources in that plugin.
-     *
-     * @param include
-     * @param target
-     */
-    private void handleExtensionStyleInheritence(AbstractIntroElement target,
-            IntroExtensionContent extension) {
+	/**
+	 * Updates the inherited styles based on the style attribtes defined in the
+	 * configExtension. If we are extending a shared group do nothing. For
+	 * inherited alt-styles, we have to cache the bundle from which we inherited
+	 * the styles to be able to access resources in that plugin.
+	 *
+	 * @param include
+	 * @param target
+	 */
+	private void handleExtensionStyleInheritence(AbstractIntroElement target,
+			IntroExtensionContent extension) {
 
-        AbstractIntroContainer targetContainer = (AbstractIntroContainer)target.getParent();
-        if (targetContainer.getType() == AbstractIntroElement.GROUP
-                && targetContainer.getParent().getType() == AbstractIntroElement.MODEL_ROOT)
-            // if we are extending a shared group, defined under a config, we
-            // can not include styles.
-            return;
+		AbstractIntroContainer targetContainer = (AbstractIntroContainer)target.getParent();
+		if (targetContainer.getType() == AbstractIntroElement.GROUP
+				&& targetContainer.getParent().getType() == AbstractIntroElement.MODEL_ROOT)
+			// if we are extending a shared group, defined under a config, we
+			// can not include styles.
+			return;
 
-        // Update the parent page styles. skip style if it is null;
-        String[] styles = extension.getStyles();
-        if (styles != null)
-            targetContainer.getParentPage().addStyles(styles);
+		// Update the parent page styles. skip style if it is null;
+		String[] styles = extension.getStyles();
+		if (styles != null)
+			targetContainer.getParentPage().addStyles(styles);
 
-        // for alt-style cache bundle for loading resources.
+		// for alt-style cache bundle for loading resources.
 		Map<String, Bundle> altStyles = extension.getAltStyles();
-        if (altStyles != null)
-            targetContainer.getParentPage().addAltStyles(altStyles);
-    }
+		if (altStyles != null)
+			targetContainer.getParentPage().addAltStyles(altStyles);
+	}
 
-    /**
-     * Sets the model state based on all the model classes.
-     */
-    private void setModelState(boolean loaded, boolean hasValidConfig) {
-        this.loaded = loaded;
-        this.hasValidConfig = hasValidConfig;
-    }
+	/**
+	 * Sets the model state based on all the model classes.
+	 */
+	private void setModelState(boolean loaded, boolean hasValidConfig) {
+		this.loaded = loaded;
+		this.hasValidConfig = hasValidConfig;
+	}
 
-    /**
-     * Returns true if there is a valid contribution to
-     * org.eclipse.ui.intro.config extension point, with a valid Presentation,
-     * and pages.
-     *
-     * @return Returns the hasValidConfig.
-     */
-    public boolean hasValidConfig() {
-        return hasValidConfig;
-    }
+	/**
+	 * Returns true if there is a valid contribution to
+	 * org.eclipse.ui.intro.config extension point, with a valid Presentation,
+	 * and pages.
+	 *
+	 * @return Returns the hasValidConfig.
+	 */
+	public boolean hasValidConfig() {
+		return hasValidConfig;
+	}
 
-    /**
-     * @return Returns the introPartPresentation.
-     */
-    public IntroPartPresentation getPresentation() {
-        return introPartPresentation;
-    }
+	/**
+	 * @return Returns the introPartPresentation.
+	 */
+	public IntroPartPresentation getPresentation() {
+		return introPartPresentation;
+	}
 
-    public IntroConfigurer getConfigurer() {
-    	return configurer;
-    }
+	public IntroConfigurer getConfigurer() {
+		return configurer;
+	}
 
-    /**
-     * @return Returns the home Page.
-     */
-    public AbstractIntroPage getHomePage() {
-        return homePage;
-    }
+	/**
+	 * @return Returns the home Page.
+	 */
+	public AbstractIntroPage getHomePage() {
+		return homePage;
+	}
 
-    /**
-     * @return Returns the root Page.
-     */
-    public IntroHomePage getRootPage() {
-        return rootPage;
-    }
+	/**
+	 * @return Returns the root Page.
+	 */
+	public IntroHomePage getRootPage() {
+		return rootPage;
+	}
 
-    /**
-     * @return Returns the standby Page. May return null if standby page is not
-     *         defined.
-     */
-    public AbstractIntroPage getStandbyPage() {
-        return standbyPage;
-    }
+	/**
+	 * @return Returns the standby Page. May return null if standby page is not
+	 *         defined.
+	 */
+	public AbstractIntroPage getStandbyPage() {
+		return standbyPage;
+	}
 
-    /**
-     * @return all pages *excluding* the Home Page. If all pages are needed,
-     *         call <code>(AbstractIntroPage[])
-     *         getChildrenOfType(IntroElement.ABSTRACT_PAGE);</code>
-     */
-    public IntroPage[] getPages() {
-        return (IntroPage[]) getChildrenOfType(AbstractIntroElement.PAGE);
-    }
+	/**
+	 * @return all pages *excluding* the Home Page. If all pages are needed,
+	 *         call <code>(AbstractIntroPage[])
+	 *         getChildrenOfType(IntroElement.ABSTRACT_PAGE);</code>
+	 */
+	public IntroPage[] getPages() {
+		return (IntroPage[]) getChildrenOfType(AbstractIntroElement.PAGE);
+	}
 
-    /**
-     * @return Returns the isdynamicIntro.
-     */
-    public boolean isDynamic() {
-        if ("swt".equals(getPresentation().getImplementationKind())) { //$NON-NLS-1$
-        	return rootPage != null && rootPage.isDynamic();
-        }
-        return true;
-    }
+	/**
+	 * @return Returns the isdynamicIntro.
+	 */
+	public boolean isDynamic() {
+		if ("swt".equals(getPresentation().getImplementationKind())) { //$NON-NLS-1$
+			return rootPage != null && rootPage.isDynamic();
+		}
+		return true;
+	}
 
-    /**
-     * @return Returns the currentPageId.
-     */
-    public String getCurrentPageId() {
-        return currentPageId;
-    }
+	/**
+	 * @return Returns the currentPageId.
+	 */
+	public String getCurrentPageId() {
+		return currentPageId;
+	}
 
 
-    /**
-     * Sets the current page. If the model does not have a page with the passed
-     * id, the message is logged, and the model retains its old current page.
-     *
-     * @param currentPageId
-     *            The currentPageId to set. *
-     * @param fireEvent
-     *            flag to indicate if event notification is needed.
-     * @return true if the model has a page with the passed id, false otherwise.
-     *         If the method fails, the current page remains the same as the
-     *         last state.
-     */
-    public boolean setCurrentPageId(String pageId, boolean fireEvent) {
-        if (pageId.equals(currentPageId))
-            // setting to the same page does nothing. Return true because we did
-            // not actually fail. just a no op.
-            return true;
+	/**
+	 * Sets the current page. If the model does not have a page with the passed
+	 * id, the message is logged, and the model retains its old current page.
+	 *
+	 * @param currentPageId
+	 *            The currentPageId to set. *
+	 * @param fireEvent
+	 *            flag to indicate if event notification is needed.
+	 * @return true if the model has a page with the passed id, false otherwise.
+	 *         If the method fails, the current page remains the same as the
+	 *         last state.
+	 */
+	public boolean setCurrentPageId(String pageId, boolean fireEvent) {
+		if (pageId.equals(currentPageId))
+			// setting to the same page does nothing. Return true because we did
+			// not actually fail. just a no op.
+			return true;
 
-        AbstractIntroPage page = (AbstractIntroPage) findChild(pageId,
-            ABSTRACT_PAGE);
-        if (page == null) {
-            // not a page. Test for root page.
-            if (!pageId.equals(rootPage.getId())) {
-                // not a page nor the home page.
-                Log
-                    .warning("Could not set current page to Intro page with id: " + pageId); //$NON-NLS-1$
-                return false;
-            }
-        }
+		AbstractIntroPage page = (AbstractIntroPage) findChild(pageId,
+			ABSTRACT_PAGE);
+		if (page == null) {
+			// not a page. Test for root page.
+			if (!pageId.equals(rootPage.getId())) {
+				// not a page nor the home page.
+				Log
+					.warning("Could not set current page to Intro page with id: " + pageId); //$NON-NLS-1$
+				return false;
+			}
+		}
 
-        currentPageId = pageId;
-        if (fireEvent)
-            firePropertyChange(CURRENT_PAGE_PROPERTY_ID);
-        return true;
-    }
+		currentPageId = pageId;
+		if (fireEvent)
+			firePropertyChange(CURRENT_PAGE_PROPERTY_ID);
+		return true;
+	}
 
-    public boolean setCurrentPageId(String pageId) {
-        return setCurrentPageId(pageId, true);
-    }
+	public boolean setCurrentPageId(String pageId) {
+		return setCurrentPageId(pageId, true);
+	}
 
-    public void addPropertyListener(IPropertyListener l) {
-        propChangeListeners.add(l);
-    }
+	public void addPropertyListener(IPropertyListener l) {
+		propChangeListeners.add(l);
+	}
 
-    /**
-     * Fires a property changed event. Made public because it can be used to
-     * trigger a UI refresh.
-     *
-     * @param propertyId
-     *            the id of the property that changed
-     */
-    public void firePropertyChange(final int propertyId) {
-        Object[] array = propChangeListeners.getListeners();
-        for (int i = 0; i < array.length; i++) {
-            final IPropertyListener l = (IPropertyListener) array[i];
-            SafeRunner.run(new SafeRunnable() {
+	/**
+	 * Fires a property changed event. Made public because it can be used to
+	 * trigger a UI refresh.
+	 *
+	 * @param propertyId
+	 *            the id of the property that changed
+	 */
+	public void firePropertyChange(final int propertyId) {
+		Object[] array = propChangeListeners.getListeners();
+		for (int i = 0; i < array.length; i++) {
+			final IPropertyListener l = (IPropertyListener) array[i];
+			SafeRunner.run(new SafeRunnable() {
 
-                @Override
+				@Override
 				public void run() {
-                    l.propertyChanged(this, propertyId);
-                }
+					l.propertyChanged(this, propertyId);
+				}
 
-                @Override
+				@Override
 				public void handleException(Throwable e) {
-                    super.handleException(e);
-                    // If an unexpected exception happens, remove it
-                    // to make sure the workbench keeps running.
-                    propChangeListeners.remove(l);
-                }
-            });
-        }
-    }
+					super.handleException(e);
+					// If an unexpected exception happens, remove it
+					// to make sure the workbench keeps running.
+					propChangeListeners.remove(l);
+				}
+			});
+		}
+	}
 
-    public void removePropertyListener(IPropertyListener l) {
-        propChangeListeners.remove(l);
-    }
+	public void removePropertyListener(IPropertyListener l) {
+		propChangeListeners.remove(l);
+	}
 
-    /**
-     * @return Returns the currentPage. return null if page is not found, or if
-     *         we are not in a dynamic intro mode.
-     */
-    public AbstractIntroPage getCurrentPage() {
-        if (!isDynamic())
-            return null;
-        AbstractIntroPage page = (AbstractIntroPage) findChild(currentPageId,
-            ABSTRACT_PAGE);
-        if (page != null)
-            return page;
-        // not a page. Test for root page.
-        if (currentPageId.equals(rootPage.getId()))
-            return rootPage;
-        // return null if page is not found.
-        return null;
-    }
+	/**
+	 * @return Returns the currentPage. return null if page is not found, or if
+	 *         we are not in a dynamic intro mode.
+	 */
+	public AbstractIntroPage getCurrentPage() {
+		if (!isDynamic())
+			return null;
+		AbstractIntroPage page = (AbstractIntroPage) findChild(currentPageId,
+			ABSTRACT_PAGE);
+		if (page != null)
+			return page;
+		// not a page. Test for root page.
+		if (currentPageId.equals(rootPage.getId()))
+			return rootPage;
+		// return null if page is not found.
+		return null;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.MODEL_ROOT;
-    }
+		return AbstractIntroElement.MODEL_ROOT;
+	}
 
 
-    /**
-     * Assumes that the passed config element has a "content" attribute. Reads
-     * it and loads a DOM based on that attribute value. It does not explicitly
-     * resolve the resource because this method only loads the introContent and
-     * the configExt content files. ie: in plugin.xml. <br>
-     * This method also sets the base attribute on the root element in the DOM
-     * to enable resolving all resources relative to this DOM.
-     *
-     * @return
-     */
-    protected Document loadDOM(IConfigurationElement cfgElement) {
-        String content = cfgElement.getAttribute(ATT_CONTENT);
+	/**
+	 * Assumes that the passed config element has a "content" attribute. Reads
+	 * it and loads a DOM based on that attribute value. It does not explicitly
+	 * resolve the resource because this method only loads the introContent and
+	 * the configExt content files. ie: in plugin.xml. <br>
+	 * This method also sets the base attribute on the root element in the DOM
+	 * to enable resolving all resources relative to this DOM.
+	 *
+	 * @return
+	 */
+	protected Document loadDOM(IConfigurationElement cfgElement) {
+		String content = cfgElement.getAttribute(ATT_CONTENT);
 
-        // To support jarring, extract parent folder of where the intro content
-        // file is. It is expected that all intro content is in that one parent
-        // folder. This works for both content files and configExtension content
-        // files.
-        Bundle domBundle = BundleUtil
-            .getBundleFromConfigurationElement(cfgElement);
-        ModelUtil.ensureFileURLsExist(domBundle, content);
+		// To support jarring, extract parent folder of where the intro content
+		// file is. It is expected that all intro content is in that one parent
+		// folder. This works for both content files and configExtension content
+		// files.
+		Bundle domBundle = BundleUtil
+			.getBundleFromConfigurationElement(cfgElement);
+		ModelUtil.ensureFileURLsExist(domBundle, content);
 
-        // Resolve.
-        content = BundleUtil.getResourceLocation(content, cfgElement);
-        Document document = new IntroContentParser(content).getDocument();
+		// Resolve.
+		content = BundleUtil.getResourceLocation(content, cfgElement);
+		Document document = new IntroContentParser(content).getDocument();
 
-        return document;
-    }
+		return document;
+	}
 
 
-    private String getBase(IConfigurationElement configElement) {
-        String content = configElement.getAttribute(ATT_CONTENT);
-        return ModelUtil.getParentFolderToString(content);
-    }
+	private String getBase(IConfigurationElement configElement) {
+		String content = configElement.getAttribute(ATT_CONTENT);
+		return ModelUtil.getParentFolderToString(content);
+	}
 
-    public String resolveVariables(String text) {
-    	if (text==null) return null;
-    	if (text.indexOf('$')== -1)
-    		return text;
-    	// resolve
-    	boolean inVariable=false;
-    	StringBuilder buf = new StringBuilder();
-    	int vindex=0;
-    	for (int i=0; i<text.length(); i++) {
-    		char c = text.charAt(i);
-    		if (c=='$') {
-    			if (!inVariable) {
-    				inVariable=true;
-    				vindex=i+1;
-    				continue;
-    			}
- 				inVariable=false;
-   				String variable=text.substring(vindex, i);
-   				String value = getVariableValue(variable);
-   				if (value==null)
-   					value = "$"+variable+"$"; //$NON-NLS-1$ //$NON-NLS-2$
-   				buf.append(value);
-   				continue;
-    		}
-    		else if (!inVariable)
-    			buf.append(c);
-    	}
-    	return buf.toString();
-    }
+	public String resolveVariables(String text) {
+		if (text==null) return null;
+		if (text.indexOf('$')== -1)
+			return text;
+		// resolve
+		boolean inVariable=false;
+		StringBuilder buf = new StringBuilder();
+		int vindex=0;
+		for (int i=0; i<text.length(); i++) {
+			char c = text.charAt(i);
+			if (c=='$') {
+				if (!inVariable) {
+					inVariable=true;
+					vindex=i+1;
+					continue;
+				}
+				inVariable=false;
+				String variable=text.substring(vindex, i);
+				String value = getVariableValue(variable);
+				if (value==null)
+					value = "$"+variable+"$"; //$NON-NLS-1$ //$NON-NLS-2$
+				buf.append(value);
+				continue;
+			}
+			else if (!inVariable)
+				buf.append(c);
+		}
+		return buf.toString();
+	}
 
-    private String getVariableValue(String variable) {
-     	if (variable.equals(VAR_THEME)) {
-    		if (theme!=null)
-    			return theme.getPath();
-    	}
-     	if (variable.equals(FontSelection.VAR_FONT_STYLE)) {
-     		return FontSelection.getFontStyle();
-    	}
-     	if (variable.equals(VAR_DIRECTION)) {
-    		if (ProductPreferences.isRTL()) {
-    			return "rtl"; //$NON-NLS-1$
-    		} else {
-    			return "ltr"; //$NON-NLS-1$
-    		}
-    	}
+	private String getVariableValue(String variable) {
+	 	if (variable.equals(VAR_THEME)) {
+			if (theme!=null)
+				return theme.getPath();
+		}
+	 	if (variable.equals(FontSelection.VAR_FONT_STYLE)) {
+	 		return FontSelection.getFontStyle();
+		}
+	 	if (variable.equals(VAR_DIRECTION)) {
+			if (ProductPreferences.isRTL()) {
+				return "rtl"; //$NON-NLS-1$
+			} else {
+				return "ltr"; //$NON-NLS-1$
+			}
+		}
 
-    	if (configurer!=null)
-    		return configurer.getVariable(variable);
-    	return null;
-    }
+		if (configurer!=null)
+			return configurer.getVariable(variable);
+		return null;
+	}
 
-    public String resolvePath(String extensionId, String path) {
-    	if (configurer==null) return null;
-    	return configurer.resolvePath(extensionId, path);
-    }
+	public String resolvePath(String extensionId, String path) {
+		if (configurer==null) return null;
+		return configurer.resolvePath(extensionId, path);
+	}
 
 
 	public IntroTheme getTheme() {
@@ -971,11 +971,11 @@
 
 	private String getProcessPreference(String key, String pid) {
 		String result = Platform.getPreferencesService().getString
-		      (IntroPlugin.PLUGIN_ID,  pid + '_' + key, "", null); //$NON-NLS-1$
-    	if (result.length() == 0) {
-    		result = Platform.getPreferencesService().getString
-		        (IntroPlugin.PLUGIN_ID,  key, "", null); //$NON-NLS-1$
-    	}
-    	return result;
+			  (IntroPlugin.PLUGIN_ID,  pid + '_' + key, "", null); //$NON-NLS-1$
+		if (result.length() == 0) {
+			result = Platform.getPreferencesService().getString
+				(IntroPlugin.PLUGIN_ID,  key, "", null); //$NON-NLS-1$
+		}
+		return result;
 	}
 }
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPage.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPage.java
index a8a3fe2..92b72c8 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPage.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPage.java
@@ -22,16 +22,16 @@
  */
 public class IntroPage extends AbstractIntroPage {
 
-    /**
-     * An Intro Part page.
-     */
-    IntroPage(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-    }
+	/**
+	 * An Intro Part page.
+	 */
+	IntroPage(Element element, Bundle bundle, String base) {
+		super(element, bundle, base);
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.PAGE;
-    }
+		return AbstractIntroElement.PAGE;
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPageTitle.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPageTitle.java
index 1ebf704..5ed969e 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPageTitle.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPageTitle.java
@@ -22,22 +22,22 @@
  */
 public class IntroPageTitle extends IntroText {
 
-    protected static final String TAG_TITLE = "title"; //$NON-NLS-1$
+	protected static final String TAG_TITLE = "title"; //$NON-NLS-1$
 
-    IntroPageTitle(Element element, Bundle bundle) {
-        super(element, bundle);
-    }
+	IntroPageTitle(Element element, Bundle bundle) {
+		super(element, bundle);
+	}
 
-    /**
-     * @return Returns the Title text.
-     */
-    public String getTitle() {
-        return getText();
-    }
+	/**
+	 * @return Returns the Title text.
+	 */
+	public String getTitle() {
+		return getText();
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.PAGE_TITLE;
-    }
+		return AbstractIntroElement.PAGE_TITLE;
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPartPresentation.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPartPresentation.java
index 1aa8d17..41666fd 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPartPresentation.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPartPresentation.java
@@ -400,7 +400,7 @@
 		try {
 			if (implementationType.equals(BROWSER_IMPL_KIND))
 				implementation = //null;
-			      new BrowserIntroPartImplementation();
+				  new BrowserIntroPartImplementation();
 			else if (implementationType.equals(FORMS_IMPL_KIND))
 				implementation = new FormIntroPartImplementation();
 			else
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSearchParticipant.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSearchParticipant.java
index 0341314..824b7c9 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSearchParticipant.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSearchParticipant.java
@@ -164,13 +164,13 @@
 			TitleAndSummary titleSummary = new TitleAndSummary();
 			addChildren(children, buf, doc, titleSummary);
 			String contents = buf.toString();
-            if (titleSummary.title != null) {
-			     addTitle(titleSummary.title, doc);
-            }
-            if (titleSummary.summary != null) {
-            	doc.setSummary(titleSummary.summary);
-            }
-            doc.addContents(contents);
+			if (titleSummary.title != null) {
+				 addTitle(titleSummary.title, doc);
+			}
+			if (titleSummary.summary != null) {
+				doc.setSummary(titleSummary.summary);
+			}
+			doc.addContents(contents);
 			return Status.OK_STATUS;
 		}
 		// delegate to the help system
@@ -203,12 +203,12 @@
 					titleSummary.summary = childIntroText.getText();
 				}
 			}
-            if (child instanceof AbstractIntroContainer) {
+			if (child instanceof AbstractIntroContainer) {
 				AbstractIntroContainer container = (AbstractIntroContainer) child;
 				if (!"navigation-links".equals(container.getId())) { //$NON-NLS-1$
-				    AbstractIntroElement[] cc = container.getChildren();
-				    addChildren(cc, buf, doc, titleSummary);
-                }
+					AbstractIntroElement[] cc = container.getChildren();
+					addChildren(cc, buf, doc, titleSummary);
+				}
 			}
 		}
 	}
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSeparator.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSeparator.java
index cfb7b3a..c767f0f 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSeparator.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSeparator.java
@@ -21,14 +21,14 @@
  * A horizontal ruler element.
  */
 public class IntroSeparator extends AbstractBaseIntroElement {
-    protected static final String TAG_HR = "hr"; //$NON-NLS-1$
+	protected static final String TAG_HR = "hr"; //$NON-NLS-1$
 
-    IntroSeparator(Element element, Bundle bundle, String base) {
-        super(element, bundle);
-    }
+	IntroSeparator(Element element, Bundle bundle, String base) {
+		super(element, bundle);
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.HR;
-    }
+		return AbstractIntroElement.HR;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroStandbyContentPart.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroStandbyContentPart.java
index 1efa3b5..b6b0861 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroStandbyContentPart.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroStandbyContentPart.java
@@ -23,44 +23,44 @@
  */
 public class IntroStandbyContentPart extends AbstractIntroIdElement {
 
-    public static final String TAG_STANDBY_CONTENT_PART = "standbyContentPart"; //$NON-NLS-1$
+	public static final String TAG_STANDBY_CONTENT_PART = "standbyContentPart"; //$NON-NLS-1$
 
-    private static final String ATT_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
-    private static final String ATT_CLASS = "class"; //$NON-NLS-1$
+	private static final String ATT_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
+	private static final String ATT_CLASS = "class"; //$NON-NLS-1$
 
-    private String pluginId;
-    private String className;
+	private String pluginId;
+	private String className;
 
-    /**
-     * Note: model class with public constructor because it is not instantiated
-     * by the model root.
-     *
-     * @param element
-     */
-    public IntroStandbyContentPart(IConfigurationElement element) {
-        super(element);
-        pluginId = element.getAttribute(ATT_PLUGIN_ID);
-        className = element.getAttribute(ATT_CLASS);
-    }
+	/**
+	 * Note: model class with public constructor because it is not instantiated
+	 * by the model root.
+	 *
+	 * @param element
+	 */
+	public IntroStandbyContentPart(IConfigurationElement element) {
+		super(element);
+		pluginId = element.getAttribute(ATT_PLUGIN_ID);
+		className = element.getAttribute(ATT_CLASS);
+	}
 
 
-    /**
-     * @return Returns the className.
-     */
-    public String getClassName() {
-        return className;
-    }
+	/**
+	 * @return Returns the className.
+	 */
+	public String getClassName() {
+		return className;
+	}
 
-    /**
-     * @return Returns the pluginId.
-     */
-    public String getPluginId() {
-        return pluginId;
-    }
+	/**
+	 * @return Returns the pluginId.
+	 */
+	public String getPluginId() {
+		return pluginId;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        // this model class does not need a type so far.
-        return 0;
-    }
+		// this model class does not need a type so far.
+		return 0;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroText.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroText.java
index 349568a..c3b68af 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroText.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroText.java
@@ -23,59 +23,59 @@
  */
 public class IntroText extends AbstractBaseIntroElement {
 
-    protected static final String TAG_TEXT = "text"; //$NON-NLS-1$
+	protected static final String TAG_TEXT = "text"; //$NON-NLS-1$
 
-    private String text;
-    /**
-     * boolean flag which is true if the text element contains CData content.
-     * which means we would have to model it as formatted text.
-     */
-    private boolean isFormatted = false;
+	private String text;
+	/**
+	 * boolean flag which is true if the text element contains CData content.
+	 * which means we would have to model it as formatted text.
+	 */
+	private boolean isFormatted = false;
 
-    IntroText(Element element, Bundle bundle) {
-        super(element, bundle);
-        Node textNode = element.getFirstChild();
-        if (textNode == null)
-            return;
-        if (textNode.getNodeType() == Node.TEXT_NODE
-                || textNode.getNodeType() == Node.CDATA_SECTION_NODE) {
-            // we may have a text or a CDATA nodes.
-            text = textNode.getNodeValue();
-            isFormatted = checkIfFormatted();
-        }
-    }
+	IntroText(Element element, Bundle bundle) {
+		super(element, bundle);
+		Node textNode = element.getFirstChild();
+		if (textNode == null)
+			return;
+		if (textNode.getNodeType() == Node.TEXT_NODE
+				|| textNode.getNodeType() == Node.CDATA_SECTION_NODE) {
+			// we may have a text or a CDATA nodes.
+			text = textNode.getNodeValue();
+			isFormatted = checkIfFormatted();
+		}
+	}
 
-    /**
-     * @return Returns the text description.
-     */
-    public String getText() {
-    	IntroModelRoot root = getModelRoot();
-    	if (root!=null)
-    		return root.resolveVariables(text);
-        return text;
-    }
+	/**
+	 * @return Returns the text description.
+	 */
+	public String getText() {
+		IntroModelRoot root = getModelRoot();
+		if (root!=null)
+			return root.resolveVariables(text);
+		return text;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        return AbstractIntroElement.TEXT;
-    }
+		return AbstractIntroElement.TEXT;
+	}
 
-    /**
-     * @return true if the content of this text element has any " <" which makes
-     *         it formatted.
-     */
-    public boolean checkIfFormatted() {
-        if (text == null)
-            return false;
-        int i = text.indexOf("<"); //$NON-NLS-1$
-        return i == -1 ? false : true;
-    }
+	/**
+	 * @return true if the content of this text element has any " <" which makes
+	 *         it formatted.
+	 */
+	public boolean checkIfFormatted() {
+		if (text == null)
+			return false;
+		int i = text.indexOf("<"); //$NON-NLS-1$
+		return i == -1 ? false : true;
+	}
 
 
-    /**
-     * @return Returns the isFormatted.
-     */
-    public boolean isFormatted() {
-        return isFormatted;
-    }
+	/**
+	 * @return Returns the isFormatted.
+	 */
+	public boolean isFormatted() {
+		return isFormatted;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroURLAction.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroURLAction.java
index 3591928..ba69b0d 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroURLAction.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroURLAction.java
@@ -23,42 +23,42 @@
  */
 public class IntroURLAction extends AbstractIntroElement {
 
-    public static final String TAG_ACTION = "action"; //$NON-NLS-1$
+	public static final String TAG_ACTION = "action"; //$NON-NLS-1$
 
-    private static final String ATT_NAME = "name"; //$NON-NLS-1$
-    private static final String ATT_REPLACES = "replaces"; //$NON-NLS-1$
+	private static final String ATT_NAME = "name"; //$NON-NLS-1$
+	private static final String ATT_REPLACES = "replaces"; //$NON-NLS-1$
 
-    private String name;
-    private String replaces;
+	private String name;
+	private String replaces;
 
 
-    /**
-     * Note: model class with public constructor because it is not instantiated
-     * by the model root.
-     */
-    public IntroURLAction(IConfigurationElement element) {
-        super(element);
-        name = element.getAttribute(ATT_NAME);
-        replaces = element.getAttribute(ATT_REPLACES);
-    }
+	/**
+	 * Note: model class with public constructor because it is not instantiated
+	 * by the model root.
+	 */
+	public IntroURLAction(IConfigurationElement element) {
+		super(element);
+		name = element.getAttribute(ATT_NAME);
+		replaces = element.getAttribute(ATT_REPLACES);
+	}
 
-    /**
-     * @return Returns the className.
-     */
-    public String getName() {
-        return name;
-    }
+	/**
+	 * @return Returns the className.
+	 */
+	public String getName() {
+		return name;
+	}
 
-    /**
-     * @return Returns the pluginId.
-     */
-    public String getReplaceValue() {
-        return replaces;
-    }
+	/**
+	 * @return Returns the pluginId.
+	 */
+	public String getReplaceValue() {
+		return replaces;
+	}
 
-    @Override
+	@Override
 	public int getType() {
-        // this model class does not need a type so far.
-        return 0;
-    }
+		// this model class does not need a type so far.
+		return 0;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/BaseExtensionPointManager.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/BaseExtensionPointManager.java
index b4bf440..4a8b82e 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/BaseExtensionPointManager.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/BaseExtensionPointManager.java
@@ -32,244 +32,244 @@
  */
 public class BaseExtensionPointManager {
 
-    // the config extension id
-    protected static final String CONFIG = "org.eclipse.ui.intro.config"; //$NON-NLS-1$
+	// the config extension id
+	protected static final String CONFIG = "org.eclipse.ui.intro.config"; //$NON-NLS-1$
 
-    // the configExtension extension id
-    protected static final String CONFIG_EXTENSION = "org.eclipse.ui.intro.configExtension"; //$NON-NLS-1$
+	// the configExtension extension id
+	protected static final String CONFIG_EXTENSION = "org.eclipse.ui.intro.configExtension"; //$NON-NLS-1$
 
-    // the attribute in the config element to specify the intro part id.
-    protected static final String ATT_CONFIG_INTRO_ID = "introId"; //$NON-NLS-1$
+	// the attribute in the config element to specify the intro part id.
+	protected static final String ATT_CONFIG_INTRO_ID = "introId"; //$NON-NLS-1$
 
-    // the attribute in the config element to specify the intro part id.
-    protected static final String ATT_CONFIG_EXTENSION_CONFIG_ID = "configId"; //$NON-NLS-1$
+	// the attribute in the config element to specify the intro part id.
+	protected static final String ATT_CONFIG_EXTENSION_CONFIG_ID = "configId"; //$NON-NLS-1$
 
-    // the id attribute in any intro element.
-    protected static final String ATT_ID = AbstractIntroIdElement.ATT_ID;
+	// the id attribute in any intro element.
+	protected static final String ATT_ID = AbstractIntroIdElement.ATT_ID;
 
 
 	protected Map<String, IntroModelRoot> introModels = new HashMap<>();
-    protected IExtensionRegistry registry;
-    protected SharedConfigExtensionsManager sharedConfigExtensionsManager;
-    private String extensionFilter;
+	protected IExtensionRegistry registry;
+	protected SharedConfigExtensionsManager sharedConfigExtensionsManager;
+	private String extensionFilter;
 
-    /*
-     * Prevent creation.
-     */
-    protected BaseExtensionPointManager() {
-        registry = Platform.getExtensionRegistry();
-    }
+	/*
+	 * Prevent creation.
+	 */
+	protected BaseExtensionPointManager() {
+		registry = Platform.getExtensionRegistry();
+	}
 
-    protected IntroModelRoot loadModel(String attributeName,
-            String attributeValue) {
+	protected IntroModelRoot loadModel(String attributeName,
+			String attributeValue) {
 
-        long start = 0;
-        if (Log.logPerformance)
-            start = System.currentTimeMillis();
+		long start = 0;
+		if (Log.logPerformance)
+			start = System.currentTimeMillis();
 
-        // get all Config extension point contributions. There could be more
-        // than one config contribution, but there should only be one that maps
-        // to the cached intro part id.
-        IConfigurationElement introConfig = getIntroConfig(attributeName,
-            attributeValue);
+		// get all Config extension point contributions. There could be more
+		// than one config contribution, but there should only be one that maps
+		// to the cached intro part id.
+		IConfigurationElement introConfig = getIntroConfig(attributeName,
+			attributeValue);
 
-        // load model with the config elements of the correct contribution. If
-        // there are no valid contribution, model stays null.
-        if (introConfig != null) {
-            // we found matching config. Get all configExtension contributed to
-            // this config and pass to model. Load generic config extensions as
-            // well.
-            String configId = introConfig.getAttribute(ATT_ID);
-            IConfigurationElement[] introConfigExtensions = null;
-            if (configId == null)
-                // if id of config is null, pass empty array.
-                introConfigExtensions = new IConfigurationElement[0];
-            else
-                introConfigExtensions = getIntroConfigExtensions(
-                    ATT_CONFIG_EXTENSION_CONFIG_ID, configId);
+		// load model with the config elements of the correct contribution. If
+		// there are no valid contribution, model stays null.
+		if (introConfig != null) {
+			// we found matching config. Get all configExtension contributed to
+			// this config and pass to model. Load generic config extensions as
+			// well.
+			String configId = introConfig.getAttribute(ATT_ID);
+			IConfigurationElement[] introConfigExtensions = null;
+			if (configId == null)
+				// if id of config is null, pass empty array.
+				introConfigExtensions = new IConfigurationElement[0];
+			else
+				introConfigExtensions = getIntroConfigExtensions(
+					ATT_CONFIG_EXTENSION_CONFIG_ID, configId);
 
-            if (Log.logPerformance)
-                Util.logPerformanceTime(
-                    "BEGIN:  quering registry for configs took: ", start); //$NON-NLS-1$
+			if (Log.logPerformance)
+				Util.logPerformanceTime(
+					"BEGIN:  quering registry for configs took: ", start); //$NON-NLS-1$
 
 
-            IntroModelRoot model = new IntroModelRoot(introConfig,
-                introConfigExtensions);
-            model.loadModel();
-            // add the current model to the hash table of models, only if it is
-            // not null. They key is the model id, which is the id of the
-            // config that defined this model.
-            addCachedModel(model.getId(), model);
+			IntroModelRoot model = new IntroModelRoot(introConfig,
+				introConfigExtensions);
+			model.loadModel();
+			// add the current model to the hash table of models, only if it is
+			// not null. They key is the model id, which is the id of the
+			// config that defined this model.
+			addCachedModel(model.getId(), model);
 
-            // now load all generic config extension. ie: standbyPart and
-            // command contributions.
-            loadSharedConfigExtensions();
+			// now load all generic config extension. ie: standbyPart and
+			// command contributions.
+			loadSharedConfigExtensions();
 
-            if (Log.logPerformance)
-                Util
-                    .logPerformanceTime(
-                        "loading Intro Model (quering registry/creating & resolving model) took: ", //$NON-NLS-1$
-                        start);
+			if (Log.logPerformance)
+				Util
+					.logPerformanceTime(
+						"loading Intro Model (quering registry/creating & resolving model) took: ", //$NON-NLS-1$
+						start);
 
-            return model;
-        }
-        return null;
-    }
+			return model;
+		}
+		return null;
+	}
 
-    /**
-     * Go through all the config elements and only return the correct config
-     * that maps to the correct intro part id. If there is more than one config
-     * thats maps to the same intro part id, log the fact, and return the first
-     * one. If there are non, return null.
-     *
-     * @param configElements
-     * @return
-     */
-    protected IConfigurationElement getIntroConfig(String attrributeName,
-            String attributeValue) {
+	/**
+	 * Go through all the config elements and only return the correct config
+	 * that maps to the correct intro part id. If there is more than one config
+	 * thats maps to the same intro part id, log the fact, and return the first
+	 * one. If there are non, return null.
+	 *
+	 * @param configElements
+	 * @return
+	 */
+	protected IConfigurationElement getIntroConfig(String attrributeName,
+			String attributeValue) {
 
-        IConfigurationElement[] configElements = registry
-            .getConfigurationElementsFor(CONFIG);
+		IConfigurationElement[] configElements = registry
+			.getConfigurationElementsFor(CONFIG);
 
-        IConfigurationElement config = getConfigurationFromAttribute(
-            configElements, attrributeName, attributeValue);
+		IConfigurationElement config = getConfigurationFromAttribute(
+			configElements, attrributeName, attributeValue);
 
-        if (config == null)
-            // if there is no valid config, log the fact.
-            Log.warning("No Intro configuration found with " + attrributeName //$NON-NLS-1$
-                    + " of value = " + attributeValue); //$NON-NLS-1$
+		if (config == null)
+			// if there is no valid config, log the fact.
+			Log.warning("No Intro configuration found with " + attrributeName //$NON-NLS-1$
+					+ " of value = " + attributeValue); //$NON-NLS-1$
 
-        return config;
-    }
+		return config;
+	}
 
-    /**
-     * Go through all the configExtension elements and return an array of all
-     * extensions that match the attribute and its value. If there are non,
-     * return empty array. This also loads all standby contributions.
-     */
-    protected IConfigurationElement[] getIntroConfigExtensions(
-            String attrributeName, String attributeValue) {
+	/**
+	 * Go through all the configExtension elements and return an array of all
+	 * extensions that match the attribute and its value. If there are non,
+	 * return empty array. This also loads all standby contributions.
+	 */
+	protected IConfigurationElement[] getIntroConfigExtensions(
+			String attrributeName, String attributeValue) {
 
-        IConfigurationElement[] configExtensionElements = registry
-            .getConfigurationElementsFor(CONFIG_EXTENSION);
+		IConfigurationElement[] configExtensionElements = registry
+			.getConfigurationElementsFor(CONFIG_EXTENSION);
 
-        /*
-         * Extension filter is used for performance testing to only load contributions
-         * from a specific plug-in (fixed data set).
-         */
-        if (extensionFilter != null) {
+		/*
+		 * Extension filter is used for performance testing to only load contributions
+		 * from a specific plug-in (fixed data set).
+		 */
+		if (extensionFilter != null) {
 			List<IConfigurationElement> filtered = new ArrayList<>();
-        	for (int i=0;i<configExtensionElements.length;++i) {
-        		if (extensionFilter.equals(configExtensionElements[i].getContributor().getName())) {
-        			filtered.add(configExtensionElements[i]);
-        		}
-        	}
-        	configExtensionElements = filtered.toArray(new IConfigurationElement[filtered.size()]);
-        }
+			for (int i=0;i<configExtensionElements.length;++i) {
+				if (extensionFilter.equals(configExtensionElements[i].getContributor().getName())) {
+					filtered.add(configExtensionElements[i]);
+				}
+			}
+			configExtensionElements = filtered.toArray(new IConfigurationElement[filtered.size()]);
+		}
 
-        IConfigurationElement[] configExtensions = getConfigurationsFromAttribute(
-            configExtensionElements, attrributeName, attributeValue);
+		IConfigurationElement[] configExtensions = getConfigurationsFromAttribute(
+			configExtensionElements, attrributeName, attributeValue);
 
-        return configExtensions;
-    }
+		return configExtensions;
+	}
 
-    /**
-     * Add a model to the cache. This method is private because only this
-     * manager class knows how to load an intro model.
-     *
-     * @param modelId
-     * @param model
-     */
-    protected void addCachedModel(String modelId, IntroModelRoot model) {
-        introModels.put(modelId, model);
-    }
+	/**
+	 * Add a model to the cache. This method is private because only this
+	 * manager class knows how to load an intro model.
+	 *
+	 * @param modelId
+	 * @param model
+	 */
+	protected void addCachedModel(String modelId, IntroModelRoot model) {
+		introModels.put(modelId, model);
+	}
 
-    /**
-     * Gets the given model from the cache.
-     *
-     * @param modelId
-     */
-    protected IntroModelRoot getCachedModel(String configId) {
-        return introModels.get(configId);
-    }
+	/**
+	 * Gets the given model from the cache.
+	 *
+	 * @param modelId
+	 */
+	protected IntroModelRoot getCachedModel(String configId) {
+		return introModels.get(configId);
+	}
 
-    /**
-     * Go through all the config elements and only return the correct config
-     * with an attribute of the given value. If there is more than one
-     * configuration element that maps to the attribute value log the fact, and
-     * return the first one. If there are non, return null.
-     *
-     * @param configElements
-     * @return
-     */
-    protected IConfigurationElement getConfigurationFromAttribute(
-            IConfigurationElement[] configElements, String attributeName,
-            String attributeValue) {
+	/**
+	 * Go through all the config elements and only return the correct config
+	 * with an attribute of the given value. If there is more than one
+	 * configuration element that maps to the attribute value log the fact, and
+	 * return the first one. If there are non, return null.
+	 *
+	 * @param configElements
+	 * @return
+	 */
+	protected IConfigurationElement getConfigurationFromAttribute(
+			IConfigurationElement[] configElements, String attributeName,
+			String attributeValue) {
 
-        // find all configs with given attribute and attibute value.
-        IConfigurationElement[] filteredConfigElements = getConfigurationsFromAttribute(
-            configElements, attributeName, attributeValue);
-        // now validate that we got only one.
-        IConfigurationElement config = ModelLoaderUtil
-            .validateSingleContribution(filteredConfigElements, attributeName);
-        return config;
-    }
+		// find all configs with given attribute and attibute value.
+		IConfigurationElement[] filteredConfigElements = getConfigurationsFromAttribute(
+			configElements, attributeName, attributeValue);
+		// now validate that we got only one.
+		IConfigurationElement config = ModelLoaderUtil
+			.validateSingleContribution(filteredConfigElements, attributeName);
+		return config;
+	}
 
-    /**
-     * Go through all the config elements and return an array of matching
-     * configs with an attribute of the given value. If there are non, return
-     * empty array.
-     */
-    protected IConfigurationElement[] getConfigurationsFromAttribute(
-            IConfigurationElement[] configElements, String attributeName,
-            String attributeValue) {
+	/**
+	 * Go through all the config elements and return an array of matching
+	 * configs with an attribute of the given value. If there are non, return
+	 * empty array.
+	 */
+	protected IConfigurationElement[] getConfigurationsFromAttribute(
+			IConfigurationElement[] configElements, String attributeName,
+			String attributeValue) {
 
-        // find all configs with given attribute and attibute value.
+		// find all configs with given attribute and attibute value.
 		Vector<IConfigurationElement> elements = new Vector<>();
-        for (int i = 0; i < configElements.length; i++) {
-            String currentAttributeValue = configElements[i]
-                .getAttribute(attributeName);
-            if (currentAttributeValue != null
-                    && currentAttributeValue.equals(attributeValue))
-                elements.add(configElements[i]);
-        }
+		for (int i = 0; i < configElements.length; i++) {
+			String currentAttributeValue = configElements[i]
+				.getAttribute(attributeName);
+			if (currentAttributeValue != null
+					&& currentAttributeValue.equals(attributeValue))
+				elements.add(configElements[i]);
+		}
 
-        // now return array.
-        IConfigurationElement[] filteredConfigElements = new IConfigurationElement[elements
-            .size()];
-        elements.copyInto(filteredConfigElements);
+		// now return array.
+		IConfigurationElement[] filteredConfigElements = new IConfigurationElement[elements
+			.size()];
+		elements.copyInto(filteredConfigElements);
 
-        return filteredConfigElements;
-    }
+		return filteredConfigElements;
+	}
 
-    /**
-     * Loads all shared config extennsions (ie: standby parts and commands).
-     */
-    protected void loadSharedConfigExtensions() {
-        sharedConfigExtensionsManager = new SharedConfigExtensionsManager(
-            registry);
-        sharedConfigExtensionsManager.loadSharedConfigExtensions();
-    }
+	/**
+	 * Loads all shared config extennsions (ie: standby parts and commands).
+	 */
+	protected void loadSharedConfigExtensions() {
+		sharedConfigExtensionsManager = new SharedConfigExtensionsManager(
+			registry);
+		sharedConfigExtensionsManager.loadSharedConfigExtensions();
+	}
 
 
-    /**
-     * @return Returns the sharedConfigExtensionsManager.
-     */
-    public SharedConfigExtensionsManager getSharedConfigExtensionsManager() {
-        return sharedConfigExtensionsManager;
-    }
+	/**
+	 * @return Returns the sharedConfigExtensionsManager.
+	 */
+	public SharedConfigExtensionsManager getSharedConfigExtensionsManager() {
+		return sharedConfigExtensionsManager;
+	}
 
-    /**
-     * @return Returns the cached introModels.
-     */
+	/**
+	 * @return Returns the cached introModels.
+	 */
 	public Map<String, IntroModelRoot> getIntroModels() {
-        return introModels;
-    }
+		return introModels;
+	}
 
-    /*
-     * Internal test hook for restricting which extensions to load.
-     */
-    public void setExtensionFilter(String pluginId) {
-    	extensionFilter = pluginId;
-    }
+	/*
+	 * Internal test hook for restricting which extensions to load.
+	 */
+	public void setExtensionFilter(String pluginId) {
+		extensionFilter = pluginId;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ExtensionPointManager.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ExtensionPointManager.java
index 2d3fc51..e310432 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ExtensionPointManager.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ExtensionPointManager.java
@@ -28,91 +28,91 @@
 
 public class ExtensionPointManager extends BaseExtensionPointManager {
 
-    // singleton instance. Can be retrieved from here or from the Intro Plugin.
-    private static ExtensionPointManager inst = new ExtensionPointManager();
+	// singleton instance. Can be retrieved from here or from the Intro Plugin.
+	private static ExtensionPointManager inst = new ExtensionPointManager();
 
-    // The root model class that represents a full/combined OOBBE config. This
-    // model is loaded based on an introId when the customizableIntroPart tries
-    // to load a model based on introId. This is different when includes and
-    // extension aer resolved because in tnose cases models are being loaded
-    // given an id and not an introId.
-    private IntroModelRoot currentModel;
+	// The root model class that represents a full/combined OOBBE config. This
+	// model is loaded based on an introId when the customizableIntroPart tries
+	// to load a model based on introId. This is different when includes and
+	// extension aer resolved because in tnose cases models are being loaded
+	// given an id and not an introId.
+	private IntroModelRoot currentModel;
 
-    // the id of the intro part contribution who's model (config) we are trying
-    // to load. The customizableIntroPart loads this id and loads the model that
-    // is bound to this intro id (ie: has this id as an introId).
-    private String introId;
+	// the id of the intro part contribution who's model (config) we are trying
+	// to load. The customizableIntroPart loads this id and loads the model that
+	// is bound to this intro id (ie: has this id as an introId).
+	private String introId;
 
-    /*
-     * Prevent creation.
-     */
-    private ExtensionPointManager() {
-        super();
-    }
+	/*
+	 * Prevent creation.
+	 */
+	private ExtensionPointManager() {
+		super();
+	}
 
-    /**
-     * @return Returns the inst.
-     */
-    public static ExtensionPointManager getInst() {
-        return inst;
-    }
+	/**
+	 * @return Returns the inst.
+	 */
+	public static ExtensionPointManager getInst() {
+		return inst;
+	}
 
-    /**
-     * Load the intro model given the current intro id.
-     */
-    private void loadCurrentModel() {
-        currentModel = loadModel(ATT_CONFIG_INTRO_ID, this.introId);
-    }
+	/**
+	 * Load the intro model given the current intro id.
+	 */
+	private void loadCurrentModel() {
+		currentModel = loadModel(ATT_CONFIG_INTRO_ID, this.introId);
+	}
 
-    /**
-     * @return Returns the Intro Model root. Note: Prefereed way of getting to
-     *         the intro model root is throught the intro plugin.
-     */
-    public IntroModelRoot getCurrentModel() {
-        if (currentModel == null)
-            // we never loaded this model before, or we tried before and we
-            // failed. Load it. Get the correct config element based on
-            // config introId, and log any extra contributions.
-            loadCurrentModel();
-        return currentModel;
-    }
+	/**
+	 * @return Returns the Intro Model root. Note: Prefereed way of getting to
+	 *         the intro model root is throught the intro plugin.
+	 */
+	public IntroModelRoot getCurrentModel() {
+		if (currentModel == null)
+			// we never loaded this model before, or we tried before and we
+			// failed. Load it. Get the correct config element based on
+			// config introId, and log any extra contributions.
+			loadCurrentModel();
+		return currentModel;
+	}
 
-    /**
-     * Load an intro model given a config id.
-     *
-     * @param configId
-     * @return
-     */
-    public IntroModelRoot getModel(String configId) {
-        IntroModelRoot model = getCachedModel(configId);
-        if (model == null) {
-            // we never loaded this model before, or we tried before and we
-            // failed. Load it. Get the correct config element based on
-            // config id, and log any extra contributions.
-            model = loadModel(ATT_ID, configId);
-        }
-        return model;
-    }
+	/**
+	 * Load an intro model given a config id.
+	 *
+	 * @param configId
+	 * @return
+	 */
+	public IntroModelRoot getModel(String configId) {
+		IntroModelRoot model = getCachedModel(configId);
+		if (model == null) {
+			// we never loaded this model before, or we tried before and we
+			// failed. Load it. Get the correct config element based on
+			// config id, and log any extra contributions.
+			model = loadModel(ATT_ID, configId);
+		}
+		return model;
+	}
 
-    /**
-     * @param introPartId
-     *            The introPartId to set.
-     */
-    public void setIntroId(String introId) {
-        this.introId = introId;
-        // we do not have to clean model here. remove cached model, if it
-        // exists.
-        this.currentModel = null;
-    }
+	/**
+	 * @param introPartId
+	 *            The introPartId to set.
+	 */
+	public void setIntroId(String introId) {
+		this.introId = introId;
+		// we do not have to clean model here. remove cached model, if it
+		// exists.
+		this.currentModel = null;
+	}
 
-    public void clear() {
-        currentModel = null;
-        sharedConfigExtensionsManager = null;
-        introModels.clear();
-        ExtensionMap.getInstance().clear();
-        if (Log.logInfo)
-            Log.info("Cleared Intro model"); //$NON-NLS-1$
-    }
+	public void clear() {
+		currentModel = null;
+		sharedConfigExtensionsManager = null;
+		introModels.clear();
+		ExtensionMap.getInstance().clear();
+		if (Log.logInfo)
+			Log.info("Cleared Intro model"); //$NON-NLS-1$
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/IntroContentParser.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/IntroContentParser.java
index 9941e12..944629e 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/IntroContentParser.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/IntroContentParser.java
@@ -43,157 +43,157 @@
  */
 public class IntroContentParser {
 
-    private static String TAG_INTRO_CONTENT = "introContent"; //$NON-NLS-1$
-    private static String TAG_HTML = "html"; //$NON-NLS-1$
+	private static String TAG_INTRO_CONTENT = "introContent"; //$NON-NLS-1$
+	private static String TAG_HTML = "html"; //$NON-NLS-1$
 
-    private Document document;
-    private boolean hasXHTMLContent;
+	private Document document;
+	private boolean hasXHTMLContent;
 
-    /**
-     * Creates a config parser assuming that the passed content represents a URL
-     * to the content file.
-     */
-    public IntroContentParser(String content) {
-        try {
-            document = parse(content);
-            if (document != null) {
-                // xml file is loaded. It can be either XHTML or intro XML.
-                Element rootElement = document.getDocumentElement();
-                // DocumentType docType = document.getDoctype();
-                if (rootElement.getTagName().equals(TAG_INTRO_CONTENT)) {
-                    // intro xml file.
-                    hasXHTMLContent = false;
-                } else if (rootElement.getTagName().equals(TAG_HTML)) {
-                    // rely on root element to detect if we have an XHTML file
-                    // and not on doctype. We need to support xhtml files with
-                    // no doctype.
-                    hasXHTMLContent = true;
-                } else
-                    // not intro XML nor XHTML.
-                    document = null;
-            }
-        } catch (Exception e) {
-            Log.error("Could not load Intro content file: " + content, e); //$NON-NLS-1$
-        }
-    }
+	/**
+	 * Creates a config parser assuming that the passed content represents a URL
+	 * to the content file.
+	 */
+	public IntroContentParser(String content) {
+		try {
+			document = parse(content);
+			if (document != null) {
+				// xml file is loaded. It can be either XHTML or intro XML.
+				Element rootElement = document.getDocumentElement();
+				// DocumentType docType = document.getDoctype();
+				if (rootElement.getTagName().equals(TAG_INTRO_CONTENT)) {
+					// intro xml file.
+					hasXHTMLContent = false;
+				} else if (rootElement.getTagName().equals(TAG_HTML)) {
+					// rely on root element to detect if we have an XHTML file
+					// and not on doctype. We need to support xhtml files with
+					// no doctype.
+					hasXHTMLContent = true;
+				} else
+					// not intro XML nor XHTML.
+					document = null;
+			}
+		} catch (Exception e) {
+			Log.error("Could not load Intro content file: " + content, e); //$NON-NLS-1$
+		}
+	}
 
 
-    private Document parse(String fileURI) {
-        Document document = null;
-        try {
-            DocumentBuilderFactory docFactory = DocumentBuilderFactory
-                .newInstance();
-            docFactory.setValidating(false);
-            // if this is not set, Document.getElementsByTagNameNS() will fail.
-            docFactory.setNamespaceAware(true);
-            docFactory.setExpandEntityReferences(false);
-            DocumentBuilder parser = docFactory.newDocumentBuilder();
+	private Document parse(String fileURI) {
+		Document document = null;
+		try {
+			DocumentBuilderFactory docFactory = DocumentBuilderFactory
+				.newInstance();
+			docFactory.setValidating(false);
+			// if this is not set, Document.getElementsByTagNameNS() will fail.
+			docFactory.setNamespaceAware(true);
+			docFactory.setExpandEntityReferences(false);
+			DocumentBuilder parser = docFactory.newDocumentBuilder();
 			parser.setEntityResolver((publicId, systemId) -> new InputSource(new StringReader(""))); //$NON-NLS-1$
-            document = parser.parse(fileURI);
-            return document;
+			document = parser.parse(fileURI);
+			return document;
 
-        } catch (SAXParseException spe) {
-            StringBuilder buffer = new StringBuilder("IntroParser error in line "); //$NON-NLS-1$
-            buffer.append(spe.getLineNumber());
-            buffer.append(", uri "); //$NON-NLS-1$
-            buffer.append(spe.getSystemId());
-            buffer.append("\n"); //$NON-NLS-1$
-            buffer.append(spe.getMessage());
+		} catch (SAXParseException spe) {
+			StringBuilder buffer = new StringBuilder("IntroParser error in line "); //$NON-NLS-1$
+			buffer.append(spe.getLineNumber());
+			buffer.append(", uri "); //$NON-NLS-1$
+			buffer.append(spe.getSystemId());
+			buffer.append("\n"); //$NON-NLS-1$
+			buffer.append(spe.getMessage());
 
-            // Use the contained exception.
-            Exception x = spe;
-            if (spe.getException() != null)
-                x = spe.getException();
-            Log.error(buffer.toString(), x);
+			// Use the contained exception.
+			Exception x = spe;
+			if (spe.getException() != null)
+				x = spe.getException();
+			Log.error(buffer.toString(), x);
 
-        } catch (SAXException sxe) {
-            Exception x = sxe;
-            if (sxe.getException() != null)
-                x = sxe.getException();
-            Log.error(x.getMessage(), x);
+		} catch (SAXException sxe) {
+			Exception x = sxe;
+			if (sxe.getException() != null)
+				x = sxe.getException();
+			Log.error(x.getMessage(), x);
 
-        } catch (ParserConfigurationException pce) {
-            // Parser with specified options can't be built
-            Log.error(pce.getMessage(), pce);
+		} catch (ParserConfigurationException pce) {
+			// Parser with specified options can't be built
+			Log.error(pce.getMessage(), pce);
 
-        } catch (IOException ioe) {
-            Log.error(ioe.getMessage(), ioe);
-        }
-        return null;
-    }
+		} catch (IOException ioe) {
+			Log.error(ioe.getMessage(), ioe);
+		}
+		return null;
+	}
 
 
-    /**
-     * Returned the DOM representing the intro xml content file. May return null
-     * if parsing the file failed.
-     *
-     * @return Returns the document.
-     */
-    public Document getDocument() {
-        return document;
-    }
+	/**
+	 * Returned the DOM representing the intro xml content file. May return null
+	 * if parsing the file failed.
+	 *
+	 * @return Returns the document.
+	 */
+	public Document getDocument() {
+		return document;
+	}
 
-    public boolean hasXHTMLContent() {
-        return hasXHTMLContent;
-    }
+	public boolean hasXHTMLContent() {
+		return hasXHTMLContent;
+	}
 
 
-    public static String convertToString(Document document) {
-        try {
-            // identity xslt.
-            TransformerFactory tFactory = TransformerFactory.newInstance();
-            Transformer transformer = tFactory.newTransformer();
+	public static String convertToString(Document document) {
+		try {
+			// identity xslt.
+			TransformerFactory tFactory = TransformerFactory.newInstance();
+			Transformer transformer = tFactory.newTransformer();
 
-            DOMSource source = new DOMSource(document);
+			DOMSource source = new DOMSource(document);
 
-            StringWriter stringWriter = new StringWriter();
-            StreamResult result = new StreamResult(stringWriter);
+			StringWriter stringWriter = new StringWriter();
+			StreamResult result = new StreamResult(stringWriter);
 
-            // setup properties, for doctype.
-            DocumentType docType = document.getDoctype();
-            if (docType != null) {
-                String value = docType.getSystemId();
-                // transformer.clearParameters();
-                transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, value);
-                value = document.getDoctype().getPublicId();
-                transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, value);
-                transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
-                transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
-                    "yes"); //$NON-NLS-1$
-                // transformer.setOutputProperty(OutputKeys.MEDIA_TYPE,
-                // "text/html");
-                // transformer
-                // .setOutputProperty(OutputKeys.ENCODING, "iso-8859-1");
-            } else
-                Log
-                    .warning("XHTML file used to display this Intro page does not have a Document type defined. " //$NON-NLS-1$
-                            + "XHTML requires document types to be defined."); //$NON-NLS-1$
+			// setup properties, for doctype.
+			DocumentType docType = document.getDoctype();
+			if (docType != null) {
+				String value = docType.getSystemId();
+				// transformer.clearParameters();
+				transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, value);
+				value = document.getDoctype().getPublicId();
+				transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, value);
+				transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
+				transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
+					"yes"); //$NON-NLS-1$
+				// transformer.setOutputProperty(OutputKeys.MEDIA_TYPE,
+				// "text/html");
+				// transformer
+				// .setOutputProperty(OutputKeys.ENCODING, "iso-8859-1");
+			} else
+				Log
+					.warning("XHTML file used to display this Intro page does not have a Document type defined. " //$NON-NLS-1$
+							+ "XHTML requires document types to be defined."); //$NON-NLS-1$
 
-            transformer.transform(source, result);
-            return stringWriter.toString();
+			transformer.transform(source, result);
+			return stringWriter.toString();
 
-        } catch (TransformerConfigurationException tce) {
-            // Error generated by the parser
-            Log.error("Transformer Config error: " + tce.getMessage(), null); //$NON-NLS-1$
-            // Use the contained exception, if any
-            Throwable x = tce;
-            if (tce.getException() != null)
-                x = tce.getException();
-            Log.error("Transformer Stack trace: ", x); //$NON-NLS-1$
+		} catch (TransformerConfigurationException tce) {
+			// Error generated by the parser
+			Log.error("Transformer Config error: " + tce.getMessage(), null); //$NON-NLS-1$
+			// Use the contained exception, if any
+			Throwable x = tce;
+			if (tce.getException() != null)
+				x = tce.getException();
+			Log.error("Transformer Stack trace: ", x); //$NON-NLS-1$
 
-        } catch (TransformerException te) {
-            // Error generated by the parser
-            Log.error("Transformer error: " + te.getMessage(), te); //$NON-NLS-1$
-            // Use the contained exception, if any
-            Throwable x = te;
-            if (te.getException() != null)
-                x = te.getException();
-            Log.error("Transformer Stack trace: ", x); //$NON-NLS-1$
+		} catch (TransformerException te) {
+			// Error generated by the parser
+			Log.error("Transformer error: " + te.getMessage(), te); //$NON-NLS-1$
+			// Use the contained exception, if any
+			Throwable x = te;
+			if (te.getException() != null)
+				x = te.getException();
+			Log.error("Transformer Stack trace: ", x); //$NON-NLS-1$
 
-        }
-        return null;
+		}
+		return null;
 
-    }
+	}
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ModelLoaderUtil.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ModelLoaderUtil.java
index 0196477..c68c02b 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ModelLoaderUtil.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ModelLoaderUtil.java
@@ -30,155 +30,155 @@
  */
 public class ModelLoaderUtil {
 
-    /**
-     * Utility method to validate an elements name.
-     *
-     * @param element
-     * @param validName
-     * @return
-     */
-    public static boolean isValidElementName(IConfigurationElement element,
-            String validName) {
+	/**
+	 * Utility method to validate an elements name.
+	 *
+	 * @param element
+	 * @param validName
+	 * @return
+	 */
+	public static boolean isValidElementName(IConfigurationElement element,
+			String validName) {
 
-        if (element.getName().equals(validName))
-            return true;
-        // bad element name.
-        return false;
-    }
+		if (element.getName().equals(validName))
+			return true;
+		// bad element name.
+		return false;
+	}
 
-    /**
-     * Utility method to verify that there is only a single configElement in the
-     * passed array of elements. If the array is empty, null is returned. If
-     * there is more than one element in the array, the first one is picked, but
-     * this fact is logged. Attribute passed is used for logging.
-     *
-     * @param configElements
-     * @return the first configElement in the array, or null if the array is
-     *         empty.
-     */
-    public static IConfigurationElement validateSingleContribution(
-            IConfigurationElement[] configElements, String logAttribute) {
+	/**
+	 * Utility method to verify that there is only a single configElement in the
+	 * passed array of elements. If the array is empty, null is returned. If
+	 * there is more than one element in the array, the first one is picked, but
+	 * this fact is logged. Attribute passed is used for logging.
+	 *
+	 * @param configElements
+	 * @return the first configElement in the array, or null if the array is
+	 *         empty.
+	 */
+	public static IConfigurationElement validateSingleContribution(
+			IConfigurationElement[] configElements, String logAttribute) {
 
-        int arraySize = configElements.length;
-        if (arraySize == 0)
-            // No one contributed to extension. return null.
-            return null;
+		int arraySize = configElements.length;
+		if (arraySize == 0)
+			// No one contributed to extension. return null.
+			return null;
 
-        // we should only have one, so use first one.
-        IConfigurationElement configElement = configElements[0];
-        if (Log.logInfo) {
-            String msg = "Loading " + getLogString(configElement, logAttribute); //$NON-NLS-1$
-            Log.info(msg);
-        }
+		// we should only have one, so use first one.
+		IConfigurationElement configElement = configElements[0];
+		if (Log.logInfo) {
+			String msg = "Loading " + getLogString(configElement, logAttribute); //$NON-NLS-1$
+			Log.info(msg);
+		}
 
-        if (arraySize != 1) {
-            // we have more than one, warn in the log.
-            for (int i = 1; i < arraySize; i++)
-                // log each extra extension.
-                Log.warning(getLogString(configElements[i], logAttribute)
-                        + " ignored due to multiple contributions"); //$NON-NLS-1$
-        }
-        return configElement;
-    }
+		if (arraySize != 1) {
+			// we have more than one, warn in the log.
+			for (int i = 1; i < arraySize; i++)
+				// log each extra extension.
+				Log.warning(getLogString(configElements[i], logAttribute)
+						+ " ignored due to multiple contributions"); //$NON-NLS-1$
+		}
+		return configElement;
+	}
 
-    /**
-     * Utility method to return a string to display in .log. If logAttribute is
-     * not null, its value is also printed.
-     */
-    public static String getLogString(IConfigurationElement element,
-            String logAttribute) {
-        StringBuilder buffer = new StringBuilder(element.getName());
-        buffer.append(" element"); //$NON-NLS-1$
-        if (logAttribute != null) {
-            buffer.append(" with "); //$NON-NLS-1$
-            buffer.append(logAttribute);
-            buffer.append("=\""); //$NON-NLS-1$
-            buffer.append(element.getAttribute(logAttribute));
-        }
-        buffer.append("\" in extension: "); //$NON-NLS-1$
-        buffer.append(element.getDeclaringExtension()
-            .getExtensionPointUniqueIdentifier());
-        buffer.append(" in Bundle: "); //$NON-NLS-1$
-        buffer.append(element.getContributor().getName());
+	/**
+	 * Utility method to return a string to display in .log. If logAttribute is
+	 * not null, its value is also printed.
+	 */
+	public static String getLogString(IConfigurationElement element,
+			String logAttribute) {
+		StringBuilder buffer = new StringBuilder(element.getName());
+		buffer.append(" element"); //$NON-NLS-1$
+		if (logAttribute != null) {
+			buffer.append(" with "); //$NON-NLS-1$
+			buffer.append(logAttribute);
+			buffer.append("=\""); //$NON-NLS-1$
+			buffer.append(element.getAttribute(logAttribute));
+		}
+		buffer.append("\" in extension: "); //$NON-NLS-1$
+		buffer.append(element.getDeclaringExtension()
+			.getExtensionPointUniqueIdentifier());
+		buffer.append(" in Bundle: "); //$NON-NLS-1$
+		buffer.append(element.getContributor().getName());
 
 
-        return buffer.toString();
-    }
+		return buffer.toString();
+	}
 
-    /**
-     * Utility method to return a string to display in .log. If logAttribute is
-     * not null, its value is also printed.
-     */
-    public static String getLogString(Bundle bundle, Element element,
-            String logAttribute) {
-        StringBuilder buffer = new StringBuilder(element.getNodeName());
-        buffer.append(" element"); //$NON-NLS-1$
-        if (logAttribute != null) {
-            buffer.append(" with "); //$NON-NLS-1$
-            buffer.append(logAttribute);
-            buffer.append("=\""); //$NON-NLS-1$
-            buffer.append(element.getAttribute(logAttribute));
-        }
-        buffer.append("\" from xml file in Bundle:"); //$NON-NLS-1$
-        buffer.append(bundle.getSymbolicName());
+	/**
+	 * Utility method to return a string to display in .log. If logAttribute is
+	 * not null, its value is also printed.
+	 */
+	public static String getLogString(Bundle bundle, Element element,
+			String logAttribute) {
+		StringBuilder buffer = new StringBuilder(element.getNodeName());
+		buffer.append(" element"); //$NON-NLS-1$
+		if (logAttribute != null) {
+			buffer.append(" with "); //$NON-NLS-1$
+			buffer.append(logAttribute);
+			buffer.append("=\""); //$NON-NLS-1$
+			buffer.append(element.getAttribute(logAttribute));
+		}
+		buffer.append("\" from xml file in Bundle:"); //$NON-NLS-1$
+		buffer.append(bundle.getSymbolicName());
 
 
-        return buffer.toString();
-    }
+		return buffer.toString();
+	}
 
 
 
-    /**
-     * Util class for creating class instances from plugins.
-     *
-     * @param pluginId
-     * @param className
-     * @return
-     */
-    public static Object createClassInstance(String pluginId, String className) {
-        // quick exits.
-        if (pluginId == null || className == null)
-            return null;
-        Bundle bundle = Platform.getBundle(pluginId);
-        if (!BundleUtil.bundleHasValidState(bundle))
-            return null;
+	/**
+	 * Util class for creating class instances from plugins.
+	 *
+	 * @param pluginId
+	 * @param className
+	 * @return
+	 */
+	public static Object createClassInstance(String pluginId, String className) {
+		// quick exits.
+		if (pluginId == null || className == null)
+			return null;
+		Bundle bundle = Platform.getBundle(pluginId);
+		if (!BundleUtil.bundleHasValidState(bundle))
+			return null;
 
-        Class<?> aClass;
-        Object aObject;
-        try {
-            aClass = bundle.loadClass(className);
-            aObject = aClass.getDeclaredConstructor().newInstance();
-            return aObject;
-        } catch (Exception e) {
-            Log.error("Intro Could not instantiate: " + className + " in " //$NON-NLS-1$ //$NON-NLS-2$
-                    + pluginId, e);
-            return null;
-        }
-    }
+		Class<?> aClass;
+		Object aObject;
+		try {
+			aClass = bundle.loadClass(className);
+			aObject = aClass.getDeclaredConstructor().newInstance();
+			return aObject;
+		} catch (Exception e) {
+			Log.error("Intro Could not instantiate: " + className + " in " //$NON-NLS-1$ //$NON-NLS-2$
+					+ pluginId, e);
+			return null;
+		}
+	}
 
 
 
-    /**
-     * Creates a key for the given element. Returns null if any id is null along
-     * the path.
-     *
-     * @param element
-     * @return
-     */
-    public static StringBuffer createPathToElementKey(
-            AbstractIntroIdElement element, boolean full) {
-        if (element.getId() == null)
-            return null;
-        StringBuffer buffer = new StringBuffer(element.getId());
-        AbstractBaseIntroElement parent = (AbstractBaseIntroElement) element
-            .getParent();
-        while (parent != null
-                && !parent.isOfType(AbstractIntroElement.MODEL_ROOT)) {
-            if (parent.getId() == null)
-                return null;
-            buffer.insert(0, parent.getId() + "."); //$NON-NLS-1$
-            parent = (AbstractBaseIntroElement) parent.getParent();
-        }
-        return buffer;
-    }
+	/**
+	 * Creates a key for the given element. Returns null if any id is null along
+	 * the path.
+	 *
+	 * @param element
+	 * @return
+	 */
+	public static StringBuffer createPathToElementKey(
+			AbstractIntroIdElement element, boolean full) {
+		if (element.getId() == null)
+			return null;
+		StringBuffer buffer = new StringBuffer(element.getId());
+		AbstractBaseIntroElement parent = (AbstractBaseIntroElement) element
+			.getParent();
+		while (parent != null
+				&& !parent.isOfType(AbstractIntroElement.MODEL_ROOT)) {
+			if (parent.getId() == null)
+				return null;
+			buffer.insert(0, parent.getId() + "."); //$NON-NLS-1$
+			parent = (AbstractBaseIntroElement) parent.getParent();
+		}
+		return buffer;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/SharedConfigExtensionsManager.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/SharedConfigExtensionsManager.java
index 4d1abfe..0e12529 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/SharedConfigExtensionsManager.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/SharedConfigExtensionsManager.java
@@ -32,7 +32,7 @@
 
 public class SharedConfigExtensionsManager {
 
-    private IExtensionRegistry registry;
+	private IExtensionRegistry registry;
 
 	// Holds all standbyPart extensions
 	private Map<String, IntroStandbyContentPart> standbyParts = new HashMap<>();
@@ -40,87 +40,87 @@
 	// Holds all command extensions
 	private Map<String, IntroURLAction> commands = new HashMap<>();
 
-    /*
-     * Prevent creation.
-     */
-    protected SharedConfigExtensionsManager(IExtensionRegistry registry) {
-        this.registry = registry;
-    }
+	/*
+	 * Prevent creation.
+	 */
+	protected SharedConfigExtensionsManager(IExtensionRegistry registry) {
+		this.registry = registry;
+	}
 
-    /**
-     * Loads all shared config extennsions (ie: standby parts and commands.
-     */
-    protected void loadSharedConfigExtensions() {
-        // simply create model classes for all standbyPart elements under a
-        // configExtension.
+	/**
+	 * Loads all shared config extennsions (ie: standby parts and commands.
+	 */
+	protected void loadSharedConfigExtensions() {
+		// simply create model classes for all standbyPart elements under a
+		// configExtension.
 
-        long start = 0;
-        // if we need to log performance, capture time.
-        if (Log.logPerformance)
-            start = System.currentTimeMillis();
+		long start = 0;
+		// if we need to log performance, capture time.
+		if (Log.logPerformance)
+			start = System.currentTimeMillis();
 
-        IConfigurationElement[] configExtensionElements = registry
-            .getConfigurationElementsFor(BaseExtensionPointManager.CONFIG_EXTENSION);
+		IConfigurationElement[] configExtensionElements = registry
+			.getConfigurationElementsFor(BaseExtensionPointManager.CONFIG_EXTENSION);
 
-        if (Log.logPerformance)
-            Util.logPerformanceTime(
-                "quering registry for configExtensions took: ", start); //$NON-NLS-1$
+		if (Log.logPerformance)
+			Util.logPerformanceTime(
+				"quering registry for configExtensions took: ", start); //$NON-NLS-1$
 
-        for (int i = 0; i < configExtensionElements.length; i++) {
-            IConfigurationElement element = configExtensionElements[i];
-            if (!ModelLoaderUtil.isValidElementName(element,
-                IntroStandbyContentPart.TAG_STANDBY_CONTENT_PART)
-                    && !ModelLoaderUtil.isValidElementName(element,
-                        IntroURLAction.TAG_ACTION))
-                // if extension is not a standbypart or command, ignore.
-                continue;
-            createModelClass(element);
-        }
-    }
+		for (int i = 0; i < configExtensionElements.length; i++) {
+			IConfigurationElement element = configExtensionElements[i];
+			if (!ModelLoaderUtil.isValidElementName(element,
+				IntroStandbyContentPart.TAG_STANDBY_CONTENT_PART)
+					&& !ModelLoaderUtil.isValidElementName(element,
+						IntroURLAction.TAG_ACTION))
+				// if extension is not a standbypart or command, ignore.
+				continue;
+			createModelClass(element);
+		}
+	}
 
 
-    /**
-     * Create an intro standby part or an intro command model class.
-     *
-     * @param element
-     */
-    private void createModelClass(IConfigurationElement element) {
-        if (element.getName().equals(
-            IntroStandbyContentPart.TAG_STANDBY_CONTENT_PART)) {
-            IntroStandbyContentPart standbyPartContent = new IntroStandbyContentPart(
-                element);
-            if (standbyPartContent.getId() == null)
-                // no id, ignore.
-                return;
-            standbyParts.put(standbyPartContent.getId(), standbyPartContent);
-        } else {
-            IntroURLAction introURLCommand = new IntroURLAction(element);
-            if (introURLCommand.getName() == null
-                    || introURLCommand.getReplaceValue() == null)
-                // no name or resolvedValue, ignore.
-                return;
-            commands.put(introURLCommand.getName(), introURLCommand);
-        }
-    }
+	/**
+	 * Create an intro standby part or an intro command model class.
+	 *
+	 * @param element
+	 */
+	private void createModelClass(IConfigurationElement element) {
+		if (element.getName().equals(
+			IntroStandbyContentPart.TAG_STANDBY_CONTENT_PART)) {
+			IntroStandbyContentPart standbyPartContent = new IntroStandbyContentPart(
+				element);
+			if (standbyPartContent.getId() == null)
+				// no id, ignore.
+				return;
+			standbyParts.put(standbyPartContent.getId(), standbyPartContent);
+		} else {
+			IntroURLAction introURLCommand = new IntroURLAction(element);
+			if (introURLCommand.getName() == null
+					|| introURLCommand.getReplaceValue() == null)
+				// no name or resolvedValue, ignore.
+				return;
+			commands.put(introURLCommand.getName(), introURLCommand);
+		}
+	}
 
 
 
-    /**
-     * @return Returns a standbyPart basd on its registred id.
-     */
-    public IntroStandbyContentPart getStandbyPart(String partId) {
-        if (partId == null)
-            return null;
-        return standbyParts.get(partId);
-    }
+	/**
+	 * @return Returns a standbyPart basd on its registred id.
+	 */
+	public IntroStandbyContentPart getStandbyPart(String partId) {
+		if (partId == null)
+			return null;
+		return standbyParts.get(partId);
+	}
 
-    /**
-     * @return Returns the command from its name.
-     */
-    public IntroURLAction getCommand(String commandName) {
-        if (commandName == null)
-            return null;
-        return commands.get(commandName);
-    }
+	/**
+	 * @return Returns the command from its name.
+	 */
+	public IntroURLAction getCommand(String commandName) {
+		if (commandName == null)
+			return null;
+		return commands.get(commandName);
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURL.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURL.java
index 87e0413..e75d765 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURL.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURL.java
@@ -68,184 +68,184 @@
 public class IntroURL implements IIntroURL {
 
 
-    /**
-     * Intro URL constants.
-     */
-    public static final String INTRO_PROTOCOL = "http"; //$NON-NLS-1$
-    public static final String INTRO_HOST_ID = "org.eclipse.ui.intro"; //$NON-NLS-1$
+	/**
+	 * Intro URL constants.
+	 */
+	public static final String INTRO_PROTOCOL = "http"; //$NON-NLS-1$
+	public static final String INTRO_HOST_ID = "org.eclipse.ui.intro"; //$NON-NLS-1$
 
-    /**
-     * Constants that represent Intro URL actions.
-     */
-    public static final String SET_STANDBY_MODE = "setStandbyMode"; //$NON-NLS-1$
-    public static final String SHOW_STANDBY = "showStandby"; //$NON-NLS-1$
-    public static final String CLOSE = "close"; //$NON-NLS-1$
-    public static final String SHOW_HELP_TOPIC = "showHelpTopic"; //$NON-NLS-1$
-    public static final String SHOW_HELP = "showHelp"; //$NON-NLS-1$
-    public static final String OPEN_BROWSER = "openBrowser"; //$NON-NLS-1$
-    public static final String OPEN_URL = "openURL"; //$NON-NLS-1$
-    public static final String RUN_ACTION = "runAction"; //$NON-NLS-1$
-    public static final String SHOW_PAGE = "showPage"; //$NON-NLS-1$
-    public static final String SHOW_MESSAGE = "showMessage"; //$NON-NLS-1$
-    public static final String NAVIGATE = "navigate"; //$NON-NLS-1$
-    public static final String SWITCH_TO_LAUNCH_BAR = "switchToLaunchBar"; //$NON-NLS-1$
-    public static final String EXECUTE = "execute"; //$NON-NLS-1$
+	/**
+	 * Constants that represent Intro URL actions.
+	 */
+	public static final String SET_STANDBY_MODE = "setStandbyMode"; //$NON-NLS-1$
+	public static final String SHOW_STANDBY = "showStandby"; //$NON-NLS-1$
+	public static final String CLOSE = "close"; //$NON-NLS-1$
+	public static final String SHOW_HELP_TOPIC = "showHelpTopic"; //$NON-NLS-1$
+	public static final String SHOW_HELP = "showHelp"; //$NON-NLS-1$
+	public static final String OPEN_BROWSER = "openBrowser"; //$NON-NLS-1$
+	public static final String OPEN_URL = "openURL"; //$NON-NLS-1$
+	public static final String RUN_ACTION = "runAction"; //$NON-NLS-1$
+	public static final String SHOW_PAGE = "showPage"; //$NON-NLS-1$
+	public static final String SHOW_MESSAGE = "showMessage"; //$NON-NLS-1$
+	public static final String NAVIGATE = "navigate"; //$NON-NLS-1$
+	public static final String SWITCH_TO_LAUNCH_BAR = "switchToLaunchBar"; //$NON-NLS-1$
+	public static final String EXECUTE = "execute"; //$NON-NLS-1$
 
-    /**
-     * Constants that represent valid action keys.
-     */
-    public static final String KEY_ID = "id"; //$NON-NLS-1$
-    public static final String KEY_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
-    public static final String KEY_CLASS = "class"; //$NON-NLS-1$
-    public static final String KEY_STANDBY = "standby"; //$NON-NLS-1$
-    public static final String KEY_PART_ID = "partId"; //$NON-NLS-1$
-    public static final String KEY_INPUT = "input"; //$NON-NLS-1$
-    public static final String KEY_MESSAGE = "message"; //$NON-NLS-1$
-    public static final String KEY_URL = "url"; //$NON-NLS-1$
-    public static final String KEY_DIRECTION = "direction"; //$NON-NLS-1$
-    public static final String KEY_EMBED = "embed"; //$NON-NLS-1$
-    public static final String KEY_EMBED_TARGET = "embedTarget"; //$NON-NLS-1$
-    public static final String KEY_DECODE = "decode"; //$NON-NLS-1$
-    public static final String KEY_COMAND = "command"; //$NON-NLS-1$
+	/**
+	 * Constants that represent valid action keys.
+	 */
+	public static final String KEY_ID = "id"; //$NON-NLS-1$
+	public static final String KEY_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
+	public static final String KEY_CLASS = "class"; //$NON-NLS-1$
+	public static final String KEY_STANDBY = "standby"; //$NON-NLS-1$
+	public static final String KEY_PART_ID = "partId"; //$NON-NLS-1$
+	public static final String KEY_INPUT = "input"; //$NON-NLS-1$
+	public static final String KEY_MESSAGE = "message"; //$NON-NLS-1$
+	public static final String KEY_URL = "url"; //$NON-NLS-1$
+	public static final String KEY_DIRECTION = "direction"; //$NON-NLS-1$
+	public static final String KEY_EMBED = "embed"; //$NON-NLS-1$
+	public static final String KEY_EMBED_TARGET = "embedTarget"; //$NON-NLS-1$
+	public static final String KEY_DECODE = "decode"; //$NON-NLS-1$
+	public static final String KEY_COMAND = "command"; //$NON-NLS-1$
 
 
-    public static final String VALUE_BACKWARD = "backward"; //$NON-NLS-1$
-    public static final String VALUE_FORWARD = "forward"; //$NON-NLS-1$
-    public static final String VALUE_HOME = "home"; //$NON-NLS-1$
-    public static final String VALUE_TRUE = "true"; //$NON-NLS-1$
-    public static final String VALUE_FALSE = "false"; //$NON-NLS-1$
+	public static final String VALUE_BACKWARD = "backward"; //$NON-NLS-1$
+	public static final String VALUE_FORWARD = "forward"; //$NON-NLS-1$
+	public static final String VALUE_HOME = "home"; //$NON-NLS-1$
+	public static final String VALUE_TRUE = "true"; //$NON-NLS-1$
+	public static final String VALUE_FALSE = "false"; //$NON-NLS-1$
 	public static final String VALUE_CLOSE = "close"; //$NON-NLS-1$
 	public static final String VALUE_STANDBY = "standby"; //$NON-NLS-1$
 	public static final String VALUE_LAUNCHBAR = "launchbar"; //$NON-NLS-1$
 
 
 
-    private String action = null;
-    private Properties parameters = null;
+	private String action = null;
+	private Properties parameters = null;
 
-    /**
-     * Prevent creation. Must be created through an IntroURLParser. This
-     * constructor assumed we have a valid intro url.
-     *
-     * @param url
-     */
-    IntroURL(String action, Properties parameters) {
-        this.action = action;
-        this.parameters = parameters;
-    }
+	/**
+	 * Prevent creation. Must be created through an IntroURLParser. This
+	 * constructor assumed we have a valid intro url.
+	 *
+	 * @param url
+	 */
+	IntroURL(String action, Properties parameters) {
+		this.action = action;
+		this.parameters = parameters;
+	}
 
-    /**
-     * Executes whatever valid Intro action is embedded in this Intro URL.
-     *
-     */
-    @Override
+	/**
+	 * Executes whatever valid Intro action is embedded in this Intro URL.
+	 *
+	 */
+	@Override
 	public boolean execute() {
-        final boolean[] result = new boolean[1];
-        Display display = Display.getCurrent();
+		final boolean[] result = new boolean[1];
+		Display display = Display.getCurrent();
 
-        BusyIndicator.showWhile(display, () -> result[0] = doExecute());
-        return result[0];
-    }
+		BusyIndicator.showWhile(display, () -> result[0] = doExecute());
+		return result[0];
+	}
 
-    protected boolean doExecute() {
-        if (Log.logInfo) {
-            String msg = StringUtil.concat("Running Intro URL action ", action, //$NON-NLS-1$
-                " with parameters: ", parameters.toString()); //$NON-NLS-1$
-            Log.info(msg);
-        }
+	protected boolean doExecute() {
+		if (Log.logInfo) {
+			String msg = StringUtil.concat("Running Intro URL action ", action, //$NON-NLS-1$
+				" with parameters: ", parameters.toString()); //$NON-NLS-1$
+			Log.info(msg);
+		}
 
-        // check for all supported Intro actions first.
-        if (action.equals(CLOSE))
-            return closeIntro();
+		// check for all supported Intro actions first.
+		if (action.equals(CLOSE))
+			return closeIntro();
 
-        else if (action.equals(SET_STANDBY_MODE))
-            // Sets the state of the intro part. Does not care about passing
-            // input to the part.
-            return setStandbyState(getParameter(KEY_STANDBY));
+		else if (action.equals(SET_STANDBY_MODE))
+			// Sets the state of the intro part. Does not care about passing
+			// input to the part.
+			return setStandbyState(getParameter(KEY_STANDBY));
 
-        else if (action.equals(SHOW_STANDBY))
-            return handleStandbyState(getParameter(KEY_PART_ID),
-                getParameter(KEY_INPUT));
+		else if (action.equals(SHOW_STANDBY))
+			return handleStandbyState(getParameter(KEY_PART_ID),
+				getParameter(KEY_INPUT));
 
-        else if (action.equals(SHOW_HELP))
-            // display the full Help System.
-            return showHelp();
+		else if (action.equals(SHOW_HELP))
+			// display the full Help System.
+			return showHelp();
 
-        else if (action.equals(SHOW_HELP_TOPIC))
-            // display a Help System Topic. It can be displayed in the Help
-            // system window, or embedded as an intro page.
-            // return showHelpTopic(getParameter(KEY_ID));
-            return showHelpTopic(getParameter(KEY_ID), getParameter(KEY_EMBED),
-                getParameter(KEY_EMBED_TARGET));
+		else if (action.equals(SHOW_HELP_TOPIC))
+			// display a Help System Topic. It can be displayed in the Help
+			// system window, or embedded as an intro page.
+			// return showHelpTopic(getParameter(KEY_ID));
+			return showHelpTopic(getParameter(KEY_ID), getParameter(KEY_EMBED),
+				getParameter(KEY_EMBED_TARGET));
 
-        else if (action.equals(OPEN_BROWSER))
-            // display url in external browser
-            return openBrowser(getParameter(KEY_URL),
-                getParameter(KEY_PLUGIN_ID));
+		else if (action.equals(OPEN_BROWSER))
+			// display url in external browser
+			return openBrowser(getParameter(KEY_URL),
+				getParameter(KEY_PLUGIN_ID));
 
-        if (action.equals(OPEN_URL))
-            // display url embedded in intro browser.
-            return openURL(getParameter(KEY_URL), getParameter(KEY_PLUGIN_ID));
+		if (action.equals(OPEN_URL))
+			// display url embedded in intro browser.
+			return openURL(getParameter(KEY_URL), getParameter(KEY_PLUGIN_ID));
 
-        else if (action.equals(RUN_ACTION))
-            // run an Intro action. Get the pluginId and the class keys. Pass
-            // the parameters and the standby state.
-            return runAction(getParameter(KEY_PLUGIN_ID),
-                getParameter(KEY_CLASS), parameters, getParameter(KEY_STANDBY));
+		else if (action.equals(RUN_ACTION))
+			// run an Intro action. Get the pluginId and the class keys. Pass
+			// the parameters and the standby state.
+			return runAction(getParameter(KEY_PLUGIN_ID),
+				getParameter(KEY_CLASS), parameters, getParameter(KEY_STANDBY));
 
-        else if (action.equals(EXECUTE))
+		else if (action.equals(EXECUTE))
 			// execute a serialized command
 			return executeCommand(getParameter(KEY_COMAND), getParameter(KEY_STANDBY));
 
-        else if (action.equals(SHOW_PAGE))
-            // display an Intro Page.
-            return showPage(getParameter(KEY_ID), getParameter(KEY_STANDBY));
+		else if (action.equals(SHOW_PAGE))
+			// display an Intro Page.
+			return showPage(getParameter(KEY_ID), getParameter(KEY_STANDBY));
 
-        else if (action.equals(SHOW_MESSAGE))
-            return showMessage(getParameter(KEY_MESSAGE));
+		else if (action.equals(SHOW_MESSAGE))
+			return showMessage(getParameter(KEY_MESSAGE));
 
-        else if (action.equals(NAVIGATE))
-            return navigate(getParameter(KEY_DIRECTION));
+		else if (action.equals(NAVIGATE))
+			return navigate(getParameter(KEY_DIRECTION));
 
-        else if (action.equals(SWITCH_TO_LAUNCH_BAR))
-            return switchToLaunchBar();
+		else if (action.equals(SWITCH_TO_LAUNCH_BAR))
+			return switchToLaunchBar();
 
-        else
-            return handleCustomAction();
-    }
+		else
+			return handleCustomAction();
+	}
 
 
-    private boolean closeIntro() {
-        // Relies on Workbench.
-        return IntroPlugin.closeIntro();
-    }
+	private boolean closeIntro() {
+		// Relies on Workbench.
+		return IntroPlugin.closeIntro();
+	}
 
-    /**
-     * Sets the into part to standby, and shows the passed standby part, with
-     * the given input. Forces the Intro view to open, if not yet created.
-     *
-     * @param partId
-     * @param input
-     */
-    private boolean handleStandbyState(String partId, String input) {
-        // set intro to standby mode. we know we have a customizable part.
-        CustomizableIntroPart introPart = (CustomizableIntroPart) IntroPlugin
-            .getIntro();
-        if (introPart == null)
-            introPart = (CustomizableIntroPart) IntroPlugin.showIntro(true);
-        // store the flag to indicate that standbypart is needed.
-        introPart.getControl().setData(IIntroConstants.SHOW_STANDBY_PART,
-            VALUE_TRUE);
-        IntroPlugin.setIntroStandby(true);
-        StandbyPart standbyPart = introPart
-            .getAdapter(StandbyPart.class);
+	/**
+	 * Sets the into part to standby, and shows the passed standby part, with
+	 * the given input. Forces the Intro view to open, if not yet created.
+	 *
+	 * @param partId
+	 * @param input
+	 */
+	private boolean handleStandbyState(String partId, String input) {
+		// set intro to standby mode. we know we have a customizable part.
+		CustomizableIntroPart introPart = (CustomizableIntroPart) IntroPlugin
+			.getIntro();
+		if (introPart == null)
+			introPart = (CustomizableIntroPart) IntroPlugin.showIntro(true);
+		// store the flag to indicate that standbypart is needed.
+		introPart.getControl().setData(IIntroConstants.SHOW_STANDBY_PART,
+			VALUE_TRUE);
+		IntroPlugin.setIntroStandby(true);
+		StandbyPart standbyPart = introPart
+			.getAdapter(StandbyPart.class);
 
-        // We may not have a valid partId or we might fail to instantiate part or
-        // create the part content. An empty part will be shown. Signal failure.
-        return standbyPart != null && standbyPart.showContentPart(partId, input);
-    }
+		// We may not have a valid partId or we might fail to instantiate part or
+		// create the part content. An empty part will be shown. Signal failure.
+		return standbyPart != null && standbyPart.showContentPart(partId, input);
+	}
 
-    /**
+	/**
 	 * Set the Workbench Intro Part state. Forces the Intro view to open, if not yet created.
 	 *
 	 * Historically this value was "true" (show standby) or "false" (show normal). In Neon we add
@@ -254,9 +254,9 @@
 	 * @param state
 	 * @return true if the intro was shown, or false if the intro could not be shown
 	 */
-    private boolean setStandbyState(String state) {
-        if (state == null)
-            return false;
+	private boolean setStandbyState(String state) {
+		if (state == null)
+			return false;
 		if (state.equals(VALUE_CLOSE)) {
 			return IntroPlugin.closeIntro();
 		} else if (state.equals(VALUE_LAUNCHBAR)) {
@@ -264,58 +264,58 @@
 		}
 		boolean standby = state.equals(VALUE_TRUE) || state.equals(VALUE_STANDBY);
 
-        IIntroPart introPart = IntroPlugin.showIntro(standby);
-        if (introPart == null)
-            return false;
-        return true;
-    }
+		IIntroPart introPart = IntroPlugin.showIntro(standby);
+		if (introPart == null)
+			return false;
+		return true;
+	}
 
 
-    /**
-     * Run an action
-     */
-    private boolean runAction(String pluginId, String className,
-            Properties parameters, String standbyState) {
+	/**
+	 * Run an action
+	 */
+	private boolean runAction(String pluginId, String className,
+			Properties parameters, String standbyState) {
 
-        Object actionObject = ModelLoaderUtil.createClassInstance(pluginId,
-            className);
-        try {
-            if (actionObject instanceof IIntroAction) {
-                IIntroAction introAction = (IIntroAction) actionObject;
-                IIntroSite site = IntroPlugin.getDefault().getIntroModelRoot()
-                    .getPresentation().getIntroPart().getIntroSite();
-                introAction.run(site, parameters);
-            } else if (actionObject instanceof IAction) {
-                IAction action = (IAction) actionObject;
-                action.run();
+		Object actionObject = ModelLoaderUtil.createClassInstance(pluginId,
+			className);
+		try {
+			if (actionObject instanceof IIntroAction) {
+				IIntroAction introAction = (IIntroAction) actionObject;
+				IIntroSite site = IntroPlugin.getDefault().getIntroModelRoot()
+					.getPresentation().getIntroPart().getIntroSite();
+				introAction.run(site, parameters);
+			} else if (actionObject instanceof IAction) {
+				IAction action = (IAction) actionObject;
+				action.run();
 
-            } else if (actionObject instanceof IActionDelegate) {
-                final IActionDelegate delegate = (IActionDelegate) actionObject;
-                if (delegate instanceof IWorkbenchWindowActionDelegate)
-                    ((IWorkbenchWindowActionDelegate) delegate).init(PlatformUI
-                        .getWorkbench().getActiveWorkbenchWindow());
-                Action proxy = new Action(this.action) {
+			} else if (actionObject instanceof IActionDelegate) {
+				final IActionDelegate delegate = (IActionDelegate) actionObject;
+				if (delegate instanceof IWorkbenchWindowActionDelegate)
+					((IWorkbenchWindowActionDelegate) delegate).init(PlatformUI
+						.getWorkbench().getActiveWorkbenchWindow());
+				Action proxy = new Action(this.action) {
 
-                    @Override
+					@Override
 					public void run() {
-                        delegate.run(this);
-                    }
-                };
-                proxy.run();
-            } else
-                // we could not create the class.
-                return false;
-            // ran action successfully. Now set intro intro standby if needed.
-            if (standbyState == null)
-                return true;
-            return setStandbyState(standbyState);
-        } catch (Exception e) {
-            Log.error("Could not run action: " + className, e); //$NON-NLS-1$
-            return false;
-        }
-    }
+						delegate.run(this);
+					}
+				};
+				proxy.run();
+			} else
+				// we could not create the class.
+				return false;
+			// ran action successfully. Now set intro intro standby if needed.
+			if (standbyState == null)
+				return true;
+			return setStandbyState(standbyState);
+		} catch (Exception e) {
+			Log.error("Could not run action: " + className, e); //$NON-NLS-1$
+			return false;
+		}
+	}
 
-    /**
+	/**
 	 * Executes a serialized <code>ParameterizedCommand</code>. Uses
 	 * {@link ICommandService#deserialize(String)} to convert the <code>command</code> argument
 	 * into the parameterized command.
@@ -342,14 +342,14 @@
 		}
 	}
 
-    private ICommandService getCommandService() {
+	private ICommandService getCommandService() {
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
 			Object serviceObject = wb.getAdapter(ICommandService.class);
-		    if (serviceObject != null) {
-			    ICommandService service = (ICommandService)serviceObject;
-			    return service;
-		    }
+			if (serviceObject != null) {
+				ICommandService service = (ICommandService)serviceObject;
+				return service;
+			}
 		}
 		return null;
 	}
@@ -358,307 +358,307 @@
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
 			Object serviceObject = wb.getAdapter(IHandlerService.class);
-		    if (serviceObject != null) {
-			    IHandlerService service = (IHandlerService)serviceObject;
-			    return service;
-		    }
+			if (serviceObject != null) {
+				IHandlerService service = (IHandlerService)serviceObject;
+				return service;
+			}
 		}
 		return null;
 	}
 
-    /**
-     * Open a help topic. If embed="true", open the help href as an intro page.
-     * If false, open the href in the Help system window. If embedTarget is set,
-     * then the Help System topic is embedded instead of the content of the
-     * specified div.<br>
-     * In the case of SWT presentation, embedd flag is ignored and the topic is
-     * opened in the Help system window.
-     */
-    private boolean showHelpTopic(String href, String embed, String embedTarget) {
-        return new ShowHelpURLHandler(this).showHelpTopic(href, embed,
-            embedTarget);
-    }
+	/**
+	 * Open a help topic. If embed="true", open the help href as an intro page.
+	 * If false, open the href in the Help system window. If embedTarget is set,
+	 * then the Help System topic is embedded instead of the content of the
+	 * specified div.<br>
+	 * In the case of SWT presentation, embedd flag is ignored and the topic is
+	 * opened in the Help system window.
+	 */
+	private boolean showHelpTopic(String href, String embed, String embedTarget) {
+		return new ShowHelpURLHandler(this).showHelpTopic(href, embed,
+			embedTarget);
+	}
 
 
 
-    /**
-     * Open the help system.
-     */
-    private boolean showHelp() {
-        PlatformUI.getWorkbench().getHelpSystem().displayHelp();
-        return true;
-    }
+	/**
+	 * Open the help system.
+	 */
+	private boolean showHelp() {
+		PlatformUI.getWorkbench().getHelpSystem().displayHelp();
+		return true;
+	}
 
-    /**
-     * Launch external browser.
-     */
-    private boolean openBrowser(String url, String pluginId) {
-        // no need to decode url because we will create another url from this
-        // url anyway. Resolve the url just in case we are trying to load a
-        // plugin relative file.
-        url = ModelUtil.resolveURL(url, pluginId);
-        return Util.openBrowser(url);
-    }
+	/**
+	 * Launch external browser.
+	 */
+	private boolean openBrowser(String url, String pluginId) {
+		// no need to decode url because we will create another url from this
+		// url anyway. Resolve the url just in case we are trying to load a
+		// plugin relative file.
+		url = ModelUtil.resolveURL(url, pluginId);
+		return Util.openBrowser(url);
+	}
 
 
-    /**
-     * Show a URL in an intro page. This is the embedded version of the intro
-     * action openBrowser(). It is useful when trying to show an html file
-     * relative to another plugin. When the presentation is UI forms
-     * presentation, this call behaves exactly as the openBrowser intro action.
-     */
+	/**
+	 * Show a URL in an intro page. This is the embedded version of the intro
+	 * action openBrowser(). It is useful when trying to show an html file
+	 * relative to another plugin. When the presentation is UI forms
+	 * presentation, this call behaves exactly as the openBrowser intro action.
+	 */
 
-    private boolean openURL(String url, String pluginId) {
-        IntroModelRoot model = IntroPlugin.getDefault().getIntroModelRoot();
-        String presentationStyle = model.getPresentation()
-            .getImplementationKind();
+	private boolean openURL(String url, String pluginId) {
+		IntroModelRoot model = IntroPlugin.getDefault().getIntroModelRoot();
+		String presentationStyle = model.getPresentation()
+			.getImplementationKind();
 
-        if (presentationStyle.equals(IntroPartPresentation.BROWSER_IMPL_KIND)) {
-            // HTML presentation
-            url = ModelUtil.resolveURL(url, pluginId);
-            BrowserIntroPartImplementation impl = (BrowserIntroPartImplementation) IntroPlugin
-                .getDefault().getIntroModelRoot().getPresentation()
-                .getIntroPartImplementation();
-            Browser browser = impl.getBrowser();
-            return browser.setUrl(url);
-        }
-        // SWT presentation.
+		if (presentationStyle.equals(IntroPartPresentation.BROWSER_IMPL_KIND)) {
+			// HTML presentation
+			url = ModelUtil.resolveURL(url, pluginId);
+			BrowserIntroPartImplementation impl = (BrowserIntroPartImplementation) IntroPlugin
+				.getDefault().getIntroModelRoot().getPresentation()
+				.getIntroPartImplementation();
+			Browser browser = impl.getBrowser();
+			return browser.setUrl(url);
+		}
+		// SWT presentation.
 		return openBrowser(url, pluginId);
-    }
+	}
 
 
-    private boolean showMessage(String message) {
-        if (message == null)
-            return false;
-        DialogUtil.displayInfoMessage(null, message);
-        return true;
-    }
+	private boolean showMessage(String message) {
+		if (message == null)
+			return false;
+		DialogUtil.displayInfoMessage(null, message);
+		return true;
+	}
 
-    /**
-     * Display an Intro Page.
-     * <p>
-     * INTRO: revisit picking first page.
-     */
-    boolean showPage(String pageId, String standbyState) {
-        // set the current page id in the model. This will trigger appropriate
-        // listener event to the UI. If setting the page in the model fails (ie:
-        // the page was not found in the current model, look for it in loaded
-        // models. return false if failed.
-        // avoid flicker.
-        CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
-            .getIntro();
-        currentIntroPart.getControl().setRedraw(false);
+	/**
+	 * Display an Intro Page.
+	 * <p>
+	 * INTRO: revisit picking first page.
+	 */
+	boolean showPage(String pageId, String standbyState) {
+		// set the current page id in the model. This will trigger appropriate
+		// listener event to the UI. If setting the page in the model fails (ie:
+		// the page was not found in the current model, look for it in loaded
+		// models. return false if failed.
+		// avoid flicker.
+		CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
+			.getIntro();
+		currentIntroPart.getControl().setRedraw(false);
 
-        IntroModelRoot modelRoot = IntroPlugin.getDefault().getIntroModelRoot();
-        boolean success = modelRoot.setCurrentPageId(pageId);
-        if (!success)
-            success = includePageToShow(modelRoot, pageId);
+		IntroModelRoot modelRoot = IntroPlugin.getDefault().getIntroModelRoot();
+		boolean success = modelRoot.setCurrentPageId(pageId);
+		if (!success)
+			success = includePageToShow(modelRoot, pageId);
 
-        // we turned drawing off. Turn it on again.
-        currentIntroPart.getControl().setRedraw(true);
+		// we turned drawing off. Turn it on again.
+		currentIntroPart.getControl().setRedraw(true);
 
-        if (success) {
-            // found page. Set the history
-            modelRoot.getPresentation().updateHistory(
-                modelRoot.getCurrentPage());
-            // ran action successfully. Now set intro intro standby if needed.
-            if (standbyState == null)
-                return true;
-            return setStandbyState(standbyState);
-        }
-        // could not find referenced page.
-        return false;
-    }
+		if (success) {
+			// found page. Set the history
+			modelRoot.getPresentation().updateHistory(
+				modelRoot.getCurrentPage());
+			// ran action successfully. Now set intro intro standby if needed.
+			if (standbyState == null)
+				return true;
+			return setStandbyState(standbyState);
+		}
+		// could not find referenced page.
+		return false;
+	}
 
-    /**
-     * Finds the target page and includes it in passed model.
-     *
-     * @param pageId
-     * @return
-     */
-    private boolean includePageToShow(IntroModelRoot model, String pageId) {
-        AbstractIntroPage page = findPageToShow(pageId);
-        if (page == null) {
-            Log.warning("Could not find an Intro page with id=" + pageId); //$NON-NLS-1$
-            return false;
-        }
-        // now clone the target page because original model should be kept
-        // intact. Resolve target page first to resolve its includes
-        // properly. Insert presentation shared style at the top of the shared
-        // styles list because once reparented, the shared style is lost.
-        // Finally, add clone page to current model.
-        page.getChildren();
-        // current kind.
-        String currentPresentationKind = model.getPresentation()
-            .getImplementationKind();
-        // load shared style corresponding to same presentation kind from target
-        // model.
-        IntroPartPresentation targetPresentation = ((IntroModelRoot) page
-            .getParent()).getPresentation();
-        String targetSharedStyle = targetPresentation
-            .getSharedStyle(currentPresentationKind);
-        // clone.
-        AbstractIntroPage clonedPage = null;
-        try {
-            clonedPage = (AbstractIntroPage) page.clone();
-        } catch (CloneNotSupportedException ex) {
-            // should never be here.
-            Log.error("Failed to clone Intro model node.", ex); //$NON-NLS-1$
-            return false;
-        }
-        // reparent cloned target to current model.
-        clonedPage.setParent(model);
-        // REVISIT: SWT presentation does not support multiple shared
-        // styles.
-        if (targetSharedStyle != null)
-            // add target model shared style.
-            clonedPage.insertStyle(targetSharedStyle, 0);
-        model.addChild(clonedPage);
-        return model.setCurrentPageId(clonedPage.getId());
-    }
+	/**
+	 * Finds the target page and includes it in passed model.
+	 *
+	 * @param pageId
+	 * @return
+	 */
+	private boolean includePageToShow(IntroModelRoot model, String pageId) {
+		AbstractIntroPage page = findPageToShow(pageId);
+		if (page == null) {
+			Log.warning("Could not find an Intro page with id=" + pageId); //$NON-NLS-1$
+			return false;
+		}
+		// now clone the target page because original model should be kept
+		// intact. Resolve target page first to resolve its includes
+		// properly. Insert presentation shared style at the top of the shared
+		// styles list because once reparented, the shared style is lost.
+		// Finally, add clone page to current model.
+		page.getChildren();
+		// current kind.
+		String currentPresentationKind = model.getPresentation()
+			.getImplementationKind();
+		// load shared style corresponding to same presentation kind from target
+		// model.
+		IntroPartPresentation targetPresentation = ((IntroModelRoot) page
+			.getParent()).getPresentation();
+		String targetSharedStyle = targetPresentation
+			.getSharedStyle(currentPresentationKind);
+		// clone.
+		AbstractIntroPage clonedPage = null;
+		try {
+			clonedPage = (AbstractIntroPage) page.clone();
+		} catch (CloneNotSupportedException ex) {
+			// should never be here.
+			Log.error("Failed to clone Intro model node.", ex); //$NON-NLS-1$
+			return false;
+		}
+		// reparent cloned target to current model.
+		clonedPage.setParent(model);
+		// REVISIT: SWT presentation does not support multiple shared
+		// styles.
+		if (targetSharedStyle != null)
+			// add target model shared style.
+			clonedPage.insertStyle(targetSharedStyle, 0);
+		model.addChild(clonedPage);
+		return model.setCurrentPageId(clonedPage.getId());
+	}
 
 
-    /**
-     * Searches all loaded models for the first page with the given id.
-     *
-     * @param pageId
-     * @return
-     */
-    private AbstractIntroPage findPageToShow(String pageId) {
+	/**
+	 * Searches all loaded models for the first page with the given id.
+	 *
+	 * @param pageId
+	 * @return
+	 */
+	private AbstractIntroPage findPageToShow(String pageId) {
 		// check all cached models.
 		for (IntroModelRoot model : ExtensionPointManager.getInst().getIntroModels().values()) {
-            AbstractIntroPage page = (AbstractIntroPage) model.findChild(
-                pageId, AbstractIntroElement.ABSTRACT_PAGE);
-            if (page != null)
-                return page;
-        }
-        // could not find page in any model.
-        return null;
-    }
+			AbstractIntroPage page = (AbstractIntroPage) model.findChild(
+				pageId, AbstractIntroElement.ABSTRACT_PAGE);
+			if (page != null)
+				return page;
+		}
+		// could not find page in any model.
+		return null;
+	}
 
-    /**
-     * Navigate foward in the presentation, whichever one it is.
-     *
-     * @return
-     */
-    private boolean navigate(String direction) {
-        // set intro to standby mode. we know we have a customizable part.
-        CustomizableIntroPart introPart = (CustomizableIntroPart) IntroPlugin
-            .getIntro();
-        if (introPart == null)
-            // intro is closed. Do nothing.
-            return false;
+	/**
+	 * Navigate foward in the presentation, whichever one it is.
+	 *
+	 * @return
+	 */
+	private boolean navigate(String direction) {
+		// set intro to standby mode. we know we have a customizable part.
+		CustomizableIntroPart introPart = (CustomizableIntroPart) IntroPlugin
+			.getIntro();
+		if (introPart == null)
+			// intro is closed. Do nothing.
+			return false;
 
-        IntroPartPresentation presentation = introPart
-            .getAdapter(IntroPartPresentation.class);
+		IntroPartPresentation presentation = introPart
+			.getAdapter(IntroPartPresentation.class);
 
-        if (direction.equalsIgnoreCase(VALUE_BACKWARD))
-            return presentation.navigateBackward();
-        else if (direction.equalsIgnoreCase(VALUE_FORWARD))
-            return presentation.navigateForward();
-        else if (direction.equalsIgnoreCase(VALUE_HOME))
-            return presentation.navigateHome();
-        return false;
-    }
+		if (direction.equalsIgnoreCase(VALUE_BACKWARD))
+			return presentation.navigateBackward();
+		else if (direction.equalsIgnoreCase(VALUE_FORWARD))
+			return presentation.navigateForward();
+		else if (direction.equalsIgnoreCase(VALUE_HOME))
+			return presentation.navigateHome();
+		return false;
+	}
 
 
-    /**
-     * @return Returns the action imbedded in this URL.
-     */
-    @Override
+	/**
+	 * @return Returns the action imbedded in this URL.
+	 */
+	@Override
 	public String getAction() {
-        return action;
-    }
+		return action;
+	}
 
-    /**
-     * Return a parameter defined in the Intro URL. Returns null if the
-     * parameter is not defined. If this intro url has a decode=true parameter,
-     * then all parameters are returned decoded using UTF-8.
-     *
-     * @param parameterId
-     * @return
-     */
-    @Override
+	/**
+	 * Return a parameter defined in the Intro URL. Returns null if the
+	 * parameter is not defined. If this intro url has a decode=true parameter,
+	 * then all parameters are returned decoded using UTF-8.
+	 *
+	 * @param parameterId
+	 * @return
+	 */
+	@Override
 	public String getParameter(String parameterId) {
-        // make sure to decode only on return, since we may need to recreate the
-        // url when handling custom urls.
-        String value = parameters.getProperty(parameterId);
-        String decode = parameters.getProperty(KEY_DECODE);
+		// make sure to decode only on return, since we may need to recreate the
+		// url when handling custom urls.
+		String value = parameters.getProperty(parameterId);
+		String decode = parameters.getProperty(KEY_DECODE);
 
-        if (value != null)
-            try {
-                if (decode!=null && decode.equalsIgnoreCase(VALUE_TRUE))
-                    // we are told to decode the parameters of the url through
-                    // the decode parameter. Assume that parameters are
-                    // UTF-8 encoded.
-                    return StringUtil.decode(value, "UTF-8"); //$NON-NLS-1$
-                return value;
-            } catch (Exception e) {
-                // should never be here.
-                Log.error("Failed to decode URL: " + parameterId, e); //$NON-NLS-1$
-            }
-        return value;
-    }
+		if (value != null)
+			try {
+				if (decode!=null && decode.equalsIgnoreCase(VALUE_TRUE))
+					// we are told to decode the parameters of the url through
+					// the decode parameter. Assume that parameters are
+					// UTF-8 encoded.
+					return StringUtil.decode(value, "UTF-8"); //$NON-NLS-1$
+				return value;
+			} catch (Exception e) {
+				// should never be here.
+				Log.error("Failed to decode URL: " + parameterId, e); //$NON-NLS-1$
+			}
+		return value;
+	}
 
-    private boolean handleCustomAction() {
-        IntroURLAction command = ExtensionPointManager.getInst()
-            .getSharedConfigExtensionsManager().getCommand(action);
-        if (command == null) {
-            String message = Messages.IntroURL_badCommand;
-            DialogUtil.displayInfoMessage(null, message,
-                new Object[] { action });
-            return false;
-        }
+	private boolean handleCustomAction() {
+		IntroURLAction command = ExtensionPointManager.getInst()
+			.getSharedConfigExtensionsManager().getCommand(action);
+		if (command == null) {
+			String message = Messages.IntroURL_badCommand;
+			DialogUtil.displayInfoMessage(null, message,
+				new Object[] { action });
+			return false;
+		}
 
-        // custom command. execute it.
-        StringBuilder url = new StringBuilder();
-        url.append("http://org.eclipse.ui.intro/"); //$NON-NLS-1$
-        url.append(command.getReplaceValue().trim());
-        if (!command.getReplaceValue().contains("?")) //$NON-NLS-1$
-            // command does not have parameters.
-            url.append("?"); //$NON-NLS-1$
-        else
-            // command already has parameters.
-            url.append("&"); //$NON-NLS-1$
-        url.append(retrieveInitialQuery());
-        IIntroURL introURL = IntroURLFactory.createIntroURL(url.toString());
-        if (introURL != null)
-            return introURL.execute();
-        return false;
-    }
+		// custom command. execute it.
+		StringBuilder url = new StringBuilder();
+		url.append("http://org.eclipse.ui.intro/"); //$NON-NLS-1$
+		url.append(command.getReplaceValue().trim());
+		if (!command.getReplaceValue().contains("?")) //$NON-NLS-1$
+			// command does not have parameters.
+			url.append("?"); //$NON-NLS-1$
+		else
+			// command already has parameters.
+			url.append("&"); //$NON-NLS-1$
+		url.append(retrieveInitialQuery());
+		IIntroURL introURL = IntroURLFactory.createIntroURL(url.toString());
+		if (introURL != null)
+			return introURL.execute();
+		return false;
+	}
 
 
-    /**
-     * Recreate the initial query passed to this URL.
-     *
-     * @return
-     */
-    private String retrieveInitialQuery() {
-        StringBuilder query = new StringBuilder();
-        Enumeration keys = parameters.keys();
-        while (keys.hasMoreElements()) {
-            String key = (String) keys.nextElement();
-            query.append(key);
-            query.append("="); //$NON-NLS-1$
-            query.append(parameters.get(key));
-            if (keys.hasMoreElements())
-                query.append("&"); //$NON-NLS-1$
-        }
-        return query.toString();
-    }
+	/**
+	 * Recreate the initial query passed to this URL.
+	 *
+	 * @return
+	 */
+	private String retrieveInitialQuery() {
+		StringBuilder query = new StringBuilder();
+		Enumeration keys = parameters.keys();
+		while (keys.hasMoreElements()) {
+			String key = (String) keys.nextElement();
+			query.append(key);
+			query.append("="); //$NON-NLS-1$
+			query.append(parameters.get(key));
+			if (keys.hasMoreElements())
+				query.append("&"); //$NON-NLS-1$
+		}
+		return query.toString();
+	}
 
 
-    private boolean switchToLaunchBar() {
-        IIntroPart intro = PlatformUI.getWorkbench().getIntroManager()
-            .getIntro();
-        if (intro == null)
-            return false;
+	private boolean switchToLaunchBar() {
+		IIntroPart intro = PlatformUI.getWorkbench().getIntroManager()
+			.getIntro();
+		if (intro == null)
+			return false;
 
-        CustomizableIntroPart cpart = (CustomizableIntroPart) intro;
-        IntroModelRoot modelRoot = IntroPlugin.getDefault().getIntroModelRoot();
-        Rectangle bounds = cpart.getControl().getBounds();
-        Rectangle startBounds = Geometry.toDisplay(cpart.getControl()
-            .getParent(), bounds);
+		CustomizableIntroPart cpart = (CustomizableIntroPart) intro;
+		IntroModelRoot modelRoot = IntroPlugin.getDefault().getIntroModelRoot();
+		Rectangle bounds = cpart.getControl().getBounds();
+		Rectangle startBounds = Geometry.toDisplay(cpart.getControl()
+			.getParent(), bounds);
 
 		IntroLaunchBarElement launchBarElement = modelRoot.getPresentation().getLaunchBarElement();
 		if (launchBarElement == null)
@@ -666,13 +666,13 @@
 		IWorkbenchWindow window = intro.getIntroSite().getWorkbenchWindow();
 		IntroLaunchBar launchBar = IntroLaunchBar.create(window, modelRoot, launchBarElement);
 
-        PlatformUI.getWorkbench().getIntroManager().setIntroStandby(intro, true);
+		PlatformUI.getWorkbench().getIntroManager().setIntroStandby(intro, true);
 
-        closeIntro();
-        Rectangle endBounds = Geometry.toDisplay(launchBar.getControl()
-            .getParent(), launchBar.getControl().getBounds());
+		closeIntro();
+		Rectangle endBounds = Geometry.toDisplay(launchBar.getControl()
+			.getParent(), launchBar.getControl().getBounds());
 
 		AnimationEngine.createTweakedAnimation(window.getShell(), 400, startBounds, endBounds);
-        return true;
-    }
+		return true;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURLParser.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURLParser.java
index 19fbfb6..7ff9550 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURLParser.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURLParser.java
@@ -27,159 +27,159 @@
  */
 public class IntroURLParser {
 
-    // private String url_string = null;
-    private boolean hasProtocol = false;
-    private boolean isIntroUrl = false;
+	// private String url_string = null;
+	private boolean hasProtocol = false;
+	private boolean isIntroUrl = false;
 
-    private URL url_inst;
+	private URL url_inst;
 
-    /**
-     * Constructor that gets the URL to parse.
-     */
-    public IntroURLParser(String url) {
-        // create a URL instance, and parser it for parameters.
-        parseUrl(url);
-    }
+	/**
+	 * Constructor that gets the URL to parse.
+	 */
+	public IntroURLParser(String url) {
+		// create a URL instance, and parser it for parameters.
+		parseUrl(url);
+	}
 
-    private void parseUrl(String url) {
-        if (url == null)
-            return;
-        url_inst = null;
-        try {
-            url_inst = new URL(url);
-        } catch (MalformedURLException e) {
-            // not a valid URL. set state.
-            return;
-        }
+	private void parseUrl(String url) {
+		if (url == null)
+			return;
+		url_inst = null;
+		try {
+			url_inst = new URL(url);
+		} catch (MalformedURLException e) {
+			// not a valid URL. set state.
+			return;
+		}
 
-        if (url_inst.getProtocol() != null) {
-            // URL has some valid protocol. Check to see if it is an intro url.
-            hasProtocol = true;
-            isIntroUrl = isIntroUrl(url_inst);
-            return;
-        }
+		if (url_inst.getProtocol() != null) {
+			// URL has some valid protocol. Check to see if it is an intro url.
+			hasProtocol = true;
+			isIntroUrl = isIntroUrl(url_inst);
+			return;
+		}
 
-        // not an Intro URL. do nothing.
-        return;
-    }
+		// not an Intro URL. do nothing.
+		return;
+	}
 
 
-    /**
-     * @return Returns the hasProtocol.
-     */
-    public boolean hasProtocol() {
-        return hasProtocol;
-    }
+	/**
+	 * @return Returns the hasProtocol.
+	 */
+	public boolean hasProtocol() {
+		return hasProtocol;
+	}
 
-    /**
-     * @return Returns the isIntroUrl.
-     */
-    public boolean hasIntroUrl() {
-        return isIntroUrl;
-    }
+	/**
+	 * @return Returns the isIntroUrl.
+	 */
+	public boolean hasIntroUrl() {
+		return isIntroUrl;
+	}
 
 
-    /**
-     * @return Returns the currebt url Protocol.
-     */
-    public String getProtocol() {
-        return url_inst.getProtocol();
-    }
+	/**
+	 * @return Returns the currebt url Protocol.
+	 */
+	public String getProtocol() {
+		return url_inst.getProtocol();
+	}
 
 
-    /**
-     * @return Returns the currebt url Protocol.
-     */
-    public String getHost() {
-        return url_inst.getHost();
-    }
+	/**
+	 * @return Returns the currebt url Protocol.
+	 */
+	public String getHost() {
+		return url_inst.getHost();
+	}
 
 
-    /**
-     * Checks to see if tha passed URL is an Intro URL. An intro URL is an http
-     * URL that has the intro plugin id as a host. eg:
-     * "http://org.eclipse.ui.intro/test".
-     *
-     * @param url
-     * @return true if url is an intro URL.
-     */
-    private boolean isIntroUrl(URL url) {
-        if (!url.getProtocol().equalsIgnoreCase(IntroURL.INTRO_PROTOCOL))
-            // quick exit. If it is not http, url is not an Intro url.
-            return false;
+	/**
+	 * Checks to see if tha passed URL is an Intro URL. An intro URL is an http
+	 * URL that has the intro plugin id as a host. eg:
+	 * "http://org.eclipse.ui.intro/test".
+	 *
+	 * @param url
+	 * @return true if url is an intro URL.
+	 */
+	private boolean isIntroUrl(URL url) {
+		if (!url.getProtocol().equalsIgnoreCase(IntroURL.INTRO_PROTOCOL))
+			// quick exit. If it is not http, url is not an Intro url.
+			return false;
 
-        if (url.getHost().equalsIgnoreCase(IntroURL.INTRO_HOST_ID))
-            return true;
+		if (url.getHost().equalsIgnoreCase(IntroURL.INTRO_HOST_ID))
+			return true;
 
-        return false;
-    }
+		return false;
+	}
 
 
 
-    /**
-     * @return Returns the introURL. Will be null if the parsed URL is not an
-     *         Intro URL.
-     */
-    public IntroURL getIntroURL() {
-        IntroURL introURL = null;
-        if (isIntroUrl) {
-            // valid intro URL. Extract the action and parameters.
-            String action = getPathAsAction(url_inst);
-            Properties parameters = getQueryParameters(url_inst);
+	/**
+	 * @return Returns the introURL. Will be null if the parsed URL is not an
+	 *         Intro URL.
+	 */
+	public IntroURL getIntroURL() {
+		IntroURL introURL = null;
+		if (isIntroUrl) {
+			// valid intro URL. Extract the action and parameters.
+			String action = getPathAsAction(url_inst);
+			Properties parameters = getQueryParameters(url_inst);
 
-            // class instance vars are already populated by now.
-            introURL = new IntroURL(action, parameters);
-        }
-        return introURL;
-    }
+			// class instance vars are already populated by now.
+			introURL = new IntroURL(action, parameters);
+		}
+		return introURL;
+	}
 
 
 
-    /**
-     * Retruns the path attribute of the passed URL, stripped out of the leading
-     * "/". Returns null if the url does not have a path.
-     *
-     * @param url
-     * @return
-     */
-    private String getPathAsAction(URL url) {
-        // get possible action.
-        String action = url.getPath();
-        // remove leading "/" from path.
-        if (action != null)
-            action = action.substring(1);
-        return action;
-    }
+	/**
+	 * Retruns the path attribute of the passed URL, stripped out of the leading
+	 * "/". Returns null if the url does not have a path.
+	 *
+	 * @param url
+	 * @return
+	 */
+	private String getPathAsAction(URL url) {
+		// get possible action.
+		String action = url.getPath();
+		// remove leading "/" from path.
+		if (action != null)
+			action = action.substring(1);
+		return action;
+	}
 
-    /**
-     * Retruns the Query part of the URL as an instance of a Properties class.
-     *
-     * @param url
-     * @return
-     */
-    public Properties getQueryParameters(URL url) {
-        // parser all query parameters.
-        Properties properties = new Properties();
-        String query = url.getQuery();
-        if (query == null)
-            // we do not have any parameters in this URL, return an empty
-            // Properties instance.
-            return properties;
+	/**
+	 * Retruns the Query part of the URL as an instance of a Properties class.
+	 *
+	 * @param url
+	 * @return
+	 */
+	public Properties getQueryParameters(URL url) {
+		// parser all query parameters.
+		Properties properties = new Properties();
+		String query = url.getQuery();
+		if (query == null)
+			// we do not have any parameters in this URL, return an empty
+			// Properties instance.
+			return properties;
 
-        // now extract the key/value pairs from the query.
-        String[] params = query.split("&"); //$NON-NLS-1$
-        for (int i = 0; i < params.length; i++) {
-            // for every parameter, ie: key=value pair, create a property
-            // entry. we know we have the key as the first string in the array,
-            // and the value as the second array.
-            String[] keyValuePair = params[i].split("="); //$NON-NLS-1$
-            if (keyValuePair.length != 2) {
-                Log.warning("Ignoring the following Intro URL parameter: " //$NON-NLS-1$
-                        + params[i]);
-                continue;
-            }
+		// now extract the key/value pairs from the query.
+		String[] params = query.split("&"); //$NON-NLS-1$
+		for (int i = 0; i < params.length; i++) {
+			// for every parameter, ie: key=value pair, create a property
+			// entry. we know we have the key as the first string in the array,
+			// and the value as the second array.
+			String[] keyValuePair = params[i].split("="); //$NON-NLS-1$
+			if (keyValuePair.length != 2) {
+				Log.warning("Ignoring the following Intro URL parameter: " //$NON-NLS-1$
+						+ params[i]);
+				continue;
+			}
 
-            String key = urlDecode(keyValuePair[0]);
+			String key = urlDecode(keyValuePair[0]);
 			if (key == null) {
 				Log.warning("Failed to URL decode key: " + keyValuePair[0]); //$NON-NLS-1$
 				continue;
@@ -191,13 +191,13 @@
 				continue;
 			}
 
-            properties.setProperty(key, value);
-        }
-        return properties;
-    }
+			properties.setProperty(key, value);
+		}
+		return properties;
+	}
 
 
-    /*
+	/*
 	 * Note: This was copied and adapted from org.eclipse.help.internal.util.URLCoder
 	 */
 	private static String urlDecode(String encodedURL) {
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/ShowHelpURLHandler.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/ShowHelpURLHandler.java
index 97b30e5..5eb1d31 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/ShowHelpURLHandler.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/ShowHelpURLHandler.java
@@ -25,109 +25,109 @@
 import org.eclipse.ui.internal.intro.impl.util.Log;
 
 public class ShowHelpURLHandler {
-    private IntroURL introURL = null;
+	private IntroURL introURL = null;
 
-    ShowHelpURLHandler(IntroURL url) {
-        this.introURL = url;
-    }
+	ShowHelpURLHandler(IntroURL url) {
+		this.introURL = url;
+	}
 
 
 
-    public boolean showHelpTopic(String href, String embed, String embedTarget) {
-        if (href == null)
-            return false;
+	public boolean showHelpTopic(String href, String embed, String embedTarget) {
+		if (href == null)
+			return false;
 
-        boolean isEmbedded = (embed != null && embed
-            .equals(IntroURL.VALUE_TRUE)) ? true : false;
-        if (isEmbedded == false)
-            // still false, check the embedTarget. If embedTarget is set, then
-            // we
-            // have embedded by default.
-            isEmbedded = (embedTarget != null) ? true : false;
+		boolean isEmbedded = (embed != null && embed
+			.equals(IntroURL.VALUE_TRUE)) ? true : false;
+		if (isEmbedded == false)
+			// still false, check the embedTarget. If embedTarget is set, then
+			// we
+			// have embedded by default.
+			isEmbedded = (embedTarget != null) ? true : false;
 
-        IntroPartPresentation presentation = IntroPlugin.getDefault()
-            .getIntroModelRoot().getPresentation();
-        String presentationStyle = presentation.getImplementationKind();
+		IntroPartPresentation presentation = IntroPlugin.getDefault()
+			.getIntroModelRoot().getPresentation();
+		String presentationStyle = presentation.getImplementationKind();
 
-        if (isEmbedded
-                && presentationStyle
-                    .equals(IntroPartPresentation.BROWSER_IMPL_KIND)) {
+		if (isEmbedded
+				&& presentationStyle
+					.equals(IntroPartPresentation.BROWSER_IMPL_KIND)) {
 
-            // Embedded is true and we have HTML presentation, show href
-            // embedded, either in full page, or in div.
-            BrowserIntroPartImplementation impl = (BrowserIntroPartImplementation) presentation
-                .getIntroPartImplementation();
-            // INTRO: maybe add support for navigation
-            href = PlatformUI.getWorkbench().getHelpSystem()
-                .resolve(href, true).toExternalForm();
+			// Embedded is true and we have HTML presentation, show href
+			// embedded, either in full page, or in div.
+			BrowserIntroPartImplementation impl = (BrowserIntroPartImplementation) presentation
+				.getIntroPartImplementation();
+			// INTRO: maybe add support for navigation
+			href = PlatformUI.getWorkbench().getHelpSystem()
+				.resolve(href, true).toExternalForm();
 
-            if (embedTarget == null)
-                return impl.getBrowser().setUrl(href);
+			if (embedTarget == null)
+				return impl.getBrowser().setUrl(href);
 
-            // embedded in Div case.
-            IntroModelRoot model = IntroPlugin.getDefault().getIntroModelRoot();
-            return handleEmbedURLInDiv(href, embedTarget, model
-                .getCurrentPage());
-        }
+			// embedded in Div case.
+			IntroModelRoot model = IntroPlugin.getDefault().getIntroModelRoot();
+			return handleEmbedURLInDiv(href, embedTarget, model
+				.getCurrentPage());
+		}
 
-        // show href in Help window. SWT presentation is handled here.
-        // WorkbenchHelp takes care of error handling.
-        PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(href);
-        return true;
-    }
+		// show href in Help window. SWT presentation is handled here.
+		// WorkbenchHelp takes care of error handling.
+		PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(href);
+		return true;
+	}
 
 
-    /*
-     * Handles the embedded url case. Clone page and insert an IFrame in the
-     * target embed div. Note that only one div per page can be specified as an
-     * embed div. This is because we need to mangle the name for the cloned
-     * page, and the mangled name id pageId_embedTarget.
-     */
-    private boolean handleEmbedURLInDiv(String href, String embedTarget,
-            AbstractIntroPage currentPage) {
+	/*
+	 * Handles the embedded url case. Clone page and insert an IFrame in the
+	 * target embed div. Note that only one div per page can be specified as an
+	 * embed div. This is because we need to mangle the name for the cloned
+	 * page, and the mangled name id pageId_embedTarget.
+	 */
+	private boolean handleEmbedURLInDiv(String href, String embedTarget,
+			AbstractIntroPage currentPage) {
 
-        // re-use a runtime generated page, if found. Create the mangled id for
-        // the page and check if page exists first. If not, create one.
-        IntroModelRoot model = (IntroModelRoot) currentPage.getParentPage()
-            .getParent();
-        String currentPageId = null;
-        if (currentPage.isIFramePage())
-            currentPageId = currentPage.getUnmangledId();
-        else
-            currentPageId = currentPage.getId();
-        String mangledPageId = currentPageId + "_" + "WITH_IFRAME"; //$NON-NLS-1$ //$NON-NLS-2$
+		// re-use a runtime generated page, if found. Create the mangled id for
+		// the page and check if page exists first. If not, create one.
+		IntroModelRoot model = (IntroModelRoot) currentPage.getParentPage()
+			.getParent();
+		String currentPageId = null;
+		if (currentPage.isIFramePage())
+			currentPageId = currentPage.getUnmangledId();
+		else
+			currentPageId = currentPage.getId();
+		String mangledPageId = currentPageId + "_" + "WITH_IFRAME"; //$NON-NLS-1$ //$NON-NLS-2$
 
-        // get current standby state.
-        boolean standby = IntroPlugin.isIntroStandby();
-        String standbyAsString = standby ? IntroURL.VALUE_TRUE : "false"; //$NON-NLS-1$
+		// get current standby state.
+		boolean standby = IntroPlugin.isIntroStandby();
+		String standbyAsString = standby ? IntroURL.VALUE_TRUE : "false"; //$NON-NLS-1$
 
-        AbstractIntroPage pageWithIFrame = (AbstractIntroPage) model.findChild(
-            mangledPageId, AbstractIntroElement.ABSTRACT_PAGE);
-        if (pageWithIFrame != null) {
-            pageWithIFrame.setIFrameURL(href);
-            return introURL.showPage(mangledPageId, standbyAsString);
-        }
+		AbstractIntroPage pageWithIFrame = (AbstractIntroPage) model.findChild(
+			mangledPageId, AbstractIntroElement.ABSTRACT_PAGE);
+		if (pageWithIFrame != null) {
+			pageWithIFrame.setIFrameURL(href);
+			return introURL.showPage(mangledPageId, standbyAsString);
+		}
 
-        // Page never generated, clone and create.
-        AbstractIntroPage clonedPage = null;
-        try {
-            clonedPage = (AbstractIntroPage) currentPage.clone();
-        } catch (CloneNotSupportedException ex) {
-            // should never be here.
-            Log.error("Failed to clone Intro page: " + currentPage.getId(), ex); //$NON-NLS-1$
-            return false;
-        }
+		// Page never generated, clone and create.
+		AbstractIntroPage clonedPage = null;
+		try {
+			clonedPage = (AbstractIntroPage) currentPage.clone();
+		} catch (CloneNotSupportedException ex) {
+			// should never be here.
+			Log.error("Failed to clone Intro page: " + currentPage.getId(), ex); //$NON-NLS-1$
+			return false;
+		}
 
-        // embed url as IFrame in target div. We need to find target div in
-        // cloned page not in the original page.
-        boolean canInjectFrame = clonedPage.injectIFrame(href, embedTarget);
-        if (!canInjectFrame)
-            // Called method handles error.
-            return false;
+		// embed url as IFrame in target div. We need to find target div in
+		// cloned page not in the original page.
+		boolean canInjectFrame = clonedPage.injectIFrame(href, embedTarget);
+		if (!canInjectFrame)
+			// Called method handles error.
+			return false;
 
-        clonedPage.setId(mangledPageId);
-        model.addChild(clonedPage);
-        return introURL.showPage(clonedPage.getId(), standbyAsString);
-    }
+		clonedPage.setId(mangledPageId);
+		model.addChild(clonedPage);
+		return introURL.showPage(clonedPage.getId(), standbyAsString);
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/BundleUtil.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/BundleUtil.java
index 9f4558d..bc7dfff 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/BundleUtil.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/BundleUtil.java
@@ -32,258 +32,258 @@
  */
 public class BundleUtil {
 
-    private static String NL_TAG = "$nl$/"; //$NON-NLS-1$
+	private static String NL_TAG = "$nl$/"; //$NON-NLS-1$
 	private final static String PRODUCT_PLUGIN = "PRODUCT_PLUGIN"; //$NON-NLS-1$
 	private final static String PLUGINS_ROOT = "PLUGINS_ROOT/"; //$NON-NLS-1$
 
-    /**
-     * Utility method to validate the state of a bundle. Log invalid bundles to
-     * log file.
-     */
-    public static boolean bundleHasValidState(Bundle bundle) {
-        if (bundle == null || bundle.getState() == Bundle.UNINSTALLED
-                || bundle.getState() == Bundle.INSTALLED) {
+	/**
+	 * Utility method to validate the state of a bundle. Log invalid bundles to
+	 * log file.
+	 */
+	public static boolean bundleHasValidState(Bundle bundle) {
+		if (bundle == null || bundle.getState() == Bundle.UNINSTALLED
+				|| bundle.getState() == Bundle.INSTALLED) {
 
-            if (bundle == null)
-                Log.error("Intro tried accessing a NULL bundle.", null); //$NON-NLS-1$
-            else {
+			if (bundle == null)
+				Log.error("Intro tried accessing a NULL bundle.", null); //$NON-NLS-1$
+			else {
 				String msg = StringUtil.concat("Intro tried accessing Bundle: ", getBundleHeader( //$NON-NLS-1$
 						bundle, Constants.BUNDLE_NAME), " vendor: ", //$NON-NLS-1$
 						getBundleHeader(bundle, Constants.BUNDLE_VENDOR), " bundle state: ", //$NON-NLS-1$
 						String.valueOf(bundle.getState()));
-                Log.error(msg, null);
-            }
-            return false;
-        }
+				Log.error(msg, null);
+			}
+			return false;
+		}
 
-        return true;
-    }
+		return true;
+	}
 
-    /**
-     * Retrieves the given key from the bundle header.
-     *
-     * @param bundle
-     * @param key
-     * @return
-     */
-    public static String getBundleHeader(Bundle bundle, String key) {
-        return bundle.getHeaders().get(key);
-    }
+	/**
+	 * Retrieves the given key from the bundle header.
+	 *
+	 * @param bundle
+	 * @param key
+	 * @return
+	 */
+	public static String getBundleHeader(Bundle bundle, String key) {
+		return bundle.getHeaders().get(key);
+	}
 
 
-    public static Bundle getBundleFromConfigurationElement(
-            IConfigurationElement cfg) {
-        return Platform.getBundle(cfg.getContributor().getName());
-    }
+	public static Bundle getBundleFromConfigurationElement(
+			IConfigurationElement cfg) {
+		return Platform.getBundle(cfg.getContributor().getName());
+	}
 
 
-    /**
-     * Get the resourcelocation, but do not force an $nl$ on it.
-     *
-     * @param resource
-     * @param element
-     * @return
-     */
-    public static String getResourceLocation(String resource,
-            IConfigurationElement element) {
-        Bundle bundle = getBundleFromConfigurationElement(element);
-        return getResolvedResourceLocation(resource, bundle, false);
-    }
+	/**
+	 * Get the resourcelocation, but do not force an $nl$ on it.
+	 *
+	 * @param resource
+	 * @param element
+	 * @return
+	 */
+	public static String getResourceLocation(String resource,
+			IConfigurationElement element) {
+		Bundle bundle = getBundleFromConfigurationElement(element);
+		return getResolvedResourceLocation(resource, bundle, false);
+	}
 
 
-    /**
-     * Returns the fully qualified location of the passed resource string from
-     * the passed plugin id. If the file could not be loaded from the plugin,
-     * the resource is returned as is.
-     *
-     * @param resource
-     * @return
-     */
-    public static String getResolvedResourceLocation(String resource,
-            String pluginId) {
-        Bundle bundle = Platform.getBundle(pluginId);
-        return getResolvedResourceLocation(resource, bundle, true);
-    }
+	/**
+	 * Returns the fully qualified location of the passed resource string from
+	 * the passed plugin id. If the file could not be loaded from the plugin,
+	 * the resource is returned as is.
+	 *
+	 * @param resource
+	 * @return
+	 */
+	public static String getResolvedResourceLocation(String resource,
+			String pluginId) {
+		Bundle bundle = Platform.getBundle(pluginId);
+		return getResolvedResourceLocation(resource, bundle, true);
+	}
 
 
-    /**
-     * Shorthand util method.
-     *
-     * @param resource
-     * @return
-     */
-    public static String getResolvedResourceLocation(String resource,
-            Bundle bundle) {
-        return getResolvedResourceLocation(resource, bundle, true);
-    }
+	/**
+	 * Shorthand util method.
+	 *
+	 * @param resource
+	 * @return
+	 */
+	public static String getResolvedResourceLocation(String resource,
+			Bundle bundle) {
+		return getResolvedResourceLocation(resource, bundle, true);
+	}
 
 
-    public static String getResolvedResourceLocation(String base,
-            String resource, Bundle bundle) {
-        // quick exits.
-        if (resource == null)
-            return null;
+	public static String getResolvedResourceLocation(String base,
+			String resource, Bundle bundle) {
+		// quick exits.
+		if (resource == null)
+			return null;
 
-        String fullResource = new Path(base).append(resource).toString();
-        String resolvedResource = getResolvedResourceLocation(fullResource,
-            bundle, true);
+		String fullResource = new Path(base).append(resource).toString();
+		String resolvedResource = getResolvedResourceLocation(fullResource,
+			bundle, true);
 
-        if (resolvedResource.equals(fullResource))
-            // return resource as is when the resource does not exist.
-            return resource;
-        return resolvedResource;
-    }
+		if (resolvedResource.equals(fullResource))
+			// return resource as is when the resource does not exist.
+			return resource;
+		return resolvedResource;
+	}
 
 
-    public static String getResolvedResourceLocation(String resource,
-            Bundle bundle, boolean forceNLResolve) {
-        // quick exits.
-        if (resource == null)
-            return null;
+	public static String getResolvedResourceLocation(String resource,
+			Bundle bundle, boolean forceNLResolve) {
+		// quick exits.
+		if (resource == null)
+			return null;
 
-        if (bundle == null || !bundleHasValidState(bundle))
-            return resource;
+		if (bundle == null || !bundleHasValidState(bundle))
+			return resource;
 
-        URL localLocation = null;
-        try {
-        	// resolve PLUGINS_ROOT
-    		int index = resource.indexOf(PLUGINS_ROOT);
-    		if (index != -1) {
-    			resource = resource.substring(index + PLUGINS_ROOT.length());
-    			index = resource.indexOf('/');
-    			if (index != -1) {
-    				String bundleName = resource.substring(0, index);
-    				if (PRODUCT_PLUGIN.equals(bundleName)) {
-    					IProduct product = Platform.getProduct();
-    					if (product != null) {
-    						Bundle productBundle = product.getDefiningBundle();
-    						if (productBundle != null) {
-    							bundleName = productBundle.getSymbolicName();
-    						}
-    					}
-    				}
-    				resource = resource.substring(index + 1);
-    				Bundle actualBundle = Platform.getBundle(bundleName);
-    				if (actualBundle != null) {
-    					return getResolvedResourceLocation(resource, actualBundle, forceNLResolve);
-    				}
-    			}
-    		}
+		URL localLocation = null;
+		try {
+			// resolve PLUGINS_ROOT
+			int index = resource.indexOf(PLUGINS_ROOT);
+			if (index != -1) {
+				resource = resource.substring(index + PLUGINS_ROOT.length());
+				index = resource.indexOf('/');
+				if (index != -1) {
+					String bundleName = resource.substring(0, index);
+					if (PRODUCT_PLUGIN.equals(bundleName)) {
+						IProduct product = Platform.getProduct();
+						if (product != null) {
+							Bundle productBundle = product.getDefiningBundle();
+							if (productBundle != null) {
+								bundleName = productBundle.getSymbolicName();
+							}
+						}
+					}
+					resource = resource.substring(index + 1);
+					Bundle actualBundle = Platform.getBundle(bundleName);
+					if (actualBundle != null) {
+						return getResolvedResourceLocation(resource, actualBundle, forceNLResolve);
+					}
+				}
+			}
 
-            // we need to resolve this URL.
-            String copyResource = resource;
-            if (forceNLResolve && !copyResource.startsWith(NL_TAG)) {
-                if (copyResource.startsWith("/") //$NON-NLS-1$
-                        || copyResource.startsWith("\\")) //$NON-NLS-1$
-                    copyResource = resource.substring(1);
-                copyResource = NL_TAG + copyResource;
-            }
-            IPath resourcePath = new Path(copyResource);
-            localLocation = FileLocator.find(bundle, resourcePath, null);
-            if (localLocation == null) {
-                // localLocation can be null if the passed resource could not
-                // be found relative to the plugin. log fact, return resource,
-                // as is.
+			// we need to resolve this URL.
+			String copyResource = resource;
+			if (forceNLResolve && !copyResource.startsWith(NL_TAG)) {
+				if (copyResource.startsWith("/") //$NON-NLS-1$
+						|| copyResource.startsWith("\\")) //$NON-NLS-1$
+					copyResource = resource.substring(1);
+				copyResource = NL_TAG + copyResource;
+			}
+			IPath resourcePath = new Path(copyResource);
+			localLocation = FileLocator.find(bundle, resourcePath, null);
+			if (localLocation == null) {
+				// localLocation can be null if the passed resource could not
+				// be found relative to the plugin. log fact, return resource,
+				// as is.
 				String msg = StringUtil.concat("Could not find resource: ", //$NON-NLS-1$
 						resource, " in ", getBundleHeader(bundle, Constants.BUNDLE_NAME)); //$NON-NLS-1$
-                Log.warning(msg);
-                return resource;
-            }
-            /*
-            localLocation = FileLocator.toFileURL(localLocation);
-            return localLocation.toExternalForm();
-            */
-            return toExternalForm(localLocation);
-        } catch (Exception e) {
+				Log.warning(msg);
+				return resource;
+			}
+			/*
+			localLocation = FileLocator.toFileURL(localLocation);
+			return localLocation.toExternalForm();
+			*/
+			return toExternalForm(localLocation);
+		} catch (Exception e) {
 			String msg = StringUtil.concat("Failed to load resource: ", //$NON-NLS-1$
 					resource, " from ", getBundleHeader(bundle, Constants.BUNDLE_NAME)); //$NON-NLS-1$
-            Log.error(msg, e);
-            return resource;
-        }
-    }
+			Log.error(msg, e);
+			return resource;
+		}
+	}
 
 
 
 
-    /** *** used by Intro parser ***** */
-    /*
-     * Util method to return an URL to a plugin relative resource.
-     */
-    public static URL getResourceAsURL(String resource, String pluginId) {
-        Bundle bundle = Platform.getBundle(pluginId);
-        URL localLocation = FileLocator.find(bundle, new Path(
-            resource), null);
-        return localLocation;
-    }
+	/** *** used by Intro parser ***** */
+	/*
+	 * Util method to return an URL to a plugin relative resource.
+	 */
+	public static URL getResourceAsURL(String resource, String pluginId) {
+		Bundle bundle = Platform.getBundle(pluginId);
+		URL localLocation = FileLocator.find(bundle, new Path(
+			resource), null);
+		return localLocation;
+	}
 
 
 
 
-    /** ********************* Used by HTML generator ****************** */
-    /**
-     * Get the absolute path of the given bundle, in the form
-     * file:/path_to_plugin
-     *
-     * @param bundle
-     * @return
-     */
-    public static String getResolvedBundleLocation(Bundle bundle) {
-        try {
-            URL bundleLocation = bundle.getEntry(""); //$NON-NLS-1$
-            if (bundleLocation == null)
-                return null;
-            /*
-            bundleLocation = FileLocator.toFileURL(bundleLocation);
-            return bundleLocation.toExternalForm();
-            */
-            return toExternalForm(bundleLocation);
-        } catch (IllegalStateException e) {
-            Log.error("Failed to access bundle: " //$NON-NLS-1$
-                    + bundle.getSymbolicName(), e);
-            return null;
-        }/* catch (IOException e) {
-            Log.error("Failed to resolve URL path for bundle: " //$NON-NLS-1$
-                    + bundle.getSymbolicName(), e);
-            return null;
-        } */
-    }
+	/** ********************* Used by HTML generator ****************** */
+	/**
+	 * Get the absolute path of the given bundle, in the form
+	 * file:/path_to_plugin
+	 *
+	 * @param bundle
+	 * @return
+	 */
+	public static String getResolvedBundleLocation(Bundle bundle) {
+		try {
+			URL bundleLocation = bundle.getEntry(""); //$NON-NLS-1$
+			if (bundleLocation == null)
+				return null;
+			/*
+			bundleLocation = FileLocator.toFileURL(bundleLocation);
+			return bundleLocation.toExternalForm();
+			*/
+			return toExternalForm(bundleLocation);
+		} catch (IllegalStateException e) {
+			Log.error("Failed to access bundle: " //$NON-NLS-1$
+					+ bundle.getSymbolicName(), e);
+			return null;
+		}/* catch (IOException e) {
+			Log.error("Failed to resolve URL path for bundle: " //$NON-NLS-1$
+					+ bundle.getSymbolicName(), e);
+			return null;
+		} */
+	}
 
-    /**
-     * Get the absolute path of the bundle with id <code>bundleId</code>. If
-     * no such bundle is found, return null.
-     *
-     * @param bundleId
-     * @return
-     */
-    public static String getResolvedBundleLocation(String bundleId) {
-        Bundle bundle = Platform.getBundle(bundleId);
-        if (bundle == null)
-            return null;
-        return getResolvedBundleLocation(bundle);
-    }
+	/**
+	 * Get the absolute path of the bundle with id <code>bundleId</code>. If
+	 * no such bundle is found, return null.
+	 *
+	 * @param bundleId
+	 * @return
+	 */
+	public static String getResolvedBundleLocation(String bundleId) {
+		Bundle bundle = Platform.getBundle(bundleId);
+		if (bundle == null)
+			return null;
+		return getResolvedBundleLocation(bundle);
+	}
 
-    /*
-     * Bug 126085 - need to fix up file: protocol
-     * to a form that IE7 understands (file:///).
-     */
+	/*
+	 * Bug 126085 - need to fix up file: protocol
+	 * to a form that IE7 understands (file:///).
+	 */
 
-    private static String toExternalForm(URL localURL) {
-    	try {
-    		localURL = FileLocator.toFileURL(localURL);
-    		String result = localURL.toExternalForm();
-    		if (result.startsWith("file:/")) { //$NON-NLS-1$
-    			if (result.startsWith("file:///")==false) { //$NON-NLS-1$
-    				result = "file:///"+result.substring(6); //$NON-NLS-1$
-    			}
-    		}
-    		return result;
-    	}
-    	catch (IOException e) {
-            String msg = "Failed to resolve URL: " //$NON-NLS-1$
-                    + localURL.toString();
-                Log.error(msg, e);
-                return localURL.toString();
-    	}
-    }
+	private static String toExternalForm(URL localURL) {
+		try {
+			localURL = FileLocator.toFileURL(localURL);
+			String result = localURL.toExternalForm();
+			if (result.startsWith("file:/")) { //$NON-NLS-1$
+				if (result.startsWith("file:///")==false) { //$NON-NLS-1$
+					result = "file:///"+result.substring(6); //$NON-NLS-1$
+				}
+			}
+			return result;
+		}
+		catch (IOException e) {
+			String msg = "Failed to resolve URL: " //$NON-NLS-1$
+					+ localURL.toString();
+				Log.error(msg, e);
+				return localURL.toString();
+		}
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/FindSupport.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/FindSupport.java
index 9ed616c..f11906f 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/FindSupport.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/FindSupport.java
@@ -53,22 +53,22 @@
 		return find(bundle, path, null);
 	}
 
-    /**
-     * Proposed API for Platform in Eclispe 3.2.
-     * Same as @link #find(Bundle, IPath) except multiple entries can be
-     * returned if more than one entry matches the path in the host and
-     * any of its fragments.
-     *
-     * @param bundle
-     * @param path
-     * @return an array of entries which match the given path.  An empty
-     * array is returned if no matches are found.
-     */
-    public static URL[] findEntries(Bundle bundle, IPath path) {
-        return findEntries(bundle, path, null);
-    }
+	/**
+	 * Proposed API for Platform in Eclispe 3.2.
+	 * Same as @link #find(Bundle, IPath) except multiple entries can be
+	 * returned if more than one entry matches the path in the host and
+	 * any of its fragments.
+	 *
+	 * @param bundle
+	 * @param path
+	 * @return an array of entries which match the given path.  An empty
+	 * array is returned if no matches are found.
+	 */
+	public static URL[] findEntries(Bundle bundle, IPath path) {
+		return findEntries(bundle, path, null);
+	}
 
-    /**
+	/**
 	 * Proposed API for Platform in Eclipse 3.2. Same as @link #find(Bundle, IPath) except multiple
 	 * entries can be returned if more than one entry matches the path in the host and any of its
 	 * fragments.
@@ -81,16 +81,16 @@
 	 */
 	public static URL[] findEntries(Bundle bundle, IPath path, Map<String, String> override) {
 		List<URL> results = new ArrayList<>(1);
-        find(bundle, path, override, results);
-        return results.toArray(new URL[results.size()]);
-    }
+		find(bundle, path, override, results);
+		return results.toArray(new URL[results.size()]);
+	}
 
 	/**
 	 * See doc on @link Platform#find(Bundle, IPath, Map) Platform#find(Bundle, IPath, Map)
 	 */
 	public static URL find(Bundle b, IPath path, Map<String, String> override) {
-        return find(b, path, override, null);
-    }
+		return find(b, path, override, null);
+	}
 
 	private static URL find(Bundle b, IPath path, Map<String, String> override, List<URL> multiple) {
 		if (path == null)
@@ -106,7 +106,7 @@
 			result = findInPlugin(b, Path.EMPTY, multiple);
 			if (result == null || multiple != null)
 				result = findInFragments(b, Path.EMPTY, multiple);
-            return result;
+			return result;
 		}
 
 		// Now check for paths without variable substitution
@@ -115,7 +115,7 @@
 			result = findInPlugin(b, path, multiple);
 			if (result == null || multiple != null)
 				result = findInFragments(b, path, multiple);
-            return result;
+			return result;
 		}
 
 		// Worry about variable substitution
@@ -230,9 +230,9 @@
 
 	private static URL findInPlugin(Bundle b, IPath filePath, List<URL> multiple) {
 		URL result = b.getEntry(filePath.toString());
-        if (result != null && multiple != null)
-            multiple.add(result);
-        return result;
+		if (result != null && multiple != null)
+			multiple.add(result);
+		return result;
 	}
 
 	private static URL findInFragments(Bundle b, IPath filePath, List<URL> multiple) {
@@ -245,10 +245,10 @@
 		int i = 0;
 		while (i < fragments.length && fileURL == null) {
 			fileURL = fragments[i].getEntry(filePath.toString());
-            if (fileURL != null && multiple != null) {
-                multiple.add(fileURL);
-                fileURL = null;
-            }
+			if (fileURL != null && multiple != null) {
+				multiple.add(fileURL);
+				fileURL = null;
+			}
 			i++;
 		}
 		return fileURL;
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/ModelUtil.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/ModelUtil.java
index 97caea0..1a2383d 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/ModelUtil.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/ModelUtil.java
@@ -40,407 +40,407 @@
  */
 public class ModelUtil {
 
-    private static String TAG_BODY = "body"; //$NON-NLS-1$
-    private static String TAG_HEAD = "head"; //$NON-NLS-1$
-    private static String TAG_BASE = "base"; //$NON-NLS-1$
-    public static String TAG_DIV = "div"; //$NON-NLS-1$
-    public static String TAG_HEAD_LINK = "link"; //$NON-NLS-1$
-    private static String TAG_PARAM = "param"; //$NON-NLS-1$
-    private static String ATT_SRC = "src"; //$NON-NLS-1$
-    private static String ATT_HREF = "href"; //$NON-NLS-1$
-    private static String ATT_CITE = "cite"; //$NON-NLS-1$
-    private static String ATT_LONGDESC = "longdesc"; //$NON-NLS-1$
-    private static String ATT_DATA = "data"; //$NON-NLS-1$
-    private static String ATT_CODEBASE = "codebase"; //$NON-NLS-1$
-    private static String ATT_VALUE = "value"; //$NON-NLS-1$
-    private static String ATT_VALUE_TYPE = "valuetype"; //$NON-NLS-1$
-    private static String ATT_REL = "rel"; //$NON-NLS-1$
-    private static String ATT_TYPE = "type"; //$NON-NLS-1$
+	private static String TAG_BODY = "body"; //$NON-NLS-1$
+	private static String TAG_HEAD = "head"; //$NON-NLS-1$
+	private static String TAG_BASE = "base"; //$NON-NLS-1$
+	public static String TAG_DIV = "div"; //$NON-NLS-1$
+	public static String TAG_HEAD_LINK = "link"; //$NON-NLS-1$
+	private static String TAG_PARAM = "param"; //$NON-NLS-1$
+	private static String ATT_SRC = "src"; //$NON-NLS-1$
+	private static String ATT_HREF = "href"; //$NON-NLS-1$
+	private static String ATT_CITE = "cite"; //$NON-NLS-1$
+	private static String ATT_LONGDESC = "longdesc"; //$NON-NLS-1$
+	private static String ATT_DATA = "data"; //$NON-NLS-1$
+	private static String ATT_CODEBASE = "codebase"; //$NON-NLS-1$
+	private static String ATT_VALUE = "value"; //$NON-NLS-1$
+	private static String ATT_VALUE_TYPE = "valuetype"; //$NON-NLS-1$
+	private static String ATT_REL = "rel"; //$NON-NLS-1$
+	private static String ATT_TYPE = "type"; //$NON-NLS-1$
 
 
 
-    /*
-     * ********* Model util methods ************************************
-     */
+	/*
+	 * ********* Model util methods ************************************
+	 */
 
-    /**
-     * Checks to see if the passed string is a valid URL (has a protocol), if
-     * yes, returns it as is. If no, treats it as a resource relative to the
-     * declaring plugin. Return the plugin relative location, fully qualified.
-     * Retruns null if the passed string itself is null.
-     *
-     * @param resource
-     * @param pluginDesc
-     * @return returns the URL as is if it had a protocol.
-     */
-    public static String resolveURL(String url, String pluginId) {
-        Bundle bundle = null;
-        if (pluginId != null)
-            // if pluginId is not null, use it.
-            bundle = Platform.getBundle(pluginId);
-        return resolveURL("", url, bundle); //$NON-NLS-1$
-    }
+	/**
+	 * Checks to see if the passed string is a valid URL (has a protocol), if
+	 * yes, returns it as is. If no, treats it as a resource relative to the
+	 * declaring plugin. Return the plugin relative location, fully qualified.
+	 * Retruns null if the passed string itself is null.
+	 *
+	 * @param resource
+	 * @param pluginDesc
+	 * @return returns the URL as is if it had a protocol.
+	 */
+	public static String resolveURL(String url, String pluginId) {
+		Bundle bundle = null;
+		if (pluginId != null)
+			// if pluginId is not null, use it.
+			bundle = Platform.getBundle(pluginId);
+		return resolveURL("", url, bundle); //$NON-NLS-1$
+	}
 
 
 
-    /**
-     * Checks to see if the passed string is a valid URL (has a protocol), if
-     * yes, returns it as is. If no, treats it as a resource relative to the
-     * declaring plugin. Return the plugin relative location, fully qualified.
-     * Retruns null if the passed string itself is null.
-     *
-     * @param resource
-     * @param pluginDesc
-     * @return returns the URL as is if it had a protocol.
-     */
-    public static String resolveURL(String url, IConfigurationElement element) {
-        Bundle bundle = BundleUtil.getBundleFromConfigurationElement(element);
-        return resolveURL("", url, bundle); //$NON-NLS-1$
-    }
+	/**
+	 * Checks to see if the passed string is a valid URL (has a protocol), if
+	 * yes, returns it as is. If no, treats it as a resource relative to the
+	 * declaring plugin. Return the plugin relative location, fully qualified.
+	 * Retruns null if the passed string itself is null.
+	 *
+	 * @param resource
+	 * @param pluginDesc
+	 * @return returns the URL as is if it had a protocol.
+	 */
+	public static String resolveURL(String url, IConfigurationElement element) {
+		Bundle bundle = BundleUtil.getBundleFromConfigurationElement(element);
+		return resolveURL("", url, bundle); //$NON-NLS-1$
+	}
 
 
 
-    /**
-     * @see resolveURL(String url, IConfigurationElement element)
-     */
-    public static String resolveURL(String base, String url, Bundle bundle) {
-        // quick exit
-        if (url == null)
-            return null;
-        IntroURLParser parser = new IntroURLParser(url);
-        if (parser.hasProtocol())
-            return url;
-        // make plugin relative url. Only now we need the bundle.
-        return BundleUtil.getResolvedResourceLocation(base, url, bundle);
-    }
+	/**
+	 * @see resolveURL(String url, IConfigurationElement element)
+	 */
+	public static String resolveURL(String base, String url, Bundle bundle) {
+		// quick exit
+		if (url == null)
+			return null;
+		IntroURLParser parser = new IntroURLParser(url);
+		if (parser.hasProtocol())
+			return url;
+		// make plugin relative url. Only now we need the bundle.
+		return BundleUtil.getResolvedResourceLocation(base, url, bundle);
+	}
 
-    /**
-     * Ensures that a file:// URL exists for the bundle root. This will
-     * cause jarred bundles to be extracted into a cache directory.
-     */
-    public static void ensureFileURLsExist(Bundle bundle, String contentFile) {
-        try {
-        	FileLocator.toFileURL(bundle.getEntry("/")); //$NON-NLS-1$
-        } catch (Exception e) {
-            if (contentFile != null)
-                Log.error("Failed to extract Intro content folder for: " //$NON-NLS-1$
-                        + contentFile, e);
-        }
-    }
+	/**
+	 * Ensures that a file:// URL exists for the bundle root. This will
+	 * cause jarred bundles to be extracted into a cache directory.
+	 */
+	public static void ensureFileURLsExist(Bundle bundle, String contentFile) {
+		try {
+			FileLocator.toFileURL(bundle.getEntry("/")); //$NON-NLS-1$
+		} catch (Exception e) {
+			if (contentFile != null)
+				Log.error("Failed to extract Intro content folder for: " //$NON-NLS-1$
+						+ contentFile, e);
+		}
+	}
 
 
-    /**
-     * Returns the path to the parent folder containing the passed content xml
-     * file. It is assumed that the path is a local url representing a content
-     * file.
-     */
-    public static String getParentFolderToString(String contentFilePath) {
-        IPath path = getParentFolderPath(contentFilePath);
-        return path.toString();
-    }
+	/**
+	 * Returns the path to the parent folder containing the passed content xml
+	 * file. It is assumed that the path is a local url representing a content
+	 * file.
+	 */
+	public static String getParentFolderToString(String contentFilePath) {
+		IPath path = getParentFolderPath(contentFilePath);
+		return path.toString();
+	}
 
 
-    /*
-     *
-     * ******** XHTML DOM util methods *********************************
-     */
+	/*
+	 *
+	 * ******** XHTML DOM util methods *********************************
+	 */
 
-    /**
-     * Returns the path to the parent folder containing the passed content xml
-     * file. It is assumed that the path is a local url representing a content
-     * file.
-     */
-    public static String getParentFolderOSString(String contentFilePath) {
-        IPath path = getParentFolderPath(contentFilePath);
-        return path.toOSString();
-    }
+	/**
+	 * Returns the path to the parent folder containing the passed content xml
+	 * file. It is assumed that the path is a local url representing a content
+	 * file.
+	 */
+	public static String getParentFolderOSString(String contentFilePath) {
+		IPath path = getParentFolderPath(contentFilePath);
+		return path.toOSString();
+	}
 
-    /**
-     * Returns the parent folder of the given path.
-     */
-    public static IPath getParentFolderPath(String contentFilePath) {
-        IPath path = new Path(contentFilePath);
-        path = path.removeLastSegments(1).addTrailingSeparator();
-        return path;
-    }
+	/**
+	 * Returns the parent folder of the given path.
+	 */
+	public static IPath getParentFolderPath(String contentFilePath) {
+		IPath path = new Path(contentFilePath);
+		path = path.removeLastSegments(1).addTrailingSeparator();
+		return path;
+	}
 
 
 
 
-    public static void insertBase(Document dom, String baseURL) {
-        // there should only be one head and one base element dom.
-        NodeList headList = dom.getElementsByTagName(TAG_HEAD);
-        Element head = (Element) headList.item(0);
-        NodeList baseList = head.getElementsByTagName(TAG_BASE);
-        if (baseList.getLength() == 0) {
-            // insert a base element, since one is not defined already.
-            Element base = dom.createElement(TAG_BASE);
-            base.setAttribute(ATT_HREF, baseURL);
-            head.insertBefore(base, head.getFirstChild());
-        }
-    }
+	public static void insertBase(Document dom, String baseURL) {
+		// there should only be one head and one base element dom.
+		NodeList headList = dom.getElementsByTagName(TAG_HEAD);
+		Element head = (Element) headList.item(0);
+		NodeList baseList = head.getElementsByTagName(TAG_BASE);
+		if (baseList.getLength() == 0) {
+			// insert a base element, since one is not defined already.
+			Element base = dom.createElement(TAG_BASE);
+			base.setAttribute(ATT_HREF, baseURL);
+			head.insertBefore(base, head.getFirstChild());
+		}
+	}
 
 
-    public static Element getBase(Document dom) {
-        // there should only be one head and one base element dom.
-        NodeList headList = dom.getElementsByTagName(TAG_HEAD);
-        Element head = (Element) headList.item(0);
-        NodeList baseList = head.getElementsByTagName(TAG_BASE);
-        if (baseList.getLength() == 0)
-            // no base defined, signal failure.
-            return null;
+	public static Element getBase(Document dom) {
+		// there should only be one head and one base element dom.
+		NodeList headList = dom.getElementsByTagName(TAG_HEAD);
+		Element head = (Element) headList.item(0);
+		NodeList baseList = head.getElementsByTagName(TAG_BASE);
+		if (baseList.getLength() == 0)
+			// no base defined, signal failure.
+			return null;
 
-        return (Element) baseList.item(baseList.getLength() - 1);
+		return (Element) baseList.item(baseList.getLength() - 1);
 
-    }
+	}
 
 
-    // <link rel="stylesheet" href="shared.css" type="text/css" />
-    public static void insertStyle(Document dom, String cssUrl) {
-        // there should only be one head and one base element dom.
-        NodeList headList = dom.getElementsByTagName(TAG_HEAD);
-        Element head = null;
-        // Element base = getBase(dom);
-        NodeList styleList = null;
-        // there can be more than one style. DO not add style if it exists.
-        if (headList.getLength() >= 1) {
-            head = (Element) headList.item(0);
-            styleList = head.getElementsByTagName(TAG_HEAD_LINK);
-            for (int i = 0; i < styleList.getLength(); i++) {
-                Element style = (Element) styleList.item(0);
-                String styleString = style.getAttribute(ATT_HREF);
-                if (styleString.equals(cssUrl))
-                    return;
-            }
-        }
+	// <link rel="stylesheet" href="shared.css" type="text/css" />
+	public static void insertStyle(Document dom, String cssUrl) {
+		// there should only be one head and one base element dom.
+		NodeList headList = dom.getElementsByTagName(TAG_HEAD);
+		Element head = null;
+		// Element base = getBase(dom);
+		NodeList styleList = null;
+		// there can be more than one style. DO not add style if it exists.
+		if (headList.getLength() >= 1) {
+			head = (Element) headList.item(0);
+			styleList = head.getElementsByTagName(TAG_HEAD_LINK);
+			for (int i = 0; i < styleList.getLength(); i++) {
+				Element style = (Element) styleList.item(0);
+				String styleString = style.getAttribute(ATT_HREF);
+				if (styleString.equals(cssUrl))
+					return;
+			}
+		}
 
-        // insert the style, since it is not defined.
-        Element styleToAdd = dom.createElement(TAG_HEAD_LINK);
-        styleToAdd.setAttribute(ATT_HREF, cssUrl);
-        styleToAdd.setAttribute(ATT_REL, "stylesheet"); //$NON-NLS-1$
-        styleToAdd.setAttribute(ATT_TYPE, "text/css"); //$NON-NLS-1$
-        if (styleList != null && styleList.getLength() >= 1)
-            styleList.item(0).getParentNode().insertBefore(styleToAdd,
-                styleList.item(0));
-        else
-            head.appendChild(styleToAdd);
+		// insert the style, since it is not defined.
+		Element styleToAdd = dom.createElement(TAG_HEAD_LINK);
+		styleToAdd.setAttribute(ATT_HREF, cssUrl);
+		styleToAdd.setAttribute(ATT_REL, "stylesheet"); //$NON-NLS-1$
+		styleToAdd.setAttribute(ATT_TYPE, "text/css"); //$NON-NLS-1$
+		if (styleList != null && styleList.getLength() >= 1)
+			styleList.item(0).getParentNode().insertBefore(styleToAdd,
+				styleList.item(0));
+		else
+			head.appendChild(styleToAdd);
 
-    }
+	}
 
-    /**
-     * Returns a reference to the body of the DOM.
-     *
-     * @param dom
-     * @return
-     */
-    public static Element getBodyElement(Document dom) {
-        // there should only be one body element dom.
-        NodeList bodyList = dom.getElementsByTagName(TAG_BODY);
-        Element body = (Element) bodyList.item(0);
-        return body;
-    }
+	/**
+	 * Returns a reference to the body of the DOM.
+	 *
+	 * @param dom
+	 * @return
+	 */
+	public static Element getBodyElement(Document dom) {
+		// there should only be one body element dom.
+		NodeList bodyList = dom.getElementsByTagName(TAG_BODY);
+		Element body = (Element) bodyList.item(0);
+		return body;
+	}
 
 
 
-    public static Element createElement(Document dom, String elementName,
-            Properties attributes) {
+	public static Element createElement(Document dom, String elementName,
+			Properties attributes) {
 
-        // make sure to create element with any namespace uri to enable finding
-        // it again using Dom.getElementsByTagNameNS()
-        Element element = dom.createElementNS("", elementName); //$NON-NLS-1$
-        if (attributes != null) {
-            Enumeration e = attributes.keys();
-            while (e.hasMoreElements()) {
-                String key = (String) e.nextElement();
-                element.setAttribute(key, attributes.getProperty(key));
-            }
-        }
-        return element;
-    }
+		// make sure to create element with any namespace uri to enable finding
+		// it again using Dom.getElementsByTagNameNS()
+		Element element = dom.createElementNS("", elementName); //$NON-NLS-1$
+		if (attributes != null) {
+			Enumeration e = attributes.keys();
+			while (e.hasMoreElements()) {
+				String key = (String) e.nextElement();
+				element.setAttribute(key, attributes.getProperty(key));
+			}
+		}
+		return element;
+	}
 
-    public static Element createAndAppendChild(Element parentElement,
-            String elementName, Properties attributes) {
+	public static Element createAndAppendChild(Element parentElement,
+			String elementName, Properties attributes) {
 
-        Element element = createElement(parentElement.getOwnerDocument(),
-            elementName, attributes);
-        parentElement.appendChild(element);
-        return element;
-    }
+		Element element = createElement(parentElement.getOwnerDocument(),
+			elementName, attributes);
+		parentElement.appendChild(element);
+		return element;
+	}
 
 
 
-    /**
-     * Returns an Element array of all first level descendant Elements with a
-     * given tag name, in the order in which they are encountered in the DOM.
-     * Unlike the JAXP apis, which returns preorder traversal of this Element
-     * tree, this method filters out children deeper than first level child
-     * nodes.
-     */
-    public static Element[] getElementsByTagName(Element parent, String tagName) {
-        NodeList allChildElements = parent.getElementsByTagName(tagName);
+	/**
+	 * Returns an Element array of all first level descendant Elements with a
+	 * given tag name, in the order in which they are encountered in the DOM.
+	 * Unlike the JAXP apis, which returns preorder traversal of this Element
+	 * tree, this method filters out children deeper than first level child
+	 * nodes.
+	 */
+	public static Element[] getElementsByTagName(Element parent, String tagName) {
+		NodeList allChildElements = parent.getElementsByTagName(tagName);
 		Vector<Element> vector = new Vector<>();
-        for (int i = 0; i < allChildElements.getLength(); i++) {
-            // we know that the nodelist is of elements.
-            Element aElement = (Element) allChildElements.item(i);
-            if (aElement.getParentNode().equals(parent))
-                // first level child element. add it.
-                vector.add(aElement);
-        }
-        Element[] filteredElements = new Element[vector.size()];
-        vector.copyInto(filteredElements);
-        return filteredElements;
-    }
+		for (int i = 0; i < allChildElements.getLength(); i++) {
+			// we know that the nodelist is of elements.
+			Element aElement = (Element) allChildElements.item(i);
+			if (aElement.getParentNode().equals(parent))
+				// first level child element. add it.
+				vector.add(aElement);
+		}
+		Element[] filteredElements = new Element[vector.size()];
+		vector.copyInto(filteredElements);
+		return filteredElements;
+	}
 
-    /**
-     * Same as getElementsByTagName(Element parent, String tagName) but the
-     * parent element is assumed to be the root of the document.
-     *
-     * @see getElementsByTagName(Element parent, String tagName)
-     */
-    public static Element[] getElementsByTagName(Document dom, String tagName) {
-        NodeList allChildElements = dom.getElementsByTagName(tagName);
+	/**
+	 * Same as getElementsByTagName(Element parent, String tagName) but the
+	 * parent element is assumed to be the root of the document.
+	 *
+	 * @see getElementsByTagName(Element parent, String tagName)
+	 */
+	public static Element[] getElementsByTagName(Document dom, String tagName) {
+		NodeList allChildElements = dom.getElementsByTagName(tagName);
 		Vector<Element> vector = new Vector<>();
-        for (int i = 0; i < allChildElements.getLength(); i++) {
-            // we know that the nodelist is of elements.
-            Element aElement = (Element) allChildElements.item(i);
-            if (aElement.getParentNode().equals(dom.getDocumentElement()))
-                // first level child element. add it. Cant use getParent
-                // here.
-                vector.add(aElement);
-        }
-        Element[] filteredElements = new Element[vector.size()];
-        vector.copyInto(filteredElements);
-        return filteredElements;
-    }
+		for (int i = 0; i < allChildElements.getLength(); i++) {
+			// we know that the nodelist is of elements.
+			Element aElement = (Element) allChildElements.item(i);
+			if (aElement.getParentNode().equals(dom.getDocumentElement()))
+				// first level child element. add it. Cant use getParent
+				// here.
+				vector.add(aElement);
+		}
+		Element[] filteredElements = new Element[vector.size()];
+		vector.copyInto(filteredElements);
+		return filteredElements;
+	}
 
 
-    /*
-     * Util method similar to DOM getElementById() method, but it works without
-     * an id attribute being specified. Deep searches all children in this
-     * container's DOM for the first child with the given id. The element
-     * retrieved must have the passed local name. Note that in an XHTML file
-     * (aka DOM) elements should have a unique id within the scope of a
-     * document. We use local name because this allows for finding intro
-     * anchors, includes and dynamic content element regardless of whether or
-     * not an xmlns was used in the xml.
-     */
-    public static Element getElementById(Document dom, String id,
-            String localElementName) {
+	/*
+	 * Util method similar to DOM getElementById() method, but it works without
+	 * an id attribute being specified. Deep searches all children in this
+	 * container's DOM for the first child with the given id. The element
+	 * retrieved must have the passed local name. Note that in an XHTML file
+	 * (aka DOM) elements should have a unique id within the scope of a
+	 * document. We use local name because this allows for finding intro
+	 * anchors, includes and dynamic content element regardless of whether or
+	 * not an xmlns was used in the xml.
+	 */
+	public static Element getElementById(Document dom, String id,
+			String localElementName) {
 
-        NodeList children = dom.getElementsByTagNameNS("*", localElementName); //$NON-NLS-1$
-        for (int i = 0; i < children.getLength(); i++) {
-            Element element = (Element) children.item(i);
-            if (element.getAttribute("id").equals(id)) //$NON-NLS-1$
-                return element;
-        }
-        // non found.
-        return null;
+		NodeList children = dom.getElementsByTagNameNS("*", localElementName); //$NON-NLS-1$
+		for (int i = 0; i < children.getLength(); i++) {
+			Element element = (Element) children.item(i);
+			if (element.getAttribute("id").equals(id)) //$NON-NLS-1$
+				return element;
+		}
+		// non found.
+		return null;
 
-    }
+	}
 
-    public static Element getElementById(Document dom, String id) {
-    	return getElementById(dom, id, "*"); //$NON-NLS-1$
-    }
+	public static Element getElementById(Document dom, String id) {
+		return getElementById(dom, id, "*"); //$NON-NLS-1$
+	}
 
-    public static void updateResourceAttributes(Element element,
-            AbstractIntroPage page) {
-        updateResourceAttributes(element, page.getBase(), page.getBundle());
-    }
+	public static void updateResourceAttributes(Element element,
+			AbstractIntroPage page) {
+		updateResourceAttributes(element, page.getBase(), page.getBundle());
+	}
 
 
-    public static void updateResourceAttributes(Element element,
-            IntroExtensionContent extensionContent) {
-        updateResourceAttributes(element, extensionContent.getBase(),
-            extensionContent.getBundle());
-    }
+	public static void updateResourceAttributes(Element element,
+			IntroExtensionContent extensionContent) {
+		updateResourceAttributes(element, extensionContent.getBase(),
+			extensionContent.getBundle());
+	}
 
-    /**
-     * Updates all the resource attributes of the passed element to point to a
-     * local resolved url.
-     *
-     * @param element
-     * @param extensionContent
-     */
-    private static void updateResourceAttributes(Element element, String base,
-            Bundle bundle) {
-        // doUpdateResourceAttributes(element, base, bundle);
-        NodeList children = element.getElementsByTagName("*"); //$NON-NLS-1$
-        for (int i = 0; i < children.getLength(); i++) {
-            Element child = (Element) children.item(i);
-            doUpdateResourceAttributes(child, base, bundle);
-        }
-    }
+	/**
+	 * Updates all the resource attributes of the passed element to point to a
+	 * local resolved url.
+	 *
+	 * @param element
+	 * @param extensionContent
+	 */
+	private static void updateResourceAttributes(Element element, String base,
+			Bundle bundle) {
+		// doUpdateResourceAttributes(element, base, bundle);
+		NodeList children = element.getElementsByTagName("*"); //$NON-NLS-1$
+		for (int i = 0; i < children.getLength(); i++) {
+			Element child = (Element) children.item(i);
+			doUpdateResourceAttributes(child, base, bundle);
+		}
+	}
 
-    private static void doUpdateResourceAttributes(Element element,
-            String base, Bundle bundle) {
-        qualifyAttribute(element, ATT_SRC, base, bundle);
-        qualifyAttribute(element, ATT_HREF, base, bundle);
-        qualifyAttribute(element, ATT_CITE, base, bundle);
-        qualifyAttribute(element, ATT_LONGDESC, base, bundle);
-        qualifyAttribute(element, ATT_CODEBASE, base, bundle);
-        qualifyAttribute(element, ATT_DATA, base, bundle);
-        qualifyValueAttribute(element, base, bundle);
-    }
+	private static void doUpdateResourceAttributes(Element element,
+			String base, Bundle bundle) {
+		qualifyAttribute(element, ATT_SRC, base, bundle);
+		qualifyAttribute(element, ATT_HREF, base, bundle);
+		qualifyAttribute(element, ATT_CITE, base, bundle);
+		qualifyAttribute(element, ATT_LONGDESC, base, bundle);
+		qualifyAttribute(element, ATT_CODEBASE, base, bundle);
+		qualifyAttribute(element, ATT_DATA, base, bundle);
+		qualifyValueAttribute(element, base, bundle);
+	}
 
-    private static void qualifyAttribute(Element element, String attributeName,
-            String base, Bundle bundle) {
-        if (element.hasAttribute(attributeName)) {
-            String attributeValue = element.getAttribute(attributeName);
-            if (new IntroURLParser(attributeValue).hasProtocol())
-                return;
+	private static void qualifyAttribute(Element element, String attributeName,
+			String base, Bundle bundle) {
+		if (element.hasAttribute(attributeName)) {
+			String attributeValue = element.getAttribute(attributeName);
+			if (new IntroURLParser(attributeValue).hasProtocol())
+				return;
 
-            // resolve the resource against the nl mechanism.
-            String attributePath = BundleUtil.getResolvedResourceLocation(base,
-                attributeValue, bundle);
-            element.setAttribute(attributeName, attributePath);
-        }
-    }
+			// resolve the resource against the nl mechanism.
+			String attributePath = BundleUtil.getResolvedResourceLocation(base,
+				attributeValue, bundle);
+			element.setAttribute(attributeName, attributePath);
+		}
+	}
 
-    private static void qualifyValueAttribute(Element element, String base,
-            Bundle bundle) {
-        if (element.hasAttribute(ATT_VALUE)
-                && element.hasAttribute(ATT_VALUE_TYPE)
-                && element.getAttribute(ATT_VALUE_TYPE).equals("ref") //$NON-NLS-1$
-                && element.getLocalName().equals(TAG_PARAM)) {
-            String value = element.getAttribute(ATT_VALUE);
-            if (new IntroURLParser(value).hasProtocol())
-                return;
-            // resolve the resource against the nl mechanism.
-            String attributePath = BundleUtil.getResolvedResourceLocation(base,
-                value, bundle);
-            element.setAttribute(ATT_VALUE, attributePath);
-        }
-    }
+	private static void qualifyValueAttribute(Element element, String base,
+			Bundle bundle) {
+		if (element.hasAttribute(ATT_VALUE)
+				&& element.hasAttribute(ATT_VALUE_TYPE)
+				&& element.getAttribute(ATT_VALUE_TYPE).equals("ref") //$NON-NLS-1$
+				&& element.getLocalName().equals(TAG_PARAM)) {
+			String value = element.getAttribute(ATT_VALUE);
+			if (new IntroURLParser(value).hasProtocol())
+				return;
+			// resolve the resource against the nl mechanism.
+			String attributePath = BundleUtil.getResolvedResourceLocation(base,
+				value, bundle);
+			element.setAttribute(ATT_VALUE, attributePath);
+		}
+	}
 
 
-    /**
-     * Returns an array version of the passed NodeList. Used to work around DOM
-     * design issues.
-     */
-    public static Node[] getArray(NodeList nodeList) {
-        Node[] nodes = new Node[nodeList.getLength()];
-        for (int i = 0; i < nodeList.getLength(); i++)
-            nodes[i] = nodeList.item(i);
-        return nodes;
-    }
+	/**
+	 * Returns an array version of the passed NodeList. Used to work around DOM
+	 * design issues.
+	 */
+	public static Node[] getArray(NodeList nodeList) {
+		Node[] nodes = new Node[nodeList.getLength()];
+		for (int i = 0; i < nodeList.getLength(); i++)
+			nodes[i] = nodeList.item(i);
+		return nodes;
+	}
 
 
-    /**
-     * Remove all instances of the element from the DOM.
-     *
-     */
-    public static void removeAllElements(Document dom, String elementLocalName) {
-        // get all elements in DOM and remove them.
-        NodeList elements = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
-            elementLocalName);
-        // get the array version of the nodelist to work around DOM api design.
-        Node[] elementsArray = ModelUtil.getArray(elements);
-        for (int i = 0; i < elementsArray.length; i++) {
-            Node element = elementsArray[i];
-            element.getParentNode().removeChild(element);
-        }
+	/**
+	 * Remove all instances of the element from the DOM.
+	 *
+	 */
+	public static void removeAllElements(Document dom, String elementLocalName) {
+		// get all elements in DOM and remove them.
+		NodeList elements = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
+			elementLocalName);
+		// get the array version of the nodelist to work around DOM api design.
+		Node[] elementsArray = ModelUtil.getArray(elements);
+		for (int i = 0; i < elementsArray.length; i++) {
+			Node element = elementsArray[i];
+			element.getParentNode().removeChild(element);
+		}
 
-    }
+	}
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelContentProvider.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelContentProvider.java
index 151e3c7..6703f1e 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelContentProvider.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelContentProvider.java
@@ -21,63 +21,63 @@
 
 public class IntroModelContentProvider implements ITreeContentProvider {
 
-    @Override
+	@Override
 	public Object[] getChildren(Object element) {
 
-        AbstractIntroElement introElement = null;
-        if (element instanceof AbstractIntroElement)
-            // synch the resource first.
-            introElement = (AbstractIntroElement) element;
+		AbstractIntroElement introElement = null;
+		if (element instanceof AbstractIntroElement)
+			// synch the resource first.
+			introElement = (AbstractIntroElement) element;
 
-        if (introElement != null
-                && introElement
-                    .isOfType(AbstractIntroElement.ABSTRACT_CONTAINER))
-            return ((AbstractIntroContainer) introElement).getChildren();
+		if (introElement != null
+				&& introElement
+					.isOfType(AbstractIntroElement.ABSTRACT_CONTAINER))
+			return ((AbstractIntroContainer) introElement).getChildren();
 
-        return new Object[0];
-    }
+		return new Object[0];
+	}
 
-    @Override
+	@Override
 	public Object getParent(Object element) {
-        AbstractIntroElement introElement = null;
-        if (element instanceof AbstractIntroElement) {
-            // synch the resource first.
-            introElement = (AbstractIntroElement) element;
-            return introElement.getParent();
-        }
-        return null;
-    }
+		AbstractIntroElement introElement = null;
+		if (element instanceof AbstractIntroElement) {
+			// synch the resource first.
+			introElement = (AbstractIntroElement) element;
+			return introElement.getParent();
+		}
+		return null;
+	}
 
 
-    @Override
+	@Override
 	public boolean hasChildren(Object element) {
-        AbstractIntroElement introElement = null;
-        if (element instanceof AbstractIntroElement)
-            // synch the resource first.
-            introElement = (AbstractIntroElement) element;
-        if (introElement != null
-                && introElement
-                    .isOfType(AbstractIntroElement.ABSTRACT_CONTAINER))
-            return true;
-        return false;
-    }
+		AbstractIntroElement introElement = null;
+		if (element instanceof AbstractIntroElement)
+			// synch the resource first.
+			introElement = (AbstractIntroElement) element;
+		if (introElement != null
+				&& introElement
+					.isOfType(AbstractIntroElement.ABSTRACT_CONTAINER))
+			return true;
+		return false;
+	}
 
 
-    @Override
+	@Override
 	public Object[] getElements(Object element) {
-        return getChildren(element);
-    }
+		return getChildren(element);
+	}
 
 
-    @Override
+	@Override
 	public void dispose() {
-        // nothing to dispose
-    }
+		// nothing to dispose
+	}
 
-    @Override
+	@Override
 	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        // do nothing
+		// do nothing
 
-    }
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelLabelProvider.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelLabelProvider.java
index cf51f2d..5183ceb 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelLabelProvider.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelLabelProvider.java
@@ -36,111 +36,111 @@
 
 public class IntroModelLabelProvider extends LabelProvider {
 
-    // Images created in this ILabelProvider
+	// Images created in this ILabelProvider
 
-    static {
-        ImageUtil.registerImage(ImageUtil.INTRO_MODEL_CONTAINER,
-            "container_obj.png"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.INTRO_MODEL_LEAF, "topic.png"); //$NON-NLS-1$
-    }
+	static {
+		ImageUtil.registerImage(ImageUtil.INTRO_MODEL_CONTAINER,
+			"container_obj.png"); //$NON-NLS-1$
+		ImageUtil.registerImage(ImageUtil.INTRO_MODEL_LEAF, "topic.png"); //$NON-NLS-1$
+	}
 
-    public IntroModelLabelProvider() {
-        super();
-    }
+	public IntroModelLabelProvider() {
+		super();
+	}
 
-    @Override
+	@Override
 	public Image getImage(Object element) {
-        Image image = null;
-        AbstractIntroElement introElement = null;
-        if (element instanceof AbstractIntroElement)
-            // synch the resource first.
-            introElement = (AbstractIntroElement) element;
-        if (introElement == null)
-            return null;
+		Image image = null;
+		AbstractIntroElement introElement = null;
+		if (element instanceof AbstractIntroElement)
+			// synch the resource first.
+			introElement = (AbstractIntroElement) element;
+		if (introElement == null)
+			return null;
 
-        int elementType = introElement.getType();
-        switch (elementType) {
-        case AbstractIntroElement.GROUP:
-        case AbstractIntroElement.PAGE:
-        case AbstractIntroElement.HOME_PAGE:
-            image = ImageUtil.getImage(ImageUtil.INTRO_MODEL_CONTAINER);
-            break;
-        default:
-            image = ImageUtil.getImage(ImageUtil.INTRO_MODEL_LEAF);
-            break;
-        }
-        return image;
-    }
+		int elementType = introElement.getType();
+		switch (elementType) {
+		case AbstractIntroElement.GROUP:
+		case AbstractIntroElement.PAGE:
+		case AbstractIntroElement.HOME_PAGE:
+			image = ImageUtil.getImage(ImageUtil.INTRO_MODEL_CONTAINER);
+			break;
+		default:
+			image = ImageUtil.getImage(ImageUtil.INTRO_MODEL_LEAF);
+			break;
+		}
+		return image;
+	}
 
-    @Override
+	@Override
 	public String getText(Object element) {
 
-        String label = null;
-        AbstractIntroElement introElement = null;
-        if (element instanceof AbstractIntroElement)
-            // synch the resource first.
-            introElement = (AbstractIntroElement) element;
-        if (introElement == null)
-            return null;
+		String label = null;
+		AbstractIntroElement introElement = null;
+		if (element instanceof AbstractIntroElement)
+			// synch the resource first.
+			introElement = (AbstractIntroElement) element;
+		if (introElement == null)
+			return null;
 
-        int elementType = introElement.getType();
-        switch (elementType) {
-        case AbstractIntroElement.GROUP:
-            label = "GROUP: " + ((IntroGroup) introElement).getId(); //$NON-NLS-1$
-            break;
-        case AbstractIntroElement.LINK:
-            label = "LINK: " + ((IntroLink) introElement).getLabel(); //$NON-NLS-1$
-            break;
-        case AbstractIntroElement.TEXT:
-            label = "TEXT: " + ((IntroText) introElement).getText(); //$NON-NLS-1$
-            break;
-        case AbstractIntroElement.IMAGE:
-            label = "IMAGE: " + ((IntroImage) introElement).getId(); //$NON-NLS-1$
-            break;
-        case AbstractIntroElement.HR:
-            label = "HR: " + ((IntroSeparator) introElement).getId(); //$NON-NLS-1$
-            break;
-        case AbstractIntroElement.HTML:
-            label = "HTML: " + ((IntroHTML) introElement).getId(); //$NON-NLS-1$
-            break;
-        case AbstractIntroElement.INCLUDE:
-            label = "Unresolved INCLUDE: " //$NON-NLS-1$
-                    + ((IntroInclude) introElement).getPath();
-            break;
-        case AbstractIntroElement.PAGE:
-            label = "PAGE: " + ((AbstractIntroPage) introElement).getId(); //$NON-NLS-1$
-            break;
-        case AbstractIntroElement.HOME_PAGE:
-            label = "HOME PAGE: " //$NON-NLS-1$
-                    + ((AbstractIntroPage) introElement).getId();
-            break;
-        case AbstractIntroElement.PRESENTATION:
-            label = "PRESENTATION: " //$NON-NLS-1$
-                    + ((IntroPartPresentation) introElement)
-                        .getImplementationKind();
-            break;
-        case AbstractIntroElement.CONTENT_PROVIDER:
-            label = "CONTENT PROVIDER: " //$NON-NLS-1$
-                    + ((IntroContentProvider) introElement).getClassName();
-            break;
-        case AbstractIntroElement.CONTAINER_EXTENSION:
-            label = "Unresolved ConfigExtension: " //$NON-NLS-1$
-                    + ((IntroExtensionContent) introElement).getPath();
-            break;
-        case AbstractIntroElement.ANCHOR:
-            label = "ANCHOR: " //$NON-NLS-1$
-                    + getPath(introElement.getParent(), ((IntroAnchor) introElement).getId());
-            break;
-        case AbstractIntroElement.PAGE_TITLE:
-            label = "Title: " //$NON-NLS-1$
-                    + ((IntroPageTitle) introElement).getTitle();
-            break;
-        default:
-            label = super.getText(element);
-            break;
-        }
-        return label;
-    }
+		int elementType = introElement.getType();
+		switch (elementType) {
+		case AbstractIntroElement.GROUP:
+			label = "GROUP: " + ((IntroGroup) introElement).getId(); //$NON-NLS-1$
+			break;
+		case AbstractIntroElement.LINK:
+			label = "LINK: " + ((IntroLink) introElement).getLabel(); //$NON-NLS-1$
+			break;
+		case AbstractIntroElement.TEXT:
+			label = "TEXT: " + ((IntroText) introElement).getText(); //$NON-NLS-1$
+			break;
+		case AbstractIntroElement.IMAGE:
+			label = "IMAGE: " + ((IntroImage) introElement).getId(); //$NON-NLS-1$
+			break;
+		case AbstractIntroElement.HR:
+			label = "HR: " + ((IntroSeparator) introElement).getId(); //$NON-NLS-1$
+			break;
+		case AbstractIntroElement.HTML:
+			label = "HTML: " + ((IntroHTML) introElement).getId(); //$NON-NLS-1$
+			break;
+		case AbstractIntroElement.INCLUDE:
+			label = "Unresolved INCLUDE: " //$NON-NLS-1$
+					+ ((IntroInclude) introElement).getPath();
+			break;
+		case AbstractIntroElement.PAGE:
+			label = "PAGE: " + ((AbstractIntroPage) introElement).getId(); //$NON-NLS-1$
+			break;
+		case AbstractIntroElement.HOME_PAGE:
+			label = "HOME PAGE: " //$NON-NLS-1$
+					+ ((AbstractIntroPage) introElement).getId();
+			break;
+		case AbstractIntroElement.PRESENTATION:
+			label = "PRESENTATION: " //$NON-NLS-1$
+					+ ((IntroPartPresentation) introElement)
+						.getImplementationKind();
+			break;
+		case AbstractIntroElement.CONTENT_PROVIDER:
+			label = "CONTENT PROVIDER: " //$NON-NLS-1$
+					+ ((IntroContentProvider) introElement).getClassName();
+			break;
+		case AbstractIntroElement.CONTAINER_EXTENSION:
+			label = "Unresolved ConfigExtension: " //$NON-NLS-1$
+					+ ((IntroExtensionContent) introElement).getPath();
+			break;
+		case AbstractIntroElement.ANCHOR:
+			label = "ANCHOR: " //$NON-NLS-1$
+					+ getPath(introElement.getParent(), ((IntroAnchor) introElement).getId());
+			break;
+		case AbstractIntroElement.PAGE_TITLE:
+			label = "Title: " //$NON-NLS-1$
+					+ ((IntroPageTitle) introElement).getTitle();
+			break;
+		default:
+			label = super.getText(element);
+			break;
+		}
+		return label;
+	}
 
 	private String getPath(AbstractIntroElement introElement, String suffix) {
 		if (introElement == null || introElement instanceof IntroModelRoot) {
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/EmptyStandbyContentPart.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/EmptyStandbyContentPart.java
index 7591a4c..a19b24b 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/EmptyStandbyContentPart.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/EmptyStandbyContentPart.java
@@ -32,66 +32,66 @@
 
 public class EmptyStandbyContentPart implements IStandbyContentPart {
 
-    private Composite contentComposite;
-    private Text contentText;
+	private Composite contentComposite;
+	private Text contentText;
 
-    @Override
+	@Override
 	public void createPartControl(Composite parent, FormToolkit toolkit) {
-        contentComposite = toolkit.createComposite(parent);
-        contentComposite.setLayout(new GridLayout());
-        // Util.highlight(contentComposite, SWT.COLOR_YELLOW);
+		contentComposite = toolkit.createComposite(parent);
+		contentComposite.setLayout(new GridLayout());
+		// Util.highlight(contentComposite, SWT.COLOR_YELLOW);
 
-        String text = Messages.EmptyStandbyContentPart_text;
-        Label label = toolkit.createLabel(contentComposite, text, SWT.WRAP);
-        label.setFont(PageStyleManager.getBannerFont());
-        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-        label.setLayoutData(gd);
+		String text = Messages.EmptyStandbyContentPart_text;
+		Label label = toolkit.createLabel(contentComposite, text, SWT.WRAP);
+		label.setFont(PageStyleManager.getBannerFont());
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		label.setLayoutData(gd);
 
-        contentText = toolkit.createText(contentComposite, " ", SWT.MULTI //$NON-NLS-1$
-                | SWT.WRAP);
-        GridData textGd = new GridData(GridData.FILL_BOTH);
-        contentText.setLayoutData(textGd);
-    }
+		contentText = toolkit.createText(contentComposite, " ", SWT.MULTI //$NON-NLS-1$
+				| SWT.WRAP);
+		GridData textGd = new GridData(GridData.FILL_BOTH);
+		contentText.setLayoutData(textGd);
+	}
 
-    @Override
+	@Override
 	public Control getControl() {
-        return contentComposite;
-    }
+		return contentComposite;
+	}
 
 
-    public void setMessage(String message) {
-        if (message != null) {
-            contentText.setText(message);
-            contentComposite.layout();
-        }
-    }
+	public void setMessage(String message) {
+		if (message != null) {
+			contentText.setText(message);
+			contentComposite.layout();
+		}
+	}
 
-    @Override
+	@Override
 	public void init(IIntroPart introPart, IMemento memento) {
-        // no-op
-    }
+		// no-op
+	}
 
-    @Override
+	@Override
 	public void setInput(Object input) {
-        if (input != null)
-            setMessage((String) input);
-        else
-            setMessage(""); //$NON-NLS-1$
-    }
+		if (input != null)
+			setMessage((String) input);
+		else
+			setMessage(""); //$NON-NLS-1$
+	}
 
-    @Override
+	@Override
 	public void setFocus() {
-        // no-op
-    }
+		// no-op
+	}
 
-    @Override
+	@Override
 	public void dispose() {
-        // no-op
-    }
+		// no-op
+	}
 
-    @Override
+	@Override
 	public void saveState(IMemento memento) {
-        // no-op
-    }
+		// no-op
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/StandbyPart.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/StandbyPart.java
index 512a19c..e7fa089 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/StandbyPart.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/StandbyPart.java
@@ -61,403 +61,403 @@
  */
 public class StandbyPart implements IIntroConstants {
 
-    private FormToolkit toolkit;
-    private IntroModelRoot model;
-    protected ImageHyperlink returnLink;
-    protected Control separator;
-    private Composite container;
-    protected Composite content;
-    private IIntroPart introPart;
-    private EmptyStandbyContentPart emptyPart;
-    private IMemento memento;
+	private FormToolkit toolkit;
+	private IntroModelRoot model;
+	protected ImageHyperlink returnLink;
+	protected Control separator;
+	private Composite container;
+	protected Composite content;
+	private IIntroPart introPart;
+	private EmptyStandbyContentPart emptyPart;
+	private IMemento memento;
 
 	private Map<String, ControlKey> cachedContentParts = new HashMap<>();
 
-    private ControlKey cachedControlKey;
+	private ControlKey cachedControlKey;
 
-    class StandbyLayout extends Layout {
+	class StandbyLayout extends Layout {
 
-        private int VGAP = 9;
-        private int VMARGIN = 5;
-        private int HMARGIN = 5;
-        private int SEPARATOR_HEIGHT = 1;
+		private int VGAP = 9;
+		private int VMARGIN = 5;
+		private int HMARGIN = 5;
+		private int SEPARATOR_HEIGHT = 1;
 
-        @Override
+		@Override
 		protected Point computeSize(Composite composite, int wHint, int hHint,
-                boolean flushCache) {
-            Point lsize = returnLink.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                flushCache);
-            Point csize = content.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                flushCache);
-            int width = Math.max(lsize.x + 2 * HMARGIN, csize.x);
-            int height = VMARGIN + lsize.y + VGAP + SEPARATOR_HEIGHT + csize.y;
-            return new Point(width, height);
-        }
+				boolean flushCache) {
+			Point lsize = returnLink.computeSize(SWT.DEFAULT, SWT.DEFAULT,
+				flushCache);
+			Point csize = content.computeSize(SWT.DEFAULT, SWT.DEFAULT,
+				flushCache);
+			int width = Math.max(lsize.x + 2 * HMARGIN, csize.x);
+			int height = VMARGIN + lsize.y + VGAP + SEPARATOR_HEIGHT + csize.y;
+			return new Point(width, height);
+		}
 
-        @Override
+		@Override
 		protected void layout(Composite composite, boolean flushCache) {
-            Rectangle carea = composite.getClientArea();
-            int lwidth = carea.width - HMARGIN * 2;
-            Point lsize = returnLink.computeSize(lwidth, SWT.DEFAULT,
-                flushCache);
-            int x = HMARGIN;
-            int y = VMARGIN;
-            returnLink.setBounds(x, y, lsize.x, lsize.y);
-            x = 0;
-            y += lsize.y + VGAP;
-            separator.setBounds(x, y, carea.width, SEPARATOR_HEIGHT);
-            y += SEPARATOR_HEIGHT;
-            content.setBounds(x, y, carea.width, carea.height - VMARGIN
-                    - lsize.y - VGAP - SEPARATOR_HEIGHT);
-        }
-    }
+			Rectangle carea = composite.getClientArea();
+			int lwidth = carea.width - HMARGIN * 2;
+			Point lsize = returnLink.computeSize(lwidth, SWT.DEFAULT,
+				flushCache);
+			int x = HMARGIN;
+			int y = VMARGIN;
+			returnLink.setBounds(x, y, lsize.x, lsize.y);
+			x = 0;
+			y += lsize.y + VGAP;
+			separator.setBounds(x, y, carea.width, SEPARATOR_HEIGHT);
+			y += SEPARATOR_HEIGHT;
+			content.setBounds(x, y, carea.width, carea.height - VMARGIN
+					- lsize.y - VGAP - SEPARATOR_HEIGHT);
+		}
+	}
 
-    /**
-     * @param parent
-     */
-    public StandbyPart(IntroModelRoot model) {
-        this.model = model;
-    }
+	/**
+	 * @param parent
+	 */
+	public StandbyPart(IntroModelRoot model) {
+		this.model = model;
+	}
 
 
-    public void init(IIntroPart introPart, IMemento memento) {
-        this.introPart = introPart;
-        this.memento = memento;
-    }
+	public void init(IIntroPart introPart, IMemento memento) {
+		this.introPart = introPart;
+		this.memento = memento;
+	}
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.ui.intro.IIntroPart#saveState(org.eclipse.ui.IMemento)
-     */
-    private IMemento getMemento(IMemento memento, String key) {
-        if (memento == null)
-            return null;
-        return memento.getChild(key);
-    }
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.ui.intro.IIntroPart#saveState(org.eclipse.ui.IMemento)
+	 */
+	private IMemento getMemento(IMemento memento, String key) {
+		if (memento == null)
+			return null;
+		return memento.getChild(key);
+	}
 
-    public void createPartControl(Composite parent) {
-        toolkit = new FormToolkit(parent.getDisplay());
-        // parent container. Has custom layout. Has return link and content
-        // stack composite.
-        container = toolkit.createComposite(parent);
-        container.setLayout(new StandbyLayout());
+	public void createPartControl(Composite parent) {
+		toolkit = new FormToolkit(parent.getDisplay());
+		// parent container. Has custom layout. Has return link and content
+		// stack composite.
+		container = toolkit.createComposite(parent);
+		container.setLayout(new StandbyLayout());
 
-        // return hyper link.
-        ImageUtil.registerImage(ImageUtil.BACK, "full/elcl16/home_nav.png"); //$NON-NLS-1$
-        returnLink = toolkit.createImageHyperlink(container, SWT.WRAP
-                | SWT.CENTER);
-        returnLink.setImage(ImageUtil.getImage(ImageUtil.BACK));
-        returnLink.addHyperlinkListener(new HyperlinkAdapter() {
+		// return hyper link.
+		ImageUtil.registerImage(ImageUtil.BACK, "full/elcl16/home_nav.png"); //$NON-NLS-1$
+		returnLink = toolkit.createImageHyperlink(container, SWT.WRAP
+				| SWT.CENTER);
+		returnLink.setImage(ImageUtil.getImage(ImageUtil.BACK));
+		returnLink.addHyperlinkListener(new HyperlinkAdapter() {
 
-            @Override
+			@Override
 			public void linkActivated(HyperlinkEvent e) {
-                doReturn();
-            }
-        });
+				doReturn();
+			}
+		});
 
-        // create horizontal separator
-        separator = toolkit.createCompositeSeparator(container);
-        // content stack container
-        content = toolkit.createComposite(container);
-        StackLayout slayout = new StackLayout();
-        slayout.marginWidth = slayout.marginHeight = 0;
-        content.setLayout(slayout);
+		// create horizontal separator
+		separator = toolkit.createCompositeSeparator(container);
+		// content stack container
+		content = toolkit.createComposite(container);
+		StackLayout slayout = new StackLayout();
+		slayout.marginWidth = slayout.marginHeight = 0;
+		content.setLayout(slayout);
 
-        boolean success = false;
-        if (memento != null) {
-            success = restoreState(memento);
-            if (!success)
-                // add empty standby content.
-                addAndShowEmptyPart(Messages.StandbyPart_canNotRestore);
-        }
+		boolean success = false;
+		if (memento != null) {
+			success = restoreState(memento);
+			if (!success)
+				// add empty standby content.
+				addAndShowEmptyPart(Messages.StandbyPart_canNotRestore);
+		}
 
-        updateReturnLinkLabel();
-    }
+		updateReturnLinkLabel();
+	}
 
-    /**
-     * Empty content part used as backup for failures.
-     *
-     */
-    private void addAndShowEmptyPart(String message) {
-        if (emptyPart == null)
-            emptyPart = new EmptyStandbyContentPart();
-        addStandbyContentPart(EMPTY_STANDBY_CONTENT_PART, emptyPart);
-        emptyPart.setMessage(message);
-        setTopControl(EMPTY_STANDBY_CONTENT_PART);
-    }
+	/**
+	 * Empty content part used as backup for failures.
+	 *
+	 */
+	private void addAndShowEmptyPart(String message) {
+		if (emptyPart == null)
+			emptyPart = new EmptyStandbyContentPart();
+		addStandbyContentPart(EMPTY_STANDBY_CONTENT_PART, emptyPart);
+		emptyPart.setMessage(message);
+		setTopControl(EMPTY_STANDBY_CONTENT_PART);
+	}
 
-    /**
-     * Tries to create the last content part viewed, based on content part id..
-     *
-     * @param memento
-     * @return
-     */
-    private boolean restoreState(IMemento memento) {
-        String contentPartId = memento
-            .getString(MEMENTO_STANDBY_CONTENT_PART_ID_ATT);
-        if (contentPartId == null)
-            return false;
-        // create the cached content part. Content parts are responsible for
-        // storing and reading their input state.
-        return showContentPart(contentPartId, null);
-    }
+	/**
+	 * Tries to create the last content part viewed, based on content part id..
+	 *
+	 * @param memento
+	 * @return
+	 */
+	private boolean restoreState(IMemento memento) {
+		String contentPartId = memento
+			.getString(MEMENTO_STANDBY_CONTENT_PART_ID_ATT);
+		if (contentPartId == null)
+			return false;
+		// create the cached content part. Content parts are responsible for
+		// storing and reading their input state.
+		return showContentPart(contentPartId, null);
+	}
 
 
-    /**
-     * Sets the into part to standby, and shows the passed standby part, with
-     * the given input.
-     *
-     * @param partId
-     * @param input
-     */
-    public boolean showContentPart(String partId, String input) {
-        // Get the IntroStandbyContentPart that maps to the given partId.
-        IntroStandbyContentPart standbyPartContent = ExtensionPointManager
-            .getInst().getSharedConfigExtensionsManager()
-            .getStandbyPart(partId);
+	/**
+	 * Sets the into part to standby, and shows the passed standby part, with
+	 * the given input.
+	 *
+	 * @param partId
+	 * @param input
+	 */
+	public boolean showContentPart(String partId, String input) {
+		// Get the IntroStandbyContentPart that maps to the given partId.
+		IntroStandbyContentPart standbyPartContent = ExtensionPointManager
+			.getInst().getSharedConfigExtensionsManager()
+			.getStandbyPart(partId);
 
-        if (standbyPartContent != null) {
-            String standbyContentClassName = standbyPartContent.getClassName();
-            String pluginId = standbyPartContent.getPluginId();
+		if (standbyPartContent != null) {
+			String standbyContentClassName = standbyPartContent.getClassName();
+			String pluginId = standbyPartContent.getPluginId();
 
-            Object standbyContentObject = ModelLoaderUtil.createClassInstance(
-                pluginId, standbyContentClassName);
-            if (standbyContentObject instanceof IStandbyContentPart) {
-                IStandbyContentPart contentPart = (IStandbyContentPart) standbyContentObject;
-                Control c = addStandbyContentPart(partId, contentPart);
-                if (c != null) {
-                    try {
-                        setTopControl(partId);
-                        setInput(input);
-                        return true;
-                    } catch (Exception e) {
-                        Log.error("Failed to set the input: " + input //$NON-NLS-1$
-                                + " on standby part: " + partId, e); //$NON-NLS-1$
-                    }
-                }
+			Object standbyContentObject = ModelLoaderUtil.createClassInstance(
+				pluginId, standbyContentClassName);
+			if (standbyContentObject instanceof IStandbyContentPart) {
+				IStandbyContentPart contentPart = (IStandbyContentPart) standbyContentObject;
+				Control c = addStandbyContentPart(partId, contentPart);
+				if (c != null) {
+					try {
+						setTopControl(partId);
+						setInput(input);
+						return true;
+					} catch (Exception e) {
+						Log.error("Failed to set the input: " + input //$NON-NLS-1$
+								+ " on standby part: " + partId, e); //$NON-NLS-1$
+					}
+				}
 
-                // failed to create the standby part, show empty part and signal
-                // failure.
-                String message = NLS.bind(Messages.StandbyPart_failedToCreate,
-                    partId);
-                addAndShowEmptyPart(message);
-                return false;
+				// failed to create the standby part, show empty part and signal
+				// failure.
+				String message = NLS.bind(Messages.StandbyPart_failedToCreate,
+					partId);
+				addAndShowEmptyPart(message);
+				return false;
 
-            }
-        }
+			}
+		}
 
-        // no content part defined with the passed partId, show empty part and
-        // signal failure.
-        String message = NLS.bind(Messages.StandbyPart_nonDefined, partId);
-        addAndShowEmptyPart(message);
-        return false;
-    }
+		// no content part defined with the passed partId, show empty part and
+		// signal failure.
+		String message = NLS.bind(Messages.StandbyPart_nonDefined, partId);
+		addAndShowEmptyPart(message);
+		return false;
+	}
 
-    /**
-     * Creates a standbyContent part in the stack only if one is not already
-     * created. The partId is used as tke key in the cache. The value is an
-     * instance of ControlKey that wraps a control/StandbyPart pair along with
-     * the corresponding part id. This is needed to retrive the control of a
-     * given standby part. The IMemento should be passed to the StandbyPart when
-     * it is initialized.
-     *
-     * @param standbyContent
-     */
-    public Control addStandbyContentPart(String partId,
-            IStandbyContentPart standbyContent) {
+	/**
+	 * Creates a standbyContent part in the stack only if one is not already
+	 * created. The partId is used as tke key in the cache. The value is an
+	 * instance of ControlKey that wraps a control/StandbyPart pair along with
+	 * the corresponding part id. This is needed to retrive the control of a
+	 * given standby part. The IMemento should be passed to the StandbyPart when
+	 * it is initialized.
+	 *
+	 * @param standbyContent
+	 */
+	public Control addStandbyContentPart(String partId,
+			IStandbyContentPart standbyContent) {
 
-        ControlKey controlKey = getCachedContent(partId);
-        if (controlKey == null) {
+		ControlKey controlKey = getCachedContent(partId);
+		if (controlKey == null) {
 
-            try {
-                standbyContent.init(introPart, getMemento(memento,
-                    MEMENTO_STANDBY_CONTENT_PART_TAG));
-                standbyContent.createPartControl(content, toolkit);
-            } catch (Exception e) {
-                // a standby content part throws a PartInitException, log fact.
-                Log.error(
-                    "Failed to create part for standby part: " + partId, e); //$NON-NLS-1$
-                return null;
-            }
+			try {
+				standbyContent.init(introPart, getMemento(memento,
+					MEMENTO_STANDBY_CONTENT_PART_TAG));
+				standbyContent.createPartControl(content, toolkit);
+			} catch (Exception e) {
+				// a standby content part throws a PartInitException, log fact.
+				Log.error(
+					"Failed to create part for standby part: " + partId, e); //$NON-NLS-1$
+				return null;
+			}
 
-            Control control = standbyContent.getControl();
-            controlKey = new ControlKey(control, standbyContent, partId);
-            cachedContentParts.put(partId, controlKey);
-            if (partId.equals(EMPTY_STANDBY_CONTENT_PART))
-                // just in case it was created explicity, reuse it.
-                emptyPart = (EmptyStandbyContentPart) standbyContent;
+			Control control = standbyContent.getControl();
+			controlKey = new ControlKey(control, standbyContent, partId);
+			cachedContentParts.put(partId, controlKey);
+			if (partId.equals(EMPTY_STANDBY_CONTENT_PART))
+				// just in case it was created explicity, reuse it.
+				emptyPart = (EmptyStandbyContentPart) standbyContent;
 
-            if (controlKey.getControl() == null) {
-                // control is null. This means that interface was not
-                // implemented properly. log fact.
+			if (controlKey.getControl() == null) {
+				// control is null. This means that interface was not
+				// implemented properly. log fact.
 				String message = StringUtil.concat("Standby Content part: ", partId, //$NON-NLS-1$
 						" has a null Control defined. This prevents the part from being displayed."); //$NON-NLS-1$
-                Log.error(message, null);
-                return null;
-            }
-        }
+				Log.error(message, null);
+				return null;
+			}
+		}
 
-        return controlKey.getControl();
-    }
+		return controlKey.getControl();
+	}
 
 
 
-    public void setInput(Object input) {
-        IStandbyContentPart standbyContent = cachedControlKey.getContentPart();
-        standbyContent.setInput(input);
-        updateReturnLinkLabel();
-        container.layout();
-    }
+	public void setInput(Object input) {
+		IStandbyContentPart standbyContent = cachedControlKey.getContentPart();
+		standbyContent.setInput(input);
+		updateReturnLinkLabel();
+		container.layout();
+	}
 
 
-    public void setTopControl(String key) {
-        cachedControlKey = getCachedContent(key);
-        if (cachedControlKey != null) {
-            setTopControl(cachedControlKey.getControl());
-        }
-    }
+	public void setTopControl(String key) {
+		cachedControlKey = getCachedContent(key);
+		if (cachedControlKey != null) {
+			setTopControl(cachedControlKey.getControl());
+		}
+	}
 
-    private void setTopControl(Control c) {
-        StackLayout layout = (StackLayout) content.getLayout();
-        layout.topControl = c;
-        if (c instanceof Composite)
-            ((Composite) c).layout();
-        content.layout();
-        container.layout();
-    }
+	private void setTopControl(Control c) {
+		StackLayout layout = (StackLayout) content.getLayout();
+		layout.topControl = c;
+		if (c instanceof Composite)
+			((Composite) c).layout();
+		content.layout();
+		container.layout();
+	}
 
-    private void updateReturnLinkLabel() {
-        String linkText = Messages.StandbyPart_returnToIntro;
-        returnLink.setText(linkText);
-        AbstractIntroPage page = model.getCurrentPage();
-        if (page == null)
-            // page will be null in static intro.
-            return;
+	private void updateReturnLinkLabel() {
+		String linkText = Messages.StandbyPart_returnToIntro;
+		returnLink.setText(linkText);
+		AbstractIntroPage page = model.getCurrentPage();
+		if (page == null)
+			// page will be null in static intro.
+			return;
 
-        String toolTip = Messages.StandbyPart_returnTo;
-        if (page.getTitle() != null)
-            toolTip += " " + page.getTitle(); //$NON-NLS-1$
+		String toolTip = Messages.StandbyPart_returnTo;
+		if (page.getTitle() != null)
+			toolTip += " " + page.getTitle(); //$NON-NLS-1$
 
-        returnLink.setToolTipText(toolTip);
-    }
+		returnLink.setToolTipText(toolTip);
+	}
 
-    protected void doReturn() {
-        // remove the flag to indicate that standbypart is no longer needed.
-        ((CustomizableIntroPart) introPart).getControl().setData(
-            IIntroConstants.SHOW_STANDBY_PART, null);
-        IntroPlugin.setIntroStandby(false);
-    }
+	protected void doReturn() {
+		// remove the flag to indicate that standbypart is no longer needed.
+		((CustomizableIntroPart) introPart).getControl().setData(
+			IIntroConstants.SHOW_STANDBY_PART, null);
+		IntroPlugin.setIntroStandby(false);
+	}
 
-    /**
-     * Calls dispose on all cached IStandbyContentParts.
-     *
-     */
-    public void dispose() {
+	/**
+	 * Calls dispose on all cached IStandbyContentParts.
+	 *
+	 */
+	public void dispose() {
 		for (ControlKey controlKey : cachedContentParts.values()) {
-            controlKey.getContentPart().dispose();
-        }
-        toolkit.dispose();
-    }
+			controlKey.getContentPart().dispose();
+		}
+		toolkit.dispose();
+	}
 
-    /**
-     * Save the current state of the standby part. It stores the cached content
-     * part id for later creating it on restart. It also creates another
-     * subclass momento to also give the standby content part its own name
-     * space. This was momentos saved by different content parts will not
-     * conflict.
-     *
-     * @param memento
-     *            the memento in which to store state information
-     */
-    public void saveState(IMemento memento) {
-        // save cached content part id.
-        if (cachedControlKey != null) {
-            String contentPartId = cachedControlKey.getContentPartId();
-            if (contentPartId == EMPTY_STANDBY_CONTENT_PART)
-                // do not create memento for empty standby.
-                return;
-            memento.putString(MEMENTO_STANDBY_CONTENT_PART_ID_ATT,
-                contentPartId);
-            // give standby part its own child to create a name space for
-            // IStandbyPartContent contribution momentos.
-            IMemento standbyContentPartMemento = memento
-                .createChild(MEMENTO_STANDBY_CONTENT_PART_TAG);
-            // pass new memento to correct standby part.
-            IStandbyContentPart standbyContentpart = cachedControlKey
-                .getContentPart();
-            if (standbyContentpart != null)
-                standbyContentpart.saveState(standbyContentPartMemento);
-        }
-    }
+	/**
+	 * Save the current state of the standby part. It stores the cached content
+	 * part id for later creating it on restart. It also creates another
+	 * subclass momento to also give the standby content part its own name
+	 * space. This was momentos saved by different content parts will not
+	 * conflict.
+	 *
+	 * @param memento
+	 *            the memento in which to store state information
+	 */
+	public void saveState(IMemento memento) {
+		// save cached content part id.
+		if (cachedControlKey != null) {
+			String contentPartId = cachedControlKey.getContentPartId();
+			if (contentPartId == EMPTY_STANDBY_CONTENT_PART)
+				// do not create memento for empty standby.
+				return;
+			memento.putString(MEMENTO_STANDBY_CONTENT_PART_ID_ATT,
+				contentPartId);
+			// give standby part its own child to create a name space for
+			// IStandbyPartContent contribution momentos.
+			IMemento standbyContentPartMemento = memento
+				.createChild(MEMENTO_STANDBY_CONTENT_PART_TAG);
+			// pass new memento to correct standby part.
+			IStandbyContentPart standbyContentpart = cachedControlKey
+				.getContentPart();
+			if (standbyContentpart != null)
+				standbyContentpart.saveState(standbyContentPartMemento);
+		}
+	}
 
 
-    /*
-     * Set focus on the IStandbyContentPart that corresponds to the top control
-     * in the stack.
-     *
-     * @see org.eclipse.ui.internal.intro.impl.parts.IStandbyContentPart#setFocus()
-     */
-    public void setFocus() {
-        // grab foxus first, then delegate. This way if content part does
-        // nothing on focus, part still works.
-        returnLink.setFocus();
-        if (cachedControlKey != null)
-            cachedControlKey.getContentPart().setFocus();
-    }
+	/*
+	 * Set focus on the IStandbyContentPart that corresponds to the top control
+	 * in the stack.
+	 *
+	 * @see org.eclipse.ui.internal.intro.impl.parts.IStandbyContentPart#setFocus()
+	 */
+	public void setFocus() {
+		// grab foxus first, then delegate. This way if content part does
+		// nothing on focus, part still works.
+		returnLink.setFocus();
+		if (cachedControlKey != null)
+			cachedControlKey.getContentPart().setFocus();
+	}
 
 
 
-    /**
-     * Checks the standby cache stack if we have already created a similar
-     * IStandbyContentPart. If not, returns null.
-     *
-     * @param standbyContent
-     * @return
-     */
-    private ControlKey getCachedContent(String key) {
-        if (cachedContentParts.containsKey(key))
-            return cachedContentParts.get(key);
-        return null;
-    }
+	/**
+	 * Checks the standby cache stack if we have already created a similar
+	 * IStandbyContentPart. If not, returns null.
+	 *
+	 * @param standbyContent
+	 * @return
+	 */
+	private ControlKey getCachedContent(String key) {
+		if (cachedContentParts.containsKey(key))
+			return cachedContentParts.get(key);
+		return null;
+	}
 
-    /*
-     * Model class to wrap Control and IStandbyContentPart pairs, along with the
-     * representing ID..
-     */
-    class ControlKey {
+	/*
+	 * Model class to wrap Control and IStandbyContentPart pairs, along with the
+	 * representing ID..
+	 */
+	class ControlKey {
 
-        Control c;
-        IStandbyContentPart part;
-        String contentPartId;
+		Control c;
+		IStandbyContentPart part;
+		String contentPartId;
 
-        ControlKey(Control c, IStandbyContentPart part, String contentPartId) {
-            this.c = c;
-            this.part = part;
-            this.contentPartId = contentPartId;
-        }
+		ControlKey(Control c, IStandbyContentPart part, String contentPartId) {
+			this.c = c;
+			this.part = part;
+			this.contentPartId = contentPartId;
+		}
 
-        /**
-         * @return Returns the c.
-         */
-        public Control getControl() {
-            return c;
-        }
+		/**
+		 * @return Returns the c.
+		 */
+		public Control getControl() {
+			return c;
+		}
 
-        /**
-         * @return Returns the content part.
-         */
-        public IStandbyContentPart getContentPart() {
-            return part;
-        }
+		/**
+		 * @return Returns the content part.
+		 */
+		public IStandbyContentPart getContentPart() {
+			return part;
+		}
 
-        /**
-         * @return Returns the part id.
-         */
-        public String getContentPartId() {
-            return contentPartId;
-        }
-    }
+		/**
+		 * @return Returns the part id.
+		 */
+		public String getContentPartId() {
+			return contentPartId;
+		}
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartImplementation.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartImplementation.java
index 5e15fa1..0709188 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartImplementation.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartImplementation.java
@@ -77,89 +77,89 @@
 import org.w3c.dom.NodeList;
 
 public class BrowserIntroPartImplementation extends
-        AbstractIntroPartImplementation implements IPropertyListener,
-        IIntroContentProviderSite {
+		AbstractIntroPartImplementation implements IPropertyListener,
+		IIntroContentProviderSite {
 
 
-    private final class ReduceAction extends Action {
+	private final class ReduceAction extends Action {
 
 		{
-            setToolTipText(Messages.Browser_reduce_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/reduce_font.png")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                    .createImageDescriptor("full/dlcl16/reduce_font.png")); //$NON-NLS-1$
-        	int scalePercent = FontSelection.getScalePercentage();
-            setEnabled(scalePercent > -40);
-        }
+			setToolTipText(Messages.Browser_reduce_tooltip);
+			setImageDescriptor(ImageUtil
+				.createImageDescriptor("full/elcl16/reduce_font.png")); //$NON-NLS-1$
+			setDisabledImageDescriptor(ImageUtil
+					.createImageDescriptor("full/dlcl16/reduce_font.png")); //$NON-NLS-1$
+			int scalePercent = FontSelection.getScalePercentage();
+			setEnabled(scalePercent > -40);
+		}
 
 		@Override
 		public void run() {
-        	int scalePercent = FontSelection.getScalePercentage();
-        	FontSelection.setScalePercentage(scalePercent - 20);
-        	restartIntro();
-        }
+			int scalePercent = FontSelection.getScalePercentage();
+			FontSelection.setScalePercentage(scalePercent - 20);
+			restartIntro();
+		}
 	}
 
 	private final class MagnifyAction extends Action {
 
 		{
-            setToolTipText(Messages.Browser_magnify_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/magnify_font.png")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                    .createImageDescriptor("full/dlcl16/magnify_font.png")); //$NON-NLS-1$
-        	int scalePercent = FontSelection.getScalePercentage();
-            setEnabled(scalePercent < 100);
-        }
+			setToolTipText(Messages.Browser_magnify_tooltip);
+			setImageDescriptor(ImageUtil
+				.createImageDescriptor("full/elcl16/magnify_font.png")); //$NON-NLS-1$
+			setDisabledImageDescriptor(ImageUtil
+					.createImageDescriptor("full/dlcl16/magnify_font.png")); //$NON-NLS-1$
+			int scalePercent = FontSelection.getScalePercentage();
+			setEnabled(scalePercent < 100);
+		}
 
 		@Override
 		public void run() {
-        	int scalePercent = FontSelection.getScalePercentage();
-        	FontSelection.setScalePercentage(scalePercent + SCALE_INCREMENT);
-        	restartIntro();
-        }
+			int scalePercent = FontSelection.getScalePercentage();
+			FontSelection.setScalePercentage(scalePercent + SCALE_INCREMENT);
+			restartIntro();
+		}
 	}
 
 	private static final int SCALE_INCREMENT = 20;
 
 	// the browser widget that will display the intro content
-    protected Browser browser = null;
+	protected Browser browser = null;
 
-    // the HTML generator used to generate dynamic content
-    private IntroHTMLGenerator htmlGenerator = null;
+	// the HTML generator used to generate dynamic content
+	private IntroHTMLGenerator htmlGenerator = null;
 
-    private String savedContent = null;
+	private String savedContent = null;
 
-    private Action openBrowserAction = new Action() {
+	private Action openBrowserAction = new Action() {
 
-        {
-            setToolTipText(Messages.IntroPart_openExternal_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("topic.png")); //$NON-NLS-1$
-        }
+		{
+			setToolTipText(Messages.IntroPart_openExternal_tooltip);
+			setImageDescriptor(ImageUtil
+				.createImageDescriptor("topic.png")); //$NON-NLS-1$
+		}
 
-        @Override
+		@Override
 		public void run() {
-        	// Save the html to a file and open it in an external browser
-        	File tempFile;
+			// Save the html to a file and open it in an external browser
+			File tempFile;
 			try {
 				tempFile = File.createTempFile("intro",".html"); //$NON-NLS-1$//$NON-NLS-2$
-            	tempFile.deleteOnExit();
-            	try (BufferedWriter out = new BufferedWriter(new
-            			FileWriter(tempFile))) {
-            		out.write(savedContent);
-            	}
-            	IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
-    			IWebBrowser browser =  support.getExternalBrowser();
-    			browser.openURL(tempFile.toURI().toURL());
+				tempFile.deleteOnExit();
+				try (BufferedWriter out = new BufferedWriter(new
+						FileWriter(tempFile))) {
+					out.write(savedContent);
+				}
+				IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
+				IWebBrowser browser =  support.getExternalBrowser();
+				browser.openURL(tempFile.toURI().toURL());
 			} catch (IOException e) {
 			} catch (PartInitException e) {
 			}
-        }
-    };
+		}
+	};
 
-    private void restartIntro() {
+	private void restartIntro() {
 		IIntroManager manager = PlatformUI.getWorkbench().getIntroManager();
 		IIntroPart part = manager.getIntro();
 		if (part != null && part instanceof CustomizableIntroPart) {
@@ -181,252 +181,252 @@
 		}
 	}
 
-    protected BrowserIntroPartLocationListener urlListener = new BrowserIntroPartLocationListener(
-        this);
+	protected BrowserIntroPartLocationListener urlListener = new BrowserIntroPartLocationListener(
+		this);
 
-    // internal performance test hook
-    private boolean isFinishedLoading;
+	// internal performance test hook
+	private boolean isFinishedLoading;
 
 	private boolean resizeActionsAdded = false;
 
-    @Override
+	@Override
 	protected void updateNavigationActionsState() {
-        if (getModel().isDynamic()) {
-            forwardAction.setEnabled(history.canNavigateForward());
-            backAction.setEnabled(history.canNavigateBackward());
-            return;
-        }
+		if (getModel().isDynamic()) {
+			forwardAction.setEnabled(history.canNavigateForward());
+			backAction.setEnabled(history.canNavigateBackward());
+			return;
+		}
 
-        // in static html intro, use browser history.
-        forwardAction.setEnabled(browser.isForwardEnabled());
-        backAction.setEnabled(browser.isBackEnabled());
-    }
+		// in static html intro, use browser history.
+		forwardAction.setEnabled(browser.isForwardEnabled());
+		backAction.setEnabled(browser.isBackEnabled());
+	}
 
 
-    /**
-     * create the browser and set it's contents
-     */
-    @Override
+	/**
+	 * create the browser and set it's contents
+	 */
+	@Override
 	public void createPartControl(Composite parent) {
-        long start = 0;
-        if (Log.logPerformance)
-            start = System.currentTimeMillis();
+		long start = 0;
+		if (Log.logPerformance)
+			start = System.currentTimeMillis();
 
-        browser = new Browser(parent, SWT.NONE);
+		browser = new Browser(parent, SWT.NONE);
 
-        // add a location listener on the browser so we can intercept
-        // LocationEvents. Responsible for intercepting URLs and updating UI
-        // with history.
-        browser.addLocationListener(urlListener);
+		// add a location listener on the browser so we can intercept
+		// LocationEvents. Responsible for intercepting URLs and updating UI
+		// with history.
+		browser.addLocationListener(urlListener);
 
-        // add a location listener that will clear a flag at the end of any
-        // navigation to a page. This is used in conjunction with the location
-        // listener to filter out redundant navigations due to frames.
-        browser.addProgressListener(new ProgressListener() {
+		// add a location listener that will clear a flag at the end of any
+		// navigation to a page. This is used in conjunction with the location
+		// listener to filter out redundant navigations due to frames.
+		browser.addProgressListener(new ProgressListener() {
 
-            @Override
+			@Override
 			public void changed(ProgressEvent event) {
-                // no-op
-            }
+				// no-op
+			}
 
-            @Override
+			@Override
 			public void completed(ProgressEvent event) {
-                urlListener.flagEndOfNavigation();
-                urlListener.flagEndOfFrameNavigation();
-                urlListener.flagRemovedTempUrl();
-                if (!getModel().isDynamic())
-                    updateNavigationActionsState();
-            }
-        });
-
-        // Enable IE pop-up menu only in debug mode.
-        browser.addListener(SWT.MenuDetect, event -> {
-		    if (IntroPlugin.getDefault().isDebugging())
-		        event.doit = true;
-		    else
-		        event.doit = false;
+				urlListener.flagEndOfNavigation();
+				urlListener.flagEndOfFrameNavigation();
+				urlListener.flagRemovedTempUrl();
+				if (!getModel().isDynamic())
+					updateNavigationActionsState();
+			}
 		});
 
-        // if we are logging performance, log actual UI creation time for
-        // browser.
-        if (Log.logPerformance)
-            Util.logPerformanceTime("creating a new Browser() took:", start); //$NON-NLS-1$
+		// Enable IE pop-up menu only in debug mode.
+		browser.addListener(SWT.MenuDetect, event -> {
+			if (IntroPlugin.getDefault().isDebugging())
+				event.doit = true;
+			else
+				event.doit = false;
+		});
 
-        addToolBarActions();
+		// if we are logging performance, log actual UI creation time for
+		// browser.
+		if (Log.logPerformance)
+			Util.logPerformanceTime("creating a new Browser() took:", start); //$NON-NLS-1$
 
-        if (!getModel().hasValidConfig()) {
-            browser.setText(Messages.Browser_invalidConfig);
-            return;
-        }
+		addToolBarActions();
 
-         // root page is what decides if the model is dynamic or not.
-        if (getModel().isDynamic())
-            handleDynamicIntro();
-        else
-            handleStaticIntro();
-    }
+		if (!getModel().hasValidConfig()) {
+			browser.setText(Messages.Browser_invalidConfig);
+			return;
+		}
+
+		 // root page is what decides if the model is dynamic or not.
+		if (getModel().isDynamic())
+			handleDynamicIntro();
+		else
+			handleStaticIntro();
+	}
 
 
 
-    private void handleDynamicIntro() {
-        AbstractIntroPage homePage = getModel().getHomePage();
-        // check cache state, and populate url page if needed.
-        String cachedPage = getCachedCurrentPage();
-        if (cachedPage != null) {
-            // we have a cached state. handle appropriately
-            if (History.isURL(cachedPage)) {
-                // set the URL the browser should display
-                boolean success = browser.setUrl(cachedPage);
-                if (!success) {
-                    Log.error("Unable to set the following ULR in browser: " //$NON-NLS-1$
-                            + cachedPage, null);
-                    return;
-                }
-                history.updateHistory(cachedPage);
-            } else {
-                // Generate HTML for the cached page, and set it on the browser.
-                getModel().setCurrentPageId(cachedPage, false);
-                // generateDynamicContentForPage(getModel().getCurrentPage());
-                history.updateHistory(getModel().getCurrentPage());
-            }
+	private void handleDynamicIntro() {
+		AbstractIntroPage homePage = getModel().getHomePage();
+		// check cache state, and populate url page if needed.
+		String cachedPage = getCachedCurrentPage();
+		if (cachedPage != null) {
+			// we have a cached state. handle appropriately
+			if (History.isURL(cachedPage)) {
+				// set the URL the browser should display
+				boolean success = browser.setUrl(cachedPage);
+				if (!success) {
+					Log.error("Unable to set the following ULR in browser: " //$NON-NLS-1$
+							+ cachedPage, null);
+					return;
+				}
+				history.updateHistory(cachedPage);
+			} else {
+				// Generate HTML for the cached page, and set it on the browser.
+				getModel().setCurrentPageId(cachedPage, false);
+				// generateDynamicContentForPage(getModel().getCurrentPage());
+				history.updateHistory(getModel().getCurrentPage());
+			}
 
-        } else {
-            // No cached page. Generate HTML for the home page, and set it
-            // on the browser.
-            // generateDynamicContentForPage(homePage);
-            history.updateHistory(homePage);
-        }
-        // INTRO: all setText calls above are commented out because calling
-        // setText twice causes problems. revisit when swt bug is fixed.
+		} else {
+			// No cached page. Generate HTML for the home page, and set it
+			// on the browser.
+			// generateDynamicContentForPage(homePage);
+			history.updateHistory(homePage);
+		}
+		// INTRO: all setText calls above are commented out because calling
+		// setText twice causes problems. revisit when swt bug is fixed.
 
-        // Add this presentation as a listener to model
-        // only in dynamic case, for now.
-        getModel().addPropertyListener(this);
-    }
+		// Add this presentation as a listener to model
+		// only in dynamic case, for now.
+		getModel().addPropertyListener(this);
+	}
 
 
-    /**
-     * Generate dynamic HTML for the provided page, and set it in the browser
-     * widget. A cache is used for performance and for having a correct dynamic
-     * content life cycle. This method also updates the navigation history.
-     *
-     * @param page
-     *            the page to generate HTML for
-     */
-    private boolean generateContentForPage(AbstractIntroPage page) {
-        String content = null;
-        if (!page.isDynamic()) {
-        	browser.setUrl(page.getUrl());
-        	return true;
-        }
+	/**
+	 * Generate dynamic HTML for the provided page, and set it in the browser
+	 * widget. A cache is used for performance and for having a correct dynamic
+	 * content life cycle. This method also updates the navigation history.
+	 *
+	 * @param page
+	 *            the page to generate HTML for
+	 */
+	private boolean generateContentForPage(AbstractIntroPage page) {
+		String content = null;
+		if (!page.isDynamic()) {
+			browser.setUrl(page.getUrl());
+			return true;
+		}
 
-        if (page.isXHTMLPage())
-            content = generateXHTMLPage(page, this);
-        else {
-            HTMLElement html = getHTMLGenerator().generateHTMLforPage(page,
-                this);
-            if (html != null) {
-            	IntroModelRoot root = getModel();
-            	if (root!=null) {
-            		IntroTheme theme = root.getTheme();
+		if (page.isXHTMLPage())
+			content = generateXHTMLPage(page, this);
+		else {
+			HTMLElement html = getHTMLGenerator().generateHTMLforPage(page,
+				this);
+			if (html != null) {
+				IntroModelRoot root = getModel();
+				if (root!=null) {
+					IntroTheme theme = root.getTheme();
 					Map props = theme!=null?theme.getProperties():null;
-            		if (props!=null) {
-            			String value = (String)props.get("standardSupport"); //$NON-NLS-1$
-            			String doctype=null;
+					if (props!=null) {
+						String value = (String)props.get("standardSupport"); //$NON-NLS-1$
+						String doctype=null;
 						if ("html5".equalsIgnoreCase(value)) //$NON-NLS-1$
 							doctype = "<!DOCTYPE html>\n"; //$NON-NLS-1$
 						else if ("strict".equalsIgnoreCase(value)) //$NON-NLS-1$
-            				doctype = generateDoctype(true);
-            			else if ("loose".equalsIgnoreCase(value)) //$NON-NLS-1$
-            				doctype = generateDoctype(false);
-            			if (doctype!=null)
-            				content = doctype+html.toString();
-            		}
-            	}
-            	if (content==null)
-            		content = html.toString();
-            }
-        }
+							doctype = generateDoctype(true);
+						else if ("loose".equalsIgnoreCase(value)) //$NON-NLS-1$
+							doctype = generateDoctype(false);
+						if (doctype!=null)
+							content = doctype+html.toString();
+					}
+				}
+				if (content==null)
+					content = html.toString();
+			}
+		}
 
-        if (content == null) {
-            // there was an error generating the html. log an error
-            Log.error("Error generating HTML content for page", null); //$NON-NLS-1$
-            return false;
-        }
+		if (content == null) {
+			// there was an error generating the html. log an error
+			Log.error("Error generating HTML content for page", null); //$NON-NLS-1$
+			return false;
+		}
 
-        // set the browser's HTML.
-        boolean success = false;
-        if (browser != null) {
-            long start = 0;
-            if (Log.logPerformance)
-                start = System.currentTimeMillis();
-            browser.addLocationListener(new LocationAdapter() {
-            	@Override
+		// set the browser's HTML.
+		boolean success = false;
+		if (browser != null) {
+			long start = 0;
+			if (Log.logPerformance)
+				start = System.currentTimeMillis();
+			browser.addLocationListener(new LocationAdapter() {
+				@Override
 				public void changed(LocationEvent event) {
-            		if (event.top) {
-            			isFinishedLoading = true;
-            		}
-            	}
-            });
-            success = browser.setText(content);
-            if (Log.logPerformance)
-                Util
-                    .logPerformanceTime("setText() on the browser took:", start); //$NON-NLS-1$
+					if (event.top) {
+						isFinishedLoading = true;
+					}
+				}
+			});
+			success = browser.setText(content);
+			if (Log.logPerformance)
+				Util
+					.logPerformanceTime("setText() on the browser took:", start); //$NON-NLS-1$
 
-            if (!success)
-                Log.error("Unable to set HTML on the browser", null); //$NON-NLS-1$
-        }
+			if (!success)
+				Log.error("Unable to set HTML on the browser", null); //$NON-NLS-1$
+		}
 
 
-        // print the HTML if we are in debug mode and have tracing turned on
-        if (IntroPlugin.getDefault().isDebugging()) {
-            String printHtml = Platform
-                .getDebugOption("org.eclipse.ui.intro/trace/printHTML"); //$NON-NLS-1$
-            if (printHtml != null && printHtml.equalsIgnoreCase("true")) { //$NON-NLS-1$
-                System.out.println(content);
-            }
-            if (IntroPlugin.DEBUG_TOOLBAR) {
-            	savedContent = content;
-            }
+		// print the HTML if we are in debug mode and have tracing turned on
+		if (IntroPlugin.getDefault().isDebugging()) {
+			String printHtml = Platform
+				.getDebugOption("org.eclipse.ui.intro/trace/printHTML"); //$NON-NLS-1$
+			if (printHtml != null && printHtml.equalsIgnoreCase("true")) { //$NON-NLS-1$
+				System.out.println(content);
+			}
+			if (IntroPlugin.DEBUG_TOOLBAR) {
+				savedContent = content;
+			}
 
-        }
-        return success;
-    }
+		}
+		return success;
+	}
 
-    /**
-     * Generate an XHTML page as a string.
-     * <ul>
-     * <li> Create any dynamic content providers, if there are any. We do this
-     * by replacing each content provider with a div with the same id. The div
-     * is the parent of the dynamic content.</li>
-     * <li>Use xslt to flatten the DOM for the page, and create a string.</li>
-     * <li>Re-inject the contentProviders into the DOM to recreate the original
-     * state of the DOM. DOM could not have been cloned since cloning a DOM
-     * removes the docType.</li>
-     * </ul>
-     * Note: Resolving dynamic content is done at the UI level, consistant with
-     * SWT presentation.
-     */
-    public String generateXHTMLPage(AbstractIntroPage page,
-            IIntroContentProviderSite site) {
-        // get/cache all content provider elements in DOM.
-        Document dom = page.getResolvedDocument();
-        NodeList nodes = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
-            IntroContentProvider.TAG_CONTENT_PROVIDER);
-        // get the array version of the nodelist to work around DOM api design.
-        Node[] contentProviderElements = ModelUtil.getArray(nodes);
+	/**
+	 * Generate an XHTML page as a string.
+	 * <ul>
+	 * <li> Create any dynamic content providers, if there are any. We do this
+	 * by replacing each content provider with a div with the same id. The div
+	 * is the parent of the dynamic content.</li>
+	 * <li>Use xslt to flatten the DOM for the page, and create a string.</li>
+	 * <li>Re-inject the contentProviders into the DOM to recreate the original
+	 * state of the DOM. DOM could not have been cloned since cloning a DOM
+	 * removes the docType.</li>
+	 * </ul>
+	 * Note: Resolving dynamic content is done at the UI level, consistant with
+	 * SWT presentation.
+	 */
+	public String generateXHTMLPage(AbstractIntroPage page,
+			IIntroContentProviderSite site) {
+		// get/cache all content provider elements in DOM.
+		Document dom = page.getResolvedDocument();
+		NodeList nodes = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
+			IntroContentProvider.TAG_CONTENT_PROVIDER);
+		// get the array version of the nodelist to work around DOM api design.
+		Node[] contentProviderElements = ModelUtil.getArray(nodes);
 
-        // this modifies the DOM.
-        resolveDynamicContent(page, site);
-        String content = IntroContentParser.convertToString(dom);
+		// this modifies the DOM.
+		resolveDynamicContent(page, site);
+		String content = IntroContentParser.convertToString(dom);
 
-        // this restores the DOM to its original state.
-        reinjectDynamicContent(dom, contentProviderElements);
-        return content;
-    }
+		// this restores the DOM to its original state.
+		reinjectDynamicContent(dom, contentProviderElements);
+		return content;
+	}
 
-    private String generateDoctype(boolean strict) {
-    	StringWriter swriter = new StringWriter();
+	private String generateDoctype(boolean strict) {
+		StringWriter swriter = new StringWriter();
 		try (PrintWriter writer = new PrintWriter(swriter)) {
 			if (strict) {
 				writer.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\""); //$NON-NLS-1$
@@ -436,395 +436,395 @@
 				writer.println("\t\t\t\"http://www.w3.org/TR/html4/loose.dtd\">"); //$NON-NLS-1$
 			}
 		}
-    	return swriter.toString();
-    }
+		return swriter.toString();
+	}
 
-    /**
-     * Resolve the dynamic content in the page. Resolving dynamic content will
-     * alter the original page DOM. Dynamic content tags are removed once
-     * resolved to have clean xhtml.
-     */
-    private Document resolveDynamicContent(AbstractIntroPage page,
-            IIntroContentProviderSite site) {
-        Document dom = page.getResolvedDocument();
+	/**
+	 * Resolve the dynamic content in the page. Resolving dynamic content will
+	 * alter the original page DOM. Dynamic content tags are removed once
+	 * resolved to have clean xhtml.
+	 */
+	private Document resolveDynamicContent(AbstractIntroPage page,
+			IIntroContentProviderSite site) {
+		Document dom = page.getResolvedDocument();
 
-        // get all content provider elements in DOM.
-        NodeList contentProviders = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
-            IntroContentProvider.TAG_CONTENT_PROVIDER);
+		// get all content provider elements in DOM.
+		NodeList contentProviders = dom.getElementsByTagNameNS("*", //$NON-NLS-1$
+			IntroContentProvider.TAG_CONTENT_PROVIDER);
 
-        // get the array version of the nodelist to work around DOM api design.
-        Node[] nodes = ModelUtil.getArray(contentProviders);
-        for (int i = 0; i < nodes.length; i++) {
-            Element contentProviderElement = (Element) nodes[i];
-            IntroContentProvider provider = new IntroContentProvider(
-                contentProviderElement, page.getBundle());
-            provider.setParent(page);
-            // If we've already loaded the content provider for this element,
-            // retrieve it, otherwise load the class.
-            IIntroXHTMLContentProvider providerClass = (IIntroXHTMLContentProvider) ContentProviderManager
-                .getInst().getContentProvider(provider);
-            if (providerClass == null)
-                // content provider never created before, create it.
-                providerClass = (IIntroXHTMLContentProvider) ContentProviderManager
-                    .getInst().createContentProvider(provider, site);
+		// get the array version of the nodelist to work around DOM api design.
+		Node[] nodes = ModelUtil.getArray(contentProviders);
+		for (int i = 0; i < nodes.length; i++) {
+			Element contentProviderElement = (Element) nodes[i];
+			IntroContentProvider provider = new IntroContentProvider(
+				contentProviderElement, page.getBundle());
+			provider.setParent(page);
+			// If we've already loaded the content provider for this element,
+			// retrieve it, otherwise load the class.
+			IIntroXHTMLContentProvider providerClass = (IIntroXHTMLContentProvider) ContentProviderManager
+				.getInst().getContentProvider(provider);
+			if (providerClass == null)
+				// content provider never created before, create it.
+				providerClass = (IIntroXHTMLContentProvider) ContentProviderManager
+					.getInst().createContentProvider(provider, site);
 
-            if (providerClass != null) {
-                // create a div with the same id as the contentProvider, pass it
-                // as the parent to create the specialized content, and then
-                // replace the contentProvider element with this div.
-                Properties att = new Properties();
-                att.setProperty(IIntroHTMLConstants.ATTRIBUTE_ID, provider
-                    .getId());
-                Element contentDiv = ModelUtil.createElement(dom,
-                    ModelUtil.TAG_DIV, att);
-                providerClass.createContent(provider.getId(), contentDiv);
+			if (providerClass != null) {
+				// create a div with the same id as the contentProvider, pass it
+				// as the parent to create the specialized content, and then
+				// replace the contentProvider element with this div.
+				Properties att = new Properties();
+				att.setProperty(IIntroHTMLConstants.ATTRIBUTE_ID, provider
+					.getId());
+				Element contentDiv = ModelUtil.createElement(dom,
+					ModelUtil.TAG_DIV, att);
+				providerClass.createContent(provider.getId(), contentDiv);
 
-                contentProviderElement.getParentNode().replaceChild(contentDiv,
-                    contentProviderElement);
-            } else {
-                // we couldn't load the content provider, so add any alternate
-                // text content if there is any.
-                // INTRO: do it. 3.0 intro content style uses text element as
-                // alt text. We can load XHTML content here.
-            }
-        }
-        return dom;
-    }
-
-
-    private void reinjectDynamicContent(Document dom,
-            Node[] contentProviderElements) {
-        for (int i = 0; i < contentProviderElements.length; i++) {
-            // for each cached contentProvider, find replacement div in DOM and
-            // re-subsitute.
-            Element contentProviderElement = (Element) contentProviderElements[i];
-            Element contentProviderDiv = ModelUtil.getElementById(dom,
-                contentProviderElement
-                    .getAttribute(IIntroHTMLConstants.ATTRIBUTE_ID),
-                ModelUtil.TAG_DIV);
-            contentProviderDiv.getParentNode().replaceChild(
-                contentProviderElement, contentProviderDiv);
-        }
-    }
-
-
-
-    /**
-     * Return the cached IntroHTMLGenerator
-     *
-     * @return
-     */
-    private IntroHTMLGenerator getHTMLGenerator() {
-        if (htmlGenerator == null)
-            htmlGenerator = new IntroHTMLGenerator();
-
-        return htmlGenerator;
-    }
-
-    @Override
-	protected void addToolBarActions() {
-        // Handle menus:
-        IActionBars actionBars = getIntroPart().getIntroSite().getActionBars();
-        IToolBarManager toolBarManager = actionBars.getToolBarManager();
-        actionBars.setGlobalActionHandler(ActionFactory.FORWARD.getId(),
-            forwardAction);
-        actionBars.setGlobalActionHandler(ActionFactory.BACK.getId(),
-            backAction);
-        if (IntroPlugin.DEBUG_TOOLBAR) {
-            toolBarManager.add(viewIntroModelAction);
-        	toolBarManager.add(openBrowserAction);
-        }
-        toolBarManager.add(new Separator(IntroConfigurer.TB_ADDITIONS));
-        toolBarManager.add(homeAction);
-        toolBarManager.add(backAction);
-        toolBarManager.add(forwardAction);
-        toolBarManager.update(true);
-        IntroTheme theme = getModel().getTheme();
-        boolean createZoomButtons = theme != null && theme.isScalable() && !resizeActionsAdded
-		    &&FontSelection.FONT_RELATIVE.equals(FontSelection.getFontStyle());
-        if (createZoomButtons) {
-            toolBarManager.add(new ReduceAction());
-            toolBarManager.add(new MagnifyAction());
-        }
-        actionBars.updateActionBars();
-        updateNavigationActionsState();
-    }
-
-    public void dynamicStandbyStateChanged(boolean standby,
-            boolean isStandbyPartNeeded) {
-
-        if (isStandbyPartNeeded)
-            // we have a standby part, nothing more to do in presentation.
-            return;
-
-        if (history.currentLocationIsUrl())
-            // last page disaplyed was a url. It is already set in the browser
-            // and stored in history. Nothing more to do.
-            return;
-
-
-
-        // presentation is shown here. toggle standby page. No need to update
-        // history here.
-        IntroModelRoot model = getModel();
-		AbstractIntroPage homePage = model.getHomePage();
-        AbstractIntroPage standbyPage = model.getStandbyPage();
-        if (standbyPage == null)
-            standbyPage = homePage;
-
-        if (standby) {
-            generateContentForPage(standbyPage);
-        } else {
-            // REVISIT: If cached page is the standby page and we are not
-            // initially in standby mode, it means standby was forced on
-            // intro view on close. react.
-            AbstractIntroPage currentPage = model.getCurrentPage();
-			if (currentPage == null || standbyPage.getId().equals(currentPage)) {
-                model.setCurrentPageId(model.getHomePage().getId());
+				contentProviderElement.getParentNode().replaceChild(contentDiv,
+					contentProviderElement);
+			} else {
+				// we couldn't load the content provider, so add any alternate
+				// text content if there is any.
+				// INTRO: do it. 3.0 intro content style uses text element as
+				// alt text. We can load XHTML content here.
 			}
-            generateContentForPage(currentPage);
-        }
-    }
+		}
+		return dom;
+	}
+
+
+	private void reinjectDynamicContent(Document dom,
+			Node[] contentProviderElements) {
+		for (int i = 0; i < contentProviderElements.length; i++) {
+			// for each cached contentProvider, find replacement div in DOM and
+			// re-subsitute.
+			Element contentProviderElement = (Element) contentProviderElements[i];
+			Element contentProviderDiv = ModelUtil.getElementById(dom,
+				contentProviderElement
+					.getAttribute(IIntroHTMLConstants.ATTRIBUTE_ID),
+				ModelUtil.TAG_DIV);
+			contentProviderDiv.getParentNode().replaceChild(
+				contentProviderElement, contentProviderDiv);
+		}
+	}
 
 
 
-    /**
-     * Handle model property changes. Property listeners are only added in the
-     * dynamic case.
-     *
-     * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object,
-     *      int)
-     */
-    @Override
+	/**
+	 * Return the cached IntroHTMLGenerator
+	 *
+	 * @return
+	 */
+	private IntroHTMLGenerator getHTMLGenerator() {
+		if (htmlGenerator == null)
+			htmlGenerator = new IntroHTMLGenerator();
+
+		return htmlGenerator;
+	}
+
+	@Override
+	protected void addToolBarActions() {
+		// Handle menus:
+		IActionBars actionBars = getIntroPart().getIntroSite().getActionBars();
+		IToolBarManager toolBarManager = actionBars.getToolBarManager();
+		actionBars.setGlobalActionHandler(ActionFactory.FORWARD.getId(),
+			forwardAction);
+		actionBars.setGlobalActionHandler(ActionFactory.BACK.getId(),
+			backAction);
+		if (IntroPlugin.DEBUG_TOOLBAR) {
+			toolBarManager.add(viewIntroModelAction);
+			toolBarManager.add(openBrowserAction);
+		}
+		toolBarManager.add(new Separator(IntroConfigurer.TB_ADDITIONS));
+		toolBarManager.add(homeAction);
+		toolBarManager.add(backAction);
+		toolBarManager.add(forwardAction);
+		toolBarManager.update(true);
+		IntroTheme theme = getModel().getTheme();
+		boolean createZoomButtons = theme != null && theme.isScalable() && !resizeActionsAdded
+			&&FontSelection.FONT_RELATIVE.equals(FontSelection.getFontStyle());
+		if (createZoomButtons) {
+			toolBarManager.add(new ReduceAction());
+			toolBarManager.add(new MagnifyAction());
+		}
+		actionBars.updateActionBars();
+		updateNavigationActionsState();
+	}
+
+	public void dynamicStandbyStateChanged(boolean standby,
+			boolean isStandbyPartNeeded) {
+
+		if (isStandbyPartNeeded)
+			// we have a standby part, nothing more to do in presentation.
+			return;
+
+		if (history.currentLocationIsUrl())
+			// last page disaplyed was a url. It is already set in the browser
+			// and stored in history. Nothing more to do.
+			return;
+
+
+
+		// presentation is shown here. toggle standby page. No need to update
+		// history here.
+		IntroModelRoot model = getModel();
+		AbstractIntroPage homePage = model.getHomePage();
+		AbstractIntroPage standbyPage = model.getStandbyPage();
+		if (standbyPage == null)
+			standbyPage = homePage;
+
+		if (standby) {
+			generateContentForPage(standbyPage);
+		} else {
+			// REVISIT: If cached page is the standby page and we are not
+			// initially in standby mode, it means standby was forced on
+			// intro view on close. react.
+			AbstractIntroPage currentPage = model.getCurrentPage();
+			if (currentPage == null || standbyPage.getId().equals(currentPage)) {
+				model.setCurrentPageId(model.getHomePage().getId());
+			}
+			generateContentForPage(currentPage);
+		}
+	}
+
+
+
+	/**
+	 * Handle model property changes. Property listeners are only added in the
+	 * dynamic case.
+	 *
+	 * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object,
+	 *      int)
+	 */
+	@Override
 	public void propertyChanged(Object source, int propId) {
-        if (propId == IntroModelRoot.CURRENT_PAGE_PROPERTY_ID) {
-            String pageId = getModel().getCurrentPageId();
-            if (pageId == null || pageId.equals("")) //$NON-NLS-1$
-                // page ID was not set properly. exit.
-                return;
-            // update the presentation's content based on the model changes
-            updateContent();
-        }
-    }
+		if (propId == IntroModelRoot.CURRENT_PAGE_PROPERTY_ID) {
+			String pageId = getModel().getCurrentPageId();
+			if (pageId == null || pageId.equals("")) //$NON-NLS-1$
+				// page ID was not set properly. exit.
+				return;
+			// update the presentation's content based on the model changes
+			updateContent();
+		}
+	}
 
-    @Override
+	@Override
 	public void setFocus() {
-        browser.setFocus();
-    }
+		browser.setFocus();
+	}
 
-    @Override
+	@Override
 	public void dispose() {
-        browser.dispose();
-    }
+		browser.dispose();
+	}
 
-    /**
-     * Regenerate the dynamic content for the current page
-     */
-    protected void updateContent() {
-        generateContentForPage(getModel().getCurrentPage());
-    }
+	/**
+	 * Regenerate the dynamic content for the current page
+	 */
+	protected void updateContent() {
+		generateContentForPage(getModel().getCurrentPage());
+	}
 
-    @Override
+	@Override
 	public void reflow(IIntroContentProvider provider, boolean incremental) {
-        updateContent();
-    }
+		updateContent();
+	}
 
-    /**
-     * Override parent behavior to handle the case when we have a static page.
-     * This can happen in both the static intro case, or in the dynamic when the
-     * last visited page is the dynamic browser is an http: page, and not an
-     * intro page.
-     */
-    @Override
+	/**
+	 * Override parent behavior to handle the case when we have a static page.
+	 * This can happen in both the static intro case, or in the dynamic when the
+	 * last visited page is the dynamic browser is an http: page, and not an
+	 * intro page.
+	 */
+	@Override
 	protected void saveCurrentPage(IMemento memento) {
-        if (memento == null)
-            return;
-        // Handle the case where we are on a static page.
-        // browser.getURL() returns the empty string if there is no current URL
-        // and returns "about:blank" if we are on a dynamic page
-        if (browser != null && browser.getUrl() != null
-                && browser.getUrl().length() > 0
-                && !(browser.getUrl().equals("about:blank")) //$NON-NLS-1$
-                && !(browser.getUrl().equals("file:///"))) { //$NON-NLS-1$
+		if (memento == null)
+			return;
+		// Handle the case where we are on a static page.
+		// browser.getURL() returns the empty string if there is no current URL
+		// and returns "about:blank" if we are on a dynamic page
+		if (browser != null && browser.getUrl() != null
+				&& browser.getUrl().length() > 0
+				&& !(browser.getUrl().equals("about:blank")) //$NON-NLS-1$
+				&& !(browser.getUrl().equals("file:///"))) { //$NON-NLS-1$
 
-            String currentURL = browser.getUrl();
-            if (currentURL != null) {
-                memento.putString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT,
-                    currentURL);
-            }
-        } else {
-            super.saveCurrentPage(memento);
-        }
-    }
+			String currentURL = browser.getUrl();
+			if (currentURL != null) {
+				memento.putString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT,
+					currentURL);
+			}
+		} else {
+			super.saveCurrentPage(memento);
+		}
+	}
 
 
-    @Override
+	@Override
 	public boolean navigateBackward() {
-        boolean success = false;
-        if (getModel().isDynamic()) {
-            // dynamic case. Uses navigation history.
-            if (history.canNavigateBackward()) {
-                history.navigateHistoryBackward();
-                // guard against unnecessary History updates.
-                urlListener.flagStartOfNavigation();
-                if (history.currentLocationIsUrl()) {
-                    success = browser.setUrl(history.getCurrentLocationAsUrl());
-                } else {
-                    // we need to regen HTML. We can not use setting current
-                    // page to trigger regen for one case: navigating back from
-                    // a url will not trigger regen since current page would be
-                    // the same.
-                    AbstractIntroPage page = history.getCurrentLocationAsPage();
-                    getModel().setCurrentPageId(page.getId(), false);
-                    success = generateContentForPage(page);
-                }
-            } else
-                success = false;
-            // update history only in dynamic case.
-            updateNavigationActionsState();
-        } else
-            // static HTML case. use browser real Back.
-            success = browser.back();
+		boolean success = false;
+		if (getModel().isDynamic()) {
+			// dynamic case. Uses navigation history.
+			if (history.canNavigateBackward()) {
+				history.navigateHistoryBackward();
+				// guard against unnecessary History updates.
+				urlListener.flagStartOfNavigation();
+				if (history.currentLocationIsUrl()) {
+					success = browser.setUrl(history.getCurrentLocationAsUrl());
+				} else {
+					// we need to regen HTML. We can not use setting current
+					// page to trigger regen for one case: navigating back from
+					// a url will not trigger regen since current page would be
+					// the same.
+					AbstractIntroPage page = history.getCurrentLocationAsPage();
+					getModel().setCurrentPageId(page.getId(), false);
+					success = generateContentForPage(page);
+				}
+			} else
+				success = false;
+			// update history only in dynamic case.
+			updateNavigationActionsState();
+		} else
+			// static HTML case. use browser real Back.
+			success = browser.back();
 
-        return success;
-    }
+		return success;
+	}
 
 
-    @Override
+	@Override
 	public boolean navigateForward() {
-        boolean success = false;
-        if (getModel().isDynamic()) {
-            // dynamic case. Uses navigation history.
-            if (history.canNavigateForward()) {
-                history.navigateHistoryForward();
-                // guard against unnecessary History updates.
-                urlListener.flagStartOfNavigation();
-                if (history.currentLocationIsUrl()) {
-                    success = browser.setUrl(history.getCurrentLocationAsUrl());
-                } else {
-                    AbstractIntroPage page = history.getCurrentLocationAsPage();
-                    getModel().setCurrentPageId(page.getId(), false);
-                    success = generateContentForPage(page);
-                }
-            } else
-                success = false;
-            // update history only in dynamic case.
-            updateNavigationActionsState();
-        } else
-            // static HTML case. use browser real Forward.
-            success = browser.forward();
+		boolean success = false;
+		if (getModel().isDynamic()) {
+			// dynamic case. Uses navigation history.
+			if (history.canNavigateForward()) {
+				history.navigateHistoryForward();
+				// guard against unnecessary History updates.
+				urlListener.flagStartOfNavigation();
+				if (history.currentLocationIsUrl()) {
+					success = browser.setUrl(history.getCurrentLocationAsUrl());
+				} else {
+					AbstractIntroPage page = history.getCurrentLocationAsPage();
+					getModel().setCurrentPageId(page.getId(), false);
+					success = generateContentForPage(page);
+				}
+			} else
+				success = false;
+			// update history only in dynamic case.
+			updateNavigationActionsState();
+		} else
+			// static HTML case. use browser real Forward.
+			success = browser.forward();
 
-        return success;
-    }
+		return success;
+	}
 
-    @Override
+	@Override
 	public boolean navigateHome() {
-        // Home is URL of root page in static case, and root page in
-        // dynamic.
-        AbstractIntroPage rootPage = getModel().getHomePage();
-        boolean success = false;
-        if (getModel().isDynamic()) {
-            // special case for when workbench is started with a cached URL. We
-            // set the url in the browser, but current page is Home Page, and so
-            // setting the root page will not fire an event. So, force a
-            // generation
-            // of root page.
-            if (history.currentLocationIsUrl())
-                generateContentForPage(rootPage);
+		// Home is URL of root page in static case, and root page in
+		// dynamic.
+		AbstractIntroPage rootPage = getModel().getHomePage();
+		boolean success = false;
+		if (getModel().isDynamic()) {
+			// special case for when workbench is started with a cached URL. We
+			// set the url in the browser, but current page is Home Page, and so
+			// setting the root page will not fire an event. So, force a
+			// generation
+			// of root page.
+			if (history.currentLocationIsUrl())
+				generateContentForPage(rootPage);
 
-            success = getModel().setCurrentPageId(rootPage.getId());
-            updateHistory(rootPage);
+			success = getModel().setCurrentPageId(rootPage.getId());
+			updateHistory(rootPage);
 
-        } else {
-            String location = rootPage.getUrl();
-            success = browser.setUrl(location);
-            updateHistory(location);
-        }
+		} else {
+			String location = rootPage.getUrl();
+			success = browser.setUrl(location);
+			updateHistory(location);
+		}
 
-        return success;
-    }
+		return success;
+	}
 
-    @Override
+	@Override
 	protected void handleRegistryChanged(IRegistryChangeEvent event) {
-        if (getModel().isDynamic()) {
-            // null generator first.
-            htmlGenerator = null;
-            // Add this presentation as a listener to model only in dynamic
-            // case.
-            getModel().addPropertyListener(this);
-            getModel().firePropertyChange(
-                IntroModelRoot.CURRENT_PAGE_PROPERTY_ID);
-        }
-    }
+		if (getModel().isDynamic()) {
+			// null generator first.
+			htmlGenerator = null;
+			// Add this presentation as a listener to model only in dynamic
+			// case.
+			getModel().addPropertyListener(this);
+			getModel().firePropertyChange(
+				IntroModelRoot.CURRENT_PAGE_PROPERTY_ID);
+		}
+	}
 
 
-    @Override
+	@Override
 	protected void doStandbyStateChanged(boolean standby,
-            boolean isStandbyPartNeeded) {
-        // if we have a standby part, regardless if standby state, disable
-        // actions. Same behavior for static html.
-        if (isStandbyPartNeeded | standby) {
-            homeAction.setEnabled(false);
-            forwardAction.setEnabled(false);
-            backAction.setEnabled(false);
-        } else {
-            homeAction.setEnabled(true);
-            updateNavigationActionsState();
-        }
+			boolean isStandbyPartNeeded) {
+		// if we have a standby part, regardless if standby state, disable
+		// actions. Same behavior for static html.
+		if (isStandbyPartNeeded | standby) {
+			homeAction.setEnabled(false);
+			forwardAction.setEnabled(false);
+			backAction.setEnabled(false);
+		} else {
+			homeAction.setEnabled(true);
+			updateNavigationActionsState();
+		}
 
-        if (getModel().isDynamic())
-            dynamicStandbyStateChanged(standby, isStandbyPartNeeded);
-        else
-            staticStandbyStateChanged(standby);
-    }
+		if (getModel().isDynamic())
+			dynamicStandbyStateChanged(standby, isStandbyPartNeeded);
+		else
+			staticStandbyStateChanged(standby);
+	}
 
 
 
-    // ***************** Static Intro *****************
-    private void handleStaticIntro() {
-        // We have a static case. Set the url on the browser to be the url
-        // defined in the root page. But first check memento if we can
-        // restore last visited page.
-        String url = getCachedCurrentPage();
-        if (!History.isURL(url))
-            // no cached state, or invalid state.
-            url = getModel().getHomePage().getUrl();
+	// ***************** Static Intro *****************
+	private void handleStaticIntro() {
+		// We have a static case. Set the url on the browser to be the url
+		// defined in the root page. But first check memento if we can
+		// restore last visited page.
+		String url = getCachedCurrentPage();
+		if (!History.isURL(url))
+			// no cached state, or invalid state.
+			url = getModel().getHomePage().getUrl();
 
-        if (url == null) {
-            // We have no content to display. log an error
-            Log.error("Url is null; no content to display in browser", null); //$NON-NLS-1$
-            return;
-        }
-        // set the URL the browser should display
-        boolean success = browser.setUrl(url);
-        if (!success) {
-            Log.error("Unable to set the following ULR in browser: " + url, //$NON-NLS-1$
-                null);
-            return;
-        }
-    }
+		if (url == null) {
+			// We have no content to display. log an error
+			Log.error("Url is null; no content to display in browser", null); //$NON-NLS-1$
+			return;
+		}
+		// set the URL the browser should display
+		boolean success = browser.setUrl(url);
+		if (!success) {
+			Log.error("Unable to set the following ULR in browser: " + url, //$NON-NLS-1$
+				null);
+			return;
+		}
+	}
 
-    public void staticStandbyStateChanged(boolean standby) {
-        AbstractIntroPage homePage = getModel().getHomePage();
-        AbstractIntroPage standbyPage = getModel().getStandbyPage();
-        if (standbyPage == null)
-            standbyPage = homePage;
+	public void staticStandbyStateChanged(boolean standby) {
+		AbstractIntroPage homePage = getModel().getHomePage();
+		AbstractIntroPage standbyPage = getModel().getStandbyPage();
+		if (standbyPage == null)
+			standbyPage = homePage;
 
-        if (standby)
-            browser.setUrl(standbyPage.getUrl());
-        else
-            browser.setUrl(homePage.getUrl());
-    }
+		if (standby)
+			browser.setUrl(standbyPage.getUrl());
+		else
+			browser.setUrl(homePage.getUrl());
+	}
 
 
-    public Browser getBrowser() {
-        return browser;
-    }
+	public Browser getBrowser() {
+		return browser;
+	}
 
-    /*
-     * Internal performance test hook.
-     */
-    public boolean isFinishedLoading() {
-    	return isFinishedLoading;
-    }
+	/*
+	 * Internal performance test hook.
+	 */
+	public boolean isFinishedLoading() {
+		return isFinishedLoading;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartLocationListener.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartLocationListener.java
index 1448cdd..0afa75b 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartLocationListener.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartLocationListener.java
@@ -27,155 +27,155 @@
  */
 public class BrowserIntroPartLocationListener implements LocationListener {
 
-    private BrowserIntroPartImplementation implementation;
+	private BrowserIntroPartImplementation implementation;
 
-    /**
-     * Takes the implementation as an input.
-     */
-    public BrowserIntroPartLocationListener(
-            BrowserIntroPartImplementation implementation) {
-        this.implementation = implementation;
-    }
+	/**
+	 * Takes the implementation as an input.
+	 */
+	public BrowserIntroPartLocationListener(
+			BrowserIntroPartImplementation implementation) {
+		this.implementation = implementation;
+	}
 
-    @Override
+	@Override
 	public void changed(LocationEvent event) {
-        String url = event.location;
-        if (url == null)
-            return;
+		String url = event.location;
+		if (url == null)
+			return;
 
-        // guard against unnecessary History updates.
-        Browser browser = (Browser) event.getSource();
-        if (browser.getData("navigation") != null //$NON-NLS-1$
-                && browser.getData("navigation").equals("true")) //$NON-NLS-1$ //$NON-NLS-2$
-            return;
+		// guard against unnecessary History updates.
+		Browser browser = (Browser) event.getSource();
+		if (browser.getData("navigation") != null //$NON-NLS-1$
+				&& browser.getData("navigation").equals("true")) //$NON-NLS-1$ //$NON-NLS-2$
+			return;
 
-        IntroModelRoot model = implementation.getModel();
-        IntroURLParser parser = new IntroURLParser(url);
-        if (!parser.hasProtocol() || parser.getHost() == null
-                || parser.getHost().equals("")) //$NON-NLS-1$
-            // This will filter out two navigation events fired by the browser
-            // on a setText. (about:blank and
-            // res://C:\WINDOWS\System32\shdoclc.dll/navcancl.htm on windows,
-            // and file:/// on Linux)
-            return;
+		IntroModelRoot model = implementation.getModel();
+		IntroURLParser parser = new IntroURLParser(url);
+		if (!parser.hasProtocol() || parser.getHost() == null
+				|| parser.getHost().equals("")) //$NON-NLS-1$
+			// This will filter out two navigation events fired by the browser
+			// on a setText. (about:blank and
+			// res://C:\WINDOWS\System32\shdoclc.dll/navcancl.htm on windows,
+			// and file:/// on Linux)
+			return;
 
-        if (model.isDynamic()) {
-            // Update the history even with real URLs. Note that if we have
-            // multiple embedded URL navigations due to frames, the
-            // frameNavigation flag filters them. This flag is set here, and is
-            // cleared by a progress listener, when all the frame navigation is
-            // completed. We need to update history only in dynamic case. In
-            // static case, the browser keeps the history.
-            if (browser.getData("frameNavigation") != null) { //$NON-NLS-1$
-                // this is at least the second frame navigation, remove last
-                // history since it was added just as a filler.
-                if (event.top == false && browser.getData("tempUrl") != null //$NON-NLS-1$
-                        && browser.getData("tempUrl").equals("true")) { //$NON-NLS-1$ //$NON-NLS-2$
-                    implementation.getHistory().removeLastHistory();
-                    flagRemovedTempUrl();
-                }
-            }
+		if (model.isDynamic()) {
+			// Update the history even with real URLs. Note that if we have
+			// multiple embedded URL navigations due to frames, the
+			// frameNavigation flag filters them. This flag is set here, and is
+			// cleared by a progress listener, when all the frame navigation is
+			// completed. We need to update history only in dynamic case. In
+			// static case, the browser keeps the history.
+			if (browser.getData("frameNavigation") != null) { //$NON-NLS-1$
+				// this is at least the second frame navigation, remove last
+				// history since it was added just as a filler.
+				if (event.top == false && browser.getData("tempUrl") != null //$NON-NLS-1$
+						&& browser.getData("tempUrl").equals("true")) { //$NON-NLS-1$ //$NON-NLS-2$
+					implementation.getHistory().removeLastHistory();
+					flagRemovedTempUrl();
+				}
+			}
 
-            if (event.top == true) {
-                // we are navigating to a regular fully qualified URL. Event.top
-                // is true.
-                flagStartOfFrameNavigation();
-                implementation.updateHistory(url);
-            }
+			if (event.top == true) {
+				// we are navigating to a regular fully qualified URL. Event.top
+				// is true.
+				flagStartOfFrameNavigation();
+				implementation.updateHistory(url);
+			}
 
-            if (browser.getData("frameNavigation") == null //$NON-NLS-1$
-                    && event.top == false) {
-                // a new url navigation that is not in a top frame. It can
-                // be a navigation url due to frames, it can be due to a true
-                // single Frame navigation (when you click on a link inside a
-                // Frame) or it is an embedded Help System topic navigation.
-                AbstractIntroPage currentPage = model.getCurrentPage();
-                if (currentPage.isIFramePage()) {
-                    // it is an embedded Help System topic navigation. we are
-                    // navigating to an injected iframe since event.top is
-                    // false. Set the iframe url of the current iframe page, and
-                    // add it
-                    // to history.
-                    currentPage.setIFrameURL(url);
-                    implementation.updateHistory(currentPage);
-                } else {
-                    flagStartOfFrameNavigation();
-                    flagStoredTempUrl();
-                    implementation.updateHistory(url);
-                }
-            }
+			if (browser.getData("frameNavigation") == null //$NON-NLS-1$
+					&& event.top == false) {
+				// a new url navigation that is not in a top frame. It can
+				// be a navigation url due to frames, it can be due to a true
+				// single Frame navigation (when you click on a link inside a
+				// Frame) or it is an embedded Help System topic navigation.
+				AbstractIntroPage currentPage = model.getCurrentPage();
+				if (currentPage.isIFramePage()) {
+					// it is an embedded Help System topic navigation. we are
+					// navigating to an injected iframe since event.top is
+					// false. Set the iframe url of the current iframe page, and
+					// add it
+					// to history.
+					currentPage.setIFrameURL(url);
+					implementation.updateHistory(currentPage);
+				} else {
+					flagStartOfFrameNavigation();
+					flagStoredTempUrl();
+					implementation.updateHistory(url);
+				}
+			}
 
-        }
-        return;
-    }
+		}
+		return;
+	}
 
-    /**
-     * Intercept any LocationEvents on the browser. If the event location is a
-     * valid IntroURL, cancel the event and execute the intro action that is
-     * embedded in the URL
-     */
-    @Override
+	/**
+	 * Intercept any LocationEvents on the browser. If the event location is a
+	 * valid IntroURL, cancel the event and execute the intro action that is
+	 * embedded in the URL
+	 */
+	@Override
 	public void changing(LocationEvent event) {
-        String url = event.location;
-        if (url == null)
-            return;
+		String url = event.location;
+		if (url == null)
+			return;
 
-        IntroModelRoot model = implementation.getModel();
-        IntroURLParser parser = new IntroURLParser(url);
-        if (parser.hasIntroUrl()) {
-            // stop URL first.
-            event.doit = false;
-            // execute the action embedded in the IntroURL
-            IntroURL introURL = parser.getIntroURL();
-            introURL.execute();
+		IntroModelRoot model = implementation.getModel();
+		IntroURLParser parser = new IntroURLParser(url);
+		if (parser.hasIntroUrl()) {
+			// stop URL first.
+			event.doit = false;
+			// execute the action embedded in the IntroURL
+			IntroURL introURL = parser.getIntroURL();
+			introURL.execute();
 
-            // In the case of dynamic Intro, guard against extra Frame
-            // navigations. This can happen in the case of intro injected
-            // IFrames or Frames included through intro xml content.
-            // INTRO: user defined iframes in Intro pages are not properly
-            // supported here, only Help system injected iframes.
-            if (model.isDynamic()) {
-                if ((introURL.getParameter(IntroURL.KEY_EMBED_TARGET) != null)
-                        && introURL.getAction().equals(IntroURL.SHOW_PAGE))
-                    flagStartOfNavigation();
-            }
-            return;
-        }
+			// In the case of dynamic Intro, guard against extra Frame
+			// navigations. This can happen in the case of intro injected
+			// IFrames or Frames included through intro xml content.
+			// INTRO: user defined iframes in Intro pages are not properly
+			// supported here, only Help system injected iframes.
+			if (model.isDynamic()) {
+				if ((introURL.getParameter(IntroURL.KEY_EMBED_TARGET) != null)
+						&& introURL.getAction().equals(IntroURL.SHOW_PAGE))
+					flagStartOfNavigation();
+			}
+			return;
+		}
 
 
-    }
+	}
 
 
 
 
-    public void flagStartOfFrameNavigation() {
-        if (implementation.getBrowser().getData("frameNavigation") == null) //$NON-NLS-1$
-            implementation.getBrowser().setData("frameNavigation", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-    }
+	public void flagStartOfFrameNavigation() {
+		if (implementation.getBrowser().getData("frameNavigation") == null) //$NON-NLS-1$
+			implementation.getBrowser().setData("frameNavigation", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+	}
 
-    public void flagEndOfFrameNavigation() {
-        implementation.getBrowser().setData("frameNavigation", null); //$NON-NLS-1$
-    }
+	public void flagEndOfFrameNavigation() {
+		implementation.getBrowser().setData("frameNavigation", null); //$NON-NLS-1$
+	}
 
 
-    public void flagStartOfNavigation() {
-        if (implementation.getBrowser().getData("navigation") == null) //$NON-NLS-1$
-            implementation.getBrowser().setData("navigation", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-    }
+	public void flagStartOfNavigation() {
+		if (implementation.getBrowser().getData("navigation") == null) //$NON-NLS-1$
+			implementation.getBrowser().setData("navigation", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+	}
 
-    public void flagEndOfNavigation() {
-        implementation.getBrowser().setData("navigation", null); //$NON-NLS-1$
-    }
+	public void flagEndOfNavigation() {
+		implementation.getBrowser().setData("navigation", null); //$NON-NLS-1$
+	}
 
 
-    public void flagStoredTempUrl() {
-        if (implementation.getBrowser().getData("tempUrl") == null) //$NON-NLS-1$
-            implementation.getBrowser().setData("tempUrl", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-    }
+	public void flagStoredTempUrl() {
+		if (implementation.getBrowser().getData("tempUrl") == null) //$NON-NLS-1$
+			implementation.getBrowser().setData("tempUrl", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+	}
 
-    public void flagRemovedTempUrl() {
-        implementation.getBrowser().setData("tempUrl", null); //$NON-NLS-1$
-    }
+	public void flagRemovedTempUrl() {
+		implementation.getBrowser().setData("tempUrl", null); //$NON-NLS-1$
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/FormIntroPartImplementation.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/FormIntroPartImplementation.java
index 88d8ed9..3bd213d 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/FormIntroPartImplementation.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/FormIntroPartImplementation.java
@@ -55,498 +55,498 @@
  * This is a UI Forms based implementation of an Intro Part Presentation.
  */
 public class FormIntroPartImplementation extends
-        AbstractIntroPartImplementation implements IIntroContentProviderSite,
-        IPropertyListener {
+		AbstractIntroPartImplementation implements IIntroContentProviderSite,
+		IPropertyListener {
 
-    private FormToolkit toolkit;
-    private ScrolledPageBook mainPageBook;
-    private PageForm pageForm;
-    private PageFormWithNavigation pageFormWithNav;
-    // cache model instance for reuse.
-    private IntroModelRoot model = getModel();
-    private SharedStyleManager sharedStyleManager;
+	private FormToolkit toolkit;
+	private ScrolledPageBook mainPageBook;
+	private PageForm pageForm;
+	private PageFormWithNavigation pageFormWithNav;
+	// cache model instance for reuse.
+	private IntroModelRoot model = getModel();
+	private SharedStyleManager sharedStyleManager;
 
-    // static SWT Intro. This is the link shown on the center of a page in a
-    // static SWT intro.
-    private Hyperlink welcomeLink;
+	// static SWT Intro. This is the link shown on the center of a page in a
+	// static SWT intro.
+	private Hyperlink welcomeLink;
 
-    static {
-        // REVISIT: register all common images here. Even if this part
-        // implementation is created again, the images will remain in plugin
-        // registry.
-        ImageUtil.registerImage(ImageUtil.DEFAULT_ROOT_LINK, "overview_48.png"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.DEFAULT_SMALL_ROOT_LINK,
-            "overview_32.png"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.DEFAULT_FORM_BG, "form_banner.png"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.DEFAULT_LINK, "welcome_item.gif"); //$NON-NLS-1$
-    }
+	static {
+		// REVISIT: register all common images here. Even if this part
+		// implementation is created again, the images will remain in plugin
+		// registry.
+		ImageUtil.registerImage(ImageUtil.DEFAULT_ROOT_LINK, "overview_48.png"); //$NON-NLS-1$
+		ImageUtil.registerImage(ImageUtil.DEFAULT_SMALL_ROOT_LINK,
+			"overview_32.png"); //$NON-NLS-1$
+		ImageUtil.registerImage(ImageUtil.DEFAULT_FORM_BG, "form_banner.png"); //$NON-NLS-1$
+		ImageUtil.registerImage(ImageUtil.DEFAULT_LINK, "welcome_item.gif"); //$NON-NLS-1$
+	}
 
-    @Override
+	@Override
 	protected void updateNavigationActionsState() {
-        if (getModel().isDynamic()) {
-            forwardAction.setEnabled(history.canNavigateForward());
-            backAction.setEnabled(history.canNavigateBackward());
-            return;
-        }
-        // no actions are added in static swt.
-    }
+		if (getModel().isDynamic()) {
+			forwardAction.setEnabled(history.canNavigateForward());
+			backAction.setEnabled(history.canNavigateBackward());
+			return;
+		}
+		// no actions are added in static swt.
+	}
 
 
-    public FormIntroPartImplementation() {
-        // Shared style manager
-        sharedStyleManager = new SharedStyleManager(getModel());
-    }
+	public FormIntroPartImplementation() {
+		// Shared style manager
+		sharedStyleManager = new SharedStyleManager(getModel());
+	}
 
-    @Override
+	@Override
 	public void createPartControl(Composite container) {
-        if (getModel().isDynamic())
-            dynamicCreatePartControl(container);
-        else {
-            staticCreatePartControl(container);
-        }
-    }
+		if (getModel().isDynamic())
+			dynamicCreatePartControl(container);
+		else {
+			staticCreatePartControl(container);
+		}
+	}
 
 
 
-    /*
-     * create dynamic UI forms Intro, ie: swt intro.
-     */
-    private void dynamicCreatePartControl(Composite container) {
-        // Create single toolkit instance, which is disposed of on dispose of
-        // intro part. also define background of all presentation.
-        toolkit = new FormToolkit(container.getDisplay());
-        // Define presentation title color
-        Color bg = sharedStyleManager.getColor(toolkit, "bg"); //$NON-NLS-1$
-        if (bg != null) {
-            toolkit.setBackground(bg);
-        }
-        toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-            HyperlinkSettings.UNDERLINE_HOVER);
+	/*
+	 * create dynamic UI forms Intro, ie: swt intro.
+	 */
+	private void dynamicCreatePartControl(Composite container) {
+		// Create single toolkit instance, which is disposed of on dispose of
+		// intro part. also define background of all presentation.
+		toolkit = new FormToolkit(container.getDisplay());
+		// Define presentation title color
+		Color bg = sharedStyleManager.getColor(toolkit, "bg"); //$NON-NLS-1$
+		if (bg != null) {
+			toolkit.setBackground(bg);
+		}
+		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
+			HyperlinkSettings.UNDERLINE_HOVER);
 
-        // Define presentation title color and image.
-        Form mainForm = toolkit.createForm(container);
-        Color fg = sharedStyleManager.getColor(toolkit, "title.fg"); //$NON-NLS-1$
-        if (fg != null)
-            mainForm.setForeground(fg);
-        Image bgImage = sharedStyleManager.getImage("title.image", null, null); //$NON-NLS-1$
-        if (bgImage != null) {
-            mainForm.setBackgroundImage(bgImage);
-            String repeat = sharedStyleManager
-                .getProperty("title.image.repeat"); //$NON-NLS-1$
-            if (repeat != null && repeat.equalsIgnoreCase("true")) //$NON-NLS-1$
+		// Define presentation title color and image.
+		Form mainForm = toolkit.createForm(container);
+		Color fg = sharedStyleManager.getColor(toolkit, "title.fg"); //$NON-NLS-1$
+		if (fg != null)
+			mainForm.setForeground(fg);
+		Image bgImage = sharedStyleManager.getImage("title.image", null, null); //$NON-NLS-1$
+		if (bgImage != null) {
+			mainForm.setBackgroundImage(bgImage);
+			String repeat = sharedStyleManager
+				.getProperty("title.image.repeat"); //$NON-NLS-1$
+			if (repeat != null && repeat.equalsIgnoreCase("true")) //$NON-NLS-1$
 
-                mainForm.setBackgroundImageTiled(true);
-        }
+				mainForm.setBackgroundImageTiled(true);
+		}
 
-        mainPageBook = createMainPageBook(toolkit, mainForm);
-        // Add this presentation as a listener to model.
-        getModel().addPropertyListener(this);
+		mainPageBook = createMainPageBook(toolkit, mainForm);
+		// Add this presentation as a listener to model.
+		getModel().addPropertyListener(this);
 
-        addToolBarActions();
-    }
+		addToolBarActions();
+	}
 
 
-    /**
-     * The main page book that holds Intro pages. It has two pages, one that
-     * holds the home page, and one that holds all other pages. If the
-     * presentation is configured to not show the home page with the Home Page
-     * layout, then this page book will only have one page.
-     *
-     * @param toolkit
-     * @param form
-     * @return
-     */
-    private ScrolledPageBook createMainPageBook(FormToolkit toolkit, Form form) {
-        // get body and create page book in it. Body has GridLayout.
-        Composite body = form.getBody();
-        body.setLayout(new GridLayout());
-        // make sure page book expands h and v.
-        ScrolledPageBook pageBook = toolkit.createPageBook(body, SWT.V_SCROLL
-                | SWT.H_SCROLL);
-        pageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
+	/**
+	 * The main page book that holds Intro pages. It has two pages, one that
+	 * holds the home page, and one that holds all other pages. If the
+	 * presentation is configured to not show the home page with the Home Page
+	 * layout, then this page book will only have one page.
+	 *
+	 * @param toolkit
+	 * @param form
+	 * @return
+	 */
+	private ScrolledPageBook createMainPageBook(FormToolkit toolkit, Form form) {
+		// get body and create page book in it. Body has GridLayout.
+		Composite body = form.getBody();
+		body.setLayout(new GridLayout());
+		// make sure page book expands h and v.
+		ScrolledPageBook pageBook = toolkit.createPageBook(body, SWT.V_SCROLL
+				| SWT.H_SCROLL);
+		pageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
 
-        // Create root page in root page layout form, only if needed.
-        if (sharedStyleManager.useCustomHomePagelayout()) {
-            // if we do not have a root page form, create one
-            RootPageForm rootPageForm = new RootPageForm(toolkit, model, form);
-            rootPageForm.createPartControl(pageBook, sharedStyleManager);
-            rootPageForm.setContentProviderSite(this);
-        }
+		// Create root page in root page layout form, only if needed.
+		if (sharedStyleManager.useCustomHomePagelayout()) {
+			// if we do not have a root page form, create one
+			RootPageForm rootPageForm = new RootPageForm(toolkit, model, form);
+			rootPageForm.createPartControl(pageBook, sharedStyleManager);
+			rootPageForm.setContentProviderSite(this);
+		}
 
-        // Create the two Page forms .
-        pageForm = new PageForm(toolkit, model, form);
-        pageForm.setContentProviderSite(this);
-        pageForm.createPartControl(pageBook, sharedStyleManager);
+		// Create the two Page forms .
+		pageForm = new PageForm(toolkit, model, form);
+		pageForm.setContentProviderSite(this);
+		pageForm.createPartControl(pageBook, sharedStyleManager);
 
-        pageFormWithNav = new PageFormWithNavigation(toolkit, model, form);
-        pageFormWithNav.setContentProviderSite(this);
-        pageFormWithNav.createPartControl(pageBook, sharedStyleManager);
+		pageFormWithNav = new PageFormWithNavigation(toolkit, model, form);
+		pageFormWithNav.setContentProviderSite(this);
+		pageFormWithNav.createPartControl(pageBook, sharedStyleManager);
 
-        // now determine which page to show. Show it and add it to history.
-        // if the cached page is a URL ignore it. We do not want to launch a
-        // browser on startup.
-        String cachedPage = getCachedCurrentPage();
-        if (cachedPage != null & !History.isURL(cachedPage))
-            // this will create the page in the page form.
-            model.setCurrentPageId(cachedPage);
+		// now determine which page to show. Show it and add it to history.
+		// if the cached page is a URL ignore it. We do not want to launch a
+		// browser on startup.
+		String cachedPage = getCachedCurrentPage();
+		if (cachedPage != null & !History.isURL(cachedPage))
+			// this will create the page in the page form.
+			model.setCurrentPageId(cachedPage);
 
-        AbstractIntroPage pageToShow = getModel().getCurrentPage();
-        // load style manager here to test for navigation.
-        PageStyleManager styleManager = new PageStyleManager(pageToShow,
-            sharedStyleManager.getProperties());
-        boolean pageHasNavigation = styleManager.showHomePageNavigation();
-        if (pageToShow != null) {
-            if (pageBook.hasPage(pageToShow.getId()))
-                // we are showing Home Page.
-                pageBook.showPage(pageToShow.getId());
-            else {
-                if (pageHasNavigation) {
-                    // page or Home Page with a page layout and navigation, set
-                    // the page id to the static PageFormWithNavigation id.
-                    // first create the correct content.
-                    pageFormWithNav.showPage(pageToShow, sharedStyleManager);
-                    // then show the page
-                    pageBook
-                        .showPage(PageFormWithNavigation.PAGE_FORM_WITH_NAVIGATION_ID);
-                } else {
-                    // page or Home Page with a regular page layout, set the
-                    // page id to the static PageForm id. first create the
-                    // correct content.
-                    pageForm.showPage(pageToShow, sharedStyleManager);
-                    // then show the page
-                    pageBook.showPage(PageForm.PAGE_FORM_ID);
-                }
-            }
-            updateHistory(pageToShow);
-        }
+		AbstractIntroPage pageToShow = getModel().getCurrentPage();
+		// load style manager here to test for navigation.
+		PageStyleManager styleManager = new PageStyleManager(pageToShow,
+			sharedStyleManager.getProperties());
+		boolean pageHasNavigation = styleManager.showHomePageNavigation();
+		if (pageToShow != null) {
+			if (pageBook.hasPage(pageToShow.getId()))
+				// we are showing Home Page.
+				pageBook.showPage(pageToShow.getId());
+			else {
+				if (pageHasNavigation) {
+					// page or Home Page with a page layout and navigation, set
+					// the page id to the static PageFormWithNavigation id.
+					// first create the correct content.
+					pageFormWithNav.showPage(pageToShow, sharedStyleManager);
+					// then show the page
+					pageBook
+						.showPage(PageFormWithNavigation.PAGE_FORM_WITH_NAVIGATION_ID);
+				} else {
+					// page or Home Page with a regular page layout, set the
+					// page id to the static PageForm id. first create the
+					// correct content.
+					pageForm.showPage(pageToShow, sharedStyleManager);
+					// then show the page
+					pageBook.showPage(PageForm.PAGE_FORM_ID);
+				}
+			}
+			updateHistory(pageToShow);
+		}
 
-        return pageBook;
-    }
+		return pageBook;
+	}
 
-    @Override
+	@Override
 	public void dispose() {
-        if (toolkit != null)
-            toolkit.dispose();
-    }
+		if (toolkit != null)
+			toolkit.dispose();
+	}
 
-    /**
-     * Handle model property changes. The UI is notified here of a change to the
-     * current page in the model. This happens if an intro URL showPage method
-     * is executed.
-     *
-     * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object,
-     *      int)
-     */
-    @Override
+	/**
+	 * Handle model property changes. The UI is notified here of a change to the
+	 * current page in the model. This happens if an intro URL showPage method
+	 * is executed.
+	 *
+	 * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object,
+	 *      int)
+	 */
+	@Override
 	public void propertyChanged(Object source, int propId) {
-        if (propId == IntroModelRoot.CURRENT_PAGE_PROPERTY_ID) {
-            String pageId = getModel().getCurrentPageId();
-            if (pageId == null || pageId.equals("")) //$NON-NLS-1$
-                // If page ID was not set properly. exit.
-                return;
+		if (propId == IntroModelRoot.CURRENT_PAGE_PROPERTY_ID) {
+			String pageId = getModel().getCurrentPageId();
+			if (pageId == null || pageId.equals("")) //$NON-NLS-1$
+				// If page ID was not set properly. exit.
+				return;
 
-            showPage(getModel().getCurrentPage());
-        }
-    }
+			showPage(getModel().getCurrentPage());
+		}
+	}
 
-    @Override
+	@Override
 	protected void addToolBarActions() {
-        // Handle menus:
-        IActionBars actionBars = getIntroPart().getIntroSite().getActionBars();
-        IToolBarManager toolBarManager = actionBars.getToolBarManager();
-        actionBars.setGlobalActionHandler(ActionFactory.FORWARD.getId(),
-            forwardAction);
-        actionBars.setGlobalActionHandler(ActionFactory.BACK.getId(),
-            backAction);
-        toolBarManager.add(new Separator(IntroConfigurer.TB_ADDITIONS));
-        toolBarManager.add(homeAction);
-        toolBarManager.add(backAction);
-        toolBarManager.add(forwardAction);
-        if (IntroPlugin.DEBUG_TOOLBAR) {
-            toolBarManager.add(viewIntroModelAction);
-        }
-        toolBarManager.update(true);
-        actionBars.updateActionBars();
-        updateNavigationActionsState();
-    }
+		// Handle menus:
+		IActionBars actionBars = getIntroPart().getIntroSite().getActionBars();
+		IToolBarManager toolBarManager = actionBars.getToolBarManager();
+		actionBars.setGlobalActionHandler(ActionFactory.FORWARD.getId(),
+			forwardAction);
+		actionBars.setGlobalActionHandler(ActionFactory.BACK.getId(),
+			backAction);
+		toolBarManager.add(new Separator(IntroConfigurer.TB_ADDITIONS));
+		toolBarManager.add(homeAction);
+		toolBarManager.add(backAction);
+		toolBarManager.add(forwardAction);
+		if (IntroPlugin.DEBUG_TOOLBAR) {
+			toolBarManager.add(viewIntroModelAction);
+		}
+		toolBarManager.update(true);
+		actionBars.updateActionBars();
+		updateNavigationActionsState();
+	}
 
-    @Override
+	@Override
 	protected void doStandbyStateChanged(boolean standby,
-            boolean isStandbyPartNeeded) {
-        if (getModel().isDynamic())
-            dynamicStandbyStateChanged(standby, isStandbyPartNeeded);
-        else
-            staticStandbyStateChanged(standby);
-    }
+			boolean isStandbyPartNeeded) {
+		if (getModel().isDynamic())
+			dynamicStandbyStateChanged(standby, isStandbyPartNeeded);
+		else
+			staticStandbyStateChanged(standby);
+	}
 
 
-    public void dynamicStandbyStateChanged(boolean standby,
-            boolean isStandbyPartNeeded) {
-        // handle action enablement first
-        if (isStandbyPartNeeded | standby) {
-            homeAction.setEnabled(false);
-            forwardAction.setEnabled(false);
-            backAction.setEnabled(false);
-        } else {
-            homeAction.setEnabled(true);
-            updateNavigationActionsState();
-        }
+	public void dynamicStandbyStateChanged(boolean standby,
+			boolean isStandbyPartNeeded) {
+		// handle action enablement first
+		if (isStandbyPartNeeded | standby) {
+			homeAction.setEnabled(false);
+			forwardAction.setEnabled(false);
+			backAction.setEnabled(false);
+		} else {
+			homeAction.setEnabled(true);
+			updateNavigationActionsState();
+		}
 
-        if (isStandbyPartNeeded)
-            // we have a standby part, nothing more to do in presentation.
-            return;
+		if (isStandbyPartNeeded)
+			// we have a standby part, nothing more to do in presentation.
+			return;
 
-        // try to show a cached page.
-        AbstractIntroPage pageToShow = null;
-        if (standby) {
-            // we are in standby. Show standby page, in PageForm.
-            pageToShow = getModel().getStandbyPage();
-            if (pageToShow == null)
-                pageToShow = getModel().getHomePage();
-        } else
-            // if we are showing a regular intro page, or if the Home Page
-            // has a regular page layout, set the page id to the static PageForm
-            // id.
-            pageToShow = getModel().getCurrentPage();
+		// try to show a cached page.
+		AbstractIntroPage pageToShow = null;
+		if (standby) {
+			// we are in standby. Show standby page, in PageForm.
+			pageToShow = getModel().getStandbyPage();
+			if (pageToShow == null)
+				pageToShow = getModel().getHomePage();
+		} else
+			// if we are showing a regular intro page, or if the Home Page
+			// has a regular page layout, set the page id to the static PageForm
+			// id.
+			pageToShow = getModel().getCurrentPage();
 
-        showPage(pageToShow);
-    }
+		showPage(pageToShow);
+	}
 
-    private boolean showPage(AbstractIntroPage pageToShow) {
-        boolean pageisCached = showCachedPage(pageToShow);
+	private boolean showPage(AbstractIntroPage pageToShow) {
+		boolean pageisCached = showCachedPage(pageToShow);
 
-        if (!pageToShow.isDynamic()) {
-        	Util.openBrowser(pageToShow.getUrl());
-            return true;
-        }
+		if (!pageToShow.isDynamic()) {
+			Util.openBrowser(pageToShow.getUrl());
+			return true;
+		}
 
-        if (!pageisCached) {
-            // page has not been shown before.
-            // load style manager here to test for navigation.
-            PageStyleManager styleManager = new PageStyleManager(pageToShow,
-                sharedStyleManager.getProperties());
-            boolean pageHasNavigation = styleManager.showHomePageNavigation();
-            if (pageHasNavigation) {
-                // page or Home Page with a regular page layout, set the
-                // page id to the static PageFormWithNavigation id. first
-                // create the correct content.
-                pageFormWithNav.showPage(pageToShow, sharedStyleManager);
-                // then show the page
-                mainPageBook
-                    .showPage(PageFormWithNavigation.PAGE_FORM_WITH_NAVIGATION_ID);
-            } else {
-                // page or Home Page with a regular page layout, set the
-                // page id to the static PageFormWithNavigation id. first
-                // create the correct content.
-                pageForm.showPage(pageToShow, sharedStyleManager);
-                // then show the page
-                mainPageBook.showPage(PageForm.PAGE_FORM_ID);
-            }
-        }
+		if (!pageisCached) {
+			// page has not been shown before.
+			// load style manager here to test for navigation.
+			PageStyleManager styleManager = new PageStyleManager(pageToShow,
+				sharedStyleManager.getProperties());
+			boolean pageHasNavigation = styleManager.showHomePageNavigation();
+			if (pageHasNavigation) {
+				// page or Home Page with a regular page layout, set the
+				// page id to the static PageFormWithNavigation id. first
+				// create the correct content.
+				pageFormWithNav.showPage(pageToShow, sharedStyleManager);
+				// then show the page
+				mainPageBook
+					.showPage(PageFormWithNavigation.PAGE_FORM_WITH_NAVIGATION_ID);
+			} else {
+				// page or Home Page with a regular page layout, set the
+				// page id to the static PageFormWithNavigation id. first
+				// create the correct content.
+				pageForm.showPage(pageToShow, sharedStyleManager);
+				// then show the page
+				mainPageBook.showPage(PageForm.PAGE_FORM_ID);
+			}
+		}
 
-        return true;
-    }
+		return true;
+	}
 
-    private boolean showCachedPage(AbstractIntroPage page) {
-        String formPageId = null;
-        if (pageForm.hasPage(page.getId())) {
-            pageForm.showPage(page, sharedStyleManager);
-            formPageId = PageForm.PAGE_FORM_ID;
-        } else if (pageFormWithNav.hasPage(page.getId())) {
-            pageFormWithNav.showPage(page, sharedStyleManager);
-            formPageId = PageFormWithNavigation.PAGE_FORM_WITH_NAVIGATION_ID;
-        } else if (mainPageBook.hasPage(page.getId()))
-            formPageId = page.getId();
-        else
-            return false;
+	private boolean showCachedPage(AbstractIntroPage page) {
+		String formPageId = null;
+		if (pageForm.hasPage(page.getId())) {
+			pageForm.showPage(page, sharedStyleManager);
+			formPageId = PageForm.PAGE_FORM_ID;
+		} else if (pageFormWithNav.hasPage(page.getId())) {
+			pageFormWithNav.showPage(page, sharedStyleManager);
+			formPageId = PageFormWithNavigation.PAGE_FORM_WITH_NAVIGATION_ID;
+		} else if (mainPageBook.hasPage(page.getId()))
+			formPageId = page.getId();
+		else
+			return false;
 
-        mainPageBook.showPage(formPageId);
-        return true;
-    }
+		mainPageBook.showPage(formPageId);
+		return true;
+	}
 
-    private void removeCachedPage(AbstractIntroPage page) {
-        if (pageForm.hasPage(page.getId()))
-            pageForm.removePage(page.getId());
-        else if (pageFormWithNav.hasPage(page.getId()))
-            pageFormWithNav.removePage(page.getId());
-        else if (mainPageBook.hasPage(page.getId()))
-            mainPageBook.removePage(page.getId());
-        else
-            return;
-    }
+	private void removeCachedPage(AbstractIntroPage page) {
+		if (pageForm.hasPage(page.getId()))
+			pageForm.removePage(page.getId());
+		else if (pageFormWithNav.hasPage(page.getId()))
+			pageFormWithNav.removePage(page.getId());
+		else if (mainPageBook.hasPage(page.getId()))
+			mainPageBook.removePage(page.getId());
+		else
+			return;
+	}
 
 
-    /**
-     * Clear page cache for the page that contains this provider. Remove the
-     * form from the correct pagebook that refers to the page we need to
-     * refresh. This will force a call to createContents on all content
-     * providers the next time this page needs to be displayed.
-     *
-     * @see org.eclipse.ui.intro.config.IIntroContentProviderSite#reflow(org.eclipse.ui.intro.config.IIntroContentProvider,
-     *      boolean)
-     */
-    @Override
+	/**
+	 * Clear page cache for the page that contains this provider. Remove the
+	 * form from the correct pagebook that refers to the page we need to
+	 * refresh. This will force a call to createContents on all content
+	 * providers the next time this page needs to be displayed.
+	 *
+	 * @see org.eclipse.ui.intro.config.IIntroContentProviderSite#reflow(org.eclipse.ui.intro.config.IIntroContentProvider,
+	 *      boolean)
+	 */
+	@Override
 	public void reflow(IIntroContentProvider provider, boolean incremental) {
-        AbstractIntroPage page = ContentProviderManager.getInst()
-            .getContentProviderParentPage(provider);
-        if (incremental) {
-            if (pageForm.hasPage(page.getId()))
-                pageForm.reflow();
-            else if (pageFormWithNav.hasPage(page.getId()))
-                pageFormWithNav.reflow();
-            else if (mainPageBook.hasPage(page.getId()))
-                mainPageBook.reflow(true);
-        }
-        else {
-        	removeCachedPage(page);
-        	showPage(model.getCurrentPage());
-        }
-    }
+		AbstractIntroPage page = ContentProviderManager.getInst()
+			.getContentProviderParentPage(provider);
+		if (incremental) {
+			if (pageForm.hasPage(page.getId()))
+				pageForm.reflow();
+			else if (pageFormWithNav.hasPage(page.getId()))
+				pageFormWithNav.reflow();
+			else if (mainPageBook.hasPage(page.getId()))
+				mainPageBook.reflow(true);
+		}
+		else {
+			removeCachedPage(page);
+			showPage(model.getCurrentPage());
+		}
+	}
 
-    @Override
+	@Override
 	public void setFocus() {
-        if (model.isDynamic()) {
-            if (mainPageBook.getCurrentPage() != null)
-                mainPageBook.getCurrentPage().setFocus();
-        }
-    }
+		if (model.isDynamic()) {
+			if (mainPageBook.getCurrentPage() != null)
+				mainPageBook.getCurrentPage().setFocus();
+		}
+	}
 
-    @Override
+	@Override
 	public boolean navigateBackward() {
-        boolean success = false;
-        if (getModel().isDynamic()) {
-            // dynamic case. Uses navigation history.
-            if (history.canNavigateBackward()) {
-                history.navigateHistoryBackward();
-                if (history.currentLocationIsUrl())
-                    success = Util.openBrowser(history
-                        .getCurrentLocationAsUrl());
-                else {
-                    // Set current page, and this will triger regen.
-                    CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
-                        .getIntro();
-                    currentIntroPart.getControl().setRedraw(false);
-                    success = getModel().setCurrentPageId(
-                        history.getCurrentLocationAsPage().getId());
-                    currentIntroPart.getControl().setRedraw(true);
-                }
-            }
-        }
+		boolean success = false;
+		if (getModel().isDynamic()) {
+			// dynamic case. Uses navigation history.
+			if (history.canNavigateBackward()) {
+				history.navigateHistoryBackward();
+				if (history.currentLocationIsUrl())
+					success = Util.openBrowser(history
+						.getCurrentLocationAsUrl());
+				else {
+					// Set current page, and this will triger regen.
+					CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
+						.getIntro();
+					currentIntroPart.getControl().setRedraw(false);
+					success = getModel().setCurrentPageId(
+						history.getCurrentLocationAsPage().getId());
+					currentIntroPart.getControl().setRedraw(true);
+				}
+			}
+		}
 
-        updateNavigationActionsState();
-        return success;
-    }
+		updateNavigationActionsState();
+		return success;
+	}
 
-    @Override
+	@Override
 	public boolean navigateForward() {
-        boolean success = false;
+		boolean success = false;
 
-        if (getModel().isDynamic()) {
-            // dynamic case. Uses navigation history.
-            if (history.canNavigateForward()) {
-                history.navigateHistoryForward();
-                if (history.currentLocationIsUrl())
-                    success = Util.openBrowser(history
-                        .getCurrentLocationAsUrl());
-                else {
-                    // Set current page, and this will triger regen.
-                    CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
-                        .getIntro();
-                    currentIntroPart.getControl().setRedraw(false);
-                    success = getModel().setCurrentPageId(
-                        history.getCurrentLocationAsPage().getId());
-                    currentIntroPart.getControl().setRedraw(true);
-                }
-            }
-        }
-        updateNavigationActionsState();
-        return success;
-    }
+		if (getModel().isDynamic()) {
+			// dynamic case. Uses navigation history.
+			if (history.canNavigateForward()) {
+				history.navigateHistoryForward();
+				if (history.currentLocationIsUrl())
+					success = Util.openBrowser(history
+						.getCurrentLocationAsUrl());
+				else {
+					// Set current page, and this will triger regen.
+					CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
+						.getIntro();
+					currentIntroPart.getControl().setRedraw(false);
+					success = getModel().setCurrentPageId(
+						history.getCurrentLocationAsPage().getId());
+					currentIntroPart.getControl().setRedraw(true);
+				}
+			}
+		}
+		updateNavigationActionsState();
+		return success;
+	}
 
-    @Override
+	@Override
 	public boolean navigateHome() {
-        AbstractIntroPage homePage = getModel().getHomePage();
-        if (getModel().isDynamic()) {
-            CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
-                .getIntro();
-            currentIntroPart.getControl().setRedraw(false);
-            boolean success = false;
-            success = getModel().setCurrentPageId(homePage.getId());
-            updateHistory(homePage);
-            currentIntroPart.getControl().setRedraw(true);
-            return success;
-        }
-        // static model. Nothing to do.
-        return false;
-    }
+		AbstractIntroPage homePage = getModel().getHomePage();
+		if (getModel().isDynamic()) {
+			CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
+				.getIntro();
+			currentIntroPart.getControl().setRedraw(false);
+			boolean success = false;
+			success = getModel().setCurrentPageId(homePage.getId());
+			updateHistory(homePage);
+			currentIntroPart.getControl().setRedraw(true);
+			return success;
+		}
+		// static model. Nothing to do.
+		return false;
+	}
 
-    @Override
+	@Override
 	protected void handleRegistryChanged(IRegistryChangeEvent event) {
-        if (getModel().isDynamic()) {
-            IntroPlugin.closeIntro();
-            IntroPlugin.showIntro(false);
-        }
-    }
+		if (getModel().isDynamic()) {
+			IntroPlugin.closeIntro();
+			IntroPlugin.showIntro(false);
+		}
+	}
 
 
 
-    // *********** Static case ******************
-    /*
-     * create static UI forms Intro. For this, we only launch the url of the
-     * root page.
-     */
-    private void staticCreatePartControl(Composite parent) {
-        toolkit = new FormToolkit(parent.getDisplay());
-        toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-            HyperlinkSettings.UNDERLINE_HOVER);
+	// *********** Static case ******************
+	/*
+	 * create static UI forms Intro. For this, we only launch the url of the
+	 * root page.
+	 */
+	private void staticCreatePartControl(Composite parent) {
+		toolkit = new FormToolkit(parent.getDisplay());
+		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
+			HyperlinkSettings.UNDERLINE_HOVER);
 
-        // create a page that has only one link. The URL and tooltip will be set
-        // by the standby listener.
-        welcomeLink = createStaticPage(parent);
-    }
+		// create a page that has only one link. The URL and tooltip will be set
+		// by the standby listener.
+		welcomeLink = createStaticPage(parent);
+	}
 
 
-    private Hyperlink createStaticPage(Composite parent) {
-        Form mainForm = toolkit.createForm(parent);
-        Composite body = mainForm.getBody();
+	private Hyperlink createStaticPage(Composite parent) {
+		Form mainForm = toolkit.createForm(parent);
+		Composite body = mainForm.getBody();
 
-        GridLayout gl = new GridLayout();
-        body.setLayout(gl);
-        String label = Messages.StaticHTML_welcome;
-        Hyperlink link = toolkit.createHyperlink(body, label, SWT.WRAP);
-        link.setFont(PageStyleManager.getHeaderFont());
-        GridData gd = new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.GRAB_VERTICAL);
-        gd.horizontalAlignment = GridData.CENTER;
-        gd.verticalAlignment = GridData.CENTER;
-        link.setLayoutData(gd);
-        link.addHyperlinkListener(new HyperlinkAdapter() {
+		GridLayout gl = new GridLayout();
+		body.setLayout(gl);
+		String label = Messages.StaticHTML_welcome;
+		Hyperlink link = toolkit.createHyperlink(body, label, SWT.WRAP);
+		link.setFont(PageStyleManager.getHeaderFont());
+		GridData gd = new GridData(GridData.GRAB_HORIZONTAL
+				| GridData.GRAB_VERTICAL);
+		gd.horizontalAlignment = GridData.CENTER;
+		gd.verticalAlignment = GridData.CENTER;
+		link.setLayoutData(gd);
+		link.addHyperlinkListener(new HyperlinkAdapter() {
 
-            @Override
+			@Override
 			public void linkActivated(HyperlinkEvent e) {
-                Hyperlink link = (Hyperlink) e.getSource();
-                Util.openBrowser((String) link.getHref());
-                return;
-            }
-        });
+				Hyperlink link = (Hyperlink) e.getSource();
+				Util.openBrowser((String) link.getHref());
+				return;
+			}
+		});
 
-        return link;
-    }
+		return link;
+	}
 
-    public void staticStandbyStateChanged(boolean standby) {
-        AbstractIntroPage homePage = getModel().getHomePage();
-        AbstractIntroPage standbyPage = getModel().getStandbyPage();
-        if (standbyPage == null)
-            standbyPage = homePage;
+	public void staticStandbyStateChanged(boolean standby) {
+		AbstractIntroPage homePage = getModel().getHomePage();
+		AbstractIntroPage standbyPage = getModel().getStandbyPage();
+		if (standbyPage == null)
+			standbyPage = homePage;
 
-        if (standby) {
-            welcomeLink.setHref(standbyPage.getUrl());
-            welcomeLink.setToolTipText(standbyPage.getUrl());
-        } else {
-            welcomeLink.setHref(homePage.getUrl());
-            welcomeLink.setToolTipText(homePage.getUrl());
-        }
-    }
+		if (standby) {
+			welcomeLink.setHref(standbyPage.getUrl());
+			welcomeLink.setToolTipText(standbyPage.getUrl());
+		} else {
+			welcomeLink.setHref(homePage.getUrl());
+			welcomeLink.setToolTipText(homePage.getUrl());
+		}
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/TextIntroPartImplementation.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/TextIntroPartImplementation.java
index 0d3ff88..acd2da5 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/TextIntroPartImplementation.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/TextIntroPartImplementation.java
@@ -28,55 +28,55 @@
  * model and prints the content of pages. It is used for debugging.
  */
 public class TextIntroPartImplementation extends
-        AbstractIntroPartImplementation {
+		AbstractIntroPartImplementation {
 
 
-    @Override
+	@Override
 	public void doStandbyStateChanged(boolean standby,
-            boolean isStandbyPartNeeded) {
-        // no-op
-    }
+			boolean isStandbyPartNeeded) {
+		// no-op
+	}
 
-    @Override
+	@Override
 	public void createPartControl(Composite container) {
-        Text text = new Text(container, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-        IntroModelRoot model = IntroPlugin.getDefault().getIntroModelRoot();
-        IntroModelSerializer serializer = new IntroModelSerializer(model);
-        text.setText(serializer.toString());
-        addToolBarActions();
-    }
+		Text text = new Text(container, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+		IntroModelRoot model = IntroPlugin.getDefault().getIntroModelRoot();
+		IntroModelSerializer serializer = new IntroModelSerializer(model);
+		text.setText(serializer.toString());
+		addToolBarActions();
+	}
 
-    @Override
+	@Override
 	protected void updateNavigationActionsState() {
-        // no-op
-    }
+		// no-op
+	}
 
-    @Override
+	@Override
 	public void setFocus() {
-        // no-op
-    }
+		// no-op
+	}
 
-    @Override
+	@Override
 	public boolean navigateBackward() {
-        return false;
-    }
+		return false;
+	}
 
-    @Override
+	@Override
 	public boolean navigateForward() {
-        return false;
-    }
+		return false;
+	}
 
-    @Override
+	@Override
 	protected void handleRegistryChanged(IRegistryChangeEvent event) {
-        // no-op
-    }
+		// no-op
+	}
 
-    @Override
+	@Override
 	public boolean navigateHome() {
-        return false;
-    }
+		return false;
+	}
 
-    public void reflow(IIntroContentProvider provider, boolean incremental) {
-        // no-op
-    }
+	public void reflow(IIntroContentProvider provider, boolean incremental) {
+		// no-op
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageContentForm.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageContentForm.java
index d7005c7..dc2dd1b 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageContentForm.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageContentForm.java
@@ -32,121 +32,121 @@
  */
 public class PageContentForm implements IIntroConstants {
 
-    private FormToolkit toolkit;
-    private IntroModelRoot model;
-    private PageStyleManager styleManager;
-    // composite to control reflow.
-    private Composite contentComposite;
+	private FormToolkit toolkit;
+	private IntroModelRoot model;
+	private PageStyleManager styleManager;
+	// composite to control reflow.
+	private Composite contentComposite;
 
-    // the page we are modeling here.
-    private AbstractIntroPage page;
+	// the page we are modeling here.
+	private AbstractIntroPage page;
 
-    // site is cached to hand down to the PageWidgetFactory for creating the UI
-    // for content providers..
-    private IIntroContentProviderSite site;
+	// site is cached to hand down to the PageWidgetFactory for creating the UI
+	// for content providers..
+	private IIntroContentProviderSite site;
 
 
-    public PageContentForm(FormToolkit toolkit, IntroModelRoot modelRoot) {
-        this.toolkit = toolkit;
-        this.model = modelRoot;
-        page = model.getCurrentPage();
-    }
+	public PageContentForm(FormToolkit toolkit, IntroModelRoot modelRoot) {
+		this.toolkit = toolkit;
+		this.model = modelRoot;
+		page = model.getCurrentPage();
+	}
 
-    public PageContentForm(FormToolkit toolkit, IntroModelRoot modelRoot,
-            AbstractIntroPage page) {
-        this(toolkit, modelRoot);
-        this.page = page;
-    }
+	public PageContentForm(FormToolkit toolkit, IntroModelRoot modelRoot,
+			AbstractIntroPage page) {
+		this(toolkit, modelRoot);
+		this.page = page;
+	}
 
 
-    /**
-     * Create the form for the root page. Number of columns there is equal to
-     * the number of links. Every image link does not cache a model object for
-     * data retrieval..
-     *
-     * @param pageBook
-     */
-    public void createPartControl(ScrolledPageBook contentPageBook,
-            PageStyleManager pageStyleManager) {
-        styleManager = pageStyleManager;
+	/**
+	 * Create the form for the root page. Number of columns there is equal to
+	 * the number of links. Every image link does not cache a model object for
+	 * data retrieval..
+	 *
+	 * @param pageBook
+	 */
+	public void createPartControl(ScrolledPageBook contentPageBook,
+			PageStyleManager pageStyleManager) {
+		styleManager = pageStyleManager;
 
-        // categoriesComposite has Table Layout with one col. Holds page
-        // description and composite with all other children.
-        contentComposite = contentPageBook.createPage(page.getId());
-        // Util.highlight(contentComposite, SWT.COLOR_GREEN);
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.topMargin = 15;
-        layout.leftMargin = 15;
-        layout.rightMargin = 15;
-        layout.bottomMargin = 15;
-        layout.verticalSpacing = 15;
-        contentComposite.setLayout(layout);
+		// categoriesComposite has Table Layout with one col. Holds page
+		// description and composite with all other children.
+		contentComposite = contentPageBook.createPage(page.getId());
+		// Util.highlight(contentComposite, SWT.COLOR_GREEN);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.topMargin = 15;
+		layout.leftMargin = 15;
+		layout.rightMargin = 15;
+		layout.bottomMargin = 15;
+		layout.verticalSpacing = 15;
+		contentComposite.setLayout(layout);
 
-        if (styleManager.getPageDescription() != null) {
-            Label label = toolkit.createLabel(contentComposite, styleManager
-                .getPageDescription(), SWT.WRAP);
-            label.setFont(PageStyleManager.getBannerFont());
-            TableWrapData td = new TableWrapData();
-            td.align = TableWrapData.FILL;
-            label.setLayoutData(td);
-        }
+		if (styleManager.getPageDescription() != null) {
+			Label label = toolkit.createLabel(contentComposite, styleManager
+				.getPageDescription(), SWT.WRAP);
+			label.setFont(PageStyleManager.getBannerFont());
+			TableWrapData td = new TableWrapData();
+			td.align = TableWrapData.FILL;
+			label.setLayoutData(td);
+		}
 
-        // Store the sub-title data for this composite from this page's
-        // subtitle. Make sure you do this before creating the page content to
-        // filter out page sub-title from content area.
-        contentComposite.setData(PAGE_SUBTITLE, styleManager.getPageSubTitle());
+		// Store the sub-title data for this composite from this page's
+		// subtitle. Make sure you do this before creating the page content to
+		// filter out page sub-title from content area.
+		contentComposite.setData(PAGE_SUBTITLE, styleManager.getPageSubTitle());
 
-        createPageChildren(page, contentComposite);
+		createPageChildren(page, contentComposite);
 
-        styleManager = null;
-    }
+		styleManager = null;
+	}
 
-    private void createPageChildren(AbstractIntroPage page, Composite parent) {
-        // setup page composite/layout
-        PageWidgetFactory factory = new PageWidgetFactory(toolkit, styleManager);
-        factory.setContentProviderSite(site);
-        Composite pageComposite = createPageTableComposite(factory, toolkit, styleManager, parent);
-        // now add all children
-        AbstractIntroElement[] children = page.getChildren();
-        for (int i = 0; i < children.length; i++)
-            factory.createIntroElement(pageComposite, children[i]);
+	private void createPageChildren(AbstractIntroPage page, Composite parent) {
+		// setup page composite/layout
+		PageWidgetFactory factory = new PageWidgetFactory(toolkit, styleManager);
+		factory.setContentProviderSite(site);
+		Composite pageComposite = createPageTableComposite(factory, toolkit, styleManager, parent);
+		// now add all children
+		AbstractIntroElement[] children = page.getChildren();
+		for (int i = 0; i < children.length; i++)
+			factory.createIntroElement(pageComposite, children[i]);
 
-    }
+	}
 
-    /**
-     * Creates a composite with TableWrapLayout to hold all page children. The
-     * default number of columns is 1.
-     *
-     * @param parent
-     * @return
-     */
-    static Composite createPageTableComposite(PageWidgetFactory factory, FormToolkit toolkit,
-    		PageStyleManager styleManager, Composite parent) {
-        Composite client = toolkit.createComposite(parent);
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.topMargin = 0;
-        layout.bottomMargin = 0;
-        layout.leftMargin = 0;
-        layout.rightMargin = 0;
-        int numColumns = styleManager.getPageNumberOfColumns();
-        layout.numColumns = numColumns == 0 ? 1 : numColumns;
-        layout.horizontalSpacing = styleManager.getPageHorizantalSpacing();
-        layout.verticalSpacing = styleManager.getPageVerticalSpacing();
-        client.setLayout(layout);
+	/**
+	 * Creates a composite with TableWrapLayout to hold all page children. The
+	 * default number of columns is 1.
+	 *
+	 * @param parent
+	 * @return
+	 */
+	static Composite createPageTableComposite(PageWidgetFactory factory, FormToolkit toolkit,
+			PageStyleManager styleManager, Composite parent) {
+		Composite client = toolkit.createComposite(parent);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.topMargin = 0;
+		layout.bottomMargin = 0;
+		layout.leftMargin = 0;
+		layout.rightMargin = 0;
+		int numColumns = styleManager.getPageNumberOfColumns();
+		layout.numColumns = numColumns == 0 ? 1 : numColumns;
+		layout.horizontalSpacing = styleManager.getPageHorizantalSpacing();
+		layout.verticalSpacing = styleManager.getPageVerticalSpacing();
+		client.setLayout(layout);
 
-        // parent has TableWrapLayout, and so update layout of this child.
-        TableWrapData td = new TableWrapData(TableWrapData.FILL,
-            TableWrapData.FILL);
-        // td.align = TableWrapData.FILL;
-        td.grabHorizontal = true;
-        client.setLayoutData(td);
-        return client;
-    }
+		// parent has TableWrapLayout, and so update layout of this child.
+		TableWrapData td = new TableWrapData(TableWrapData.FILL,
+			TableWrapData.FILL);
+		// td.align = TableWrapData.FILL;
+		td.grabHorizontal = true;
+		client.setLayoutData(td);
+		return client;
+	}
 
 
-    public void setContentProviderSite(IIntroContentProviderSite site) {
-        this.site = site;
-    }
+	public void setContentProviderSite(IIntroContentProviderSite site) {
+		this.site = site;
+	}
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageForm.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageForm.java
index d553faa..47e6e3c 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageForm.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageForm.java
@@ -39,145 +39,145 @@
  */
 public class PageForm implements IIntroConstants {
 
-    protected FormToolkit toolkit;
-    private ScrolledPageBook categoryPageBook;
-    protected IntroModelRoot model;
-    private Form parentForm;
-    protected Form pageForm;
-    // private SharedStyleManager sharedStyleManager;
+	protected FormToolkit toolkit;
+	private ScrolledPageBook categoryPageBook;
+	protected IntroModelRoot model;
+	private Form parentForm;
+	protected Form pageForm;
+	// private SharedStyleManager sharedStyleManager;
 
-    // Id to this page. There is only a single instance of this page in the
-    // main page book.
-    public static String PAGE_FORM_ID = "pageFormId"; //$NON-NLS-1$
+	// Id to this page. There is only a single instance of this page in the
+	// main page book.
+	public static String PAGE_FORM_ID = "pageFormId"; //$NON-NLS-1$
 
-    // site is cached to hand down to the PageWidgetFactory for creating the UI
-    // for content providers..
-    private IIntroContentProviderSite site;
+	// site is cached to hand down to the PageWidgetFactory for creating the UI
+	// for content providers..
+	private IIntroContentProviderSite site;
 
-    protected HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
+	protected HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
 
-        @Override
+		@Override
 		public void linkActivated(HyperlinkEvent e) {
-            String url = (String) e.getHref();
-            IntroURLParser parser = new IntroURLParser(url);
-            if (parser.hasIntroUrl()) {
-                // execute the action embedded in the IntroURL
-                parser.getIntroURL().execute();
-                return;
-            } else if (parser.hasProtocol()) {
-                Util.openBrowser(url);
-                return;
-            }
-            DialogUtil.displayInfoMessage(((Control) e.getSource()).getShell(),
-                Messages.HyperlinkAdapter_urlIs + " " + url); //$NON-NLS-1$
-        }
+			String url = (String) e.getHref();
+			IntroURLParser parser = new IntroURLParser(url);
+			if (parser.hasIntroUrl()) {
+				// execute the action embedded in the IntroURL
+				parser.getIntroURL().execute();
+				return;
+			} else if (parser.hasProtocol()) {
+				Util.openBrowser(url);
+				return;
+			}
+			DialogUtil.displayInfoMessage(((Control) e.getSource()).getShell(),
+				Messages.HyperlinkAdapter_urlIs + " " + url); //$NON-NLS-1$
+		}
 
-        @Override
+		@Override
 		public void linkEntered(HyperlinkEvent e) {
-        }
+		}
 
-        @Override
+		@Override
 		public void linkExited(HyperlinkEvent e) {
-        }
-    };
+		}
+	};
 
-    /**
-     *
-     */
-    public PageForm(FormToolkit toolkit, IntroModelRoot modelRoot,
-            Form parentForm) {
-        this.toolkit = toolkit;
-        this.model = modelRoot;
-        this.parentForm = parentForm;
-    }
+	/**
+	 *
+	 */
+	public PageForm(FormToolkit toolkit, IntroModelRoot modelRoot,
+			Form parentForm) {
+		this.toolkit = toolkit;
+		this.model = modelRoot;
+		this.parentForm = parentForm;
+	}
 
-    /**
-     * Create a Form for holding pages without navigation.
-     *
-     * @param pageBook
-     */
-    public void createPartControl(ScrolledPageBook mainPageBook,
-            SharedStyleManager sharedStyleManager) {
+	/**
+	 * Create a Form for holding pages without navigation.
+	 *
+	 * @param pageBook
+	 */
+	public void createPartControl(ScrolledPageBook mainPageBook,
+			SharedStyleManager sharedStyleManager) {
 
-        // Cash the shared style manager. We need to pass it around to category
-        // forms. So, do not null it!
-        // this.sharedStyleManager = sharedStyleManager;
+		// Cash the shared style manager. We need to pass it around to category
+		// forms. So, do not null it!
+		// this.sharedStyleManager = sharedStyleManager;
 
-        // creating page in Main page book.
-        pageForm = toolkit.createForm(mainPageBook.getContainer());
-        mainPageBook.registerPage(getId(), pageForm);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        pageForm.getBody().setLayout(layout);
-        // Util.highlight(pageForm.getBody(), SWT.COLOR_RED);
+		// creating page in Main page book.
+		pageForm = toolkit.createForm(mainPageBook.getContainer());
+		mainPageBook.registerPage(getId(), pageForm);
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		pageForm.getBody().setLayout(layout);
+		// Util.highlight(pageForm.getBody(), SWT.COLOR_RED);
 
-        // Get form body. Form body is one column grid layout. Add page book
-        // and navigation UI to it.
-        categoryPageBook = toolkit.createPageBook(pageForm.getBody(),
-            SWT.H_SCROLL | SWT.V_SCROLL);
-        categoryPageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
+		// Get form body. Form body is one column grid layout. Add page book
+		// and navigation UI to it.
+		categoryPageBook = toolkit.createPageBook(pageForm.getBody(),
+			SWT.H_SCROLL | SWT.V_SCROLL);
+		categoryPageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
 
-        // pageForm.setText(rootPageStyleManager.getPageSubTitle());
-    }
+		// pageForm.setText(rootPageStyleManager.getPageSubTitle());
+	}
 
 
-    protected String getId() {
-        return PAGE_FORM_ID;
-    }
+	protected String getId() {
+		return PAGE_FORM_ID;
+	}
 
 
 
-    /**
-     * This method is called when the current page changes. It creates the
-     * PageContentForm if necessary, and handles showing the page in the Page
-     * Book. It creates a model PageContentForm for the current page.
-     *
-     * @param pageID
-     */
-    public void showPage(AbstractIntroPage page,
-            SharedStyleManager sharedStyleManager) {
+	/**
+	 * This method is called when the current page changes. It creates the
+	 * PageContentForm if necessary, and handles showing the page in the Page
+	 * Book. It creates a model PageContentForm for the current page.
+	 *
+	 * @param pageID
+	 */
+	public void showPage(AbstractIntroPage page,
+			SharedStyleManager sharedStyleManager) {
 
-        if (!categoryPageBook.hasPage(page.getId())) {
-            // if we do not have a category form for this page create one.
-            PageContentForm categoryForm = new PageContentForm(toolkit, model,
-                page);
-            categoryForm.setContentProviderSite(site);
-            // load style manager only once, here.
-            PageStyleManager styleManager = new PageStyleManager(page,
-                sharedStyleManager.getProperties());
-            categoryForm.createPartControl(categoryPageBook, styleManager);
-        }
-        categoryPageBook.showPage(page.getId());
+		if (!categoryPageBook.hasPage(page.getId())) {
+			// if we do not have a category form for this page create one.
+			PageContentForm categoryForm = new PageContentForm(toolkit, model,
+				page);
+			categoryForm.setContentProviderSite(site);
+			// load style manager only once, here.
+			PageStyleManager styleManager = new PageStyleManager(page,
+				sharedStyleManager.getProperties());
+			categoryForm.createPartControl(categoryPageBook, styleManager);
+		}
+		categoryPageBook.showPage(page.getId());
 
-        // Get cached page subtitle from control data.
-        Composite pageComposite = (Composite) categoryPageBook.getCurrentPage();
-        // update main Form title.
-        parentForm.setText(model.getCurrentPage().getTitle());
-        // update this page form's title, ie: Page subtitle, if it exists.
-        pageForm.setText((String) pageComposite.getData(PAGE_SUBTITLE));
+		// Get cached page subtitle from control data.
+		Composite pageComposite = (Composite) categoryPageBook.getCurrentPage();
+		// update main Form title.
+		parentForm.setText(model.getCurrentPage().getTitle());
+		// update this page form's title, ie: Page subtitle, if it exists.
+		pageForm.setText((String) pageComposite.getData(PAGE_SUBTITLE));
 
-        // TODO need to transfer focus to the first link in
-        // the page somehow; we may need IIntroPage interface with
-        // a few methods like 'setFocus()' etc.
-        // DG
-    }
+		// TODO need to transfer focus to the first link in
+		// the page somehow; we may need IIntroPage interface with
+		// a few methods like 'setFocus()' etc.
+		// DG
+	}
 
-    public void reflow() {
-    	categoryPageBook.reflow(true);
-    }
+	public void reflow() {
+		categoryPageBook.reflow(true);
+	}
 
-    public boolean hasPage(String pageId) {
-        return categoryPageBook.hasPage(pageId);
-    }
+	public boolean hasPage(String pageId) {
+		return categoryPageBook.hasPage(pageId);
+	}
 
-    public void removePage(String pageId) {
-        categoryPageBook.removePage(pageId);
-    }
+	public void removePage(String pageId) {
+		categoryPageBook.removePage(pageId);
+	}
 
-    public void setContentProviderSite(IIntroContentProviderSite site) {
-        this.site = site;
-    }
+	public void setContentProviderSite(IIntroContentProviderSite site) {
+		this.site = site;
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageFormWithNavigation.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageFormWithNavigation.java
index e1f8e72..fa2cd6c 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageFormWithNavigation.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageFormWithNavigation.java
@@ -35,97 +35,97 @@
  */
 public class PageFormWithNavigation extends PageForm {
 
-    private PageStyleManager rootPageStyleManager;
+	private PageStyleManager rootPageStyleManager;
 
-    // Id to this page. There is only a single instance of this page in the
-    // main page book.
-    public static String PAGE_FORM_WITH_NAVIGATION_ID = "pageFormWithNavigationId"; //$NON-NLS-1$
+	// Id to this page. There is only a single instance of this page in the
+	// main page book.
+	public static String PAGE_FORM_WITH_NAVIGATION_ID = "pageFormWithNavigationId"; //$NON-NLS-1$
 
 
-    /**
-     *
-     */
-    public PageFormWithNavigation(FormToolkit toolkit,
-            IntroModelRoot modelRoot, Form parentForm) {
-        super(toolkit, modelRoot, parentForm);
-    }
+	/**
+	 *
+	 */
+	public PageFormWithNavigation(FormToolkit toolkit,
+			IntroModelRoot modelRoot, Form parentForm) {
+		super(toolkit, modelRoot, parentForm);
+	}
 
-    /**
-     * Extend parent behavior and add navigation.
-     *
-     * @param pageBook
-     */
-    @Override
+	/**
+	 * Extend parent behavior and add navigation.
+	 *
+	 * @param pageBook
+	 */
+	@Override
 	public void createPartControl(ScrolledPageBook mainPageBook,
-            SharedStyleManager sharedStyleManager) {
+			SharedStyleManager sharedStyleManager) {
 
-        super.createPartControl(mainPageBook, sharedStyleManager);
+		super.createPartControl(mainPageBook, sharedStyleManager);
 
-        // Create a style manager from shared style manager. We only need it
-        // for the UI navigation composite.
-        rootPageStyleManager = new PageStyleManager(model.getHomePage(),
-            sharedStyleManager.getProperties());
+		// Create a style manager from shared style manager. We only need it
+		// for the UI navigation composite.
+		rootPageStyleManager = new PageStyleManager(model.getHomePage(),
+			sharedStyleManager.getProperties());
 
-        // Now create Navigation bar.
-        Composite navigationComposite = toolkit.createComposite(pageForm
-            .getBody());
-        navigationComposite.setLayoutData(new GridData(
-            GridData.HORIZONTAL_ALIGN_CENTER));
-        int numberOfLinks = model.getRootPage().getLinks().length;
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numberOfLinks;
-        navigationComposite.setLayout(layout);
-        createSmallNavigator(navigationComposite, model.getRootPage()
-            .getLinks());
+		// Now create Navigation bar.
+		Composite navigationComposite = toolkit.createComposite(pageForm
+			.getBody());
+		navigationComposite.setLayoutData(new GridData(
+			GridData.HORIZONTAL_ALIGN_CENTER));
+		int numberOfLinks = model.getRootPage().getLinks().length;
+		GridLayout layout = new GridLayout();
+		layout.numColumns = numberOfLinks;
+		navigationComposite.setLayout(layout);
+		createSmallNavigator(navigationComposite, model.getRootPage()
+			.getLinks());
 
-        pageForm.setText(rootPageStyleManager.getPageSubTitle());
-    }
+		pageForm.setText(rootPageStyleManager.getPageSubTitle());
+	}
 
-    /**
-     * Override parent id.
-     */
-    @Override
+	/**
+	 * Override parent id.
+	 */
+	@Override
 	protected String getId() {
-        return PAGE_FORM_WITH_NAVIGATION_ID;
-    }
+		return PAGE_FORM_WITH_NAVIGATION_ID;
+	}
 
-    private void createSmallNavigator(Composite parent, IntroLink[] links) {
-        for (int i = 0; i < links.length; i++) {
-            Control c = createImageHyperlink(parent, links[i]);
-            c.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
-        }
-        for (int i = 0; i < links.length; i++) {
-            Label text = toolkit.createLabel(parent, links[i].getLabel());
-            text.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
-            text.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-        }
-    }
+	private void createSmallNavigator(Composite parent, IntroLink[] links) {
+		for (int i = 0; i < links.length; i++) {
+			Control c = createImageHyperlink(parent, links[i]);
+			c.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
+		}
+		for (int i = 0; i < links.length; i++) {
+			Label text = toolkit.createLabel(parent, links[i].getLabel());
+			text.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
+			text.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
+		}
+	}
 
-    /**
-     * Creates an Image Hyperlink from an IntroLink. Model object is NOT cached.
-     *
-     * @param body
-     * @param link
-     */
-    private Control createImageHyperlink(Composite body, IntroLink link) {
-        ImageHyperlink imageLink = toolkit.createImageHyperlink(body, SWT.NULL);
+	/**
+	 * Creates an Image Hyperlink from an IntroLink. Model object is NOT cached.
+	 *
+	 * @param body
+	 * @param link
+	 */
+	private Control createImageHyperlink(Composite body, IntroLink link) {
+		ImageHyperlink imageLink = toolkit.createImageHyperlink(body, SWT.NULL);
 
-        // set link image.
-        Image image = rootPageStyleManager.getImage(link, "small-link-icon", //$NON-NLS-1$
-            ImageUtil.DEFAULT_SMALL_ROOT_LINK);
-        imageLink.setImage(image);
+		// set link image.
+		Image image = rootPageStyleManager.getImage(link, "small-link-icon", //$NON-NLS-1$
+			ImageUtil.DEFAULT_SMALL_ROOT_LINK);
+		imageLink.setImage(image);
 
-        // set link hover image.
-        image = rootPageStyleManager.getImage(link, "small-hover-icon", null); //$NON-NLS-1$
-        imageLink.setHoverImage(image);
-        imageLink.setToolTipText(link.getLabel());
-        // each link is centered in cell.
-        GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
-        imageLink.setLayoutData(gd);
-        imageLink.setHref(link.getUrl());
-        imageLink.addHyperlinkListener(hyperlinkAdapter);
-        return imageLink;
-    }
+		// set link hover image.
+		image = rootPageStyleManager.getImage(link, "small-hover-icon", null); //$NON-NLS-1$
+		imageLink.setHoverImage(image);
+		imageLink.setToolTipText(link.getLabel());
+		// each link is centered in cell.
+		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+		imageLink.setLayoutData(gd);
+		imageLink.setHref(link.getUrl());
+		imageLink.addHyperlinkListener(hyperlinkAdapter);
+		return imageLink;
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageStyleManager.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageStyleManager.java
index 31d0baa..4a5461b 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageStyleManager.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageStyleManager.java
@@ -42,510 +42,510 @@
 
 public class PageStyleManager extends SharedStyleManager {
 
-    private AbstractIntroPage page;
+	private AbstractIntroPage page;
 	private Map<Properties, StyleContext> altStyleContexts = new HashMap<>();
-    private IntroModelRoot root;
+	private IntroModelRoot root;
 
 
-    /**
-     * Constructor used when page styles need to be loaded. The plugin's bundle
-     * is retrieved from the page model class. The default properties are
-     * assumed to be the presentation shared properties. The inherrited
-     * properties are properties that we got from included and extension styles.
-     *
-     * @param modelRoot
-     */
-    public PageStyleManager(AbstractIntroPage page, Properties sharedProperties) {
-        this.page = page;
-        context = new StyleContext();
-        context.bundle = page.getBundle();
+	/**
+	 * Constructor used when page styles need to be loaded. The plugin's bundle
+	 * is retrieved from the page model class. The default properties are
+	 * assumed to be the presentation shared properties. The inherrited
+	 * properties are properties that we got from included and extension styles.
+	 *
+	 * @param modelRoot
+	 */
+	public PageStyleManager(AbstractIntroPage page, Properties sharedProperties) {
+		this.page = page;
+		context = new StyleContext();
+		context.bundle = page.getBundle();
 
-        // honor shared-style.
-        if (page.injectSharedStyle())
-            properties = new Properties(sharedProperties);
-        else
-            properties = new Properties();
-        String altStyle = page.getAltStyle();
-        if (altStyle != null) {
-            load(properties, altStyle, context);
-        }
+		// honor shared-style.
+		if (page.injectSharedStyle())
+			properties = new Properties(sharedProperties);
+		else
+			properties = new Properties();
+		String altStyle = page.getAltStyle();
+		if (altStyle != null) {
+			load(properties, altStyle, context);
+		}
 
-        // AltStyles Hashtable has alt-styles as keys, the bundles as
-        // values.
+		// AltStyles Hashtable has alt-styles as keys, the bundles as
+		// values.
 		Map<String, Bundle> altStyles = page.getAltStyles();
-        if (altStyles != null) {
+		if (altStyles != null) {
 			for (Entry<String, Bundle> entry : altStyles.entrySet()) {
 				String style = entry.getKey();
-                Properties inheritedProperties = new Properties();
+				Properties inheritedProperties = new Properties();
 				Bundle bundle = entry.getValue();
-                StyleContext sc = new StyleContext();
-                sc.bundle = bundle;
-                load(inheritedProperties, style, sc);
-                altStyleContexts.put(inheritedProperties, sc);
-            }
-        }
+				StyleContext sc = new StyleContext();
+				sc.bundle = bundle;
+				load(inheritedProperties, style, sc);
+				altStyleContexts.put(inheritedProperties, sc);
+			}
+		}
 
-        // cache root
-        root = (IntroModelRoot) page.getParentPage().getParent();
-    }
+		// cache root
+		root = (IntroModelRoot) page.getParentPage().getParent();
+	}
 
 
-    // Override parent method to include alt-styles. Use implicit keys as well.
-    @Override
+	// Override parent method to include alt-styles. Use implicit keys as well.
+	@Override
 	public String getProperty(String key) {
-        return getProperty(key, true);
-    }
+		return getProperty(key, true);
+	}
 
-    // Override parent method to include alt-styles. If useImplicit is true, we
-    // try to resolve a key without its pageId.
-    private String getProperty(String key, boolean useImplicitKey) {
-        Properties aProperties = findPropertyOwner(key);
-        String value = super.doGetProperty(aProperties, key);
-        if (useImplicitKey) {
-            if (value == null && page.getId() != null
-                    && key.startsWith(page.getId())) {
-                // did not find the key as-is. Trim pageId and try again.
-                String relativeKey = key.substring(page.getId().length());
-                return getProperty(relativeKey);
-            }
-        }
-        return value;
-    }
+	// Override parent method to include alt-styles. If useImplicit is true, we
+	// try to resolve a key without its pageId.
+	private String getProperty(String key, boolean useImplicitKey) {
+		Properties aProperties = findPropertyOwner(key);
+		String value = super.doGetProperty(aProperties, key);
+		if (useImplicitKey) {
+			if (value == null && page.getId() != null
+					&& key.startsWith(page.getId())) {
+				// did not find the key as-is. Trim pageId and try again.
+				String relativeKey = key.substring(page.getId().length());
+				return getProperty(relativeKey);
+			}
+		}
+		return value;
+	}
 
 
-    /**
-     * Finds a Properties that represents an inherited shared style, or this
-     * current pages style. If the given key is not found, the pageId is trimmed
-     * from the begining of the key, and the key is looked up again. If key does
-     * not start with a pageId, lookup only the key as is.
-     *
-     * @param key
-     * @return
-     */
-    private Properties findPropertyOwner(String key) {
-        // search for the key in this page's properties first.
-        if (properties.containsKey(key))
-            return properties;
+	/**
+	 * Finds a Properties that represents an inherited shared style, or this
+	 * current pages style. If the given key is not found, the pageId is trimmed
+	 * from the begining of the key, and the key is looked up again. If key does
+	 * not start with a pageId, lookup only the key as is.
+	 *
+	 * @param key
+	 * @return
+	 */
+	private Properties findPropertyOwner(String key) {
+		// search for the key in this page's properties first.
+		if (properties.containsKey(key))
+			return properties;
 
-        // search inherited properties second.
+		// search inherited properties second.
 		for (Properties aProperties : altStyleContexts.keySet()) {
-            if (aProperties.containsKey(key))
-                return aProperties;
-        }
-        // we did not find the key. Return the local properties anyway.
-        return properties;
-    }
+			if (aProperties.containsKey(key))
+				return aProperties;
+		}
+		// we did not find the key. Return the local properties anyway.
+		return properties;
+	}
 
 
 
-    /**
-     * Finds the context from which this key was loaded. If the key is not from
-     * an inherited alt style, then use the context corresponding to this page.
-     *
-     * @param key
-     * @return
-     */
+	/**
+	 * Finds the context from which this key was loaded. If the key is not from
+	 * an inherited alt style, then use the context corresponding to this page.
+	 *
+	 * @param key
+	 * @return
+	 */
 
-    @Override
+	@Override
 	protected StyleContext getAssociatedContext(String key) {
-        Properties aProperties = findPropertyOwner(key);
-        StyleContext context = altStyleContexts.get(aProperties);
-        if (context != null)
-            return context;
-        return super.getAssociatedContext(key);
-    }
+		Properties aProperties = findPropertyOwner(key);
+		StyleContext context = altStyleContexts.get(aProperties);
+		if (context != null)
+			return context;
+		return super.getAssociatedContext(key);
+	}
 
 
-    /*
-     * For number of columns, do not return 1 as the default, to allow for
-     * further processing. At the root page level, getting a 0 as ncolumns means
-     * that the number of columns is the number of children. At the page level,
-     * default is 1.
-     */
-    public int getPageNumberOfColumns() {
-        return getIntProperty(page, ".layout.ncolumns", 0); //$NON-NLS-1$
-    }
+	/*
+	 * For number of columns, do not return 1 as the default, to allow for
+	 * further processing. At the root page level, getting a 0 as ncolumns means
+	 * that the number of columns is the number of children. At the page level,
+	 * default is 1.
+	 */
+	public int getPageNumberOfColumns() {
+		return getIntProperty(page, ".layout.ncolumns", 0); //$NON-NLS-1$
+	}
 
 
-    public int getNumberOfColumns(IntroGroup group) {
-        return getIntProperty(group, ".layout.ncolumns", 0); //$NON-NLS-1$
-    }
+	public int getNumberOfColumns(IntroGroup group) {
+		return getIntProperty(group, ".layout.ncolumns", 0); //$NON-NLS-1$
+	}
 
-    public boolean getEqualWidth(IntroGroup group) {
-    	return getBooleanProperty(group, ".layout.equalWidth", false); //$NON-NLS-1$
-    }
+	public boolean getEqualWidth(IntroGroup group) {
+		return getBooleanProperty(group, ".layout.equalWidth", false); //$NON-NLS-1$
+	}
 
-    public int getPageVerticalSpacing() {
-        return getIntProperty(page, ".layout.vspacing", 5); //$NON-NLS-1$
-    }
+	public int getPageVerticalSpacing() {
+		return getIntProperty(page, ".layout.vspacing", 5); //$NON-NLS-1$
+	}
 
-    public int getVerticalSpacing(IntroGroup group) {
-        return getIntProperty(group, ".layout.vspacing", 5); //$NON-NLS-1$
-    }
+	public int getVerticalSpacing(IntroGroup group) {
+		return getIntProperty(group, ".layout.vspacing", 5); //$NON-NLS-1$
+	}
 
-    public int getPageHorizantalSpacing() {
-        return getIntProperty(page, ".layout.hspacing", 5); //$NON-NLS-1$
-    }
+	public int getPageHorizantalSpacing() {
+		return getIntProperty(page, ".layout.hspacing", 5); //$NON-NLS-1$
+	}
 
-    public int getHorizantalSpacing(IntroGroup group) {
-        return getIntProperty(group, ".layout.hspacing", 5); //$NON-NLS-1$
-    }
+	public int getHorizantalSpacing(IntroGroup group) {
+		return getIntProperty(group, ".layout.hspacing", 5); //$NON-NLS-1$
+	}
 
-    public int getColSpan(AbstractBaseIntroElement element) {
-        return getIntProperty(element, ".layout.colspan", 1); //$NON-NLS-1$
-    }
+	public int getColSpan(AbstractBaseIntroElement element) {
+		return getIntProperty(element, ".layout.colspan", 1); //$NON-NLS-1$
+	}
 
-    public int getRowSpan(AbstractBaseIntroElement element) {
-        return getIntProperty(element, ".layout.rowspan", 1); //$NON-NLS-1$
-    }
+	public int getRowSpan(AbstractBaseIntroElement element) {
+		return getIntProperty(element, ".layout.rowspan", 1); //$NON-NLS-1$
+	}
 
-    private int getIntProperty(AbstractBaseIntroElement element,
-            String qualifier, int defaultValue) {
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
-        if (buff == null)
-            return defaultValue;
-        String key = buff.append(qualifier).toString();
-        return getIntProperty(key, defaultValue);
-    }
+	private int getIntProperty(AbstractBaseIntroElement element,
+			String qualifier, int defaultValue) {
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
+		if (buff == null)
+			return defaultValue;
+		String key = buff.append(qualifier).toString();
+		return getIntProperty(key, defaultValue);
+	}
 
-    private boolean getBooleanProperty(AbstractBaseIntroElement element,
-            String qualifier, boolean defaultValue) {
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
-        if (buff == null)
-            return defaultValue;
-        String key = buff.append(qualifier).toString();
-        return getBooleanProperty(key, defaultValue);
-    }
+	private boolean getBooleanProperty(AbstractBaseIntroElement element,
+			String qualifier, boolean defaultValue) {
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
+		if (buff == null)
+			return defaultValue;
+		String key = buff.append(qualifier).toString();
+		return getBooleanProperty(key, defaultValue);
+	}
 
-    private int getIntProperty(String key, int defaulValue) {
-        int intValue = defaulValue;
-        String value = getProperty(key);
-        if (value == null)
-            return intValue;
+	private int getIntProperty(String key, int defaulValue) {
+		int intValue = defaulValue;
+		String value = getProperty(key);
+		if (value == null)
+			return intValue;
 
-        try {
-            intValue = Integer.parseInt(value);
-        } catch (NumberFormatException e) {
-            Log.error("Failed to parse key: " + key + " as an integer.", e); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        return intValue;
-    }
+		try {
+			intValue = Integer.parseInt(value);
+		} catch (NumberFormatException e) {
+			Log.error("Failed to parse key: " + key + " as an integer.", e); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		return intValue;
+	}
 
-    private boolean getBooleanProperty(String key, boolean defaultValue) {
-        boolean booleanValue = defaultValue;
-        String value = getProperty(key);
-        if (value != null)
-        	booleanValue = value.equalsIgnoreCase("true"); //$NON-NLS-1$
-        return booleanValue;
-    }
+	private boolean getBooleanProperty(String key, boolean defaultValue) {
+		boolean booleanValue = defaultValue;
+		String value = getProperty(key);
+		if (value != null)
+			booleanValue = value.equalsIgnoreCase("true"); //$NON-NLS-1$
+		return booleanValue;
+	}
 
 
-    /**
-     * Finds the description text of the given group. Looks for the Text child
-     * element whos id is specified as follows:
-     * <p>
-     * <pageId>. <path_to_group>.description-id= <id of child description Text
-     * element>
-     * </p>
-     * If not found, use the default description style.
-     *
-     * Returns null if no default style found, or any id in path is null.
-     *
-     * @param group
-     * @return
-     */
-    public String getDescription(IntroGroup group) {
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(group, true);
-        if (buff == null)
-            return null;
-        String key = buff.append(".description-id").toString(); //$NON-NLS-1$
-        return doGetDescription(group, key);
-    }
+	/**
+	 * Finds the description text of the given group. Looks for the Text child
+	 * element whos id is specified as follows:
+	 * <p>
+	 * <pageId>. <path_to_group>.description-id= <id of child description Text
+	 * element>
+	 * </p>
+	 * If not found, use the default description style.
+	 *
+	 * Returns null if no default style found, or any id in path is null.
+	 *
+	 * @param group
+	 * @return
+	 */
+	public String getDescription(IntroGroup group) {
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(group, true);
+		if (buff == null)
+			return null;
+		String key = buff.append(".description-id").toString(); //$NON-NLS-1$
+		return doGetDescription(group, key);
+	}
 
 
-    /**
-     * Finds the description text of the associated page. Looks for the Text
-     * child element whos id is specified as follows:
-     * <p>
-     * <pageId>.description-id= <id of child description Text element>
-     * </p>
-     * If not found, use the default description style.
-     *
-     * Returns null if no default style found, or any id in path is null.
-     *
-     * @param group
-     * @return
-     */
-    public String getPageDescription() {
-        if (page.getId() == null)
-            return null;
-        String key = page.getId() + ".description-id"; //$NON-NLS-1$
-        return doGetDescription(page, key);
-    }
+	/**
+	 * Finds the description text of the associated page. Looks for the Text
+	 * child element whos id is specified as follows:
+	 * <p>
+	 * <pageId>.description-id= <id of child description Text element>
+	 * </p>
+	 * If not found, use the default description style.
+	 *
+	 * Returns null if no default style found, or any id in path is null.
+	 *
+	 * @param group
+	 * @return
+	 */
+	public String getPageDescription() {
+		if (page.getId() == null)
+			return null;
+		String key = page.getId() + ".description-id"; //$NON-NLS-1$
+		return doGetDescription(page, key);
+	}
 
-    private String doGetDescription(AbstractIntroContainer parent, String key) {
-        String path = getProperty(key);
-        String description = null;
-        if (path != null)
-            description = findTextFromPath(parent, path);
-        if (description != null)
-            return description;
-        return findTextFromStyleId(parent, getDescriptionStyleId());
-    }
+	private String doGetDescription(AbstractIntroContainer parent, String key) {
+		String path = getProperty(key);
+		String description = null;
+		if (path != null)
+			description = findTextFromPath(parent, path);
+		if (description != null)
+			return description;
+		return findTextFromStyleId(parent, getDescriptionStyleId());
+	}
 
-    private String getDescriptionStyleId() {
-        String key = "description-style-id"; //$NON-NLS-1$
-        return getProperty(key);
-    }
+	private String getDescriptionStyleId() {
+		String key = "description-style-id"; //$NON-NLS-1$
+		return getProperty(key);
+	}
 
-    /**
-     * Finds the subtitle of the associated page. Looks for the Text child
-     * element whose id is specified as follows:
-     * <p>
-     * <pageId>.description-id= <id of child description Text element>
-     * </p>
-     * If not found, use the default description style.
-     *
-     * @param group
-     * @return
-     */
-    public String getPageSubTitle() {
-        String key = page.getId() + ".subtitle-id"; //$NON-NLS-1$
-        String path = getProperty(key);
-        String description = null;
-        if (path != null)
-            description = findTextFromPath(page, path);
-        if (description != null)
-            return description;
-        return findTextFromStyleId(page, getPageSubTitleStyleId());
-    }
+	/**
+	 * Finds the subtitle of the associated page. Looks for the Text child
+	 * element whose id is specified as follows:
+	 * <p>
+	 * <pageId>.description-id= <id of child description Text element>
+	 * </p>
+	 * If not found, use the default description style.
+	 *
+	 * @param group
+	 * @return
+	 */
+	public String getPageSubTitle() {
+		String key = page.getId() + ".subtitle-id"; //$NON-NLS-1$
+		String path = getProperty(key);
+		String description = null;
+		if (path != null)
+			description = findTextFromPath(page, path);
+		if (description != null)
+			return description;
+		return findTextFromStyleId(page, getPageSubTitleStyleId());
+	}
 
-    private String getPageSubTitleStyleId() {
-        String key = "subtitle-style-id"; //$NON-NLS-1$
-        return getProperty(key);
-    }
+	private String getPageSubTitleStyleId() {
+		String key = "subtitle-style-id"; //$NON-NLS-1$
+		return getProperty(key);
+	}
 
-    private String findTextFromPath(AbstractIntroContainer parent, String path) {
-        AbstractIntroElement child = parent.findTarget(root, path);
-        if (child != null && child.isOfType(AbstractIntroElement.TEXT)) {
-            makeFiltered(child);
-            return ((IntroText) child).getText();
-        }
-        return null;
-    }
+	private String findTextFromPath(AbstractIntroContainer parent, String path) {
+		AbstractIntroElement child = parent.findTarget(root, path);
+		if (child != null && child.isOfType(AbstractIntroElement.TEXT)) {
+			makeFiltered(child);
+			return ((IntroText) child).getText();
+		}
+		return null;
+	}
 
-    /**
-     * Returns the first direct child text element with the given style-id.
-     *
-     * @return
-     */
-    private String findTextFromStyleId(AbstractIntroContainer parent,
-            String styleId) {
-        IntroText[] allText = (IntroText[]) parent
-            .getChildrenOfType(AbstractIntroElement.TEXT);
-        for (int i = 0; i < allText.length; i++) {
-            if (allText[i].getStyleId() == null)
-                // not all elements have style id.
-                continue;
-            if (allText[i].getStyleId().equals(styleId)) {
-                makeFiltered(allText[i]);
-                return allText[i].getText();
-            }
-        }
-        return null;
-    }
+	/**
+	 * Returns the first direct child text element with the given style-id.
+	 *
+	 * @return
+	 */
+	private String findTextFromStyleId(AbstractIntroContainer parent,
+			String styleId) {
+		IntroText[] allText = (IntroText[]) parent
+			.getChildrenOfType(AbstractIntroElement.TEXT);
+		for (int i = 0; i < allText.length; i++) {
+			if (allText[i].getStyleId() == null)
+				// not all elements have style id.
+				continue;
+			if (allText[i].getStyleId().equals(styleId)) {
+				makeFiltered(allText[i]);
+				return allText[i].getText();
+			}
+		}
+		return null;
+	}
 
-    /**
-     * Util method to check model type, and filter model element out if it is of
-     * the correct type.
-     *
-     * @param element
-     */
-    private AbstractIntroElement makeFiltered(AbstractIntroElement element) {
-        if (element.isOfType(AbstractIntroElement.BASE_ELEMENT))
-            ((AbstractBaseIntroElement) element).setFilterState(true);
-        return element;
-    }
+	/**
+	 * Util method to check model type, and filter model element out if it is of
+	 * the correct type.
+	 *
+	 * @param element
+	 */
+	private AbstractIntroElement makeFiltered(AbstractIntroElement element) {
+		if (element.isOfType(AbstractIntroElement.BASE_ELEMENT))
+			((AbstractBaseIntroElement) element).setFilterState(true);
+		return element;
+	}
 
 
 
-    public boolean getShowLinkDescription() {
-        String key = page.getId() + ".show-link-description"; //$NON-NLS-1$
-        String value = getProperty(key);
-        if (value == null) {
-            key = ".show-link-description"; //$NON-NLS-1$
-            value = getProperty(key);
-        }
-        if (value == null)
-            value = "true"; //$NON-NLS-1$
-        return value.toLowerCase().equals("true"); //$NON-NLS-1$
-    }
+	public boolean getShowLinkDescription() {
+		String key = page.getId() + ".show-link-description"; //$NON-NLS-1$
+		String value = getProperty(key);
+		if (value == null) {
+			key = ".show-link-description"; //$NON-NLS-1$
+			value = getProperty(key);
+		}
+		if (value == null)
+			value = "true"; //$NON-NLS-1$
+		return value.toLowerCase().equals("true"); //$NON-NLS-1$
+	}
 
-    public boolean showHomePageNavigation() {
-        String key = page.getId() + ".show-home-page-navigation"; //$NON-NLS-1$
-        String value = getProperty(key);
-        if (value == null) {
-            key = ".show-home-page-navigation"; //$NON-NLS-1$
-            value = getProperty(key);
-        }
-        if (value == null)
-            value = "true"; //$NON-NLS-1$
-        return value.equalsIgnoreCase("true"); //$NON-NLS-1$
-    }
+	public boolean showHomePageNavigation() {
+		String key = page.getId() + ".show-home-page-navigation"; //$NON-NLS-1$
+		String value = getProperty(key);
+		if (value == null) {
+			key = ".show-home-page-navigation"; //$NON-NLS-1$
+			value = getProperty(key);
+		}
+		if (value == null)
+			value = "true"; //$NON-NLS-1$
+		return value.equalsIgnoreCase("true"); //$NON-NLS-1$
+	}
 
 
-    public Color getColor(FormToolkit toolkit, AbstractBaseIntroElement element) {
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
-        if (buff == null)
-            return null;
-        String key = buff.append(".font.fg").toString(); //$NON-NLS-1$
-        return getColor(toolkit, key);
-    }
+	public Color getColor(FormToolkit toolkit, AbstractBaseIntroElement element) {
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
+		if (buff == null)
+			return null;
+		String key = buff.append(".font.fg").toString(); //$NON-NLS-1$
+		return getColor(toolkit, key);
+	}
 
-    public Color getBackgrond(FormToolkit toolkit, AbstractBaseIntroElement element) {
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
-        if (buff == null)
-            return null;
-        String key = buff.append(".bg").toString(); //$NON-NLS-1$
-        return getColor(toolkit, key);
-    }
+	public Color getBackgrond(FormToolkit toolkit, AbstractBaseIntroElement element) {
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
+		if (buff == null)
+			return null;
+		String key = buff.append(".bg").toString(); //$NON-NLS-1$
+		return getColor(toolkit, key);
+	}
 
-    public boolean isBold(IntroText text) {
-        String value = null;
-        /*
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(text, true);
-        if (buff != null) {
-            String key = buff.append(".font.bold").toString(); //$NON-NLS-1$
-            value = getProperty(key);
-            if (value != null)
-                return value.toLowerCase().equals("true"); //$NON-NLS-1$
-            else {
-                buff = ModelLoaderUtil.createPathToElementKey(text, true);
-            }
-        }
-        */
-        value = getPropertyValue(text, ".font.bold"); //$NON-NLS-1$
-        if (value == null) {
-            // bold is not specified by ID. Check to see if there is a style-id
-            // specified for bold.
-            value = getProperty("bold-style-id"); //$NON-NLS-1$
-            if (value != null && text.getStyleId() != null)
-                return text.getStyleId().equals(value);
-        }
-        return false;
-    }
+	public boolean isBold(IntroText text) {
+		String value = null;
+		/*
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(text, true);
+		if (buff != null) {
+			String key = buff.append(".font.bold").toString(); //$NON-NLS-1$
+			value = getProperty(key);
+			if (value != null)
+				return value.toLowerCase().equals("true"); //$NON-NLS-1$
+			else {
+				buff = ModelLoaderUtil.createPathToElementKey(text, true);
+			}
+		}
+		*/
+		value = getPropertyValue(text, ".font.bold"); //$NON-NLS-1$
+		if (value == null) {
+			// bold is not specified by ID. Check to see if there is a style-id
+			// specified for bold.
+			value = getProperty("bold-style-id"); //$NON-NLS-1$
+			if (value != null && text.getStyleId() != null)
+				return text.getStyleId().equals(value);
+		}
+		return false;
+	}
 
-    private String getPropertyValue(AbstractIntroIdElement element, String suffix) {
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
-        if (buff != null) {
-        	String key = buff.append(suffix).toString();
-        	String value = getProperty(key);
-        	if (value != null)
-        		return value;
-        	// try the page.id key
-        	buff = ModelLoaderUtil.createPathToElementKey(element, false);
-        	if (buff!= null) {
-        		key = buff.append(suffix).toString();
-        		value = getProperty(key);
-        		return value;
-        	}
-        }
-        return null;
-    }
+	private String getPropertyValue(AbstractIntroIdElement element, String suffix) {
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(element, true);
+		if (buff != null) {
+			String key = buff.append(suffix).toString();
+			String value = getProperty(key);
+			if (value != null)
+				return value;
+			// try the page.id key
+			buff = ModelLoaderUtil.createPathToElementKey(element, false);
+			if (buff!= null) {
+				key = buff.append(suffix).toString();
+				value = getProperty(key);
+				return value;
+			}
+		}
+		return null;
+	}
 
-    public static Font getBannerFont() {
-        return JFaceResources.getBannerFont();
-    }
+	public static Font getBannerFont() {
+		return JFaceResources.getBannerFont();
+	}
 
-    public static Font getHeaderFont() {
-        return JFaceResources.getHeaderFont();
-    }
+	public static Font getHeaderFont() {
+		return JFaceResources.getHeaderFont();
+	}
 
-    /**
-     * Retrieves an image for a link in a page. If not found, uses the page's
-     * default link image. If still not found, uses the passed default.
-     *
-     * @param link
-     * @param qualifier
-     * @return
-     */
-    public Image getImage(IntroLink link, String qualifier, String defaultKey) {
-    	// try the Id first
-    	String key = createImageByIdKey(page, link, qualifier);
-    	String value = getProperty(key, false);
-    	if (value==null) {
-    		key = createImageKey(page, link, qualifier);
-    		// special case where we have to handle this because extended code does
-    		// not go through getProperty() in this method.
-    		value = getProperty(key, false);
-    	}
-        if (value == null && page.getId() != null
-                && key.startsWith(page.getId()))
-            // did not use the key as-is. Trim pageId and try again.
-            key = key.substring(page.getId().length());
+	/**
+	 * Retrieves an image for a link in a page. If not found, uses the page's
+	 * default link image. If still not found, uses the passed default.
+	 *
+	 * @param link
+	 * @param qualifier
+	 * @return
+	 */
+	public Image getImage(IntroLink link, String qualifier, String defaultKey) {
+		// try the Id first
+		String key = createImageByIdKey(page, link, qualifier);
+		String value = getProperty(key, false);
+		if (value==null) {
+			key = createImageKey(page, link, qualifier);
+			// special case where we have to handle this because extended code does
+			// not go through getProperty() in this method.
+			value = getProperty(key, false);
+		}
+		if (value == null && page.getId() != null
+				&& key.startsWith(page.getId()))
+			// did not use the key as-is. Trim pageId and try again.
+			key = key.substring(page.getId().length());
 
-        // pageKey can not become an implicit key.
-        String pageKey = createImageKey(page, null, qualifier);
+		// pageKey can not become an implicit key.
+		String pageKey = createImageKey(page, null, qualifier);
 
-        return getImage(key, pageKey, defaultKey);
-    }
+		return getImage(key, pageKey, defaultKey);
+	}
 
-    private String createImageKey(AbstractIntroPage page, IntroLink link,
-            String qualifier) {
-        StringBuffer buff = null;
-        if (link != null) {
-            buff = ModelLoaderUtil.createPathToElementKey(link, true);
-            if (buff == null)
-                return ""; //$NON-NLS-1$
-        } else {
-            buff = new StringBuffer();
-            buff.append(page.getId());
-        }
-        buff.append("."); //$NON-NLS-1$
-        buff.append(qualifier);
-        return buff.toString();
-    }
+	private String createImageKey(AbstractIntroPage page, IntroLink link,
+			String qualifier) {
+		StringBuffer buff = null;
+		if (link != null) {
+			buff = ModelLoaderUtil.createPathToElementKey(link, true);
+			if (buff == null)
+				return ""; //$NON-NLS-1$
+		} else {
+			buff = new StringBuffer();
+			buff.append(page.getId());
+		}
+		buff.append("."); //$NON-NLS-1$
+		buff.append(qualifier);
+		return buff.toString();
+	}
 
-    private String createImageByIdKey(AbstractIntroPage page, IntroLink link,
-            String qualifier) {
-    	if (link==null || link.getId()==null)
-    		return ""; //$NON-NLS-1$
-        StringBuilder buff = new StringBuilder();
-        buff.append(page.getId());
-        buff.append("."); //$NON-NLS-1$
-        buff.append(link.getId());
-        buff.append("."); //$NON-NLS-1$
-        buff.append(qualifier);
-        return buff.toString();
-    }
+	private String createImageByIdKey(AbstractIntroPage page, IntroLink link,
+			String qualifier) {
+		if (link==null || link.getId()==null)
+			return ""; //$NON-NLS-1$
+		StringBuilder buff = new StringBuilder();
+		buff.append(page.getId());
+		buff.append("."); //$NON-NLS-1$
+		buff.append(link.getId());
+		buff.append("."); //$NON-NLS-1$
+		buff.append(qualifier);
+		return buff.toString();
+	}
 
-    public Image getImage(IntroImage introImage) {
-        String imageLocation = introImage.getSrcAsIs();
-        StringBuffer buff = ModelLoaderUtil.createPathToElementKey(introImage, true);
-        String key;
-        if (buff == null) {
-        	key = "//" + imageLocation; //$NON-NLS-1$
-        } else {
-        	key = buff!=null?buff.toString():null;
-        }
-        if (ImageUtil.hasImage(key))
-            return ImageUtil.getImage(key);
-        // key not already registered.
-        if (buff != null) {
-        	StyleContext acontext = getAssociatedContext(key);
-            if (acontext.inTheme) {
-               	ImageUtil.registerImage(key, acontext.path, imageLocation);
-                return ImageUtil.getImage(key);
-            }
-        }
-        Bundle bundle = introImage.getBundle();
+	public Image getImage(IntroImage introImage) {
+		String imageLocation = introImage.getSrcAsIs();
+		StringBuffer buff = ModelLoaderUtil.createPathToElementKey(introImage, true);
+		String key;
+		if (buff == null) {
+			key = "//" + imageLocation; //$NON-NLS-1$
+		} else {
+			key = buff!=null?buff.toString():null;
+		}
+		if (ImageUtil.hasImage(key))
+			return ImageUtil.getImage(key);
+		// key not already registered.
+		if (buff != null) {
+			StyleContext acontext = getAssociatedContext(key);
+			if (acontext.inTheme) {
+					ImageUtil.registerImage(key, acontext.path, imageLocation);
+				return ImageUtil.getImage(key);
+			}
+		}
+		Bundle bundle = introImage.getBundle();
 		if (FileLocator.find(bundle, new Path(imageLocation), null) == null) {
 			return null;
 		}
-        ImageUtil.registerImage(key, bundle, imageLocation);
-        return ImageUtil.getImage(key);
+		ImageUtil.registerImage(key, bundle, imageLocation);
+		return ImageUtil.getImage(key);
 
-    }
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageWidgetFactory.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageWidgetFactory.java
index 9724709..e91f3de 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageWidgetFactory.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageWidgetFactory.java
@@ -57,442 +57,442 @@
  */
 public class PageWidgetFactory {
 
-    protected HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
+	protected HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
 
-        @Override
+		@Override
 		public void linkActivated(HyperlinkEvent e) {
-            String url = (String) e.getHref();
-            IntroURLParser parser = new IntroURLParser(url);
-            if (parser.hasIntroUrl()) {
-                // execute the action embedded in the IntroURL
-                parser.getIntroURL().execute();
-                return;
-            } else if (parser.hasProtocol()) {
-                Util.openBrowser(url);
-                return;
-            }
-            DialogUtil.displayInfoMessage(((Control) e.getSource()).getShell(),
-                Messages.HyperlinkAdapter_urlIs + " " + url); //$NON-NLS-1$
-        }
+			String url = (String) e.getHref();
+			IntroURLParser parser = new IntroURLParser(url);
+			if (parser.hasIntroUrl()) {
+				// execute the action embedded in the IntroURL
+				parser.getIntroURL().execute();
+				return;
+			} else if (parser.hasProtocol()) {
+				Util.openBrowser(url);
+				return;
+			}
+			DialogUtil.displayInfoMessage(((Control) e.getSource()).getShell(),
+				Messages.HyperlinkAdapter_urlIs + " " + url); //$NON-NLS-1$
+		}
 
-        @Override
+		@Override
 		public void linkEntered(HyperlinkEvent e) {
-        }
+		}
 
-        @Override
+		@Override
 		public void linkExited(HyperlinkEvent e) {
-        }
-    };
+		}
+	};
 
 
-    protected FormToolkit toolkit;
-    protected PageStyleManager styleManager;
-    protected IIntroContentProviderSite site;
+	protected FormToolkit toolkit;
+	protected PageStyleManager styleManager;
+	protected IIntroContentProviderSite site;
 
 
-    /*
-     * protect bad creation.
-     */
-    protected PageWidgetFactory(FormToolkit toolkit,
-            PageStyleManager styleManager) {
-        this.toolkit = toolkit;
-        this.styleManager = styleManager;
-    }
+	/*
+	 * protect bad creation.
+	 */
+	protected PageWidgetFactory(FormToolkit toolkit,
+			PageStyleManager styleManager) {
+		this.toolkit = toolkit;
+		this.styleManager = styleManager;
+	}
 
-    public void setContentProviderSite(IIntroContentProviderSite site) {
-        this.site = site;
-    }
+	public void setContentProviderSite(IIntroContentProviderSite site) {
+		this.site = site;
+	}
 
-    public void createIntroElement(Composite parent,
-            AbstractIntroElement element) {
-        // check if this element is filtered, and if yes, do not create it.
-        boolean isFiltered = getFilterState(element);
-        if (isFiltered)
-            return;
+	public void createIntroElement(Composite parent,
+			AbstractIntroElement element) {
+		// check if this element is filtered, and if yes, do not create it.
+		boolean isFiltered = getFilterState(element);
+		if (isFiltered)
+			return;
 
-        Control c = null;
-        switch (element.getType()) {
-        case AbstractIntroElement.GROUP:
-            IntroGroup group = (IntroGroup) element;
-            c = createGroup(parent, group);
-            updateLayoutData(c, element);
-            // c must be a composite.
-            Composite newParent = (Composite) c;
-            if (c instanceof Section)
-                // client is a composite also.
-                newParent = (Composite) ((Section) newParent).getClient();
-            AbstractIntroElement[] children = group.getChildren();
-            for (int i = 0; i < children.length; i++)
-                createIntroElement(newParent, children[i]);
-            break;
-        case AbstractIntroElement.LINK:
-            IntroLink link = (IntroLink) element;
-            c = createImageHyperlink(parent, link);
-            updateLayoutData(c, element);
-            break;
-        case AbstractIntroElement.TEXT:
-            IntroText text = (IntroText) element;
-            c = createText(parent, text);
-            updateLayoutData(c, element);
-            break;
-        case AbstractIntroElement.IMAGE:
-            IntroImage image = (IntroImage) element;
-            c = createImage(parent, image);
-            if (c!=null)
-            	updateLayoutData(c, element);
-            break;
-        case AbstractIntroElement.HTML:
-            IntroHTML html = (IntroHTML) element;
-            if (html.isInlined()) {
-                IntroText htmlText = html.getIntroText();
-                if (htmlText != null)
-                    c = createText(parent, htmlText);
-                else {
-                    IntroImage htmlImage = html.getIntroImage();
-                    if (htmlImage != null)
-                        c = createImage(parent, htmlImage);
-                }
-            } else {
-                // embedded HTML, so we can show it from a link.
-                String embddedLink = html.getSrc();
-                if (embddedLink == null)
-                    break;
+		Control c = null;
+		switch (element.getType()) {
+		case AbstractIntroElement.GROUP:
+			IntroGroup group = (IntroGroup) element;
+			c = createGroup(parent, group);
+			updateLayoutData(c, element);
+			// c must be a composite.
+			Composite newParent = (Composite) c;
+			if (c instanceof Section)
+				// client is a composite also.
+				newParent = (Composite) ((Section) newParent).getClient();
+			AbstractIntroElement[] children = group.getChildren();
+			for (int i = 0; i < children.length; i++)
+				createIntroElement(newParent, children[i]);
+			break;
+		case AbstractIntroElement.LINK:
+			IntroLink link = (IntroLink) element;
+			c = createImageHyperlink(parent, link);
+			updateLayoutData(c, element);
+			break;
+		case AbstractIntroElement.TEXT:
+			IntroText text = (IntroText) element;
+			c = createText(parent, text);
+			updateLayoutData(c, element);
+			break;
+		case AbstractIntroElement.IMAGE:
+			IntroImage image = (IntroImage) element;
+			c = createImage(parent, image);
+			if (c!=null)
+				updateLayoutData(c, element);
+			break;
+		case AbstractIntroElement.HTML:
+			IntroHTML html = (IntroHTML) element;
+			if (html.isInlined()) {
+				IntroText htmlText = html.getIntroText();
+				if (htmlText != null)
+					c = createText(parent, htmlText);
+				else {
+					IntroImage htmlImage = html.getIntroImage();
+					if (htmlImage != null)
+						c = createImage(parent, htmlImage);
+				}
+			} else {
+				// embedded HTML, so we can show it from a link.
+				String embddedLink = html.getSrc();
+				if (embddedLink == null)
+					break;
 				String linkText = StringUtil.concat(
 						"<p><a href=\"http://org.eclipse.ui.intro/openBrowser?url=", //$NON-NLS-1$
 						embddedLink, "\">", //$NON-NLS-1$
 						Messages.HTML_embeddedLink, "</a></p>"); //$NON-NLS-1$
-                linkText = generateFormText(linkText);
-                c = createFormText(parent, linkText, null);
-            }
-            if (c != null)
-                updateLayoutData(c, element);
-            break;
-        case AbstractIntroElement.CONTENT_PROVIDER:
-            IntroContentProvider provider = (IntroContentProvider) element;
-            c = createContentProvider(parent, provider);
-            updateLayoutData(c, element);
-            break;
-        case AbstractIntroElement.HR:
-        	IntroSeparator sep = (IntroSeparator)element;
-            c = createSeparator(parent, sep);
-            updateLayoutData(c, element);
-            break;
+				linkText = generateFormText(linkText);
+				c = createFormText(parent, linkText, null);
+			}
+			if (c != null)
+				updateLayoutData(c, element);
+			break;
+		case AbstractIntroElement.CONTENT_PROVIDER:
+			IntroContentProvider provider = (IntroContentProvider) element;
+			c = createContentProvider(parent, provider);
+			updateLayoutData(c, element);
+			break;
+		case AbstractIntroElement.HR:
+			IntroSeparator sep = (IntroSeparator)element;
+			c = createSeparator(parent, sep);
+			updateLayoutData(c, element);
+			break;
 
-        default:
-            break;
-        }
-    }
+		default:
+			break;
+		}
+	}
 
 
-    private void updateLayoutData(Control c, AbstractIntroElement element) {
-        TableWrapData currentTd = (TableWrapData) c.getLayoutData();
-        if (currentTd == null) {
-            currentTd = new TableWrapData(TableWrapData.FILL,
-                TableWrapData.FILL);
-            currentTd.grabHorizontal = true;
-            c.setLayoutData(currentTd);
-        }
+	private void updateLayoutData(Control c, AbstractIntroElement element) {
+		TableWrapData currentTd = (TableWrapData) c.getLayoutData();
+		if (currentTd == null) {
+			currentTd = new TableWrapData(TableWrapData.FILL,
+				TableWrapData.FILL);
+			currentTd.grabHorizontal = true;
+			c.setLayoutData(currentTd);
+		}
 
-        currentTd.colspan = styleManager
-            .getColSpan((AbstractBaseIntroElement) element);
-        currentTd.rowspan = styleManager
-            .getRowSpan((AbstractBaseIntroElement) element);
+		currentTd.colspan = styleManager
+			.getColSpan((AbstractBaseIntroElement) element);
+		currentTd.rowspan = styleManager
+			.getRowSpan((AbstractBaseIntroElement) element);
 
-    }
+	}
 
-    private Composite createGroup(Composite parent, IntroGroup group) {
-        String label = group.getLabel();
-        String description = styleManager.getDescription(group);
-        boolean expandable = group.isExpandable();
-        boolean expanded = group.isExpanded();
-        Composite client = null;
-        Composite control = null;
-        if (description != null || label != null || expandable) {
-            int style = description != null ? Section.DESCRIPTION : SWT.NULL;
-            if (expandable)
-            	style |= ExpandableComposite.TWISTIE | ExpandableComposite.FOCUS_TITLE | ExpandableComposite.CLIENT_INDENT;
-            if (expanded)
-            	style |= ExpandableComposite.EXPANDED;
-            Section section = toolkit.createSection(parent, style);
-            if (label != null)
-                section.setText(label);
-            if (description != null)
-                section.setDescription(description);
-            colorControl(section, group);
-            client = toolkit.createComposite(section, SWT.WRAP);
-            section.setClient(client);
-            control = section;
-        } else {
-            client = toolkit.createComposite(parent, SWT.WRAP);
-            control = client;
-        }
+	private Composite createGroup(Composite parent, IntroGroup group) {
+		String label = group.getLabel();
+		String description = styleManager.getDescription(group);
+		boolean expandable = group.isExpandable();
+		boolean expanded = group.isExpanded();
+		Composite client = null;
+		Composite control = null;
+		if (description != null || label != null || expandable) {
+			int style = description != null ? Section.DESCRIPTION : SWT.NULL;
+			if (expandable)
+				style |= ExpandableComposite.TWISTIE | ExpandableComposite.FOCUS_TITLE | ExpandableComposite.CLIENT_INDENT;
+			if (expanded)
+				style |= ExpandableComposite.EXPANDED;
+			Section section = toolkit.createSection(parent, style);
+			if (label != null)
+				section.setText(label);
+			if (description != null)
+				section.setDescription(description);
+			colorControl(section, group);
+			client = toolkit.createComposite(section, SWT.WRAP);
+			section.setClient(client);
+			control = section;
+		} else {
+			client = toolkit.createComposite(parent, SWT.WRAP);
+			control = client;
+		}
 
-        TableWrapLayout layout = new TableWrapLayout();
-        int numColumns = styleManager.getNumberOfColumns(group);
-        numColumns = numColumns < 1 ? 1 : numColumns;
-        layout.numColumns = numColumns;
-        layout.makeColumnsEqualWidth = styleManager.getEqualWidth(group);
-        layout.verticalSpacing = styleManager.getVerticalSpacing(group);
-        layout.horizontalSpacing = styleManager.getHorizantalSpacing(group);
-        client.setLayout(layout);
-        // Util.highlight(client, SWT.COLOR_YELLOW);
-        return control;
-    }
+		TableWrapLayout layout = new TableWrapLayout();
+		int numColumns = styleManager.getNumberOfColumns(group);
+		numColumns = numColumns < 1 ? 1 : numColumns;
+		layout.numColumns = numColumns;
+		layout.makeColumnsEqualWidth = styleManager.getEqualWidth(group);
+		layout.verticalSpacing = styleManager.getVerticalSpacing(group);
+		layout.horizontalSpacing = styleManager.getHorizantalSpacing(group);
+		client.setLayout(layout);
+		// Util.highlight(client, SWT.COLOR_YELLOW);
+		return control;
+	}
 
-    /**
-     * Creates an Image Hyperlink from an IntroLink. Model object is NOT cached.
-     *
-     * @param body
-     * @param link
-     */
-    private Control createImageHyperlink(Composite parent, IntroLink link) {
-        Control control;
-        Hyperlink linkControl;
-        boolean showLinkDescription = styleManager.getShowLinkDescription();
-        Image linkImage = styleManager.getImage(link, "link-icon", //$NON-NLS-1$
-            ImageUtil.DEFAULT_LINK);
+	/**
+	 * Creates an Image Hyperlink from an IntroLink. Model object is NOT cached.
+	 *
+	 * @param body
+	 * @param link
+	 */
+	private Control createImageHyperlink(Composite parent, IntroLink link) {
+		Control control;
+		Hyperlink linkControl;
+		boolean showLinkDescription = styleManager.getShowLinkDescription();
+		Image linkImage = styleManager.getImage(link, "link-icon", //$NON-NLS-1$
+			ImageUtil.DEFAULT_LINK);
 
-        if (showLinkDescription && link.getText() != null) {
-            Composite container = toolkit.createComposite(parent);
-            TableWrapLayout layout = new TableWrapLayout();
-            layout.leftMargin = layout.rightMargin = 0;
-            layout.topMargin = layout.bottomMargin = 0;
-            layout.verticalSpacing = 0;
-            layout.numColumns = 2;
-            container.setLayout(layout);
+		if (showLinkDescription && link.getText() != null) {
+			Composite container = toolkit.createComposite(parent);
+			TableWrapLayout layout = new TableWrapLayout();
+			layout.leftMargin = layout.rightMargin = 0;
+			layout.topMargin = layout.bottomMargin = 0;
+			layout.verticalSpacing = 0;
+			layout.numColumns = 2;
+			container.setLayout(layout);
 
-            //Label ilabel = toolkit.createLabel(container, null);
-            ImageHyperlink ilabel = toolkit.createImageHyperlink(container, SWT.NULL);
-            ilabel.setImage(linkImage);
-            ilabel.setHoverImage(styleManager.getImage(link, "hover-icon", //$NON-NLS-1$
-                null));
-            ilabel.setHref(link.getUrl());
-            ilabel.addHyperlinkListener(hyperlinkAdapter);
-            TableWrapData td = new TableWrapData();
-            td.valign = TableWrapData.TOP;
-            td.rowspan = 2;
-            ilabel.setLayoutData(td);
+			//Label ilabel = toolkit.createLabel(container, null);
+			ImageHyperlink ilabel = toolkit.createImageHyperlink(container, SWT.NULL);
+			ilabel.setImage(linkImage);
+			ilabel.setHoverImage(styleManager.getImage(link, "hover-icon", //$NON-NLS-1$
+				null));
+			ilabel.setHref(link.getUrl());
+			ilabel.addHyperlinkListener(hyperlinkAdapter);
+			TableWrapData td = new TableWrapData();
+			td.valign = TableWrapData.TOP;
+			td.rowspan = 2;
+			ilabel.setLayoutData(td);
 
-            linkControl = toolkit.createHyperlink(container, null, SWT.WRAP);
-            td = new TableWrapData(TableWrapData.LEFT, TableWrapData.BOTTOM);
-            td.grabVertical = true;
-            linkControl.setLayoutData(td);
-            // Util.highlight(linkControl, SWT.COLOR_RED);
-            // Util.highlight(container, SWT.COLOR_DARK_YELLOW);
+			linkControl = toolkit.createHyperlink(container, null, SWT.WRAP);
+			td = new TableWrapData(TableWrapData.LEFT, TableWrapData.BOTTOM);
+			td.grabVertical = true;
+			linkControl.setLayoutData(td);
+			// Util.highlight(linkControl, SWT.COLOR_RED);
+			// Util.highlight(container, SWT.COLOR_DARK_YELLOW);
 
-            Control desc = createText(container, link.getIntroText());
-            td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
-            td.grabHorizontal = true;
-            td.grabVertical = true;
-            desc.setLayoutData(td);
-            control = container;
-        } else {
-            ImageHyperlink imageLink = toolkit.createImageHyperlink(parent,
-                SWT.WRAP | SWT.CENTER);
-            imageLink.setImage(linkImage);
-            imageLink.setHoverImage(styleManager.getImage(link, "hover-icon", //$NON-NLS-1$
-                null));
-            TableWrapData td = new TableWrapData();
-            td.grabHorizontal = true;
-            imageLink.setLayoutData(td);
-            linkControl = imageLink;
-            control = linkControl;
-        }
-        linkControl.setText(link.getLabel());
-        linkControl.setFont(PageStyleManager.getBannerFont());
-        colorControl(linkControl, link);
-        linkControl.setHref(link.getUrl());
-        linkControl.addHyperlinkListener(hyperlinkAdapter);
-        // Util.highlight(linkControl, SWT.COLOR_DARK_YELLOW);
-        return control;
-    }
+			Control desc = createText(container, link.getIntroText());
+			td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
+			td.grabHorizontal = true;
+			td.grabVertical = true;
+			desc.setLayoutData(td);
+			control = container;
+		} else {
+			ImageHyperlink imageLink = toolkit.createImageHyperlink(parent,
+				SWT.WRAP | SWT.CENTER);
+			imageLink.setImage(linkImage);
+			imageLink.setHoverImage(styleManager.getImage(link, "hover-icon", //$NON-NLS-1$
+				null));
+			TableWrapData td = new TableWrapData();
+			td.grabHorizontal = true;
+			imageLink.setLayoutData(td);
+			linkControl = imageLink;
+			control = linkControl;
+		}
+		linkControl.setText(link.getLabel());
+		linkControl.setFont(PageStyleManager.getBannerFont());
+		colorControl(linkControl, link);
+		linkControl.setHref(link.getUrl());
+		linkControl.addHyperlinkListener(hyperlinkAdapter);
+		// Util.highlight(linkControl, SWT.COLOR_DARK_YELLOW);
+		return control;
+	}
 
-    /**
-     * Creates a forms Text or FormattedText.
-     *
-     * @param body
-     * @param link
-     */
-    protected Control createText(Composite parent, IntroText text) {
-        Color fg = styleManager.getColor(toolkit, text);
-        boolean isBold = styleManager.isBold(text);
-        // formatted case. If text is alredy formatted, the bold property is
-        // ignored.
-        if (text.isFormatted())
-            return createFormText(parent, generateFormText(text.getText()), fg);
+	/**
+	 * Creates a forms Text or FormattedText.
+	 *
+	 * @param body
+	 * @param link
+	 */
+	protected Control createText(Composite parent, IntroText text) {
+		Color fg = styleManager.getColor(toolkit, text);
+		boolean isBold = styleManager.isBold(text);
+		// formatted case. If text is alredy formatted, the bold property is
+		// ignored.
+		if (text.isFormatted())
+			return createFormText(parent, generateFormText(text.getText()), fg);
 
-        // non formatted case.
-        if (isBold)
-            return createFormText(parent, generateBoldFormText(text.getText()),
-                fg);
-        return createText(parent, StringUtil.normalizeWhiteSpace(text.getText()), fg);
-    }
+		// non formatted case.
+		if (isBold)
+			return createFormText(parent, generateBoldFormText(text.getText()),
+				fg);
+		return createText(parent, StringUtil.normalizeWhiteSpace(text.getText()), fg);
+	}
 
-    private Control createFormText(Composite parent, String text, Color fg) {
-        FormText formText = toolkit.createFormText(parent, false);
-        formText.addHyperlinkListener(hyperlinkAdapter);
-        try {
-            formText.setText(text, true, true);
-        } catch (SWTError e) {
-            Log.error(e.getMessage(), e);
-            return createText(parent, text, fg);
-        }
-        if (fg != null)
-            formText.setForeground(fg);
-        return formText;
-    }
+	private Control createFormText(Composite parent, String text, Color fg) {
+		FormText formText = toolkit.createFormText(parent, false);
+		formText.addHyperlinkListener(hyperlinkAdapter);
+		try {
+			formText.setText(text, true, true);
+		} catch (SWTError e) {
+			Log.error(e.getMessage(), e);
+			return createText(parent, text, fg);
+		}
+		if (fg != null)
+			formText.setForeground(fg);
+		return formText;
+	}
 
 
-    private Control createText(Composite parent, String text, Color fg) {
-        Label label = toolkit.createLabel(parent, text, SWT.WRAP);
-        if (fg != null)
-            label.setForeground(fg);
-        return label;
-    }
+	private Control createText(Composite parent, String text, Color fg) {
+		Label label = toolkit.createLabel(parent, text, SWT.WRAP);
+		if (fg != null)
+			label.setForeground(fg);
+		return label;
+	}
 
 
 
-    protected Control createImage(Composite parent, IntroImage image) {
-        Label ilabel = null;
-        Image imageFile = styleManager.getImage(image);
-        if (imageFile != null) {
-            ilabel = toolkit.createLabel(parent, null, SWT.LEFT);
-            ilabel.setImage(imageFile);
-            if (image.getAlt() != null)
-                ilabel.setToolTipText(image.getAlt());
-        }
-        // for images, do not use default layout. Grab horizontal is not what we
-        // want.
-        if (ilabel!=null) {
-        	TableWrapData td = new TableWrapData();
-        	ilabel.setLayoutData(td);
-        }
-        return ilabel;
-    }
+	protected Control createImage(Composite parent, IntroImage image) {
+		Label ilabel = null;
+		Image imageFile = styleManager.getImage(image);
+		if (imageFile != null) {
+			ilabel = toolkit.createLabel(parent, null, SWT.LEFT);
+			ilabel.setImage(imageFile);
+			if (image.getAlt() != null)
+				ilabel.setToolTipText(image.getAlt());
+		}
+		// for images, do not use default layout. Grab horizontal is not what we
+		// want.
+		if (ilabel!=null) {
+			TableWrapData td = new TableWrapData();
+			ilabel.setLayoutData(td);
+		}
+		return ilabel;
+	}
 
-    public Control createContentProvider(Composite parent,
-            IntroContentProvider provider) {
-        // If we've already loaded the content provider for this element,
-        // retrieve it, otherwise load the class.
-        // Create parent composite to hold dynamic content, and set layout
-        // accordingly.
-        Composite container = toolkit.createComposite(parent);
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.topMargin = 0;
-        layout.bottomMargin = 0;
-        layout.leftMargin = 0;
-        layout.rightMargin = 0;
-        container.setLayout(layout);
-        container.setData(provider);
+	public Control createContentProvider(Composite parent,
+			IntroContentProvider provider) {
+		// If we've already loaded the content provider for this element,
+		// retrieve it, otherwise load the class.
+		// Create parent composite to hold dynamic content, and set layout
+		// accordingly.
+		Composite container = toolkit.createComposite(parent);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.topMargin = 0;
+		layout.bottomMargin = 0;
+		layout.leftMargin = 0;
+		layout.rightMargin = 0;
+		container.setLayout(layout);
+		container.setData(provider);
 
 
-        IIntroContentProvider providerClass = ContentProviderManager.getInst()
-            .getContentProvider(provider);
-        if (providerClass == null)
-            // content provider never created before, create it.
-            providerClass = ContentProviderManager.getInst()
-                .createContentProvider(provider, site);
+		IIntroContentProvider providerClass = ContentProviderManager.getInst()
+			.getContentProvider(provider);
+		if (providerClass == null)
+			// content provider never created before, create it.
+			providerClass = ContentProviderManager.getInst()
+				.createContentProvider(provider, site);
 
-        if (providerClass != null) {
-            try {
-                providerClass.createContent(provider.getId(), container,
-                    toolkit);
-            } catch (Exception e) {
-                Log.error(
-                    "Failed to create the content of Intro model content provider: " //$NON-NLS-1$
-                            + provider.getClassName(), e);
-                // null provider.
-                providerClass = null;
-            }
-        }
+		if (providerClass != null) {
+			try {
+				providerClass.createContent(provider.getId(), container,
+					toolkit);
+			} catch (Exception e) {
+				Log.error(
+					"Failed to create the content of Intro model content provider: " //$NON-NLS-1$
+							+ provider.getClassName(), e);
+				// null provider.
+				providerClass = null;
+			}
+		}
 
-        if (providerClass == null) {
-            // we failed to create a provider class, create the embedded text.
-            IntroText text = provider.getIntroText();
-            if (text != null)
-                createText(container, text);
-        }
-        return container;
-    }
+		if (providerClass == null) {
+			// we failed to create a provider class, create the embedded text.
+			IntroText text = provider.getIntroText();
+			if (text != null)
+				createText(container, text);
+		}
+		return container;
+	}
 
-    protected Control createSeparator(Composite parent, IntroSeparator sep) {
-    	String key = sep.getParentPage().getId()+".separator.fg"; //$NON-NLS-1$
-        Color fg = styleManager.getColor(toolkit, key);
-        //Composite l = toolkit.createCompositeSeparator(parent);
-        Composite l = new Composite(parent, SWT.NULL);
-        if (fg!=null)
-        	l.setBackground(fg);
-        else
-        	l.setBackground(toolkit.getColors().getColor(IFormColors.SEPARATOR));
-        TableWrapData td = new TableWrapData(TableWrapData.FILL,
-                TableWrapData.FILL);
-        td.grabHorizontal = true;
-        td.maxHeight = 1;
-        l.setLayoutData(td);
-        return l;
-    }
+	protected Control createSeparator(Composite parent, IntroSeparator sep) {
+		String key = sep.getParentPage().getId()+".separator.fg"; //$NON-NLS-1$
+		Color fg = styleManager.getColor(toolkit, key);
+		//Composite l = toolkit.createCompositeSeparator(parent);
+		Composite l = new Composite(parent, SWT.NULL);
+		if (fg!=null)
+			l.setBackground(fg);
+		else
+			l.setBackground(toolkit.getColors().getColor(IFormColors.SEPARATOR));
+		TableWrapData td = new TableWrapData(TableWrapData.FILL,
+				TableWrapData.FILL);
+		td.grabHorizontal = true;
+		td.maxHeight = 1;
+		l.setLayoutData(td);
+		return l;
+	}
 
-    private void colorControl(Control elementControl,
-            AbstractBaseIntroElement element) {
-        Color fg = styleManager.getColor(toolkit, element);
-        if (fg != null)
-            elementControl.setForeground(fg);
-        Color bg = styleManager.getBackgrond(toolkit, element);
-        if (bg != null)
-            elementControl.setBackground(bg);
-    }
+	private void colorControl(Control elementControl,
+			AbstractBaseIntroElement element) {
+		Color fg = styleManager.getColor(toolkit, element);
+		if (fg != null)
+			elementControl.setForeground(fg);
+		Color bg = styleManager.getBackgrond(toolkit, element);
+		if (bg != null)
+			elementControl.setBackground(bg);
+	}
 
 
-    /*
-     * creates form text on a formatted string. A formatted string is any string
-     * that has a " <" in it. If it starts with a <p> then it is assumed that
-     * the text if a proper UI forms formatted text. If not, the <p> tag is
-     * added.
-     */
-    private String generateFormText(String text) {
-        StringBuilder sbuf = new StringBuilder();
-        sbuf.append("<form>"); //$NON-NLS-1$
-        if (text.startsWith("<p>")) //$NON-NLS-1$
-            sbuf.append(text);
-        else {
-            sbuf.append("<p>"); //$NON-NLS-1$
-            sbuf.append(text);
-            sbuf.append("</p>"); //$NON-NLS-1$
-        }
-        sbuf.append("</form>"); //$NON-NLS-1$
-        return sbuf.toString();
-    }
+	/*
+	 * creates form text on a formatted string. A formatted string is any string
+	 * that has a " <" in it. If it starts with a <p> then it is assumed that
+	 * the text if a proper UI forms formatted text. If not, the <p> tag is
+	 * added.
+	 */
+	private String generateFormText(String text) {
+		StringBuilder sbuf = new StringBuilder();
+		sbuf.append("<form>"); //$NON-NLS-1$
+		if (text.startsWith("<p>")) //$NON-NLS-1$
+			sbuf.append(text);
+		else {
+			sbuf.append("<p>"); //$NON-NLS-1$
+			sbuf.append(text);
+			sbuf.append("</p>"); //$NON-NLS-1$
+		}
+		sbuf.append("</form>"); //$NON-NLS-1$
+		return sbuf.toString();
+	}
 
-    /**
-     * Will be only called for non formatted text.
-     *
-     * @param text
-     * @return
-     */
-    private String generateBoldFormText(String text) {
-        StringBuilder sbuf = new StringBuilder();
-        sbuf.append("<form>"); //$NON-NLS-1$
-        sbuf.append("<p>"); //$NON-NLS-1$
-        sbuf.append("<b>"); //$NON-NLS-1$
-        sbuf.append(text);
-        sbuf.append("</b>"); //$NON-NLS-1$
-        sbuf.append("</p>"); //$NON-NLS-1$
-        sbuf.append("</form>"); //$NON-NLS-1$
-        return sbuf.toString();
-    }
+	/**
+	 * Will be only called for non formatted text.
+	 *
+	 * @param text
+	 * @return
+	 */
+	private String generateBoldFormText(String text) {
+		StringBuilder sbuf = new StringBuilder();
+		sbuf.append("<form>"); //$NON-NLS-1$
+		sbuf.append("<p>"); //$NON-NLS-1$
+		sbuf.append("<b>"); //$NON-NLS-1$
+		sbuf.append(text);
+		sbuf.append("</b>"); //$NON-NLS-1$
+		sbuf.append("</p>"); //$NON-NLS-1$
+		sbuf.append("</form>"); //$NON-NLS-1$
+		return sbuf.toString();
+	}
 
-    /**
-     * Check the filter state of the element. Only base elements have the filter
-     * attribute.
-     *
-     * @param element
-     * @return
-     */
-    private boolean getFilterState(AbstractIntroElement element) {
-        if (element.isOfType(AbstractIntroElement.BASE_ELEMENT))
-            return ((AbstractBaseIntroElement) element).isFiltered();
-        return false;
-    }
+	/**
+	 * Check the filter state of the element. Only base elements have the filter
+	 * attribute.
+	 *
+	 * @param element
+	 * @return
+	 */
+	private boolean getFilterState(AbstractIntroElement element) {
+		if (element.isOfType(AbstractIntroElement.BASE_ELEMENT))
+			return ((AbstractBaseIntroElement) element).isFiltered();
+		return false;
+	}
 
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/RootPageForm.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/RootPageForm.java
index cbd8c72..683360d 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/RootPageForm.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/RootPageForm.java
@@ -52,298 +52,298 @@
  */
 public class RootPageForm implements IIntroConstants {
 
-    private FormToolkit toolkit;
-    private IntroHomePage rootPage;
-    private Form parentForm;
-    protected Label descriptionLabel;
-    private PageStyleManager rootPageStyleManager;
-    private IIntroContentProviderSite site;
+	private FormToolkit toolkit;
+	private IntroHomePage rootPage;
+	private Form parentForm;
+	protected Label descriptionLabel;
+	private PageStyleManager rootPageStyleManager;
+	private IIntroContentProviderSite site;
 	private PageWidgetFactory factory;
 
-    class PageComposite extends Composite {
+	class PageComposite extends Composite {
 
-        public PageComposite(Composite parent, int style) {
-            super(parent, style);
-        }
+		public PageComposite(Composite parent, int style) {
+			super(parent, style);
+		}
 
-        // Do not allow composite to take wHint as-is - layout manager
-        // can reject the hint and compute larger width.
-        @Override
+		// Do not allow composite to take wHint as-is - layout manager
+		// can reject the hint and compute larger width.
+		@Override
 		public Point computeSize(int wHint, int hHint, boolean changed) {
-            return ((RootPageLayout) getLayout()).computeSize(this, wHint,
-                hHint, changed);
-        }
-    }
+			return ((RootPageLayout) getLayout()).computeSize(this, wHint,
+				hHint, changed);
+		}
+	}
 
-    class RootPageLayout extends Layout {
+	class RootPageLayout extends Layout {
 
-        // gap between link composite and description label.
-        private int VERTICAL_SPACING = 20;
+		// gap between link composite and description label.
+		private int VERTICAL_SPACING = 20;
 
-        private int LABEL_MARGIN_WIDTH = 5;
+		private int LABEL_MARGIN_WIDTH = 5;
 
-        /*
-         * Custom layout for Root Page Composite.
-         */
-        @Override
+		/*
+		 * Custom layout for Root Page Composite.
+		 */
+		@Override
 		protected Point computeSize(Composite composite, int wHint, int hHint,
-                boolean flushCache) {
-            int innerWHint = wHint;
-            if (wHint != SWT.DEFAULT)
-                innerWHint -= LABEL_MARGIN_WIDTH + LABEL_MARGIN_WIDTH;
-            Control[] children = composite.getChildren();
-            Point s1 = children[0].computeSize(SWT.DEFAULT, SWT.DEFAULT);
-            Point s2 = children[1].computeSize(innerWHint, SWT.DEFAULT);
-            s2.x += LABEL_MARGIN_WIDTH;
-            int height = 2 * (s2.y + VERTICAL_SPACING + s1.y / 2);
-            Point size = new Point(Math.max(s1.x, s2.x), height + 5);
-            return size;
-        }
+				boolean flushCache) {
+			int innerWHint = wHint;
+			if (wHint != SWT.DEFAULT)
+				innerWHint -= LABEL_MARGIN_WIDTH + LABEL_MARGIN_WIDTH;
+			Control[] children = composite.getChildren();
+			Point s1 = children[0].computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			Point s2 = children[1].computeSize(innerWHint, SWT.DEFAULT);
+			s2.x += LABEL_MARGIN_WIDTH;
+			int height = 2 * (s2.y + VERTICAL_SPACING + s1.y / 2);
+			Point size = new Point(Math.max(s1.x, s2.x), height + 5);
+			return size;
+		}
 
-        @Override
+		@Override
 		protected void layout(Composite composite, boolean flushCache) {
-            Control[] children = composite.getChildren();
-            Rectangle carea = composite.getClientArea();
-            Control content = children[0];
-            Control label = children[1];
-            Point contentSize = content.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-            Point labelSize = label.computeSize(carea.width - 2
-                    - LABEL_MARGIN_WIDTH * 2, SWT.DEFAULT);
-            content.setBounds(carea.width / 2 - contentSize.x / 2, carea.height
-                    / 2 - contentSize.y / 2, contentSize.x, contentSize.y);
-            label.setBounds(LABEL_MARGIN_WIDTH, content.getLocation().y
-                    + contentSize.y + VERTICAL_SPACING, carea.width
-                    - LABEL_MARGIN_WIDTH * 2, labelSize.y);
-        }
-    }
+			Control[] children = composite.getChildren();
+			Rectangle carea = composite.getClientArea();
+			Control content = children[0];
+			Control label = children[1];
+			Point contentSize = content.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			Point labelSize = label.computeSize(carea.width - 2
+					- LABEL_MARGIN_WIDTH * 2, SWT.DEFAULT);
+			content.setBounds(carea.width / 2 - contentSize.x / 2, carea.height
+					/ 2 - contentSize.y / 2, contentSize.x, contentSize.y);
+			label.setBounds(LABEL_MARGIN_WIDTH, content.getLocation().y
+					+ contentSize.y + VERTICAL_SPACING, carea.width
+					- LABEL_MARGIN_WIDTH * 2, labelSize.y);
+		}
+	}
 
-    private HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
+	private HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
 
-        @Override
+		@Override
 		public void linkActivated(HyperlinkEvent e) {
-            ImageHyperlink imageLink = (ImageHyperlink) e.getSource();
-            IntroLink introLink = (IntroLink) imageLink.getData(INTRO_LINK);
-            IntroURLParser parser = new IntroURLParser(introLink.getUrl());
-            if (parser.hasIntroUrl()) {
-                // execute the action embedded in the IntroURL
-                parser.getIntroURL().execute();
-                return;
-            } else if (parser.hasProtocol()) {
-                Util.openBrowser(introLink.getUrl());
-                return;
-            }
-            DialogUtil.displayInfoMessage(imageLink.getShell(),
-                Messages.HyperlinkAdapter_urlIs + introLink.getUrl());
-        }
+			ImageHyperlink imageLink = (ImageHyperlink) e.getSource();
+			IntroLink introLink = (IntroLink) imageLink.getData(INTRO_LINK);
+			IntroURLParser parser = new IntroURLParser(introLink.getUrl());
+			if (parser.hasIntroUrl()) {
+				// execute the action embedded in the IntroURL
+				parser.getIntroURL().execute();
+				return;
+			} else if (parser.hasProtocol()) {
+				Util.openBrowser(introLink.getUrl());
+				return;
+			}
+			DialogUtil.displayInfoMessage(imageLink.getShell(),
+				Messages.HyperlinkAdapter_urlIs + introLink.getUrl());
+		}
 
-        @Override
+		@Override
 		public void linkEntered(HyperlinkEvent e) {
-            ImageHyperlink imageLink = (ImageHyperlink) e.getSource();
-            IntroLink introLink = (IntroLink) imageLink.getData(INTRO_LINK);
-            updateDescription(introLink.getText());
-        }
+			ImageHyperlink imageLink = (ImageHyperlink) e.getSource();
+			IntroLink introLink = (IntroLink) imageLink.getData(INTRO_LINK);
+			updateDescription(introLink.getText());
+		}
 
-        @Override
+		@Override
 		public void linkExited(HyperlinkEvent e) {
-            // empty text on exit.
-            updateDescription(""); //$NON-NLS-1$
-        }
+			// empty text on exit.
+			updateDescription(""); //$NON-NLS-1$
+		}
 
-        private void updateDescription(String text) {
-            if (text == null)
-                text = ""; //$NON-NLS-1$
-            descriptionLabel.setText(text);
-            descriptionLabel.getParent().layout();
-        }
-    };
+		private void updateDescription(String text) {
+			if (text == null)
+				text = ""; //$NON-NLS-1$
+			descriptionLabel.setText(text);
+			descriptionLabel.getParent().layout();
+		}
+	};
 
-    /**
-     *
-     */
-    public RootPageForm(FormToolkit toolkit, IntroModelRoot modelRoot,
-            Form parentForm) {
-        this.toolkit = toolkit;
-        this.rootPage = modelRoot.getRootPage();
-        this.parentForm = parentForm;
-    }
+	/**
+	 *
+	 */
+	public RootPageForm(FormToolkit toolkit, IntroModelRoot modelRoot,
+			Form parentForm) {
+		this.toolkit = toolkit;
+		this.rootPage = modelRoot.getRootPage();
+		this.parentForm = parentForm;
+	}
 
-    /**
-     * Create the form for the root page. Number of columns there is equal to
-     * the number of links.
-     *
-     * @param pageBook
-     */
-    public void createPartControl(ScrolledPageBook mainPageBook,
-            SharedStyleManager shardStyleManager) {
-        // first, create the root page style manager from shared style manager.
-        rootPageStyleManager = new PageStyleManager(rootPage, shardStyleManager
-            .getProperties());
+	/**
+	 * Create the form for the root page. Number of columns there is equal to
+	 * the number of links.
+	 *
+	 * @param pageBook
+	 */
+	public void createPartControl(ScrolledPageBook mainPageBook,
+			SharedStyleManager shardStyleManager) {
+		// first, create the root page style manager from shared style manager.
+		rootPageStyleManager = new PageStyleManager(rootPage, shardStyleManager
+			.getProperties());
 
-        // Set title of Main form from root page title.
-        parentForm.setText(rootPage.getTitle());
+		// Set title of Main form from root page title.
+		parentForm.setText(rootPage.getTitle());
 
-        // Composite for full root page. It has custom layout, and two
-        // children: the content composite and the description label.
-        Composite rootPageComposite = new PageComposite(mainPageBook
-            .getContainer(), SWT.NULL);
-        toolkit.adapt(rootPageComposite);
+		// Composite for full root page. It has custom layout, and two
+		// children: the content composite and the description label.
+		Composite rootPageComposite = new PageComposite(mainPageBook
+			.getContainer(), SWT.NULL);
+		toolkit.adapt(rootPageComposite);
 
-        mainPageBook.registerPage(rootPage.getId(), rootPageComposite);
-        rootPageComposite.setLayout(new RootPageLayout());
-        // Util.highlight(pageComposite, SWT.COLOR_DARK_CYAN);
+		mainPageBook.registerPage(rootPage.getId(), rootPageComposite);
+		rootPageComposite.setLayout(new RootPageLayout());
+		// Util.highlight(pageComposite, SWT.COLOR_DARK_CYAN);
 
-        // create the contents composite in the center of the root page.
-        createRootPageContent(rootPageComposite);
+		// create the contents composite in the center of the root page.
+		createRootPageContent(rootPageComposite);
 
-        // create description label for links description.
-        descriptionLabel = createHoverLabel(rootPageComposite);
+		// create description label for links description.
+		descriptionLabel = createHoverLabel(rootPageComposite);
 
-        // Clear memory. No need for style manager any more.
-        rootPageStyleManager = null;
-    }
+		// Clear memory. No need for style manager any more.
+		rootPageStyleManager = null;
+	}
 
-    /**
-     * Creates content of the root page.
-     */
-    private void createRootPageContent(Composite rootPageComposite) {
-        // setup page composite/layout
-        Composite contentComposite = toolkit.createComposite(rootPageComposite);
-        GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
-        contentComposite.setLayoutData(gd);
-        AbstractIntroElement[] children = (AbstractIntroElement[]) rootPage
-            .getChildrenOfType(AbstractIntroElement.GROUP
-                    | AbstractIntroElement.LINK | AbstractIntroElement.CONTENT_PROVIDER);
-        int numChildren = children.length;
-        GridLayout layout = new GridLayout();
-        // separate links a bit more.
-        layout.horizontalSpacing = rootPageStyleManager
-            .getPageHorizantalSpacing();
-        layout.verticalSpacing = rootPageStyleManager.getPageVerticalSpacing();
-        // set number of columns.
-        int numColumns = rootPageStyleManager.getPageNumberOfColumns();
-        numColumns = numColumns == 0 ? numChildren : numColumns;
-        layout.numColumns = numColumns;
-        layout.horizontalSpacing = rootPageStyleManager
-            .getPageHorizantalSpacing();
-        layout.verticalSpacing = rootPageStyleManager.getPageVerticalSpacing();
-        contentComposite.setLayout(layout);
-        for (int i = 0; i < children.length; i++) {
-            if (((AbstractBaseIntroElement) children[i]).isFiltered())
-                continue;
-            if (children[i].getType() == AbstractIntroElement.GROUP)
-                createGroupContent(contentComposite, (IntroGroup) children[i]);
-            else if (children[i].getType() == AbstractIntroElement.LINK)
-                createImageHyperlink(contentComposite, (IntroLink) children[i]);
-            else if (children[i].getType() == AbstractIntroElement.CONTENT_PROVIDER)
-            	createContentProvider(contentComposite, (IntroContentProvider)children[i]);
-        }
-    }
+	/**
+	 * Creates content of the root page.
+	 */
+	private void createRootPageContent(Composite rootPageComposite) {
+		// setup page composite/layout
+		Composite contentComposite = toolkit.createComposite(rootPageComposite);
+		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+		contentComposite.setLayoutData(gd);
+		AbstractIntroElement[] children = (AbstractIntroElement[]) rootPage
+			.getChildrenOfType(AbstractIntroElement.GROUP
+					| AbstractIntroElement.LINK | AbstractIntroElement.CONTENT_PROVIDER);
+		int numChildren = children.length;
+		GridLayout layout = new GridLayout();
+		// separate links a bit more.
+		layout.horizontalSpacing = rootPageStyleManager
+			.getPageHorizantalSpacing();
+		layout.verticalSpacing = rootPageStyleManager.getPageVerticalSpacing();
+		// set number of columns.
+		int numColumns = rootPageStyleManager.getPageNumberOfColumns();
+		numColumns = numColumns == 0 ? numChildren : numColumns;
+		layout.numColumns = numColumns;
+		layout.horizontalSpacing = rootPageStyleManager
+			.getPageHorizantalSpacing();
+		layout.verticalSpacing = rootPageStyleManager.getPageVerticalSpacing();
+		contentComposite.setLayout(layout);
+		for (int i = 0; i < children.length; i++) {
+			if (((AbstractBaseIntroElement) children[i]).isFiltered())
+				continue;
+			if (children[i].getType() == AbstractIntroElement.GROUP)
+				createGroupContent(contentComposite, (IntroGroup) children[i]);
+			else if (children[i].getType() == AbstractIntroElement.LINK)
+				createImageHyperlink(contentComposite, (IntroLink) children[i]);
+			else if (children[i].getType() == AbstractIntroElement.CONTENT_PROVIDER)
+				createContentProvider(contentComposite, (IntroContentProvider)children[i]);
+		}
+	}
 
-    /**
-     * Creates content of the root page.
-     */
-    private void createGroupContent(Composite parent, IntroGroup group) {
-        AbstractIntroElement[] children = (AbstractIntroElement[]) group
-            .getChildrenOfType(AbstractIntroElement.GROUP
-                    | AbstractIntroElement.LINK |
-                    AbstractIntroElement.CONTENT_PROVIDER);
-        int numChildren = children.length;
-        // setup page composite/layout
-        Composite contentComposite = toolkit.createComposite(parent);
-        GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
-        gd.horizontalSpan = rootPageStyleManager.getColSpan(group);
-        gd.verticalSpan = rootPageStyleManager.getRowSpan(group);
-        contentComposite.setLayoutData(gd);
-        GridLayout layout = new GridLayout();
-        // separate links a bit more.
-        layout.horizontalSpacing = 20;
-        // set number of columns.
-        int numColumns = rootPageStyleManager.getNumberOfColumns(group);
-        numColumns = numColumns < 1 ? numChildren : numColumns;
-        layout.numColumns = numColumns;
-        layout.verticalSpacing = rootPageStyleManager.getVerticalSpacing(group);
-        layout.horizontalSpacing = rootPageStyleManager
-            .getHorizantalSpacing(group);
-        contentComposite.setLayout(layout);
-        for (int i = 0; i < children.length; i++) {
-            if (((AbstractBaseIntroElement) children[i]).isFiltered())
-                continue;
-            if (children[i].getType() == AbstractIntroElement.GROUP)
-                createGroupContent(contentComposite, (IntroGroup) children[i]);
-            else if (children[i].getType() == AbstractIntroElement.LINK)
-                createImageHyperlink(contentComposite, (IntroLink) children[i]);
-            else if (children[i].getType() == AbstractIntroElement.CONTENT_PROVIDER)
-            	createContentProvider(contentComposite, (IntroContentProvider)children[i]);
-        }
-    }
+	/**
+	 * Creates content of the root page.
+	 */
+	private void createGroupContent(Composite parent, IntroGroup group) {
+		AbstractIntroElement[] children = (AbstractIntroElement[]) group
+			.getChildrenOfType(AbstractIntroElement.GROUP
+					| AbstractIntroElement.LINK |
+					AbstractIntroElement.CONTENT_PROVIDER);
+		int numChildren = children.length;
+		// setup page composite/layout
+		Composite contentComposite = toolkit.createComposite(parent);
+		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+		gd.horizontalSpan = rootPageStyleManager.getColSpan(group);
+		gd.verticalSpan = rootPageStyleManager.getRowSpan(group);
+		contentComposite.setLayoutData(gd);
+		GridLayout layout = new GridLayout();
+		// separate links a bit more.
+		layout.horizontalSpacing = 20;
+		// set number of columns.
+		int numColumns = rootPageStyleManager.getNumberOfColumns(group);
+		numColumns = numColumns < 1 ? numChildren : numColumns;
+		layout.numColumns = numColumns;
+		layout.verticalSpacing = rootPageStyleManager.getVerticalSpacing(group);
+		layout.horizontalSpacing = rootPageStyleManager
+			.getHorizantalSpacing(group);
+		contentComposite.setLayout(layout);
+		for (int i = 0; i < children.length; i++) {
+			if (((AbstractBaseIntroElement) children[i]).isFiltered())
+				continue;
+			if (children[i].getType() == AbstractIntroElement.GROUP)
+				createGroupContent(contentComposite, (IntroGroup) children[i]);
+			else if (children[i].getType() == AbstractIntroElement.LINK)
+				createImageHyperlink(contentComposite, (IntroLink) children[i]);
+			else if (children[i].getType() == AbstractIntroElement.CONTENT_PROVIDER)
+				createContentProvider(contentComposite, (IntroContentProvider)children[i]);
+		}
+	}
 
-    /**
-     * Creates an Image Hyperlink from an IntroLink. Model object is cached in
-     * link.
-     *
-     * @param body
-     * @param link
-     */
-    private void createImageHyperlink(Composite parent, IntroLink link) {
-        // create the container composite that will hold the imageHyperLink and
-        // the label for the description.
-        Composite container = toolkit.createComposite(parent);
-        // Util.highlight(container, SWT.COLOR_CYAN);
-        GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
-        gd.horizontalSpan = rootPageStyleManager.getColSpan(link);
-        gd.verticalSpan = rootPageStyleManager.getRowSpan(link);
-        container.setLayoutData(gd);
+	/**
+	 * Creates an Image Hyperlink from an IntroLink. Model object is cached in
+	 * link.
+	 *
+	 * @param body
+	 * @param link
+	 */
+	private void createImageHyperlink(Composite parent, IntroLink link) {
+		// create the container composite that will hold the imageHyperLink and
+		// the label for the description.
+		Composite container = toolkit.createComposite(parent);
+		// Util.highlight(container, SWT.COLOR_CYAN);
+		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+		gd.horizontalSpan = rootPageStyleManager.getColSpan(link);
+		gd.verticalSpan = rootPageStyleManager.getRowSpan(link);
+		container.setLayoutData(gd);
 
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        container.setLayout(layout);
-        ImageHyperlink imageLink = toolkit.createImageHyperlink(container,
-            SWT.NULL);
-        imageLink.setImage(rootPageStyleManager.getImage(link, "link-icon", //$NON-NLS-1$
-            ImageUtil.DEFAULT_ROOT_LINK));
-        imageLink.setHoverImage(rootPageStyleManager.getImage(link,
-            "hover-icon", null)); //$NON-NLS-1$
-        // each link is centered in cell.
-        gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
-        imageLink.setLayoutData(gd);
-        // cache the intro link model object for description and URL.
-        imageLink.setData(INTRO_LINK, link);
-        imageLink.addHyperlinkListener(hyperlinkAdapter);
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		container.setLayout(layout);
+		ImageHyperlink imageLink = toolkit.createImageHyperlink(container,
+			SWT.NULL);
+		imageLink.setImage(rootPageStyleManager.getImage(link, "link-icon", //$NON-NLS-1$
+			ImageUtil.DEFAULT_ROOT_LINK));
+		imageLink.setHoverImage(rootPageStyleManager.getImage(link,
+			"hover-icon", null)); //$NON-NLS-1$
+		// each link is centered in cell.
+		gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+		imageLink.setLayoutData(gd);
+		// cache the intro link model object for description and URL.
+		imageLink.setData(INTRO_LINK, link);
+		imageLink.addHyperlinkListener(hyperlinkAdapter);
 
-        // description label.
-        Label linkLabel = toolkit.createLabel(container, link.getLabel());
-        gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
-        linkLabel.setFont(PageStyleManager.getBannerFont());
-        linkLabel.setLayoutData(gd);
-    }
+		// description label.
+		Label linkLabel = toolkit.createLabel(container, link.getLabel());
+		gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+		linkLabel.setFont(PageStyleManager.getBannerFont());
+		linkLabel.setLayoutData(gd);
+	}
 
-    /**
-     * Creates a label to display the link description when you hover over a
-     * hyperlink.
-     *
-     * @param body
-     */
-    private Label createHoverLabel(Composite body) {
-        Label label = toolkit.createLabel(body, "", SWT.WRAP); //$NON-NLS-1$
-        String key = StringUtil.concat(rootPage.getId(), ".", "hover-text.fg"); //$NON-NLS-1$ //$NON-NLS-2$
-        Color fg = rootPageStyleManager.getColor(toolkit, key);
-        if (fg == null)
-            fg = toolkit.getColors().getColor(IFormColors.TITLE);
-        label.setForeground(fg);
-        label.setAlignment(SWT.CENTER);
-        label.setFont(PageStyleManager.getBannerFont());
-        return label;
-    }
+	/**
+	 * Creates a label to display the link description when you hover over a
+	 * hyperlink.
+	 *
+	 * @param body
+	 */
+	private Label createHoverLabel(Composite body) {
+		Label label = toolkit.createLabel(body, "", SWT.WRAP); //$NON-NLS-1$
+		String key = StringUtil.concat(rootPage.getId(), ".", "hover-text.fg"); //$NON-NLS-1$ //$NON-NLS-2$
+		Color fg = rootPageStyleManager.getColor(toolkit, key);
+		if (fg == null)
+			fg = toolkit.getColors().getColor(IFormColors.TITLE);
+		label.setForeground(fg);
+		label.setAlignment(SWT.CENTER);
+		label.setFont(PageStyleManager.getBannerFont());
+		return label;
+	}
 
-    private void createContentProvider(Composite parent, IntroContentProvider providerElement) {
-    	if (factory==null) {
-    		factory = new PageWidgetFactory(toolkit, rootPageStyleManager);
-    		factory.setContentProviderSite(site);
-    	}
-        factory.createContentProvider(parent, providerElement);
-    }
-    public void setContentProviderSite(IIntroContentProviderSite site) {
-        this.site = site;
-    }
+	private void createContentProvider(Composite parent, IntroContentProvider providerElement) {
+		if (factory==null) {
+			factory = new PageWidgetFactory(toolkit, rootPageStyleManager);
+			factory.setContentProviderSite(site);
+		}
+		factory.createContentProvider(parent, providerElement);
+	}
+	public void setContentProviderSite(IIntroContentProviderSite site) {
+		this.site = site;
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/SharedStyleManager.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/SharedStyleManager.java
index 5dcfcb2..301c3a8 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/SharedStyleManager.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/SharedStyleManager.java
@@ -31,205 +31,205 @@
 
 public class SharedStyleManager {
 
-    protected Properties properties;
-    protected StyleContext context;
+	protected Properties properties;
+	protected StyleContext context;
 
-    class StyleContext {
-    	IPath path;
-    	Bundle bundle;
-    	boolean inTheme;
-    }
+	class StyleContext {
+		IPath path;
+		Bundle bundle;
+		boolean inTheme;
+	}
 
-    SharedStyleManager() {
-        // no-op
-    }
+	SharedStyleManager() {
+		// no-op
+	}
 
-    /**
-     * Constructor used when shared styles need to be loaded. The bundle is
-     * retrieved from the model root.
-     *
-     * @param modelRoot
-     */
-    public SharedStyleManager(IntroModelRoot modelRoot) {
-    	context = new StyleContext();
-        context.bundle = modelRoot.getBundle();
-        properties = new Properties();
-        String [] sharedStyles = modelRoot.getPresentation()
-            .getImplementationStyles();
-        if (sharedStyles != null) {
-        	for (int i=0; i<sharedStyles.length; i++)
-        	load(properties, sharedStyles[i], context);
-        }
-    }
+	/**
+	 * Constructor used when shared styles need to be loaded. The bundle is
+	 * retrieved from the model root.
+	 *
+	 * @param modelRoot
+	 */
+	public SharedStyleManager(IntroModelRoot modelRoot) {
+		context = new StyleContext();
+		context.bundle = modelRoot.getBundle();
+		properties = new Properties();
+		String [] sharedStyles = modelRoot.getPresentation()
+			.getImplementationStyles();
+		if (sharedStyles != null) {
+			for (int i=0; i<sharedStyles.length; i++)
+			load(properties, sharedStyles[i], context);
+		}
+	}
 
-    protected void load(Properties properties, String style, StyleContext context) {
-        if (style == null)
-            return;
-        try {
-            URL styleURL = new URL(style);
-            try (InputStream is = styleURL.openStream()) {
-            	properties.load(is);
-            }
-           	context.path = new Path(style).removeLastSegments(1);
-            String t = (String)properties.get("theme"); //$NON-NLS-1$
-            if (t!=null && t.trim().equalsIgnoreCase("true")) //$NON-NLS-1$
-            	context.inTheme = true;
-        } catch (Exception e) {
-            Log.error("Could not load SWT style: " + style, e); //$NON-NLS-1$
-        }
-    }
+	protected void load(Properties properties, String style, StyleContext context) {
+		if (style == null)
+			return;
+		try {
+			URL styleURL = new URL(style);
+			try (InputStream is = styleURL.openStream()) {
+				properties.load(is);
+			}
+			context.path = new Path(style).removeLastSegments(1);
+			String t = (String)properties.get("theme"); //$NON-NLS-1$
+			if (t!=null && t.trim().equalsIgnoreCase("true")) //$NON-NLS-1$
+				context.inTheme = true;
+		} catch (Exception e) {
+			Log.error("Could not load SWT style: " + style, e); //$NON-NLS-1$
+		}
+	}
 
 
-    /**
-     * Get the property from the shared properties.
-     *
-     * @param key
-     * @return
-     */
-    public String getProperty(String key) {
-        return doGetProperty(properties, key);
-    }
+	/**
+	 * Get the property from the shared properties.
+	 *
+	 * @param key
+	 * @return
+	 */
+	public String getProperty(String key) {
+		return doGetProperty(properties, key);
+	}
 
-    /*
-     * Utility method to trim properties retrieval.
-     */
-    protected String doGetProperty(Properties aProperties, String key) {
-        String value = aProperties.getProperty(key);
-        if (value != null)
-            // trim the properties as trailing balnnks cause problems.
-            value = value.trim();
-        return value;
-    }
+	/*
+	 * Utility method to trim properties retrieval.
+	 */
+	protected String doGetProperty(Properties aProperties, String key) {
+		String value = aProperties.getProperty(key);
+		if (value != null)
+			// trim the properties as trailing balnnks cause problems.
+			value = value.trim();
+		return value;
+	}
 
 
-    protected RGB getRGB(String key) {
-        String value = getProperty(key);
-        if (value == null)
-            return null;
-        return parseRGB(value);
-    }
+	protected RGB getRGB(String key) {
+		String value = getProperty(key);
+		if (value == null)
+			return null;
+		return parseRGB(value);
+	}
 
-    /**
-     * A utility method that creates RGB object from a value encoded in the
-     * following format: #rrggbb, where r, g and b are hex color values in the
-     * range from 00 to ff.
-     *
-     * @param value
-     * @return
-     */
+	/**
+	 * A utility method that creates RGB object from a value encoded in the
+	 * following format: #rrggbb, where r, g and b are hex color values in the
+	 * range from 00 to ff.
+	 *
+	 * @param value
+	 * @return
+	 */
 
-    public static RGB parseRGB(String value) {
-        if (value.charAt(0) == '#') {
-            // HEX
-            try {
-                int r = Integer.parseInt(value.substring(1, 3), 16);
-                int g = Integer.parseInt(value.substring(3, 5), 16);
-                int b = Integer.parseInt(value.substring(5, 7), 16);
-                return new RGB(r, g, b);
-            } catch (NumberFormatException e) {
-                Log.error("Failed to parser: " + value + " as an integer", e); //$NON-NLS-1$ //$NON-NLS-2$
-            }
-        }
-        return null;
-    }
+	public static RGB parseRGB(String value) {
+		if (value.charAt(0) == '#') {
+			// HEX
+			try {
+				int r = Integer.parseInt(value.substring(1, 3), 16);
+				int g = Integer.parseInt(value.substring(3, 5), 16);
+				int b = Integer.parseInt(value.substring(5, 7), 16);
+				return new RGB(r, g, b);
+			} catch (NumberFormatException e) {
+				Log.error("Failed to parser: " + value + " as an integer", e); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+		}
+		return null;
+	}
 
 
 
-    /**
-     * Finds the bundle from which this key was loaded. This is the bundle from
-     * which shared styles where loaded.
-     *
-     * @param key
-     * @return
-     */
-    protected Bundle getAssociatedBundle(String key) {
-        return context.bundle;
-    }
+	/**
+	 * Finds the bundle from which this key was loaded. This is the bundle from
+	 * which shared styles where loaded.
+	 *
+	 * @param key
+	 * @return
+	 */
+	protected Bundle getAssociatedBundle(String key) {
+		return context.bundle;
+	}
 
-    protected StyleContext getAssociatedContext(String key) {
-    	return context;
-    }
+	protected StyleContext getAssociatedContext(String key) {
+		return context;
+	}
 
 
 
-    /**
-     * @return Returns the properties.
-     */
-    public Properties getProperties() {
-        return properties;
-    }
+	/**
+	 * @return Returns the properties.
+	 */
+	public Properties getProperties() {
+		return properties;
+	}
 
 
-    /**
-     *
-     *
-     * @param toolkit
-     * @param key
-     * @return color. May return null.
-     */
-    public Color getColor(FormToolkit toolkit, String key) {
-        FormColors colors = toolkit.getColors();
-        Color color = colors.getColor(key);
-        if (color == null) {
-            RGB rgb = getRGB(key);
-            if (rgb != null)
-                color = colors.createColor(key, rgb);
-        }
-        return color;
-    }
+	/**
+	 *
+	 *
+	 * @param toolkit
+	 * @param key
+	 * @return color. May return null.
+	 */
+	public Color getColor(FormToolkit toolkit, String key) {
+		FormColors colors = toolkit.getColors();
+		Color color = colors.getColor(key);
+		if (color == null) {
+			RGB rgb = getRGB(key);
+			if (rgb != null)
+				color = colors.createColor(key, rgb);
+		}
+		return color;
+	}
 
 
 
-    /**
-     * Retrieve an image from this page's properties, given a key.
-     *
-     * @param key
-     * @param defaultPageKey
-     * @param defaultKey
-     * @return
-     */
-    public Image getImage(String key, String defaultPageKey, String defaultKey) {
-        String currentKey = key;
-        String value = getProperty(currentKey);
-        if (value == null && defaultPageKey != null) {
-            currentKey = defaultPageKey;
-            value = getProperty(defaultPageKey);
-        }
-        if (value != null) {
-            if (ImageUtil.hasImage(currentKey))
-                return ImageUtil.getImage(currentKey);
-            // try to register the image.
-            StyleContext ccontext = getAssociatedContext(currentKey);
-            if (ccontext.inTheme) {
-            	// if 'theme' key is set, load image
-            	// relative to the file, not relative to the bundle
-            	ImageUtil.registerImage(currentKey, ccontext.path, value);
-            }
-            else {
-            	Bundle bundle = ccontext.bundle;
-            	if (bundle == null)
-            		// it means that we are getting a key defined in this page's
-            		// styles. (ie: not an inherited style).
-            		bundle = this.context.bundle;
-            	ImageUtil.registerImage(currentKey, bundle, value);
-            }
-            Image image = ImageUtil.getImage(currentKey);
-            if (image != null)
-                return image;
-        }
-        // try default. We know default is already registered,
-        if (defaultKey != null)
-            return ImageUtil.getImage(defaultKey);
-        return null;
-    }
+	/**
+	 * Retrieve an image from this page's properties, given a key.
+	 *
+	 * @param key
+	 * @param defaultPageKey
+	 * @param defaultKey
+	 * @return
+	 */
+	public Image getImage(String key, String defaultPageKey, String defaultKey) {
+		String currentKey = key;
+		String value = getProperty(currentKey);
+		if (value == null && defaultPageKey != null) {
+			currentKey = defaultPageKey;
+			value = getProperty(defaultPageKey);
+		}
+		if (value != null) {
+			if (ImageUtil.hasImage(currentKey))
+				return ImageUtil.getImage(currentKey);
+			// try to register the image.
+			StyleContext ccontext = getAssociatedContext(currentKey);
+			if (ccontext.inTheme) {
+				// if 'theme' key is set, load image
+				// relative to the file, not relative to the bundle
+				ImageUtil.registerImage(currentKey, ccontext.path, value);
+			}
+			else {
+				Bundle bundle = ccontext.bundle;
+				if (bundle == null)
+					// it means that we are getting a key defined in this page's
+					// styles. (ie: not an inherited style).
+					bundle = this.context.bundle;
+				ImageUtil.registerImage(currentKey, bundle, value);
+			}
+			Image image = ImageUtil.getImage(currentKey);
+			if (image != null)
+				return image;
+		}
+		// try default. We know default is already registered,
+		if (defaultKey != null)
+			return ImageUtil.getImage(defaultKey);
+		return null;
+	}
 
 
-    public boolean useCustomHomePagelayout() {
-        String key = "home-page-custom-layout"; //$NON-NLS-1$
-        String value = getProperty(key);
-        if (value == null)
-            value = "true"; //$NON-NLS-1$
-        return value.equalsIgnoreCase("true"); //$NON-NLS-1$
-    }
+	public boolean useCustomHomePagelayout() {
+		String key = "home-page-custom-layout"; //$NON-NLS-1$
+		String value = getProperty(key);
+		if (value == null)
+			value = "true"; //$NON-NLS-1$
+		return value.equalsIgnoreCase("true"); //$NON-NLS-1$
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/DialogUtil.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/DialogUtil.java
index 798a324..663f7ca 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/DialogUtil.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/DialogUtil.java
@@ -32,126 +32,126 @@
 
 public class DialogUtil {
 
-    /**
-     * Displays core error dialog with a message from the Core error status
-     * object, and a user message. <br>
-     * The user message is logged using Log.logError().
-     */
-    public static void displayCoreErrorDialog(Shell parent, String msg,
-            CoreException coreEx) {
+	/**
+	 * Displays core error dialog with a message from the Core error status
+	 * object, and a user message. <br>
+	 * The user message is logged using Log.logError().
+	 */
+	public static void displayCoreErrorDialog(Shell parent, String msg,
+			CoreException coreEx) {
 
-        if (msg == null)
-            msg = coreEx.getMessage();
-        String title = Messages.MessageDialog_errorTitle;
-        if (parent == null)
-            parent = getActiveShell();
-        IStatus status = coreEx.getStatus();
-        ErrorDialog.openError(parent, title, msg, status);
-        Log.error(msg, coreEx);
-    }
+		if (msg == null)
+			msg = coreEx.getMessage();
+		String title = Messages.MessageDialog_errorTitle;
+		if (parent == null)
+			parent = getActiveShell();
+		IStatus status = coreEx.getStatus();
+		ErrorDialog.openError(parent, title, msg, status);
+		Log.error(msg, coreEx);
+	}
 
-    /**
-     * Displays error dialog with the given message. <br>
-     */
-    public static void displayErrorMessage(Shell parent, String msg,
-            Throwable ex) {
-        String title = Messages.MessageDialog_errorTitle;
-        if (parent == null)
-            parent = getActiveShell();
-        MessageDialog.openError(parent, title, msg);
-        Log.error(msg, ex);
-    }
+	/**
+	 * Displays error dialog with the given message. <br>
+	 */
+	public static void displayErrorMessage(Shell parent, String msg,
+			Throwable ex) {
+		String title = Messages.MessageDialog_errorTitle;
+		if (parent == null)
+			parent = getActiveShell();
+		MessageDialog.openError(parent, title, msg);
+		Log.error(msg, ex);
+	}
 
 
-    /**
-     * Displays error dialog with a message. <br>
-     * The user message is formatted with the passed variables. Also logs the
-     * error using Log.logError().
-     */
-    public static void displayErrorMessage(Shell parent, String msg,
-            Object[] variables, Throwable ex) {
-        if (msg == null)
-            return;
-        if (variables != null)
-            msg = NLS.bind(msg, variables);
-        displayErrorMessage(parent, msg, ex);
-    }
+	/**
+	 * Displays error dialog with a message. <br>
+	 * The user message is formatted with the passed variables. Also logs the
+	 * error using Log.logError().
+	 */
+	public static void displayErrorMessage(Shell parent, String msg,
+			Object[] variables, Throwable ex) {
+		if (msg == null)
+			return;
+		if (variables != null)
+			msg = NLS.bind(msg, variables);
+		displayErrorMessage(parent, msg, ex);
+	}
 
-    /**
-     * Displays warning dialog with a given message. <br>
-     * also logs the info using Log.logWarning(). msg error message to display
-     * and log.
-     */
-    public static void displayWarningMessage(Shell parent, String msg) {
-        String title = Messages.MessageDialog_warningTitle;
-        if (parent == null)
-            parent = getActiveShell();
-        MessageDialog.openWarning(parent, title, msg);
-        Log.warning(msg);
-    }
+	/**
+	 * Displays warning dialog with a given message. <br>
+	 * also logs the info using Log.logWarning(). msg error message to display
+	 * and log.
+	 */
+	public static void displayWarningMessage(Shell parent, String msg) {
+		String title = Messages.MessageDialog_warningTitle;
+		if (parent == null)
+			parent = getActiveShell();
+		MessageDialog.openWarning(parent, title, msg);
+		Log.warning(msg);
+	}
 
-    /**
-     * Displays warning dialog with a message. <br>
-     * also logs the info using Log.logWarning().
-     */
-    public static void displayWarningMessage(Shell parent, String msg,
-            Object[] variables) {
-        if (msg == null)
-            return;
-        if (variables != null)
-            msg = NLS.bind(msg, variables);
-        displayWarningMessage(parent, msg);
-    }
+	/**
+	 * Displays warning dialog with a message. <br>
+	 * also logs the info using Log.logWarning().
+	 */
+	public static void displayWarningMessage(Shell parent, String msg,
+			Object[] variables) {
+		if (msg == null)
+			return;
+		if (variables != null)
+			msg = NLS.bind(msg, variables);
+		displayWarningMessage(parent, msg);
+	}
 
-    /**
-     * Displays info dialog with a message. Also logs the info using
-     * Log.logInfo().
-     */
-    public static void displayInfoMessage(Shell parent, String msg) {
-        String title = Messages.MessageDialog_infoTitle;
-        if (parent == null)
-            parent = getActiveShell();
-        MessageDialog.openInformation(parent, title, msg);
-        Log.info(msg);
+	/**
+	 * Displays info dialog with a message. Also logs the info using
+	 * Log.logInfo().
+	 */
+	public static void displayInfoMessage(Shell parent, String msg) {
+		String title = Messages.MessageDialog_infoTitle;
+		if (parent == null)
+			parent = getActiveShell();
+		MessageDialog.openInformation(parent, title, msg);
+		Log.info(msg);
 
-    }
+	}
 
-    /**
-     * Displays info dialog with a message. Also logs the info using
-     * Log.logInfo().
-     */
-    public static void displayInfoMessage(Shell parent, String msg,
-            Object[] variables) {
-        if (msg == null)
-            return;
-        if (variables != null)
-            msg = NLS.bind(msg, variables);
-        displayInfoMessage(parent, msg);
-    }
+	/**
+	 * Displays info dialog with a message. Also logs the info using
+	 * Log.logInfo().
+	 */
+	public static void displayInfoMessage(Shell parent, String msg,
+			Object[] variables) {
+		if (msg == null)
+			return;
+		if (variables != null)
+			msg = NLS.bind(msg, variables);
+		displayInfoMessage(parent, msg);
+	}
 
-    public static IWorkbenchWindow getActiveWorkbenchWindow() {
-        return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-    }
+	public static IWorkbenchWindow getActiveWorkbenchWindow() {
+		return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+	}
 
-    /**
-     * Utility method to best find the active shell.
-     */
-    public static Shell getActiveShell() {
-        Display display = getCurrentDisplay();
-        Shell activeShell = display.getActiveShell();
-        if (activeShell == null)
-            return getActiveWorkbenchWindow().getShell();
-        return activeShell;
-    }
+	/**
+	 * Utility method to best find the active shell.
+	 */
+	public static Shell getActiveShell() {
+		Display display = getCurrentDisplay();
+		Shell activeShell = display.getActiveShell();
+		if (activeShell == null)
+			return getActiveWorkbenchWindow().getShell();
+		return activeShell;
+	}
 
-    /**
-     * Utility method to best find the active Display.
-     */
-    public static Display getCurrentDisplay() {
-        Display display = Display.getCurrent();
-        if (display != null)
-            return display;
-        return Display.getDefault();
-    }
+	/**
+	 * Utility method to best find the active Display.
+	 */
+	public static Display getCurrentDisplay() {
+		Display display = Display.getCurrent();
+		if (display != null)
+			return display;
+		return Display.getDefault();
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/ImageUtil.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/ImageUtil.java
index 8adf9ed..e4d8fb3 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/ImageUtil.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/ImageUtil.java
@@ -31,149 +31,149 @@
  */
 public final class ImageUtil {
 
-    /**
-     * Image keys, to be used by plugin (intro) registry.
-     */
-    // Default images
-    public static final String DEFAULT_ROOT_LINK = "rootLink"; //$NON-NLS-1$
-    public static final String DEFAULT_SMALL_ROOT_LINK = "rootLinkSmall"; //$NON-NLS-1$
-    public static final String DEFAULT_FORM_BG = "formBg"; //$NON-NLS-1$
-    public static final String DEFAULT_LINK = "link"; //$NON-NLS-1$
+	/**
+	 * Image keys, to be used by plugin (intro) registry.
+	 */
+	// Default images
+	public static final String DEFAULT_ROOT_LINK = "rootLink"; //$NON-NLS-1$
+	public static final String DEFAULT_SMALL_ROOT_LINK = "rootLinkSmall"; //$NON-NLS-1$
+	public static final String DEFAULT_FORM_BG = "formBg"; //$NON-NLS-1$
+	public static final String DEFAULT_LINK = "link"; //$NON-NLS-1$
 
-    // Standby images
-    public static final String BACK = "back"; //$NON-NLS-1$
-    public static final String HELP_TOPIC = "helpTopic"; //$NON-NLS-1$
+	// Standby images
+	public static final String BACK = "back"; //$NON-NLS-1$
+	public static final String HELP_TOPIC = "helpTopic"; //$NON-NLS-1$
 
-    // Launch bar image
-    public static final String RESTORE_WELCOME = "restoreWelcome"; //$NON-NLS-1$
+	// Launch bar image
+	public static final String RESTORE_WELCOME = "restoreWelcome"; //$NON-NLS-1$
 
-    // Viewer images
-    public static final String INTRO_MODEL_LEAF = "leaf"; //$NON-NLS-1$
-    public static final String INTRO_MODEL_CONTAINER = "container"; //$NON-NLS-1$
-    public static final String OPEN_ITNRO_VIEW = "introView"; //$NON-NLS-1$
+	// Viewer images
+	public static final String INTRO_MODEL_LEAF = "leaf"; //$NON-NLS-1$
+	public static final String INTRO_MODEL_CONTAINER = "container"; //$NON-NLS-1$
+	public static final String OPEN_ITNRO_VIEW = "introView"; //$NON-NLS-1$
 
-    public static final String CONFIG_EXTENSION = "configExtension";//$NON-NLS-1$
+	public static final String CONFIG_EXTENSION = "configExtension";//$NON-NLS-1$
 
-    // Image location
-    public static final String ICONS_PATH = "$nl$/icons/"; //$NON-NLS-1$
+	// Image location
+	public static final String ICONS_PATH = "$nl$/icons/"; //$NON-NLS-1$
 
-    /**
-     * Convenience method to create an image descriptor from the Intro plugin.
-     *
-     * Method assumes that images are under the "icons" directory, so don't
-     * append that directory name for "imageName".
-     */
-    public static ImageDescriptor createImageDescriptor(String imageName) {
-        return createImageDescriptor(Platform
-            .getBundle(IIntroConstants.PLUGIN_ID), ICONS_PATH + imageName);
-    }
+	/**
+	 * Convenience method to create an image descriptor from the Intro plugin.
+	 *
+	 * Method assumes that images are under the "icons" directory, so don't
+	 * append that directory name for "imageName".
+	 */
+	public static ImageDescriptor createImageDescriptor(String imageName) {
+		return createImageDescriptor(Platform
+			.getBundle(IIntroConstants.PLUGIN_ID), ICONS_PATH + imageName);
+	}
 
-    /**
-     * Convenience method to create an image descriptor.
-     *
-     */
-    public static ImageDescriptor createImageDescriptor(Bundle bundle,
-            String imageName) {
-        try {
-            URL imageUrl = FileLocator.find(bundle, new Path(imageName), null);
-            if (imageUrl != null) {
-                ImageDescriptor desc = ImageDescriptor.createFromURL(imageUrl);
-                return desc;
-            }
-        } catch (Exception e) {
-            // Should never be here.
-            Log.error("could not create Image Descriptor", e); //$NON-NLS-1$
-        }
-        Log.warning("could not create Image Descriptor for: " + imageName //$NON-NLS-1$
-                + " in bundle: " + bundle.getSymbolicName()); //$NON-NLS-1$
-        return ImageDescriptor.getMissingImageDescriptor();
-    }
+	/**
+	 * Convenience method to create an image descriptor.
+	 *
+	 */
+	public static ImageDescriptor createImageDescriptor(Bundle bundle,
+			String imageName) {
+		try {
+			URL imageUrl = FileLocator.find(bundle, new Path(imageName), null);
+			if (imageUrl != null) {
+				ImageDescriptor desc = ImageDescriptor.createFromURL(imageUrl);
+				return desc;
+			}
+		} catch (Exception e) {
+			// Should never be here.
+			Log.error("could not create Image Descriptor", e); //$NON-NLS-1$
+		}
+		Log.warning("could not create Image Descriptor for: " + imageName //$NON-NLS-1$
+				+ " in bundle: " + bundle.getSymbolicName()); //$NON-NLS-1$
+		return ImageDescriptor.getMissingImageDescriptor();
+	}
 
-    /**
-     * Convenience method to create an image descriptor.
-     *
-     */
-    public static ImageDescriptor createImageDescriptor(IPath base,
-            String imageName) {
-        try {
-            URL imageUrl = new URL(base.append(imageName).toOSString());
-            if (imageUrl != null) {
-                ImageDescriptor desc = ImageDescriptor.createFromURL(imageUrl);
-                return desc;
-            }
-        } catch (Exception e) {
-            // Should never be here.
-            Log.error("could not create Image Descriptor", e); //$NON-NLS-1$
-        }
-        Log.warning("could not create Image Descriptor for: " + imageName); //$NON-NLS-1$
-        return ImageDescriptor.getMissingImageDescriptor();
-    }
+	/**
+	 * Convenience method to create an image descriptor.
+	 *
+	 */
+	public static ImageDescriptor createImageDescriptor(IPath base,
+			String imageName) {
+		try {
+			URL imageUrl = new URL(base.append(imageName).toOSString());
+			if (imageUrl != null) {
+				ImageDescriptor desc = ImageDescriptor.createFromURL(imageUrl);
+				return desc;
+			}
+		} catch (Exception e) {
+			// Should never be here.
+			Log.error("could not create Image Descriptor", e); //$NON-NLS-1$
+		}
+		Log.warning("could not create Image Descriptor for: " + imageName); //$NON-NLS-1$
+		return ImageDescriptor.getMissingImageDescriptor();
+	}
 
-    /**
-     * Convenience method to create an image from the Intro plugin.
-     *
-     * Method assumes that images are under the "icons" directory, so don't
-     * append that directory name for "imageName".
-     */
-    public static Image createImage(String imageName) {
-        try {
-            ImageDescriptor imageDsc = createImageDescriptor(imageName);
-            return imageDsc.createImage();
-        } catch (Exception e) {
-            // Should never be here.
-            Log.error("could not create Image", e); //$NON-NLS-1$
-            return ImageDescriptor.getMissingImageDescriptor().createImage();
-        }
-    }
+	/**
+	 * Convenience method to create an image from the Intro plugin.
+	 *
+	 * Method assumes that images are under the "icons" directory, so don't
+	 * append that directory name for "imageName".
+	 */
+	public static Image createImage(String imageName) {
+		try {
+			ImageDescriptor imageDsc = createImageDescriptor(imageName);
+			return imageDsc.createImage();
+		} catch (Exception e) {
+			// Should never be here.
+			Log.error("could not create Image", e); //$NON-NLS-1$
+			return ImageDescriptor.getMissingImageDescriptor().createImage();
+		}
+	}
 
-    /**
-     * Util method for image re-use in Intro Plugin.
-     *
-     * @param key
-     * @return
-     */
-    public static Image getImage(String key) {
-        // INTRO: Image registry should not have the same life span
-        // as the intro plug-in. It should be disposed when
-        // presentation is disposed, otherwise images will
-        // stay around once Inro has been loaded.
-        return IntroPlugin.getDefault().getVolatileImageRegistry().get(key);
-    }
+	/**
+	 * Util method for image re-use in Intro Plugin.
+	 *
+	 * @param key
+	 * @return
+	 */
+	public static Image getImage(String key) {
+		// INTRO: Image registry should not have the same life span
+		// as the intro plug-in. It should be disposed when
+		// presentation is disposed, otherwise images will
+		// stay around once Inro has been loaded.
+		return IntroPlugin.getDefault().getVolatileImageRegistry().get(key);
+	}
 
-    public static boolean hasImage(String key) {
-        ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
-        return (registry.getDescriptor(key) != null);
-    }
+	public static boolean hasImage(String key) {
+		ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
+		return (registry.getDescriptor(key) != null);
+	}
 
-    /**
-     * Register an image descriptor in the Intro Plugin image registry. Has no
-     * effect if the key has already been registered.
-     *
-     * @param key
-     * @param imageName
-     */
-    public static void registerImage(String key, String imageName) {
-        ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
-        if (registry.getDescriptor(key) != null)
-            // key has already been registered. do nothing.
-            return;
-        registry.put(key, createImageDescriptor(imageName));
-    }
+	/**
+	 * Register an image descriptor in the Intro Plugin image registry. Has no
+	 * effect if the key has already been registered.
+	 *
+	 * @param key
+	 * @param imageName
+	 */
+	public static void registerImage(String key, String imageName) {
+		ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
+		if (registry.getDescriptor(key) != null)
+			// key has already been registered. do nothing.
+			return;
+		registry.put(key, createImageDescriptor(imageName));
+	}
 
-    public static void registerImage(String key, Bundle bundle, String imageName) {
+	public static void registerImage(String key, Bundle bundle, String imageName) {
 
-        ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
-        if (registry.getDescriptor(key) != null)
-            // key has already been registered. do nothing.
-            return;
-        registry.put(key, createImageDescriptor(bundle, imageName));
-    }
+		ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
+		if (registry.getDescriptor(key) != null)
+			// key has already been registered. do nothing.
+			return;
+		registry.put(key, createImageDescriptor(bundle, imageName));
+	}
 
-    public static void registerImage(String key, IPath base, String imageName) {
-        ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
-        if (registry.getDescriptor(key) != null)
-            // key has already been registered. do nothing.
-            return;
-        registry.put(key, createImageDescriptor(base, imageName));
-    }
+	public static void registerImage(String key, IPath base, String imageName) {
+		ImageRegistry registry = IntroPlugin.getDefault().getVolatileImageRegistry();
+		if (registry.getDescriptor(key) != null)
+			// key has already been registered. do nothing.
+			return;
+		registry.put(key, createImageDescriptor(base, imageName));
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/IntroModelSerializer.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/IntroModelSerializer.java
index 26edde1..2c62f49 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/IntroModelSerializer.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/IntroModelSerializer.java
@@ -39,336 +39,336 @@
  */
 public class IntroModelSerializer {
 
-    private StringBuilder buffer;
-    private boolean filter;
+	private StringBuilder buffer;
+	private boolean filter;
 
-    public IntroModelSerializer(IntroModelRoot root) {
-        this(root, false);
-    }
+	public IntroModelSerializer(IntroModelRoot root) {
+		this(root, false);
+	}
 
-    public IntroModelSerializer(IntroModelRoot root, boolean filter) {
-        this.buffer = new StringBuilder();
-        this.filter = filter;
-        printModelRootInfo(root, buffer);
+	public IntroModelSerializer(IntroModelRoot root, boolean filter) {
+		this.buffer = new StringBuilder();
+		this.filter = filter;
+		printModelRootInfo(root, buffer);
 
-        // Root Page
-        AbstractIntroPage rootPage = root.getHomePage();
-        printHomePage(rootPage, buffer);
-        printPageChildren(rootPage, buffer);
+		// Root Page
+		AbstractIntroPage rootPage = root.getHomePage();
+		printHomePage(rootPage, buffer);
+		printPageChildren(rootPage, buffer);
 
-        IntroPage[] pages = root.getPages();
-        printPages(pages, buffer);
+		IntroPage[] pages = root.getPages();
+		printPages(pages, buffer);
 
-        buffer.append("\n\n"); //$NON-NLS-1$
-        printModelFlagTests(root, buffer);
-    }
+		buffer.append("\n\n"); //$NON-NLS-1$
+		printModelFlagTests(root, buffer);
+	}
 
-    /*
-     * Removes any platform/machine-specific paths from the given URL. This is
-     * used to remove absolute paths from the serialized model in order to compare
-     * results in automated tests.
-     */
-    private String filterURL(String url) {
-        if (filter) {
-            if (url != null && url.startsWith("file:/")) { //$NON-NLS-1$
-                return "file:/" + "<filtered>" + url.substring(url.lastIndexOf('/')); //$NON-NLS-1$ //$NON-NLS-2$
-            }
-        }
-        return url;
-    }
+	/*
+	 * Removes any platform/machine-specific paths from the given URL. This is
+	 * used to remove absolute paths from the serialized model in order to compare
+	 * results in automated tests.
+	 */
+	private String filterURL(String url) {
+		if (filter) {
+			if (url != null && url.startsWith("file:/")) { //$NON-NLS-1$
+				return "file:/" + "<filtered>" + url.substring(url.lastIndexOf('/')); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+		}
+		return url;
+	}
 
-    private void printModelRootInfo(IntroModelRoot model, StringBuilder text) {
-        text.append("\nIntro Model Content:"); //$NON-NLS-1$
-        text.append("\n======================"); //$NON-NLS-1$
-        text.append("\n\nModel has valid config = " + model.hasValidConfig()); //$NON-NLS-1$
-        text.append("\nPresentation Kind = " //$NON-NLS-1$
-                + model.getPresentation().getImplementationKind());
-        text.append("\nPresentation Shared Style = " //$NON-NLS-1$
-                + model.getPresentation().getImplementationStyles());
-        text.append("\nPresentation type = " //$NON-NLS-1$
-                + model.getPresentation().getType());
-        text.append("\nHome page id = " //$NON-NLS-1$
-                + model.getPresentation().getHomePageId());
-        IntroHead headContent = model.getPresentation().getHead();
-        if (headContent != null)
-            text.append("\nPresentation Shared Head = " + headContent.getSrc()); //$NON-NLS-1$
-        text.append("\nNumber of pages (not including Root Page) = " //$NON-NLS-1$
-                + model.getPages().length);
-        text.append("\nNumber of shared groups = " //$NON-NLS-1$
-                + model.getChildrenOfType(AbstractIntroElement.GROUP).length);
-        text
-            .append("\nNumber of unresolved extensions = " //$NON-NLS-1$
-                    + model
-                        .getChildrenOfType(AbstractIntroElement.CONTAINER_EXTENSION).length);
-    }
+	private void printModelRootInfo(IntroModelRoot model, StringBuilder text) {
+		text.append("\nIntro Model Content:"); //$NON-NLS-1$
+		text.append("\n======================"); //$NON-NLS-1$
+		text.append("\n\nModel has valid config = " + model.hasValidConfig()); //$NON-NLS-1$
+		text.append("\nPresentation Kind = " //$NON-NLS-1$
+				+ model.getPresentation().getImplementationKind());
+		text.append("\nPresentation Shared Style = " //$NON-NLS-1$
+				+ model.getPresentation().getImplementationStyles());
+		text.append("\nPresentation type = " //$NON-NLS-1$
+				+ model.getPresentation().getType());
+		text.append("\nHome page id = " //$NON-NLS-1$
+				+ model.getPresentation().getHomePageId());
+		IntroHead headContent = model.getPresentation().getHead();
+		if (headContent != null)
+			text.append("\nPresentation Shared Head = " + headContent.getSrc()); //$NON-NLS-1$
+		text.append("\nNumber of pages (not including Root Page) = " //$NON-NLS-1$
+				+ model.getPages().length);
+		text.append("\nNumber of shared groups = " //$NON-NLS-1$
+				+ model.getChildrenOfType(AbstractIntroElement.GROUP).length);
+		text
+			.append("\nNumber of unresolved extensions = " //$NON-NLS-1$
+					+ model
+						.getChildrenOfType(AbstractIntroElement.CONTAINER_EXTENSION).length);
+	}
 
-    /**
-     * @param text
-     * @param root
-     */
-    private void printHomePage(AbstractIntroPage rootPage, StringBuilder text) {
-        text.append("\n\nHOME PAGE: "); //$NON-NLS-1$
-        text.append("\n--------------"); //$NON-NLS-1$
-        text
-            .append("\n\tis dynamic= " + ((IntroModelRoot) rootPage.getParent()).isDynamic()); //$NON-NLS-1$
+	/**
+	 * @param text
+	 * @param root
+	 */
+	private void printHomePage(AbstractIntroPage rootPage, StringBuilder text) {
+		text.append("\n\nHOME PAGE: "); //$NON-NLS-1$
+		text.append("\n--------------"); //$NON-NLS-1$
+		text
+			.append("\n\tis dynamic= " + ((IntroModelRoot) rootPage.getParent()).isDynamic()); //$NON-NLS-1$
 
-        text.append("\n\tid = " + rootPage.getId()); //$NON-NLS-1$
-        text.append("\n\ttitle = " + rootPage.getTitle()); //$NON-NLS-1$
-        text.append("\n\tstyle = " + filterURL(rootPage.getStyle())); //$NON-NLS-1$
-        text.append("\n\talt-style = " + filterURL(rootPage.getAltStyle())); //$NON-NLS-1$
-        text.append("\n\turl = " + rootPage.getUrl()); //$NON-NLS-1$
-        text.append("\n\tstyle-id = " + rootPage.getStyleId()); //$NON-NLS-1$
-        printPageStyles(rootPage, text);
-    }
+		text.append("\n\tid = " + rootPage.getId()); //$NON-NLS-1$
+		text.append("\n\ttitle = " + rootPage.getTitle()); //$NON-NLS-1$
+		text.append("\n\tstyle = " + filterURL(rootPage.getStyle())); //$NON-NLS-1$
+		text.append("\n\talt-style = " + filterURL(rootPage.getAltStyle())); //$NON-NLS-1$
+		text.append("\n\turl = " + rootPage.getUrl()); //$NON-NLS-1$
+		text.append("\n\tstyle-id = " + rootPage.getStyleId()); //$NON-NLS-1$
+		printPageStyles(rootPage, text);
+	}
 
-    private void printPageStyles(AbstractIntroPage page, StringBuilder text) {
-        text.append("\n\tpage styles are = "); //$NON-NLS-1$
-        String[] styles = page.getStyles();
-        for (int i = 0; i < styles.length; i++)
-            text.append(filterURL(styles[i] + "\n\t\t\t")); //$NON-NLS-1$
-        text.append("\n\tpage alt-styles are = "); //$NON-NLS-1$
+	private void printPageStyles(AbstractIntroPage page, StringBuilder text) {
+		text.append("\n\tpage styles are = "); //$NON-NLS-1$
+		String[] styles = page.getStyles();
+		for (int i = 0; i < styles.length; i++)
+			text.append(filterURL(styles[i] + "\n\t\t\t")); //$NON-NLS-1$
+		text.append("\n\tpage alt-styles are = "); //$NON-NLS-1$
 
 		Map<String, Bundle> altStylesHashtable = page.getAltStyles();
-        if (altStylesHashtable == null)
-            return;
+		if (altStylesHashtable == null)
+			return;
 
 		for (Entry<String, Bundle> entry : altStylesHashtable.entrySet()) {
 			text.append(filterURL(entry.getKey()) + " from " + entry.getValue().getSymbolicName()); //$NON-NLS-1$
-            text.append("\n\t\t"); //$NON-NLS-1$
-        }
-    }
+			text.append("\n\t\t"); //$NON-NLS-1$
+		}
+	}
 
-    private void printPageChildren(AbstractIntroPage page, StringBuilder text) {
+	private void printPageChildren(AbstractIntroPage page, StringBuilder text) {
 
-        text.append("\n\tpage children = " + page.getChildren().length); //$NON-NLS-1$
-        text.append("\n"); //$NON-NLS-1$
-        printContainerChildren(page, text, "\n\t\t"); //$NON-NLS-1$
+		text.append("\n\tpage children = " + page.getChildren().length); //$NON-NLS-1$
+		text.append("\n"); //$NON-NLS-1$
+		printContainerChildren(page, text, "\n\t\t"); //$NON-NLS-1$
 
-    }
+	}
 
-    private void printContainerChildren(AbstractIntroContainer container,
-            StringBuilder text, String indent) {
+	private void printContainerChildren(AbstractIntroContainer container,
+			StringBuilder text, String indent) {
 
-        AbstractIntroElement[] children = container.getChildren();
-        for (int i = 0; i < children.length; i++) {
-            int childType = children[i].getType();
-            switch (childType) {
-            case AbstractIntroElement.ELEMENT:
-                text.append("SHOULD NEVER BE HERE"); //$NON-NLS-1$
-                break;
-            case AbstractIntroElement.GROUP:
-                printGroup(text, (IntroGroup) children[i], indent);
-                break;
-            case AbstractIntroElement.LINK:
-                printLink(text, (IntroLink) children[i], indent);
-                break;
-            case AbstractIntroElement.TEXT:
-                printText(text, (IntroText) children[i], indent);
-                break;
-            case AbstractIntroElement.IMAGE:
-                printImage(text, (IntroImage) children[i], indent);
-                break;
-            case AbstractIntroElement.HR:
-                printSeparator(text, (IntroSeparator) children[i], indent);
-                break;
-            case AbstractIntroElement.HTML:
-                printHtml(text, (IntroHTML) children[i], indent);
-                break;
-            case AbstractIntroElement.INCLUDE:
-                printInclude(text, (IntroInclude) children[i], indent);
-                break;
-            case AbstractIntroElement.HEAD:
-                printHead(text, (IntroHead) children[i], indent);
-                break;
-            case AbstractIntroElement.PAGE_TITLE:
-                printPageTitle(text, (IntroPageTitle) children[i], indent);
-                break;
-            case AbstractIntroElement.ANCHOR:
-                printAnchor(text, (IntroAnchor) children[i], indent);
-                break;
-            case AbstractIntroElement.CONTENT_PROVIDER:
-                printContentProvidor(text, (IntroContentProvider) children[i],
-                    indent);
-                break;
+		AbstractIntroElement[] children = container.getChildren();
+		for (int i = 0; i < children.length; i++) {
+			int childType = children[i].getType();
+			switch (childType) {
+			case AbstractIntroElement.ELEMENT:
+				text.append("SHOULD NEVER BE HERE"); //$NON-NLS-1$
+				break;
+			case AbstractIntroElement.GROUP:
+				printGroup(text, (IntroGroup) children[i], indent);
+				break;
+			case AbstractIntroElement.LINK:
+				printLink(text, (IntroLink) children[i], indent);
+				break;
+			case AbstractIntroElement.TEXT:
+				printText(text, (IntroText) children[i], indent);
+				break;
+			case AbstractIntroElement.IMAGE:
+				printImage(text, (IntroImage) children[i], indent);
+				break;
+			case AbstractIntroElement.HR:
+				printSeparator(text, (IntroSeparator) children[i], indent);
+				break;
+			case AbstractIntroElement.HTML:
+				printHtml(text, (IntroHTML) children[i], indent);
+				break;
+			case AbstractIntroElement.INCLUDE:
+				printInclude(text, (IntroInclude) children[i], indent);
+				break;
+			case AbstractIntroElement.HEAD:
+				printHead(text, (IntroHead) children[i], indent);
+				break;
+			case AbstractIntroElement.PAGE_TITLE:
+				printPageTitle(text, (IntroPageTitle) children[i], indent);
+				break;
+			case AbstractIntroElement.ANCHOR:
+				printAnchor(text, (IntroAnchor) children[i], indent);
+				break;
+			case AbstractIntroElement.CONTENT_PROVIDER:
+				printContentProvidor(text, (IntroContentProvider) children[i],
+					indent);
+				break;
 
-            }
-        }
-    }
+			}
+		}
+	}
 
-    private void printGroup(StringBuilder text, IntroGroup group, String indent) {
-        text.append(indent + "GROUP: id = " + group.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "label = " + group.getLabel()); //$NON-NLS-1$
-        text.append(indent + "children = " + group.getChildren().length); //$NON-NLS-1$
-        text.append(indent + "style-id = " + group.getStyleId()); //$NON-NLS-1$
-        printContainerChildren(group, text, indent + "\t\t"); //$NON-NLS-1$
-    }
+	private void printGroup(StringBuilder text, IntroGroup group, String indent) {
+		text.append(indent + "GROUP: id = " + group.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "label = " + group.getLabel()); //$NON-NLS-1$
+		text.append(indent + "children = " + group.getChildren().length); //$NON-NLS-1$
+		text.append(indent + "style-id = " + group.getStyleId()); //$NON-NLS-1$
+		printContainerChildren(group, text, indent + "\t\t"); //$NON-NLS-1$
+	}
 
-    private void printLink(StringBuilder text, IntroLink link, String indent) {
-        text.append(indent + "LINK: id = " + link.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "label = " + link.getLabel()); //$NON-NLS-1$
-        text.append(indent + "text = " + link.getText()); //$NON-NLS-1$
-        text.append(indent + "url = " + link.getUrl()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + link.getStyleId()); //$NON-NLS-1$
-    }
+	private void printLink(StringBuilder text, IntroLink link, String indent) {
+		text.append(indent + "LINK: id = " + link.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "label = " + link.getLabel()); //$NON-NLS-1$
+		text.append(indent + "text = " + link.getText()); //$NON-NLS-1$
+		text.append(indent + "url = " + link.getUrl()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + link.getStyleId()); //$NON-NLS-1$
+	}
 
-    private void printText(StringBuilder text, IntroText introText, String indent) {
-        text.append(indent + "TEXT: id = " + introText.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "text = " + introText.getText()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + introText.getStyleId()); //$NON-NLS-1$
-    }
+	private void printText(StringBuilder text, IntroText introText, String indent) {
+		text.append(indent + "TEXT: id = " + introText.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "text = " + introText.getText()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + introText.getStyleId()); //$NON-NLS-1$
+	}
 
-    private void printImage(StringBuilder text, IntroImage image, String indent) {
-        text.append(indent + "IMAGE: id = " + image.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "src = " + image.getSrc()); //$NON-NLS-1$
-        text.append(indent + "alt = " + image.getAlt()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + image.getStyleId()); //$NON-NLS-1$
-    }
+	private void printImage(StringBuilder text, IntroImage image, String indent) {
+		text.append(indent + "IMAGE: id = " + image.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "src = " + image.getSrc()); //$NON-NLS-1$
+		text.append(indent + "alt = " + image.getAlt()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + image.getStyleId()); //$NON-NLS-1$
+	}
 
-    private void printSeparator(StringBuilder text, IntroSeparator sep, String indent) {
-        text.append(indent + "HR: id = " + sep.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "style-id = " + sep.getStyleId()); //$NON-NLS-1$
-    }
+	private void printSeparator(StringBuilder text, IntroSeparator sep, String indent) {
+		text.append(indent + "HR: id = " + sep.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "style-id = " + sep.getStyleId()); //$NON-NLS-1$
+	}
 
-    private void printHtml(StringBuilder text, IntroHTML html, String indent) {
-        text.append(indent + "HTML: id = " + html.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "src = " + html.getSrc()); //$NON-NLS-1$
-        text.append(indent + "isInlined = " + html.isInlined()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + html.getStyleId()); //$NON-NLS-1$
-        if (html.getIntroImage() != null)
-            printImage(text, html.getIntroImage(), indent + "\t\t"); //$NON-NLS-1$
-        if (html.getIntroText() != null)
-            printText(text, html.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
+	private void printHtml(StringBuilder text, IntroHTML html, String indent) {
+		text.append(indent + "HTML: id = " + html.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "src = " + html.getSrc()); //$NON-NLS-1$
+		text.append(indent + "isInlined = " + html.isInlined()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + html.getStyleId()); //$NON-NLS-1$
+		if (html.getIntroImage() != null)
+			printImage(text, html.getIntroImage(), indent + "\t\t"); //$NON-NLS-1$
+		if (html.getIntroText() != null)
+			printText(text, html.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
 
-    }
+	}
 
-    private void printInclude(StringBuilder text, IntroInclude include,
-            String indent) {
-        text.append(indent + "INCLUDE: configId = " + include.getConfigId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "path = " + include.getPath()); //$NON-NLS-1$
-        text.append(indent + "merge-style = " + include.getMergeStyle()); //$NON-NLS-1$
-    }
+	private void printInclude(StringBuilder text, IntroInclude include,
+			String indent) {
+		text.append(indent + "INCLUDE: configId = " + include.getConfigId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "path = " + include.getPath()); //$NON-NLS-1$
+		text.append(indent + "merge-style = " + include.getMergeStyle()); //$NON-NLS-1$
+	}
 
-    private void printHead(StringBuilder text, IntroHead head, String indent) {
-        text.append(indent + "HEAD: src = " + head.getSrc()); //$NON-NLS-1$
-    }
+	private void printHead(StringBuilder text, IntroHead head, String indent) {
+		text.append(indent + "HEAD: src = " + head.getSrc()); //$NON-NLS-1$
+	}
 
-    private void printPageTitle(StringBuilder text, IntroPageTitle title,
-            String indent) {
-        text.append(indent + "TITLE: id = " + title.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "title = " + title.getTitle()); //$NON-NLS-1$
-        text.append(indent + "style-id = " + title.getStyleId()); //$NON-NLS-1$
-    }
+	private void printPageTitle(StringBuilder text, IntroPageTitle title,
+			String indent) {
+		text.append(indent + "TITLE: id = " + title.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "title = " + title.getTitle()); //$NON-NLS-1$
+		text.append(indent + "style-id = " + title.getStyleId()); //$NON-NLS-1$
+	}
 
-    private void printAnchor(StringBuilder text, IntroAnchor anchor,
-            String indent) {
-        text.append(indent + "ANCHOR: id = " + anchor.getId()); //$NON-NLS-1$
-    }
+	private void printAnchor(StringBuilder text, IntroAnchor anchor,
+			String indent) {
+		text.append(indent + "ANCHOR: id = " + anchor.getId()); //$NON-NLS-1$
+	}
 
-    private void printContentProvidor(StringBuilder text,
-            IntroContentProvider provider, String indent) {
-        text.append(indent + "CONTENT PROVIDER: id = " + provider.getId()); //$NON-NLS-1$
-        indent = indent + "\t\t"; //$NON-NLS-1$
-        text.append(indent + "class = " + provider.getClassName()); //$NON-NLS-1$
-        text.append(indent + "pluginId = " + provider.getPluginId()); //$NON-NLS-1$
-        if (provider.getIntroText() != null)
-            printText(text, provider.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
+	private void printContentProvidor(StringBuilder text,
+			IntroContentProvider provider, String indent) {
+		text.append(indent + "CONTENT PROVIDER: id = " + provider.getId()); //$NON-NLS-1$
+		indent = indent + "\t\t"; //$NON-NLS-1$
+		text.append(indent + "class = " + provider.getClassName()); //$NON-NLS-1$
+		text.append(indent + "pluginId = " + provider.getPluginId()); //$NON-NLS-1$
+		if (provider.getIntroText() != null)
+			printText(text, provider.getIntroText(), indent + "\t\t"); //$NON-NLS-1$
 
-    }
+	}
 
-    /**
-     * Appends a given page's categories to the Text buffer.
-     *
-     * @param text
-     */
-    private void printPages(IntroPage[] pages, StringBuilder text) {
-        for (int i = 0; i < pages.length; i++) {
-            text.append("\n\nPAGE id = " + pages[i].getId()); //$NON-NLS-1$
-            text.append("\n----------"); //$NON-NLS-1$
-            text.append("\n\ttitle = " + pages[i].getTitle()); //$NON-NLS-1$
-            text.append("\n\tstyle = " + filterURL(pages[i].getStyle())); //$NON-NLS-1$
-            text.append("\n\talt-style = " + filterURL(pages[i].getAltStyle())); //$NON-NLS-1$
-            text.append("\n\tstyle-id = " + pages[i].getStyleId()); //$NON-NLS-1$
-            printPageStyles(pages[i], text);
-            printPageChildren(pages[i], text);
-        }
-    }
+	/**
+	 * Appends a given page's categories to the Text buffer.
+	 *
+	 * @param text
+	 */
+	private void printPages(IntroPage[] pages, StringBuilder text) {
+		for (int i = 0; i < pages.length; i++) {
+			text.append("\n\nPAGE id = " + pages[i].getId()); //$NON-NLS-1$
+			text.append("\n----------"); //$NON-NLS-1$
+			text.append("\n\ttitle = " + pages[i].getTitle()); //$NON-NLS-1$
+			text.append("\n\tstyle = " + filterURL(pages[i].getStyle())); //$NON-NLS-1$
+			text.append("\n\talt-style = " + filterURL(pages[i].getAltStyle())); //$NON-NLS-1$
+			text.append("\n\tstyle-id = " + pages[i].getStyleId()); //$NON-NLS-1$
+			printPageStyles(pages[i], text);
+			printPageChildren(pages[i], text);
+		}
+	}
 
-    private void printModelFlagTests(IntroModelRoot model, StringBuilder text) {
-        text.append("Model Flag Tests: "); //$NON-NLS-1$
-        text.append("\n----------------"); //$NON-NLS-1$
-        if (model.getPages().length == 0) {
-            text.append("\nNo first page in model\n\n"); //$NON-NLS-1$
-            return;
-        }
-        IntroPage firstPage = model.getPages()[0];
-        text.append("\n\t\tFirst page children are: "); //$NON-NLS-1$
-        text
-            .append("\n\t\t\tGroups: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.GROUP).length);
-        text
-            .append("\n\t\t\tLinks: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.LINK).length);
-        text
-            .append("\n\t\t\tTexts: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.TEXT).length);
-        text
-            .append("\n\t\t\tHTMLs: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.HTML).length);
-        text
-            .append("\n\t\t\tImages: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.IMAGE).length);
-        text
-            .append("\n\t\t\tIncludes: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.INCLUDE).length);
-        text
-            .append("\n\t\t\tPage Titles: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.PAGE_TITLE).length);
-        text
-            .append("\n\t\t\tPage Heads: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.HEAD).length);
-        text
-            .append("\n\t\t\tModel Elements: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.ELEMENT).length);
-        text
-            .append("\n\t\t\tContainers: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.ABSTRACT_CONTAINER).length);
-        text
-            .append("\n\t\t\tAll Pages: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.ABSTRACT_PAGE).length);
-        text
-            .append("\n\t\t\tAnchors: " //$NON-NLS-1$
-                    + firstPage.getChildrenOfType(AbstractIntroElement.ANCHOR).length);
-        text
-            .append("\n\t\t\tContent providers: " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.CONTENT_PROVIDER).length);
-        text
-            .append("\n\t\t\tElements with Text child(AbstractTextElemets): " //$NON-NLS-1$
-                    + firstPage
-                        .getChildrenOfType(AbstractIntroElement.ABSTRACT_TEXT).length);
+	private void printModelFlagTests(IntroModelRoot model, StringBuilder text) {
+		text.append("Model Flag Tests: "); //$NON-NLS-1$
+		text.append("\n----------------"); //$NON-NLS-1$
+		if (model.getPages().length == 0) {
+			text.append("\nNo first page in model\n\n"); //$NON-NLS-1$
+			return;
+		}
+		IntroPage firstPage = model.getPages()[0];
+		text.append("\n\t\tFirst page children are: "); //$NON-NLS-1$
+		text
+			.append("\n\t\t\tGroups: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.GROUP).length);
+		text
+			.append("\n\t\t\tLinks: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.LINK).length);
+		text
+			.append("\n\t\t\tTexts: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.TEXT).length);
+		text
+			.append("\n\t\t\tHTMLs: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.HTML).length);
+		text
+			.append("\n\t\t\tImages: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.IMAGE).length);
+		text
+			.append("\n\t\t\tIncludes: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.INCLUDE).length);
+		text
+			.append("\n\t\t\tPage Titles: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.PAGE_TITLE).length);
+		text
+			.append("\n\t\t\tPage Heads: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.HEAD).length);
+		text
+			.append("\n\t\t\tModel Elements: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.ELEMENT).length);
+		text
+			.append("\n\t\t\tContainers: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.ABSTRACT_CONTAINER).length);
+		text
+			.append("\n\t\t\tAll Pages: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.ABSTRACT_PAGE).length);
+		text
+			.append("\n\t\t\tAnchors: " //$NON-NLS-1$
+					+ firstPage.getChildrenOfType(AbstractIntroElement.ANCHOR).length);
+		text
+			.append("\n\t\t\tContent providers: " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.CONTENT_PROVIDER).length);
+		text
+			.append("\n\t\t\tElements with Text child(AbstractTextElemets): " //$NON-NLS-1$
+					+ firstPage
+						.getChildrenOfType(AbstractIntroElement.ABSTRACT_TEXT).length);
 
-        AbstractIntroElement[] linksAndGroups = (AbstractIntroElement[]) firstPage
-            .getChildrenOfType(AbstractIntroElement.GROUP
-                    | AbstractIntroElement.LINK);
-        text.append("\n\t\t\tGroups and Links: " + linksAndGroups.length); //$NON-NLS-1$
-    }
+		AbstractIntroElement[] linksAndGroups = (AbstractIntroElement[]) firstPage
+			.getChildrenOfType(AbstractIntroElement.GROUP
+					| AbstractIntroElement.LINK);
+		text.append("\n\t\t\tGroups and Links: " + linksAndGroups.length); //$NON-NLS-1$
+	}
 
-    /**
-     * @return Returns the textUI.
-     */
-    @Override
+	/**
+	 * @return Returns the textUI.
+	 */
+	@Override
 	public String toString() {
-        return buffer.toString();
-    }
+		return buffer.toString();
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Log.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Log.java
index f00384a..e8c2bb9 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Log.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Log.java
@@ -32,114 +32,114 @@
  */
 public class Log implements IIntroConstants {
 
-    /**
-     * This MUST be set to <b>false </b> in production. <br>
-     * Used to compile out developement debug messages. <br>
-     * Compiler compiles out code warpped wit this flag as an optimization.
-     */
-    public static final boolean DEBUG = false;
+	/**
+	 * This MUST be set to <b>false </b> in production. <br>
+	 * Used to compile out developement debug messages. <br>
+	 * Compiler compiles out code warpped wit this flag as an optimization.
+	 */
+	public static final boolean DEBUG = false;
 
 
-    // Use these flags to filter out code that may be a performance hit.
-    // Flag that controls logging of warning message
-    public static boolean logWarning = false;
-    // Flag that controls logging of information messages
-    public static boolean logInfo = false;
-    // Flag that controls logging of performance messages
-    public static boolean logPerformance = false;
+	// Use these flags to filter out code that may be a performance hit.
+	// Flag that controls logging of warning message
+	public static boolean logWarning = false;
+	// Flag that controls logging of information messages
+	public static boolean logInfo = false;
+	// Flag that controls logging of performance messages
+	public static boolean logPerformance = false;
 
-    private final static ILog pluginLog = IntroPlugin.getDefault().getLog();
+	private final static ILog pluginLog = IntroPlugin.getDefault().getLog();
 
-    static {
-        // init debug options based on settings defined in ".options" file. If
-        // the plugin is not in debug mode, no point setting debug options.
-        if (IntroPlugin.getDefault().isDebugging()) {
-            logWarning = true;
-            logInfo = getDebugOption("/trace/logInfo"); //$NON-NLS-1$
-            logPerformance = getDebugOption("/trace/logPerformance"); //$NON-NLS-1$
-        }
+	static {
+		// init debug options based on settings defined in ".options" file. If
+		// the plugin is not in debug mode, no point setting debug options.
+		if (IntroPlugin.getDefault().isDebugging()) {
+			logWarning = true;
+			logInfo = getDebugOption("/trace/logInfo"); //$NON-NLS-1$
+			logPerformance = getDebugOption("/trace/logPerformance"); //$NON-NLS-1$
+		}
 
-    }
+	}
 
-    private static boolean getDebugOption(String option) {
-        return "true".equalsIgnoreCase(//$NON-NLS-1$
-            Platform.getDebugOption(PLUGIN_ID + option));
-    }
+	private static boolean getDebugOption(String option) {
+		return "true".equalsIgnoreCase(//$NON-NLS-1$
+			Platform.getDebugOption(PLUGIN_ID + option));
+	}
 
-    /**
-     * Log an Error message with an exception. Note that the message should
-     * already be localized to proper local. Errors are always logged.
-     */
-    public static synchronized void error(String message, Throwable ex) {
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK,
-            message, ex);
-        pluginLog.log(errorStatus);
-    }
+	/**
+	 * Log an Error message with an exception. Note that the message should
+	 * already be localized to proper local. Errors are always logged.
+	 */
+	public static synchronized void error(String message, Throwable ex) {
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK,
+			message, ex);
+		pluginLog.log(errorStatus);
+	}
 
-    /**
-     * Log an Information message. Note that the message should already be
-     * localized to proper local. Info messages are only logged when the
-     * /trace/logInfo debug option is true.
-     */
-    public static synchronized void info(String message) {
-        if (!logInfo)
-            // logging of info messages is not enabled.
-            return;
+	/**
+	 * Log an Information message. Note that the message should already be
+	 * localized to proper local. Info messages are only logged when the
+	 * /trace/logInfo debug option is true.
+	 */
+	public static synchronized void info(String message) {
+		if (!logInfo)
+			// logging of info messages is not enabled.
+			return;
 
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
-            message, null);
-        pluginLog.log(infoStatus);
-    }
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
+			message, null);
+		pluginLog.log(infoStatus);
+	}
 
-    /**
-     * Log an Information message. Note that the message should already be
-     * localized to proper local. These messages are always logged. They are not
-     * controlled by any debug flags. Logging of these messages can be
-     * controlled by the public flags in this class.
-     */
-    public static synchronized void forcedInfo(String message) {
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
-            message, null);
-        pluginLog.log(infoStatus);
-    }
+	/**
+	 * Log an Information message. Note that the message should already be
+	 * localized to proper local. These messages are always logged. They are not
+	 * controlled by any debug flags. Logging of these messages can be
+	 * controlled by the public flags in this class.
+	 */
+	public static synchronized void forcedInfo(String message) {
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status infoStatus = new Status(IStatus.INFO, PLUGIN_ID, IStatus.OK,
+			message, null);
+		pluginLog.log(infoStatus);
+	}
 
 
-    /**
-     * Log a Warning message. Note that the message should already be localized
-     * to proper local. Warning messages are only logged when the plugin is in
-     * debug mode.
-     */
-    public static synchronized void warning(String message) {
-        if (!logWarning)
-            // no warning messages (ie: plugin is not in debug mode). Default is
-            // to not log warning messages.
-            return;
+	/**
+	 * Log a Warning message. Note that the message should already be localized
+	 * to proper local. Warning messages are only logged when the plugin is in
+	 * debug mode.
+	 */
+	public static synchronized void warning(String message) {
+		if (!logWarning)
+			// no warning messages (ie: plugin is not in debug mode). Default is
+			// to not log warning messages.
+			return;
 
-        if (message == null)
-            message = ""; //$NON-NLS-1$
-        Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID,
-            IStatus.OK, message, null);
-        pluginLog.log(warningStatus);
-    }
+		if (message == null)
+			message = ""; //$NON-NLS-1$
+		Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID,
+			IStatus.OK, message, null);
+		pluginLog.log(warningStatus);
+	}
 
-    /**
-     * Log a development debug message. Debug messages are compiled out.
-     */
-    public static synchronized void debugMessage(String className,
-            String message) {
-        if (DEBUG) {
-            MultiStatus debugStatus = new MultiStatus(PLUGIN_ID, IStatus.OK,
-                className, null);
-            Status infoStatus = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK,
-                message, null);
-            debugStatus.add(infoStatus);
-            pluginLog.log(debugStatus);
-        }
-    }
+	/**
+	 * Log a development debug message. Debug messages are compiled out.
+	 */
+	public static synchronized void debugMessage(String className,
+			String message) {
+		if (DEBUG) {
+			MultiStatus debugStatus = new MultiStatus(PLUGIN_ID, IStatus.OK,
+				className, null);
+			Status infoStatus = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK,
+				message, null);
+			debugStatus.add(infoStatus);
+			pluginLog.log(debugStatus);
+		}
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/StringUtil.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/StringUtil.java
index d529364..1a8a2e8 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/StringUtil.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/StringUtil.java
@@ -18,13 +18,13 @@
 
 public class StringUtil {
 
-    public static String concat(String... strings) {
-    	StringBuilder buffer = new StringBuilder();
-    	for (String string : strings) {
+	public static String concat(String... strings) {
+		StringBuilder buffer = new StringBuilder();
+		for (String string : strings) {
 			buffer.append(string);
 		}
-    	return buffer.toString();
-    }
+		return buffer.toString();
+	}
 
 	public static String decode(String s, String enc) throws UnsupportedEncodingException {
 		try {
@@ -36,8 +36,8 @@
 		}
 	}
 
-    // Removes leading and trailing whitespace and replaces other
-    // occurrences with a single space.
+	// Removes leading and trailing whitespace and replaces other
+	// occurrences with a single space.
 
 	public static String normalizeWhiteSpace(String input) {
 		if (input == null) {
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Util.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Util.java
index 412fb9e..96e6b16 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Util.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Util.java
@@ -31,174 +31,174 @@
 
 
 
-    /**
-     * Handle the exception by logging to the Log. <br>
-     * Variables are subsituted in the message.
-     */
-    public static void handleException(String msg, Exception e,
-            Object[] variables) {
-        if (msg == null)
-            return;
-        if (variables != null) {
-            // if variables is not null, errorId will never be null.
-            msg = NLS.bind(msg, variables);
-        }
-        Log.error(msg, e);
-    }
+	/**
+	 * Handle the exception by logging to the Log. <br>
+	 * Variables are subsituted in the message.
+	 */
+	public static void handleException(String msg, Exception e,
+			Object[] variables) {
+		if (msg == null)
+			return;
+		if (variables != null) {
+			// if variables is not null, errorId will never be null.
+			msg = NLS.bind(msg, variables);
+		}
+		Log.error(msg, e);
+	}
 
-    /**
-     * Handle the exception by displaying an Error Dialog. <br>
-     * Also, the error is logged by the Log.
-     */
-    public static void handleExceptionWithPopUp(Shell parent, String msg,
-            Exception e) {
-        // if it is a core exception, use ErrorDialog. If the error id is null
-        // this translates to giving null to this dialog which is handled by
-        // Eclipse by displaying the detyailed message directly.
-        if (e instanceof CoreException) {
-            if (parent == null)
-                parent = DialogUtil.getActiveShell();
-            DialogUtil.displayCoreErrorDialog(parent, msg, (CoreException) e);
+	/**
+	 * Handle the exception by displaying an Error Dialog. <br>
+	 * Also, the error is logged by the Log.
+	 */
+	public static void handleExceptionWithPopUp(Shell parent, String msg,
+			Exception e) {
+		// if it is a core exception, use ErrorDialog. If the error id is null
+		// this translates to giving null to this dialog which is handled by
+		// Eclipse by displaying the detyailed message directly.
+		if (e instanceof CoreException) {
+			if (parent == null)
+				parent = DialogUtil.getActiveShell();
+			DialogUtil.displayCoreErrorDialog(parent, msg, (CoreException) e);
 
-            return;
-        }
+			return;
+		}
 
-        // any other exception, use MessageDialog.
-        // if errorID is null, use error message.
-        if (msg == null)
-            msg = e.getMessage();
-        if (parent == null)
-            parent = DialogUtil.getActiveShell();
-        DialogUtil.displayErrorMessage(parent, msg, e);
-    }
+		// any other exception, use MessageDialog.
+		// if errorID is null, use error message.
+		if (msg == null)
+			msg = e.getMessage();
+		if (parent == null)
+			parent = DialogUtil.getActiveShell();
+		DialogUtil.displayErrorMessage(parent, msg, e);
+	}
 
-    /**
-     * Utility method that will add a debug listener to the given control. All
-     * common events are added.
-     *
-     * @param control
-     * @return
-     */
-    public static Listener addDebugListener(Control control) {
-        Listener listener = e -> {
-		    switch (e.type) {
-		    case SWT.Selection:
-		        System.out.println("Selection EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.Dispose:
-		        System.out.println("Dispose EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.Paint:
-		        System.out.println("Paint EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.Resize:
-		        System.out.println("Resize EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.MouseDoubleClick:
-		        System.out.println("MouseDoubleClick EVENT: " //$NON-NLS-1$
-		                + e.toString());
-		        break;
-		    case SWT.MouseDown:
-		        System.out.println("MouseDown EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.MouseUp:
-		        System.out.println("MouseUp EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.MouseMove:
-		        System.out.println("MouseMove EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.MouseEnter:
-		        System.out.println("MouseEnter EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.MouseExit:
-		        System.out.println("MouseExit EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.MouseHover:
-		        System.out.println("MouseHover EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.FocusIn:
-		        System.out.println("FocusIn EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.FocusOut:
-		        System.out.println("FocusOut EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.KeyDown:
-		        System.out.println("KeyDown EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.KeyUp:
-		        System.out.println("KeyUp EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.Traverse:
-		        System.out.println("Traverse EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.Show:
-		        System.out.println("Show EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    case SWT.Hide:
-		        System.out.println("Hide EVENT: " + e.toString()); //$NON-NLS-1$
-		        break;
-		    default:
-		        System.out.println(e.toString());
-		    }
+	/**
+	 * Utility method that will add a debug listener to the given control. All
+	 * common events are added.
+	 *
+	 * @param control
+	 * @return
+	 */
+	public static Listener addDebugListener(Control control) {
+		Listener listener = e -> {
+			switch (e.type) {
+			case SWT.Selection:
+				System.out.println("Selection EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.Dispose:
+				System.out.println("Dispose EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.Paint:
+				System.out.println("Paint EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.Resize:
+				System.out.println("Resize EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.MouseDoubleClick:
+				System.out.println("MouseDoubleClick EVENT: " //$NON-NLS-1$
+						+ e.toString());
+				break;
+			case SWT.MouseDown:
+				System.out.println("MouseDown EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.MouseUp:
+				System.out.println("MouseUp EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.MouseMove:
+				System.out.println("MouseMove EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.MouseEnter:
+				System.out.println("MouseEnter EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.MouseExit:
+				System.out.println("MouseExit EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.MouseHover:
+				System.out.println("MouseHover EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.FocusIn:
+				System.out.println("FocusIn EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.FocusOut:
+				System.out.println("FocusOut EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.KeyDown:
+				System.out.println("KeyDown EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.KeyUp:
+				System.out.println("KeyUp EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.Traverse:
+				System.out.println("Traverse EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.Show:
+				System.out.println("Show EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			case SWT.Hide:
+				System.out.println("Hide EVENT: " + e.toString()); //$NON-NLS-1$
+				break;
+			default:
+				System.out.println(e.toString());
+			}
 		};
-        int[] allEvents = new int[] { SWT.Selection, SWT.Dispose, SWT.Paint,
-                SWT.Resize, SWT.MouseDoubleClick, SWT.MouseDown, SWT.MouseUp,
-                // SWT.MouseMove,
-                SWT.MouseEnter, SWT.MouseExit, SWT.MouseHover, SWT.FocusIn,
-                SWT.FocusOut, SWT.KeyDown, SWT.KeyUp, SWT.Traverse, SWT.Show,
-                SWT.Hide };
-        for (int i = 0; i < allEvents.length; i++) {
-            control.addListener(allEvents[i], listener);
-        }
-        return listener;
-    }
+		int[] allEvents = new int[] { SWT.Selection, SWT.Dispose, SWT.Paint,
+				SWT.Resize, SWT.MouseDoubleClick, SWT.MouseDown, SWT.MouseUp,
+				// SWT.MouseMove,
+				SWT.MouseEnter, SWT.MouseExit, SWT.MouseHover, SWT.FocusIn,
+				SWT.FocusOut, SWT.KeyDown, SWT.KeyUp, SWT.Traverse, SWT.Show,
+				SWT.Hide };
+		for (int i = 0; i < allEvents.length; i++) {
+			control.addListener(allEvents[i], listener);
+		}
+		return listener;
+	}
 
-    public static void sleep(int delay) {
-        try {
-            Thread.sleep(delay);
-        } catch (InterruptedException e) {
-            // no-op
-        }
-    }
+	public static void sleep(int delay) {
+		try {
+			Thread.sleep(delay);
+		} catch (InterruptedException e) {
+			// no-op
+		}
+	}
 
-    public static void highlight(Control control, int color) {
-        control.setBackground(control.getDisplay().getSystemColor(color));
-    }
+	public static void highlight(Control control, int color) {
+		control.setBackground(control.getDisplay().getSystemColor(color));
+	}
 
-    public static void highlightFocusControl() {
-        Control control = Display.getCurrent().getFocusControl();
-        if (control != null)
-            control.setBackground(Display.getCurrent().getSystemColor(
-                SWT.COLOR_DARK_RED));
-    }
+	public static void highlightFocusControl() {
+		Control control = Display.getCurrent().getFocusControl();
+		if (control != null)
+			control.setBackground(Display.getCurrent().getSystemColor(
+				SWT.COLOR_DARK_RED));
+	}
 
-    /**
-     * Launch an external brwoser on the given url.
-     */
-    public static boolean openBrowser(String href) {
-        try {
-            URL url = new URL(href);
-            IWorkbenchBrowserSupport support = PlatformUI.getWorkbench()
-                .getBrowserSupport();
-            support.getExternalBrowser().openURL(url);
-            return true;
-        } catch (PartInitException e) {
-            Log.error("Intro failed to get Browser support.", e); //$NON-NLS-1$
-            return false;
-        } catch (MalformedURLException e) {
-            Log.error("Intro failed to display: " + href, e); //$NON-NLS-1$
-            return false;
-        }
-    }
+	/**
+	 * Launch an external brwoser on the given url.
+	 */
+	public static boolean openBrowser(String href) {
+		try {
+			URL url = new URL(href);
+			IWorkbenchBrowserSupport support = PlatformUI.getWorkbench()
+				.getBrowserSupport();
+			support.getExternalBrowser().openURL(url);
+			return true;
+		} catch (PartInitException e) {
+			Log.error("Intro failed to get Browser support.", e); //$NON-NLS-1$
+			return false;
+		} catch (MalformedURLException e) {
+			Log.error("Intro failed to display: " + href, e); //$NON-NLS-1$
+			return false;
+		}
+	}
 
-    public static void logPerformanceTime(String message, long startTime) {
-        long endTime = System.currentTimeMillis();
-        Log.forcedInfo("Intro Performance - " + message + (endTime - startTime) //$NON-NLS-1$
-                + "ms"); //$NON-NLS-1$
-    }
+	public static void logPerformanceTime(String message, long startTime) {
+		long endTime = System.currentTimeMillis();
+		Log.forcedInfo("Intro Performance - " + message + (endTime - startTime) //$NON-NLS-1$
+				+ "ms"); //$NON-NLS-1$
+	}
 
-    public static void logPerformanceMessage(String message, long time) {
-        Log.forcedInfo("Intro Performance - " + message + " " + time + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-    }
+	public static void logPerformanceMessage(String message, long time) {
+		Log.forcedInfo("Intro Performance - " + message + " " + time + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/CustomizableIntroPart.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/CustomizableIntroPart.java
index 17a1311..b5c5163 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/CustomizableIntroPart.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/CustomizableIntroPart.java
@@ -83,194 +83,194 @@
  * clicked, signaling that the standby part is no longer needed.
  */
 public final class CustomizableIntroPart extends IntroPart implements
-         IRegistryChangeListener {
+		 IRegistryChangeListener {
 
-    private IntroPartPresentation presentation;
-    private StandbyPart standbyPart;
-    private Composite container;
-    private IMemento memento;
-    IntroModelRoot model;
-    // this flag is used to recreate a cached standby part. It is used once and
-    // the set to false when the standby part is first created.
-    private boolean restoreStandby;
+	private IntroPartPresentation presentation;
+	private StandbyPart standbyPart;
+	private Composite container;
+	private IMemento memento;
+	IntroModelRoot model;
+	// this flag is used to recreate a cached standby part. It is used once and
+	// the set to false when the standby part is first created.
+	private boolean restoreStandby;
 
 
-    // Adapter factory to abstract out the StandbyPart implementation from APIs.
-    IAdapterFactory factory = new IAdapterFactory() {
+	// Adapter factory to abstract out the StandbyPart implementation from APIs.
+	IAdapterFactory factory = new IAdapterFactory() {
 
 		@Override
 		public Class<?>[] getAdapterList() {
-            return new Class[] { StandbyPart.class, IntroPartPresentation.class };
-        }
+			return new Class[] { StandbyPart.class, IntroPartPresentation.class };
+		}
 
 		@Override
 		public <T> T getAdapter(Object adaptableObject, Class<T> adapterType) {
-            if (!(adaptableObject instanceof CustomizableIntroPart))
-                return null;
+			if (!(adaptableObject instanceof CustomizableIntroPart))
+				return null;
 
-            if (adapterType.equals(StandbyPart.class)) {
+			if (adapterType.equals(StandbyPart.class)) {
 				return adapterType.cast(getStandbyPart());
-            } else if (adapterType.equals(IntroPartPresentation.class)) {
+			} else if (adapterType.equals(IntroPartPresentation.class)) {
 				return adapterType.cast(getPresentation());
-            } else
-                return null;
-        }
-    };
+			} else
+				return null;
+		}
+	};
 
-    public CustomizableIntroPart() {
-        // register adapter to hide standbypart.
-        Platform.getAdapterManager().registerAdapters(factory,
-            CustomizableIntroPart.class);
-        // model can not be loaded here because the configElement of this part
-        // is still not loaded here.
+	public CustomizableIntroPart() {
+		// register adapter to hide standbypart.
+		Platform.getAdapterManager().registerAdapters(factory,
+			CustomizableIntroPart.class);
+		// model can not be loaded here because the configElement of this part
+		// is still not loaded here.
 
-        // if we are logging performance, start the UI creation start time.
-        // Clock stops at the end of the standbyStateChanged event.
-        if (Log.logPerformance) {
-            if (PerformanceStats.ENABLED)
-                PerformanceStats.getStats(
-                    IIntroConstants.PERF_VIEW_CREATION_TIME,
-                    IIntroConstants.INTRO).startRun();
-            else
-                // capture start time to be used when only Intro performance
-                // trace
-                // is turned on.
-                IntroPlugin.getDefault().setUICreationStartTime(
-                    System.currentTimeMillis());
-        }
-    }
+		// if we are logging performance, start the UI creation start time.
+		// Clock stops at the end of the standbyStateChanged event.
+		if (Log.logPerformance) {
+			if (PerformanceStats.ENABLED)
+				PerformanceStats.getStats(
+					IIntroConstants.PERF_VIEW_CREATION_TIME,
+					IIntroConstants.INTRO).startRun();
+			else
+				// capture start time to be used when only Intro performance
+				// trace
+				// is turned on.
+				IntroPlugin.getDefault().setUICreationStartTime(
+					System.currentTimeMillis());
+		}
+	}
 
-    @Override
+	@Override
 	public void init(IIntroSite site, IMemento memento)
-            throws PartInitException {
-        super.init(site, memento);
-        IntroPlugin.getDefault().closeLaunchBar();
-        // load the correct model based in the current Intro Part id. Set the
-        // IntroPartId in the manager class.
-        String introId = getConfigurationElement().getAttribute("id"); //$NON-NLS-1$
-        ExtensionPointManager extensionPointManager = IntroPlugin.getDefault()
-            .getExtensionPointManager();
-        extensionPointManager.setIntroId(introId);
-        model = extensionPointManager.getCurrentModel();
+			throws PartInitException {
+		super.init(site, memento);
+		IntroPlugin.getDefault().closeLaunchBar();
+		// load the correct model based in the current Intro Part id. Set the
+		// IntroPartId in the manager class.
+		String introId = getConfigurationElement().getAttribute("id"); //$NON-NLS-1$
+		ExtensionPointManager extensionPointManager = IntroPlugin.getDefault()
+			.getExtensionPointManager();
+		extensionPointManager.setIntroId(introId);
+		model = extensionPointManager.getCurrentModel();
 
-        if (model != null && model.hasValidConfig()) {
+		if (model != null && model.hasValidConfig()) {
 
-            boolean startAtHomePage = ReopenUtil.isReopenPreference();
+			boolean startAtHomePage = ReopenUtil.isReopenPreference();
 			if (startAtHomePage) {
-    			PlatformUI.getPreferenceStore().setValue(
-    	        		IWorkbenchPreferenceConstants.SHOW_INTRO, true);
-    			memento = null;
-    		}
-            // we have a valid config contribution, get presentation. Make sure
-            // you pass correct memento.
-            presentation = model.getPresentation();
-            if (presentation != null)
-                presentation.init(this, getMemento(memento,
-                    IIntroConstants.MEMENTO_PRESENTATION_TAG));
+				PlatformUI.getPreferenceStore().setValue(
+						IWorkbenchPreferenceConstants.SHOW_INTRO, true);
+				memento = null;
+			}
+			// we have a valid config contribution, get presentation. Make sure
+			// you pass correct memento.
+			presentation = model.getPresentation();
+			if (presentation != null)
+				presentation.init(this, getMemento(memento,
+					IIntroConstants.MEMENTO_PRESENTATION_TAG));
 
-            // standby part is not created here for performance.
+			// standby part is not created here for performance.
 
-            // cache memento, and detemine if we have a cached standby part.
-            this.memento = memento;
-            restoreStandby = needToRestoreStandby(memento);
+			// cache memento, and detemine if we have a cached standby part.
+			this.memento = memento;
+			restoreStandby = needToRestoreStandby(memento);
 
-            // add the registry listerner for dynamic awarness.
-            Platform.getExtensionRegistry().addRegistryChangeListener(this,
-                IIntroConstants.PLUGIN_ID);
-        }
+			// add the registry listerner for dynamic awarness.
+			Platform.getExtensionRegistry().addRegistryChangeListener(this,
+				IIntroConstants.PLUGIN_ID);
+		}
 
-        if (model == null || !model.hasValidConfig())
-            DialogUtil.displayErrorMessage(site.getShell(),
-                Messages.CustomizableIntroPart_configNotFound,
-                new Object[] { ModelLoaderUtil.getLogString(
-                    getConfigurationElement(), null) }, null);
+		if (model == null || !model.hasValidConfig())
+			DialogUtil.displayErrorMessage(site.getShell(),
+				Messages.CustomizableIntroPart_configNotFound,
+				new Object[] { ModelLoaderUtil.getLogString(
+					getConfigurationElement(), null) }, null);
 
-    }
+	}
 
-    /**
-     * Creates the UI based on how the InroPart has been configured.
-     *
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    @Override
+	/**
+	 * Creates the UI based on how the InroPart has been configured.
+	 *
+	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
 	public void createPartControl(Composite parent) {
-        container = new Composite(parent, SWT.NULL);
-        StackLayout layout = new StackLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        container.setLayout(layout);
+		container = new Composite(parent, SWT.NULL);
+		StackLayout layout = new StackLayout();
+		layout.marginHeight = 0;
+		layout.marginWidth = 0;
+		container.setLayout(layout);
 
-        if (model != null && model.hasValidConfig()) {
-            presentation.createPartControl(container);
-            // do not create the standby part here for performance.
-        }
+		if (model != null && model.hasValidConfig()) {
+			presentation.createPartControl(container);
+			// do not create the standby part here for performance.
+		}
 
-        if (Log.logPerformance) {
-            PerformanceStats stats = PerformanceStats.getStats(
-                IIntroConstants.PERF_UI_ZOOM, IIntroConstants.INTRO);
-            stats.startRun();
-        }
+		if (Log.logPerformance) {
+			PerformanceStats stats = PerformanceStats.getStats(
+				IIntroConstants.PERF_UI_ZOOM, IIntroConstants.INTRO);
+			stats.startRun();
+		}
 
-    }
+	}
 
 
 
 
-    /**
-     * Determine if we need to recreate a standby part. Return true if we have a
-     * standby part memento that is not for the empty part AND stangby memento
-     * has been tagged for restore, ie: it was open when workbench closed.
-     *
-     * @param memento
-     * @return <code>true</code> if we need to recreate a standby part
-     */
-    private boolean needToRestoreStandby(IMemento memento) {
-        // If we have a standby memento, it means we closed with standby open,
-        // and so recreate it.
-        IMemento standbyMemento = getMemento(memento, IIntroConstants.MEMENTO_STANDBY_PART_TAG);
-        if (standbyMemento == null)
-            return false;
-        String restore = standbyMemento.getString(IIntroConstants.MEMENTO_RESTORE_ATT);
-        if (restore == null)
-            return false;
-        String cachedStandbyPart = standbyMemento
-            .getString(IIntroConstants.MEMENTO_STANDBY_CONTENT_PART_ID_ATT);
-        if (cachedStandbyPart != null
-                && cachedStandbyPart.equals(IIntroConstants.EMPTY_STANDBY_CONTENT_PART))
-            return false;
+	/**
+	 * Determine if we need to recreate a standby part. Return true if we have a
+	 * standby part memento that is not for the empty part AND stangby memento
+	 * has been tagged for restore, ie: it was open when workbench closed.
+	 *
+	 * @param memento
+	 * @return <code>true</code> if we need to recreate a standby part
+	 */
+	private boolean needToRestoreStandby(IMemento memento) {
+		// If we have a standby memento, it means we closed with standby open,
+		// and so recreate it.
+		IMemento standbyMemento = getMemento(memento, IIntroConstants.MEMENTO_STANDBY_PART_TAG);
+		if (standbyMemento == null)
+			return false;
+		String restore = standbyMemento.getString(IIntroConstants.MEMENTO_RESTORE_ATT);
+		if (restore == null)
+			return false;
+		String cachedStandbyPart = standbyMemento
+			.getString(IIntroConstants.MEMENTO_STANDBY_CONTENT_PART_ID_ATT);
+		if (cachedStandbyPart != null
+				&& cachedStandbyPart.equals(IIntroConstants.EMPTY_STANDBY_CONTENT_PART))
+			return false;
 
-        return cachedStandbyPart != null ? true : false;
-    }
+		return cachedStandbyPart != null ? true : false;
+	}
 
-    /*
-     * Handled state changes. Recreates the standby part if workbench was shut
-     * down with one.
-     *
-     * @see org.eclipse.ui.IIntroPart#standbyStateChanged(boolean)
-     */
-    @Override
+	/*
+	 * Handled state changes. Recreates the standby part if workbench was shut
+	 * down with one.
+	 *
+	 * @see org.eclipse.ui.IIntroPart#standbyStateChanged(boolean)
+	 */
+	@Override
 	public void standbyStateChanged(boolean standby) {
 
-        // do this only if there is a valid config.
-        if (model == null || !model.hasValidConfig())
-            return;
+		// do this only if there is a valid config.
+		if (model == null || !model.hasValidConfig())
+			return;
 
-        if (!standby)
-            // we started of not in standby, no need to restore standby.
-            restoreStandby = false;
+		if (!standby)
+			// we started of not in standby, no need to restore standby.
+			restoreStandby = false;
 
-        boolean isStandbyPartNeeded = isStandbyPartNeeded();
-        isStandbyPartNeeded = isStandbyPartNeeded | restoreStandby;
+		boolean isStandbyPartNeeded = isStandbyPartNeeded();
+		isStandbyPartNeeded = isStandbyPartNeeded | restoreStandby;
 
-        try {
+		try {
 			if (standbyPart == null && standby && isStandbyPartNeeded)
-			    // if standby part is not created yet, create it only if in
-			    // standby, and we need to.
-			    createStandbyPart();
+				// if standby part is not created yet, create it only if in
+				// standby, and we need to.
+				createStandbyPart();
 
 			handleSetFocus(isStandbyPartNeeded);
 			setTopControl(isStandbyPartNeeded ? getStandbyControl()
-			        : getPresentationControl());
+					: getPresentationControl());
 			// triger state change in presentation to enable/disable toobar
 			// actions. For this, we need to disable actions as long as we are in
 			// standby, or we need to show standby part.
@@ -278,177 +278,177 @@
 		} catch (RuntimeException e) {
 			Log.error("Exception thrown in intro", e); //$NON-NLS-1$
 		}
-    }
+	}
 
-    /**
-     * Returns true if we need to show the standby part. False in all other
-     * cases. This basically overrides the workbench behavior of Standby/normal
-     * states. The design here is that if the showStandbyPart flag is set, then
-     * we always need to show the standby part.
-     *
-     * @return <code>true</code> if we need to show the standby part
-     */
-    private boolean isStandbyPartNeeded() {
-        return container.getData(IIntroConstants.SHOW_STANDBY_PART) == null ? false : true;
-    }
+	/**
+	 * Returns true if we need to show the standby part. False in all other
+	 * cases. This basically overrides the workbench behavior of Standby/normal
+	 * states. The design here is that if the showStandbyPart flag is set, then
+	 * we always need to show the standby part.
+	 *
+	 * @return <code>true</code> if we need to show the standby part
+	 */
+	private boolean isStandbyPartNeeded() {
+		return container.getData(IIntroConstants.SHOW_STANDBY_PART) == null ? false : true;
+	}
 
-    /*
-     * Create standby part. Called only when really needed. We reset the restore
-     * falg, but we need to tag the intro part as needing standby.
-     */
-    private void createStandbyPart() {
-        standbyPart = new StandbyPart(model);
-        standbyPart.init(this, getMemento(memento, IIntroConstants.MEMENTO_STANDBY_PART_TAG));
-        standbyPart.createPartControl((Composite) getControl());
-        restoreStandby = false;
-        container.setData(IIntroConstants.SHOW_STANDBY_PART, "true"); //$NON-NLS-1$
-    }
+	/*
+	 * Create standby part. Called only when really needed. We reset the restore
+	 * falg, but we need to tag the intro part as needing standby.
+	 */
+	private void createStandbyPart() {
+		standbyPart = new StandbyPart(model);
+		standbyPart.init(this, getMemento(memento, IIntroConstants.MEMENTO_STANDBY_PART_TAG));
+		standbyPart.createPartControl((Composite) getControl());
+		restoreStandby = false;
+		container.setData(IIntroConstants.SHOW_STANDBY_PART, "true"); //$NON-NLS-1$
+	}
 
-    private void handleSetFocus(boolean standby) {
-        if (standby) {
-            // standby part is null when Intro has not gone into standby state
-            // yet.
-            if (standbyPart != null)
-                standbyPart.setFocus();
-        } else
-            presentation.setFocus();
-    }
+	private void handleSetFocus(boolean standby) {
+		if (standby) {
+			// standby part is null when Intro has not gone into standby state
+			// yet.
+			if (standbyPart != null)
+				standbyPart.setFocus();
+		} else
+			presentation.setFocus();
+	}
 
-    @Override
+	@Override
 	public void setFocus() {
-        handleSetFocus(IntroPlugin.isIntroStandby());
-    }
+		handleSetFocus(IntroPlugin.isIntroStandby());
+	}
 
-    private void setTopControl(Control c) {
-        // container has stack layout. safe to cast.
-        StackLayout layout = (StackLayout) container.getLayout();
-        layout.topControl = c;
-        container.layout();
-    }
+	private void setTopControl(Control c) {
+		// container has stack layout. safe to cast.
+		StackLayout layout = (StackLayout) container.getLayout();
+		layout.topControl = c;
+		container.layout();
+	}
 
-    private Control getPresentationControl() {
-        return container.getChildren()[0];
-    }
+	private Control getPresentationControl() {
+		return container.getChildren()[0];
+	}
 
-    private Control getStandbyControl() {
-        // the Container top control may have only one child if the standby
-        // part is not created yet. This happens if the intro never goes into
-        // standby. Doing this for performance.
-        if (standbyPart != null)
-            return container.getChildren()[1];
-        return null;
-    }
+	private Control getStandbyControl() {
+		// the Container top control may have only one child if the standby
+		// part is not created yet. This happens if the intro never goes into
+		// standby. Doing this for performance.
+		if (standbyPart != null)
+			return container.getChildren()[1];
+		return null;
+	}
 
-    IntroPartPresentation getPresentation() {
-        return presentation;
-    }
+	IntroPartPresentation getPresentation() {
+		return presentation;
+	}
 
-    @Override
+	@Override
 	public void dispose() {
-        super.dispose();
-        // call dispose on both parts.
-        if (presentation != null)
-            presentation.dispose();
-        if (standbyPart != null)
-            standbyPart.dispose();
-        // clear all loaded models since we are disposing of the Intro Part.
-        IntroPlugin.getDefault().getExtensionPointManager().clear();
-        ContentProviderManager.getInst().clear();
-        // clean platform adapter.
-        Platform.getAdapterManager().unregisterAdapters(factory,
-            CustomizableIntroPart.class);
-        if (model != null && model.hasValidConfig())
-            Platform.getExtensionRegistry().removeRegistryChangeListener(this);
+		super.dispose();
+		// call dispose on both parts.
+		if (presentation != null)
+			presentation.dispose();
+		if (standbyPart != null)
+			standbyPart.dispose();
+		// clear all loaded models since we are disposing of the Intro Part.
+		IntroPlugin.getDefault().getExtensionPointManager().clear();
+		ContentProviderManager.getInst().clear();
+		// clean platform adapter.
+		Platform.getAdapterManager().unregisterAdapters(factory,
+			CustomizableIntroPart.class);
+		if (model != null && model.hasValidConfig())
+			Platform.getExtensionRegistry().removeRegistryChangeListener(this);
 
-    }
+	}
 
-    /**
-     * @return Returns the standbyPart.
-     */
-    StandbyPart getStandbyPart() {
-        return standbyPart;
-    }
+	/**
+	 * @return Returns the standbyPart.
+	 */
+	StandbyPart getStandbyPart() {
+		return standbyPart;
+	}
 
-    /**
-     * Returns the primary control associated with this Intro part.
-     *
-     * @return the SWT control which displays this Intro part's content, or
-     *         <code>null</code> if this standby part's controls have not yet
-     *         been created.
-     */
-    public Control getControl() {
-        return container;
-    }
+	/**
+	 * Returns the primary control associated with this Intro part.
+	 *
+	 * @return the SWT control which displays this Intro part's content, or
+	 *         <code>null</code> if this standby part's controls have not yet
+	 *         been created.
+	 */
+	public Control getControl() {
+		return container;
+	}
 
-    @Override
+	@Override
 	public void saveState(IMemento memento) {
-        // give presentation and standby part there own children to create a
-        // name space for each. But save either the presentation or the standby
-        // part as needing to be restored. This way if we close with a standby
-        // mode, we dont get the cached standby part.
+		// give presentation and standby part there own children to create a
+		// name space for each. But save either the presentation or the standby
+		// part as needing to be restored. This way if we close with a standby
+		// mode, we dont get the cached standby part.
 
-        // Find out if presentation or standby is at the top and restore
-        // them. Container has stack layout. safe to cast.
-        boolean restorePresentation = false;
-        StackLayout layout = (StackLayout) container.getLayout();
-        if (getPresentationControl().equals(layout.topControl))
-            restorePresentation = true;
+		// Find out if presentation or standby is at the top and restore
+		// them. Container has stack layout. safe to cast.
+		boolean restorePresentation = false;
+		StackLayout layout = (StackLayout) container.getLayout();
+		if (getPresentationControl().equals(layout.topControl))
+			restorePresentation = true;
 
-        IMemento presentationMemento = memento
-            .createChild(IIntroConstants.MEMENTO_PRESENTATION_TAG);
-        IMemento standbyPartMemento = memento
-            .createChild(IIntroConstants.MEMENTO_STANDBY_PART_TAG);
-        if (restorePresentation)
-            presentationMemento.putString(IIntroConstants.MEMENTO_RESTORE_ATT, "true"); //$NON-NLS-1$
-        else
-            standbyPartMemento.putString(IIntroConstants.MEMENTO_RESTORE_ATT, "true"); //$NON-NLS-1$
-        if (presentation != null)
-            presentation.saveState(presentationMemento);
-        if (standbyPart != null)
-            standbyPart.saveState(standbyPartMemento);
-    }
+		IMemento presentationMemento = memento
+			.createChild(IIntroConstants.MEMENTO_PRESENTATION_TAG);
+		IMemento standbyPartMemento = memento
+			.createChild(IIntroConstants.MEMENTO_STANDBY_PART_TAG);
+		if (restorePresentation)
+			presentationMemento.putString(IIntroConstants.MEMENTO_RESTORE_ATT, "true"); //$NON-NLS-1$
+		else
+			standbyPartMemento.putString(IIntroConstants.MEMENTO_RESTORE_ATT, "true"); //$NON-NLS-1$
+		if (presentation != null)
+			presentation.saveState(presentationMemento);
+		if (standbyPart != null)
+			standbyPart.saveState(standbyPartMemento);
+	}
 
-    private IMemento getMemento(IMemento memento, String key) {
-        if (memento == null)
-            return null;
-        return memento.getChild(key);
-    }
+	private IMemento getMemento(IMemento memento, String key) {
+		if (memento == null)
+			return null;
+		return memento.getChild(key);
+	}
 
-    /**
-     * Support dynamic awarness.
-     *
-     * @see org.eclipse.core.runtime.IRegistryChangeListener#registryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
-     */
-    @Override
+	/**
+	 * Support dynamic awarness.
+	 *
+	 * @see org.eclipse.core.runtime.IRegistryChangeListener#registryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
+	 */
+	@Override
 	public void registryChanged(final IRegistryChangeEvent event) {
-        // Clear cached models first, then update UI by delegating to
-        // implementation. wrap in synchExec because notification is
-        // asynchronous. The design here is that the notification is centralized
-        // here, then this event propagates and each receiving class reacts
-        // accordingly.
-        Display.getDefault().syncExec(() -> {
-		    String currentPageId = model.getCurrentPageId();
-		    // clear model, including content providers.
-		    ExtensionPointManager.getInst().clear();
-		    ContentProviderManager.getInst().clear();
-		    // refresh to new model.
-		    model = ExtensionPointManager.getInst().getCurrentModel();
-		    // reuse existing presentation, since we just nulled it.
-		    model.setPresentation(getPresentation());
-		    // keep same page on refresh. No need for notification here.
-		    model.setCurrentPageId(currentPageId, false);
-		    if (getPresentation() != null)
-		        getPresentation().registryChanged(event);
+		// Clear cached models first, then update UI by delegating to
+		// implementation. wrap in synchExec because notification is
+		// asynchronous. The design here is that the notification is centralized
+		// here, then this event propagates and each receiving class reacts
+		// accordingly.
+		Display.getDefault().syncExec(() -> {
+			String currentPageId = model.getCurrentPageId();
+			// clear model, including content providers.
+			ExtensionPointManager.getInst().clear();
+			ContentProviderManager.getInst().clear();
+			// refresh to new model.
+			model = ExtensionPointManager.getInst().getCurrentModel();
+			// reuse existing presentation, since we just nulled it.
+			model.setPresentation(getPresentation());
+			// keep same page on refresh. No need for notification here.
+			model.setCurrentPageId(currentPageId, false);
+			if (getPresentation() != null)
+				getPresentation().registryChanged(event);
 
 		});
 
-    }
+	}
 
-    /*
-     * Internal test hook (Non-API).
-     */
-    public boolean internal_isFinishedLoading() {
-    	BrowserIntroPartImplementation impl = (BrowserIntroPartImplementation)presentation.getIntroPartImplementation();
-    	return impl.isFinishedLoading();
-    }
+	/*
+	 * Internal test hook (Non-API).
+	 */
+	public boolean internal_isFinishedLoading() {
+		BrowserIntroPartImplementation impl = (BrowserIntroPartImplementation)presentation.getIntroPartImplementation();
+		return impl.isFinishedLoading();
+	}
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroAction.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroAction.java
index c993d71..85f8ffe 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroAction.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroAction.java
@@ -29,13 +29,13 @@
  */
 public interface IIntroAction {
 
-    /**
-     * Called to run this intro command. The properties represents the key=value
-     * pairs extracted from the intro URL query.
-     *
-     * @param site The part to execute the command on.
-     * @param params Parameters for the command as extracted from the URL.
-     */
-    public void run(IIntroSite site, Properties params);
+	/**
+	 * Called to run this intro command. The properties represents the key=value
+	 * pairs extracted from the intro URL query.
+	 *
+	 * @param site The part to execute the command on.
+	 * @param params Parameters for the command as extracted from the URL.
+	 */
+	public void run(IIntroSite site, Properties params);
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProvider.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProvider.java
index 7241f57..bb70314 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProvider.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProvider.java
@@ -65,52 +65,52 @@
  * @since 3.0.1
  */
 public interface IIntroContentProvider {
-    /**
-     * Initializes the content provider. An IIntroContentProviderSite is passed,
-     * which will be called on to recompute or layout the content when the
-     * content becomes stale.
-     *
-     * @param site
-     *            the site of this IIntroContentProvider
-     */
-    public void init(IIntroContentProviderSite site);
+	/**
+	 * Initializes the content provider. An IIntroContentProviderSite is passed,
+	 * which will be called on to recompute or layout the content when the
+	 * content becomes stale.
+	 *
+	 * @param site
+	 *            the site of this IIntroContentProvider
+	 */
+	public void init(IIntroContentProviderSite site);
 
 
-    /**
-     * Creates HTML content in the provided PrintWriter. This content will be
-     * included in the generated HTML page when embedded HTML widget is used to
-     * render intro content.
-     *
-     * @param id
-     *            the unique identifier of the content element. The same content
-     *            provider class can be reused for several elements and the id
-     *            can be used to tell them apart.
-     * @param out
-     *            the output print writer to generate HTML content into
-     */
-    public void createContent(String id, PrintWriter out);
+	/**
+	 * Creates HTML content in the provided PrintWriter. This content will be
+	 * included in the generated HTML page when embedded HTML widget is used to
+	 * render intro content.
+	 *
+	 * @param id
+	 *            the unique identifier of the content element. The same content
+	 *            provider class can be reused for several elements and the id
+	 *            can be used to tell them apart.
+	 * @param out
+	 *            the output print writer to generate HTML content into
+	 */
+	public void createContent(String id, PrintWriter out);
 
-    /**
-     * Creates SWT content in the provided Composite. This method is called when
-     * Eclipse Forms are used to render intro content.
-     *
-     * @param id
-     *            the unique identifier of the content element
-     * @param parent
-     *            the parent composite that should be used when creating SWT
-     *            widgets
-     * @param toolkit
-     *            the form toolkit that should be used when creating new widgets
-     */
-    public void createContent(String id, Composite parent, FormToolkit toolkit);
+	/**
+	 * Creates SWT content in the provided Composite. This method is called when
+	 * Eclipse Forms are used to render intro content.
+	 *
+	 * @param id
+	 *            the unique identifier of the content element
+	 * @param parent
+	 *            the parent composite that should be used when creating SWT
+	 *            widgets
+	 * @param toolkit
+	 *            the form toolkit that should be used when creating new widgets
+	 */
+	public void createContent(String id, Composite parent, FormToolkit toolkit);
 
 
-    /**
-     * Dispose of the ContentProvider. This will only be called when the Intro
-     * view is closed. In other words, the content provider will not be disposed
-     * of until the last possible minute. This gives the implementor the chance
-     * to cache content and avoid regenerating content on every page switch.
-     */
-    public void dispose();
+	/**
+	 * Dispose of the ContentProvider. This will only be called when the Intro
+	 * view is closed. In other words, the content provider will not be disposed
+	 * of until the last possible minute. This gives the implementor the chance
+	 * to cache content and avoid regenerating content on every page switch.
+	 */
+	public void dispose();
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProviderSite.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProviderSite.java
index d2caa2a..000d95a 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProviderSite.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProviderSite.java
@@ -28,19 +28,19 @@
  * @noextend This interface is not intended to be extended by clients.
  */
 public interface IIntroContentProviderSite {
-    /**
-     * This method will be called when the IIntroContentProvider is notified
-     * that its content has become stale. For an HTML presentation, the whole
-     * page should be regenerated. An SWT presentation should cause the page's
-     * layout to be updated.
-     *
-     * @param provider
-     *            the content provider that requests a reflow
-     * @param incremental
-     *            if <code>true</code>, an attempt should be made to
-     *            incrementally reflow the page. Otherwise, the page should be
-     *            recreated from scratch. This is just a hint and the
-     *            implementation of the interface can ignore it.
-     */
-    public void reflow(IIntroContentProvider provider, boolean incremental);
+	/**
+	 * This method will be called when the IIntroContentProvider is notified
+	 * that its content has become stale. For an HTML presentation, the whole
+	 * page should be regenerated. An SWT presentation should cause the page's
+	 * layout to be updated.
+	 *
+	 * @param provider
+	 *            the content provider that requests a reflow
+	 * @param incremental
+	 *            if <code>true</code>, an attempt should be made to
+	 *            incrementally reflow the page. Otherwise, the page should be
+	 *            recreated from scratch. This is just a hint and the
+	 *            implementation of the interface can ignore it.
+	 */
+	public void reflow(IIntroContentProvider provider, boolean incremental);
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroURL.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroURL.java
index 2171977..bda1d24 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroURL.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroURL.java
@@ -45,26 +45,26 @@
  */
 public interface IIntroURL {
 
-    /**
-     * Executes whatever valid Intro command is embedded in this Intro URL.
-     * Returns true if action succeeded, and false otherwise.
-     *
-     */
-    public boolean execute();
+	/**
+	 * Executes whatever valid Intro command is embedded in this Intro URL.
+	 * Returns true if action succeeded, and false otherwise.
+	 *
+	 */
+	public boolean execute();
 
-    /**
-     * @return Returns the command imbedded in this URL.
-     */
-    public String getAction();
+	/**
+	 * @return Returns the command imbedded in this URL.
+	 */
+	public String getAction();
 
-    /**
-     * Return a parameter defined in the Intro URL. Returns null if the
-     * parameter is not defined.
-     *
-     * @param parameterId
-     *            the id of the parameter being requested
-     * @return the value of the parameter, or <code>null</code> if the
-     *         parameter is not defined
-     */
-    public String getParameter(String parameterId);
+	/**
+	 * Return a parameter defined in the Intro URL. Returns null if the
+	 * parameter is not defined.
+	 *
+	 * @param parameterId
+	 *            the id of the parameter being requested
+	 * @return the value of the parameter, or <code>null</code> if the
+	 *         parameter is not defined
+	 */
+	public String getParameter(String parameterId);
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroXHTMLContentProvider.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroXHTMLContentProvider.java
index 68367e9..fd227ea 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroXHTMLContentProvider.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroXHTMLContentProvider.java
@@ -24,34 +24,34 @@
  */
 public interface IIntroXHTMLContentProvider extends IIntroContentProvider {
 
-    /**
-     * Create XHTML content in the provided parent DOM Element. A typical usage
-     * for this method would be: <br>
-     *
-     * <br>
-     * <code>
-     * &lt;contentProvider id=&quot;contentProviderId&quot;
-     * class=&quot;xx.yy.IntroContentProvider&quot;
-     * pluginId=&quot;xx.yy.id&quot;/&gt; <br></code> <br>
-     *
-     * A parent DOM Element will be passed to allow for adding dynamic content
-     * by manipulating the Java XML DOM for the XHTML file. A div is created
-     * with an id equal to the id specified in the contentProvider element, and
-     * is passed as the parent. In the above example, the DOM element
-     * representing a div with id=myContentProviderDivId would be the parent
-     * passed.
-     *
-     * @param id
-     *            the unique identifier of the content element. The same content
-     *            provider class can be reused for several elements and the id
-     *            can be used to tell them apart.
-     *
-     * @param parent
-     *            the parent xml Element where dynamic content will be added as
-     *            children.
-     *
-     */
-    public void createContent(String id, Element parent);
+	/**
+	 * Create XHTML content in the provided parent DOM Element. A typical usage
+	 * for this method would be: <br>
+	 *
+	 * <br>
+	 * <code>
+	 * &lt;contentProvider id=&quot;contentProviderId&quot;
+	 * class=&quot;xx.yy.IntroContentProvider&quot;
+	 * pluginId=&quot;xx.yy.id&quot;/&gt; <br></code> <br>
+	 *
+	 * A parent DOM Element will be passed to allow for adding dynamic content
+	 * by manipulating the Java XML DOM for the XHTML file. A div is created
+	 * with an id equal to the id specified in the contentProvider element, and
+	 * is passed as the parent. In the above example, the DOM element
+	 * representing a div with id=myContentProviderDivId would be the parent
+	 * passed.
+	 *
+	 * @param id
+	 *            the unique identifier of the content element. The same content
+	 *            provider class can be reused for several elements and the id
+	 *            can be used to tell them apart.
+	 *
+	 * @param parent
+	 *            the parent xml Element where dynamic content will be added as
+	 *            children.
+	 *
+	 */
+	public void createContent(String id, Element parent);
 
 
 
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IStandbyContentPart.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IStandbyContentPart.java
index df70184..5bf08fd 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IStandbyContentPart.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IStandbyContentPart.java
@@ -44,92 +44,92 @@
  */
 public interface IStandbyContentPart {
 
-    /**
-     * Creates the SWT controls for this standby part.
-     * <p>
-     * Clients should not call this method. The intro framework calls this
-     * method when it needs to.
-     *
-     * @param parent
-     *            the parent control
-     * @param toolkit
-     *            the form toolkit being used by the IIntroPart implementation
-     */
-    public void createPartControl(Composite parent, FormToolkit toolkit);
+	/**
+	 * Creates the SWT controls for this standby part.
+	 * <p>
+	 * Clients should not call this method. The intro framework calls this
+	 * method when it needs to.
+	 *
+	 * @param parent
+	 *            the parent control
+	 * @param toolkit
+	 *            the form toolkit being used by the IIntroPart implementation
+	 */
+	public void createPartControl(Composite parent, FormToolkit toolkit);
 
-    /**
-     * Returns the primary control associated with this standby part. The
-     * control is typically set during the createPartControl() call when this
-     * part is being created.
-     *
-     * @return the SWT control which displays this standby part's content, or
-     *         <code>null</code> if this standby part's controls have not yet
-     *         been created.
-     */
-    public Control getControl();
+	/**
+	 * Returns the primary control associated with this standby part. The
+	 * control is typically set during the createPartControl() call when this
+	 * part is being created.
+	 *
+	 * @return the SWT control which displays this standby part's content, or
+	 *         <code>null</code> if this standby part's controls have not yet
+	 *         been created.
+	 */
+	public Control getControl();
 
-    /**
-     * Initializes this intro standby content part with the given intro site. A
-     * memento is passed to the part which contains a snapshot of the part state
-     * from a previous session. Where possible, the part should try to recreate
-     * that state.
-     * <p>
-     * This method is automatically called by the workbench shortly after part
-     * construction. It marks the start of this parts' lifecycle. Clients must
-     * not call this method.
-     * </p>
-     *
-     * @param introPart
-     *            the intro part hosting this stanndby content part.
-     * @param memento
-     *            this part state or <code>null</code> if there is no previous
-     *            saved state
-     * @exception PartInitException
-     *                if this part was not initialized successfully.
-     */
-    public void init(IIntroPart introPart, IMemento memento)
-            throws PartInitException;
+	/**
+	 * Initializes this intro standby content part with the given intro site. A
+	 * memento is passed to the part which contains a snapshot of the part state
+	 * from a previous session. Where possible, the part should try to recreate
+	 * that state.
+	 * <p>
+	 * This method is automatically called by the workbench shortly after part
+	 * construction. It marks the start of this parts' lifecycle. Clients must
+	 * not call this method.
+	 * </p>
+	 *
+	 * @param introPart
+	 *            the intro part hosting this stanndby content part.
+	 * @param memento
+	 *            this part state or <code>null</code> if there is no previous
+	 *            saved state
+	 * @exception PartInitException
+	 *                if this part was not initialized successfully.
+	 */
+	public void init(IIntroPart introPart, IMemento memento)
+			throws PartInitException;
 
-    /**
-     * Sets the input to show in this standby part. Note that input can be null,
-     * such as when the part if created through an Intro URL that does not have
-     * an input specified, or when this standby part is being recreated from a
-     * previous workbench session. In this case, the standby part is responsible
-     * for handling a null input, and recreating itself from a cached IMemento.
-     *
-     * @param input
-     *            the input object to be used by this standby part.
-     */
-    public void setInput(Object input);
+	/**
+	 * Sets the input to show in this standby part. Note that input can be null,
+	 * such as when the part if created through an Intro URL that does not have
+	 * an input specified, or when this standby part is being recreated from a
+	 * previous workbench session. In this case, the standby part is responsible
+	 * for handling a null input, and recreating itself from a cached IMemento.
+	 *
+	 * @param input
+	 *            the input object to be used by this standby part.
+	 */
+	public void setInput(Object input);
 
-    /**
-     * Asks this standby part to take focus.
-     * <p>
-     * Clients should not call this method (the intro framework calls this
-     * method at appropriate times).
-     * </p>
-     */
-    public void setFocus();
+	/**
+	 * Asks this standby part to take focus.
+	 * <p>
+	 * Clients should not call this method (the intro framework calls this
+	 * method at appropriate times).
+	 * </p>
+	 */
+	public void setFocus();
 
-    /**
-     * Disposes of this standby part.
-     * <p>
-     * Clients should not call this method. The intro framework calls this
-     * method when the Customizable IntroPart is closed.
-     * </p>
-     */
-    public void dispose();
+	/**
+	 * Disposes of this standby part.
+	 * <p>
+	 * Clients should not call this method. The intro framework calls this
+	 * method when the Customizable IntroPart is closed.
+	 * </p>
+	 */
+	public void dispose();
 
-    /**
-     * Saves the object state within a memento.
-     * <p>
-     * This method is automatically called by the workbench at appropriate
-     * times. Clients must not call this method directly.
-     * </p>
-     *
-     * @param memento
-     *            a memento to receive the object state
-     */
-    public void saveState(IMemento memento);
+	/**
+	 * Saves the object state within a memento.
+	 * <p>
+	 * This method is automatically called by the workbench at appropriate
+	 * times. Clients must not call this method directly.
+	 * </p>
+	 *
+	 * @param memento
+	 *            a memento to receive the object state
+	 */
+	public void saveState(IMemento memento);
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroURLFactory.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroURLFactory.java
index 16b73af..654152c 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroURLFactory.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroURLFactory.java
@@ -31,44 +31,44 @@
  */
 public final class IntroURLFactory {
 
-    /**
-     * Non-instantiable.
-     */
-    private IntroURLFactory() {
-        // do nothing
-    }
+	/**
+	 * Non-instantiable.
+	 */
+	private IntroURLFactory() {
+		// do nothing
+	}
 
 
-    /**
-     * Parses the given string, and returns an IntroURL if the string is a valid
-     * Intro URL. Returns null in all other cases. Example usage:
-     *
-     * <pre>
-     * StringBuilder url = new StringBuilder();
-     * url.append(&quot;http://org.eclipse.ui.intro/showStandby?&quot;);
-     * url.append(&quot;pluginId=org.eclipse.pde.ui&quot;);
-     * url.append(&quot;&amp;&quot;);
-     * url.append(&quot;partId=org.eclipse.pde.ui.sampleStandbyPart&quot;);
-     * url.append(&quot;&amp;&quot;);
-     * url.append(&quot;input=&quot;);
-     * url.append(sampleId);
-     * IIntroURL introURL = IntroURLFactory.createIntroURL(url.toString());
-     * if (introURL != null) {
-     *     introURL.execute();
-     * }
-     * </pre>
-     *
-     * @param url
-     *            the url to construct an IntroURL from
-     * @return an IntroURL, or <code>null</code> if the url is invalid
-     */
-    public static IIntroURL createIntroURL(String url) {
-        IntroURLParser parser = new IntroURLParser(url);
-        if (parser.hasIntroUrl()) {
-            IntroURL introURL = parser.getIntroURL();
-            return introURL;
-        }
-        return null;
-    }
+	/**
+	 * Parses the given string, and returns an IntroURL if the string is a valid
+	 * Intro URL. Returns null in all other cases. Example usage:
+	 *
+	 * <pre>
+	 * StringBuilder url = new StringBuilder();
+	 * url.append(&quot;http://org.eclipse.ui.intro/showStandby?&quot;);
+	 * url.append(&quot;pluginId=org.eclipse.pde.ui&quot;);
+	 * url.append(&quot;&amp;&quot;);
+	 * url.append(&quot;partId=org.eclipse.pde.ui.sampleStandbyPart&quot;);
+	 * url.append(&quot;&amp;&quot;);
+	 * url.append(&quot;input=&quot;);
+	 * url.append(sampleId);
+	 * IIntroURL introURL = IntroURLFactory.createIntroURL(url.toString());
+	 * if (introURL != null) {
+	 *     introURL.execute();
+	 * }
+	 * </pre>
+	 *
+	 * @param url
+	 *            the url to construct an IntroURL from
+	 * @return an IntroURL, or <code>null</code> if the url is invalid
+	 */
+	public static IIntroURL createIntroURL(String url) {
+		IntroURLParser parser = new IntroURLParser(url);
+		if (parser.hasIntroUrl()) {
+			IntroURL introURL = parser.getIntroURL();
+			return introURL;
+		}
+		return null;
+	}
 
 }
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/contentproviders/AlwaysWelcomeCheckbox.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/contentproviders/AlwaysWelcomeCheckbox.java
index 997f59a..78f0d54 100644
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/contentproviders/AlwaysWelcomeCheckbox.java
+++ b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/contentproviders/AlwaysWelcomeCheckbox.java
@@ -83,8 +83,8 @@
 		{
 			out.print(" checked=\"checked\""); //$NON-NLS-1$
 
-	        PlatformUI.getPreferenceStore().setValue(
-	        		IWorkbenchPreferenceConstants.SHOW_INTRO, alwaysShowIntro);
+			PlatformUI.getPreferenceStore().setValue(
+					IWorkbenchPreferenceConstants.SHOW_INTRO, alwaysShowIntro);
 		}
 
 		out.println("/><label for=\"run-action-" + id + "\">"+getText()+"</label></div>");  //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
@@ -96,7 +96,7 @@
 		if (disposed)
 			return;
 
-        boolean alwaysShowIntro = getAlwaysShowIntroPref();
+		boolean alwaysShowIntro = getAlwaysShowIntroPref();
 
 		Button checkBox = new Button(parent,SWT.CHECK);
 		toolkit.adapt(checkBox,false,false);
@@ -112,7 +112,7 @@
 
 		if (alwaysShowIntro)
 			PlatformUI.getPreferenceStore().setValue(
-        		IWorkbenchPreferenceConstants.SHOW_INTRO, alwaysShowIntro);
+				IWorkbenchPreferenceConstants.SHOW_INTRO, alwaysShowIntro);
 	}
 
 	@Override
@@ -141,14 +141,14 @@
 	{
 		// Retrieve current state of IUniversalIntroConst.ALWAYS_SHOW_INTRO, change it, and save it back
 		// to both ALWAYS_SHOW_INTRO and SHOW_INTRO
-        boolean alwaysShowIntro = !getAlwaysShowIntroPref();
+		boolean alwaysShowIntro = !getAlwaysShowIntroPref();
 
-        // local preference store
-        setAlwaysShowIntroPref(alwaysShowIntro);
+		// local preference store
+		setAlwaysShowIntroPref(alwaysShowIntro);
 
-        // workbench preference store
-        PlatformUI.getPreferenceStore().setValue(
-        		IWorkbenchPreferenceConstants.SHOW_INTRO, alwaysShowIntro);
+		// workbench preference store
+		PlatformUI.getPreferenceStore().setValue(
+				IWorkbenchPreferenceConstants.SHOW_INTRO, alwaysShowIntro);
 
 	}