This commit was manufactured by cvs2svn to create branch 'RC1_32_branch'.

Sprout from master 2006-04-12 19:13:19 UTC Curtis D'Entremont <curtispd> 'removed unnecessary dtds'
Delete:
    org.eclipse.help.appserver/.classpath
    org.eclipse.help.appserver/.cvsignore
    org.eclipse.help.appserver/.project
    org.eclipse.help.appserver/META-INF/MANIFEST.MF
    org.eclipse.help.appserver/about.html
    org.eclipse.help.appserver/build.properties
    org.eclipse.help.appserver/plugin.properties
    org.eclipse.help.appserver/plugin.xml
    org.eclipse.help.appserver/preferences.ini
    org.eclipse.help.appserver/schema/server.exsd
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverPlugin.java
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.java
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.properties
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/DevClassPathHelper.java
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/IWebappServer.java
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/PluginClassLoaderWrapper.java
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/WebappManager.java
    org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/package.html
    org.eclipse.help.ui/.classpath
    org.eclipse.help.ui/.cvsignore
    org.eclipse.help.ui/.options
    org.eclipse.help.ui/.project
    org.eclipse.help.ui/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.help.ui/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.help.ui/META-INF/MANIFEST.MF
    org.eclipse.help.ui/about.html
    org.eclipse.help.ui/build.properties
    org.eclipse.help.ui/icons/dlcl16/addbkmrk_co.gif
    org.eclipse.help.ui/icons/dlcl16/openseparate_co.gif
    org.eclipse.help.ui/icons/dlcl16/showcat_co.gif
    org.eclipse.help.ui/icons/dlcl16/showdesc_co.gif
    org.eclipse.help.ui/icons/dtool16/alltopics_co.gif
    org.eclipse.help.ui/icons/dtool16/helpsearch_co.gif
    org.eclipse.help.ui/icons/dtool16/reltopics_co.gif
    org.eclipse.help.ui/icons/elcl16/addbkmrk_co.gif
    org.eclipse.help.ui/icons/elcl16/collapseall.gif
    org.eclipse.help.ui/icons/elcl16/openseparate_co.gif
    org.eclipse.help.ui/icons/elcl16/show_all.gif
    org.eclipse.help.ui/icons/elcl16/show_categories.gif
    org.eclipse.help.ui/icons/elcl16/showcat_co.gif
    org.eclipse.help.ui/icons/elcl16/showdesc_co.gif
    org.eclipse.help.ui/icons/elcl16/synch_toc_nav.gif
    org.eclipse.help.ui/icons/etool16/alltopics_co.gif
    org.eclipse.help.ui/icons/etool16/eclipse.gif
    org.eclipse.help.ui/icons/etool16/help.gif
    org.eclipse.help.ui/icons/etool16/helpsearch_co.gif
    org.eclipse.help.ui/icons/etool16/index_co.gif
    org.eclipse.help.ui/icons/etool16/reltopics_co.gif
    org.eclipse.help.ui/icons/obj16/bookmark_obj.gif
    org.eclipse.help.ui/icons/obj16/bookmarks_view.gif
    org.eclipse.help.ui/icons/obj16/container_obj.gif
    org.eclipse.help.ui/icons/obj16/scopeset_obj.gif
    org.eclipse.help.ui/icons/obj16/searchhit_obj.gif
    org.eclipse.help.ui/icons/obj16/sinfocenter_obj.gif
    org.eclipse.help.ui/icons/obj16/slocalhelp_obj.gif
    org.eclipse.help.ui/icons/obj16/sweb_obj.gif
    org.eclipse.help.ui/icons/obj16/toc_closed.gif
    org.eclipse.help.ui/icons/obj16/toc_open.gif
    org.eclipse.help.ui/icons/obj16/topic.gif
    org.eclipse.help.ui/icons/obj16/topic_small.gif
    org.eclipse.help.ui/icons/ovr16/doc_co.gif
    org.eclipse.help.ui/icons/view16/help_view.gif
    org.eclipse.help.ui/icons/wizban/newsearch_wiz.gif
    org.eclipse.help.ui/plugin.properties
    org.eclipse.help.ui/plugin.xml
    org.eclipse.help.ui/schema/searchEngine.exsd
    org.eclipse.help.ui/src/org/eclipse/help/ui/IEngineDescriptor.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopeFactory.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopePage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/RootScopePage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/browser/LaunchURL.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/browser/package.html
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/AppserverPreferencePage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/CloseHelpTrayHandler.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DynamicHelpAction.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ExecuteCommandAction.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpActivitySupport.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIEventLoop.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIPlugin.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkAdapter.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkHandler.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHelpUIConstants.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHyperlinkListener.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/SearchAction.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ShowCapabilitiesPreferenceAction.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/StyledLineWrapper.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/BrowsersPreferencePage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserAdapter.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserFactory.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/IBrowserCloseListener.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetElementLabelProvider.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetTreeContentProvider.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterPage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterSearchScopeFactory.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalHelpPage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalSearchScopeFactory.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchPage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchScopeFactory.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/AbstractOverlayIcon.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/ErrorUtil.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/OverlayIcon.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/AllTopicsPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BookmarksPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BrowserPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/Chevron.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ComboPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpProviderInput.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpSorter.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/DynamicHelpPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptorManager.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeDescriptor.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeWizardPage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/FederatedSearchSorter.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpTray.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpView.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryEntry.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryScopeSet.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HyperlinkTreePart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPartPage.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexTypeinPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/NewEngineWizard.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RelatedTopicsPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RenameDialog.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPartHistory.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceDialog.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceManager.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSet.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetDialog.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetManager.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchResultsPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SeeAlsoPart.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SorterByScore.java
    org.eclipse.help.ui/src/org/eclipse/help/ui/internal/xhtml/UIContentFilterProcessor.java
    org.eclipse.help.webapp/.classpath
    org.eclipse.help.webapp/.cvsignore
    org.eclipse.help.webapp/.options
    org.eclipse.help.webapp/.project
    org.eclipse.help.webapp/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.help.webapp/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.help.webapp/META-INF/MANIFEST.MF
    org.eclipse.help.webapp/WEB-INF/.cvsignore
    org.eclipse.help.webapp/WEB-INF/lib/.cvsignore
    org.eclipse.help.webapp/WEB-INF/web.xml
    org.eclipse.help.webapp/about.html
    org.eclipse.help.webapp/advanced/advanced.jsp
    org.eclipse.help.webapp/advanced/askShowAll.jsp
    org.eclipse.help.webapp/advanced/banner.html
    org.eclipse.help.webapp/advanced/bookmarksToolbar.jsp
    org.eclipse.help.webapp/advanced/bookmarksView.jsp
    org.eclipse.help.webapp/advanced/confirm.jsp
    org.eclipse.help.webapp/advanced/confirmShowAll.jsp
    org.eclipse.help.webapp/advanced/content.jsp
    org.eclipse.help.webapp/advanced/contentActions.js
    org.eclipse.help.webapp/advanced/contentToolbar.jsp
    org.eclipse.help.webapp/advanced/err.jsp
    org.eclipse.help.webapp/advanced/fheader.jsp
    org.eclipse.help.webapp/advanced/header.jsp
    org.eclipse.help.webapp/advanced/help.jsp
    org.eclipse.help.webapp/advanced/highlight.js
    org.eclipse.help.webapp/advanced/images/add_bkmrk.gif
    org.eclipse.help.webapp/advanced/images/back.gif
    org.eclipse.help.webapp/advanced/images/bookmark_rem.gif
    org.eclipse.help.webapp/advanced/images/bookmark_remall.gif
    org.eclipse.help.webapp/advanced/images/container_obj.gif
    org.eclipse.help.webapp/advanced/images/d_topic.gif
    org.eclipse.help.webapp/advanced/images/e_add_bkmrk.gif
    org.eclipse.help.webapp/advanced/images/e_back.gif
    org.eclipse.help.webapp/advanced/images/e_bookmark_rem.gif
    org.eclipse.help.webapp/advanced/images/e_bookmark_remall.gif
    org.eclipse.help.webapp/advanced/images/e_bookmarks_view.gif
    org.eclipse.help.webapp/advanced/images/e_contents_view.gif
    org.eclipse.help.webapp/advanced/images/e_forward.gif
    org.eclipse.help.webapp/advanced/images/e_index_view.gif
    org.eclipse.help.webapp/advanced/images/e_links_view.gif
    org.eclipse.help.webapp/advanced/images/e_maximize.gif
    org.eclipse.help.webapp/advanced/images/e_print_edit.gif
    org.eclipse.help.webapp/advanced/images/e_restore.gif
    org.eclipse.help.webapp/advanced/images/e_search_results_view.gif
    org.eclipse.help.webapp/advanced/images/e_show_all.gif
    org.eclipse.help.webapp/advanced/images/e_synch_nav.gif
    org.eclipse.help.webapp/advanced/images/e_synch_toc_nav.gif
    org.eclipse.help.webapp/advanced/images/forward.gif
    org.eclipse.help.webapp/advanced/images/help_banner.jpg
    org.eclipse.help.webapp/advanced/images/index_view.gif
    org.eclipse.help.webapp/advanced/images/maximize.gif
    org.eclipse.help.webapp/advanced/images/minus.gif
    org.eclipse.help.webapp/advanced/images/plus.gif
    org.eclipse.help.webapp/advanced/images/print_edit.gif
    org.eclipse.help.webapp/advanced/images/restore.gif
    org.eclipse.help.webapp/advanced/images/show_all.gif
    org.eclipse.help.webapp/advanced/images/synch_nav.gif
    org.eclipse.help.webapp/advanced/images/synch_toc_nav.gif
    org.eclipse.help.webapp/advanced/images/toc_closed.gif
    org.eclipse.help.webapp/advanced/images/toc_open.gif
    org.eclipse.help.webapp/advanced/images/topic.gif
    org.eclipse.help.webapp/advanced/index.jsp
    org.eclipse.help.webapp/advanced/indexList.css
    org.eclipse.help.webapp/advanced/indexList.js
    org.eclipse.help.webapp/advanced/indexList.jsp
    org.eclipse.help.webapp/advanced/indexToolbar.jsp
    org.eclipse.help.webapp/advanced/indexTypein.css
    org.eclipse.help.webapp/advanced/indexTypein.js
    org.eclipse.help.webapp/advanced/indexTypein.jsp
    org.eclipse.help.webapp/advanced/indexView.js
    org.eclipse.help.webapp/advanced/indexView.jsp
    org.eclipse.help.webapp/advanced/linksToolbar.jsp
    org.eclipse.help.webapp/advanced/linksView.jsp
    org.eclipse.help.webapp/advanced/list.css
    org.eclipse.help.webapp/advanced/list.js
    org.eclipse.help.webapp/advanced/livehelp_js.jsp
    org.eclipse.help.webapp/advanced/nav.jsp
    org.eclipse.help.webapp/advanced/navActions.js
    org.eclipse.help.webapp/advanced/search.jsp
    org.eclipse.help.webapp/advanced/searchList.css
    org.eclipse.help.webapp/advanced/searchScoped.jsp
    org.eclipse.help.webapp/advanced/searchSimple.jsp
    org.eclipse.help.webapp/advanced/searchToolbar.jsp
    org.eclipse.help.webapp/advanced/searchView.jsp
    org.eclipse.help.webapp/advanced/tabs.jsp
    org.eclipse.help.webapp/advanced/toc.js
    org.eclipse.help.webapp/advanced/tocFragment.jsp
    org.eclipse.help.webapp/advanced/tocToolbar.jsp
    org.eclipse.help.webapp/advanced/tocView.jsp
    org.eclipse.help.webapp/advanced/toolbar.jsp
    org.eclipse.help.webapp/advanced/tree.css
    org.eclipse.help.webapp/advanced/view.jsp
    org.eclipse.help.webapp/advanced/views.jsp
    org.eclipse.help.webapp/advanced/workingSet.jsp
    org.eclipse.help.webapp/advanced/workingSetManager.jsp
    org.eclipse.help.webapp/basic/advanced.inc
    org.eclipse.help.webapp/basic/err.jsp
    org.eclipse.help.webapp/basic/header.jsp
    org.eclipse.help.webapp/basic/help.jsp
    org.eclipse.help.webapp/basic/images/bookmark_obj.gif
    org.eclipse.help.webapp/basic/images/bookmarks_view.gif
    org.eclipse.help.webapp/basic/images/container_obj.gif
    org.eclipse.help.webapp/basic/images/e_contents_view.gif
    org.eclipse.help.webapp/basic/images/e_index_view.gif
    org.eclipse.help.webapp/basic/images/e_links_view.gif
    org.eclipse.help.webapp/basic/images/e_search_results_view.gif
    org.eclipse.help.webapp/basic/images/e_synch_toc_nav.gif
    org.eclipse.help.webapp/basic/images/synch_toc_nav.gif
    org.eclipse.help.webapp/basic/images/toc_closed.gif
    org.eclipse.help.webapp/basic/images/toc_open.gif
    org.eclipse.help.webapp/basic/images/topic.gif
    org.eclipse.help.webapp/basic/index.jsp
    org.eclipse.help.webapp/basic/indexToolbar.jsp
    org.eclipse.help.webapp/basic/indexView.jsp
    org.eclipse.help.webapp/basic/linksToolbar.jsp
    org.eclipse.help.webapp/basic/linksView.jsp
    org.eclipse.help.webapp/basic/livehelp_js.jsp
    org.eclipse.help.webapp/basic/searchToolbar.jsp
    org.eclipse.help.webapp/basic/searchView.jsp
    org.eclipse.help.webapp/basic/tabs.jsp
    org.eclipse.help.webapp/basic/tocToolbar.jsp
    org.eclipse.help.webapp/basic/tocView.jsp
    org.eclipse.help.webapp/basic/toolbar.jsp
    org.eclipse.help.webapp/basic/view.jsp
    org.eclipse.help.webapp/build.properties
    org.eclipse.help.webapp/build.xml
    org.eclipse.help.webapp/index.jsp
    org.eclipse.help.webapp/plugin.properties
    org.eclipse.help.webapp/plugin.xml
    org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/HelpWebappPlugin.java
    org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java
    org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ActivitiesData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/IndexData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LayoutData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LinksData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ServletResources.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarButton.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/Topic.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/View.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WebappPreferences.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContentServlet.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContextServlet.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ControlServlet.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadOutputStream.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/HighlightFilter.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/IFilter.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/LiveHelpServlet.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/TocServlet.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java
    org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/XMLGenerator.java
    org.eclipse.ui.cheatsheets/.classpath
    org.eclipse.ui.cheatsheets/.cvsignore
    org.eclipse.ui.cheatsheets/.options
    org.eclipse.ui.cheatsheets/.project
    org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF
    org.eclipse.ui.cheatsheets/about.html
    org.eclipse.ui.cheatsheets/build.properties
    org.eclipse.ui.cheatsheets/component.xml
    org.eclipse.ui.cheatsheets/icons/dlcl16/cheatsheet_task.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/collapse_expand_all.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/collapseall.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/complete_task.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/linkto_help.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/restart_all.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/restart_cheatsheet.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/restart_task.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/skip_task.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/start_cheatsheet.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/start_task.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/task_choice.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/task_sequence.gif
    org.eclipse.ui.cheatsheets/icons/dlcl16/task_set.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/collapse_expand_all.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/collapseall.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/complete_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/expandall.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/goto_ccs_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/linkto_help.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/restart_all.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/restart_cheatsheet.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/restart_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/return_to_start.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/review_ccs_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/skip_ccs_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/skip_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/start_ccs_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/start_cheatsheet.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/start_task.gif
    org.eclipse.ui.cheatsheets/icons/elcl16/tree_explorer.gif
    org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_obj.gif
    org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_task.gif
    org.eclipse.ui.cheatsheets/icons/obj16/complete_status.gif
    org.eclipse.ui.cheatsheets/icons/obj16/composite_obj.gif
    org.eclipse.ui.cheatsheets/icons/obj16/information.gif
    org.eclipse.ui.cheatsheets/icons/obj16/skip_status.gif
    org.eclipse.ui.cheatsheets/icons/obj16/task_choice.gif
    org.eclipse.ui.cheatsheets/icons/obj16/task_sequence.gif
    org.eclipse.ui.cheatsheets/icons/obj16/task_set.gif
    org.eclipse.ui.cheatsheets/icons/obj16/warning.gif
    org.eclipse.ui.cheatsheets/icons/ovr16/task_complete.gif
    org.eclipse.ui.cheatsheets/icons/ovr16/task_in_progress.gif
    org.eclipse.ui.cheatsheets/icons/ovr16/task_skipped.gif
    org.eclipse.ui.cheatsheets/icons/view16/cheatsheet_view.gif
    org.eclipse.ui.cheatsheets/plugin.properties
    org.eclipse.ui.cheatsheets/plugin.xml
    org.eclipse.ui.cheatsheets/schema/cheatSheetContent.exsd
    org.eclipse.ui.cheatsheets/schema/cheatSheetContentFileSpec.html
    org.eclipse.ui.cheatsheets/schema/cheatSheetItemExtension.exsd
    org.eclipse.ui.cheatsheets/schema/compositeContentFile.exsd
    org.eclipse.ui.cheatsheets/schema/contentFile.xsd
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/AbstractItemExtensionElement.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetExtensionFactory.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetListener.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetViewerFactory.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetEvent.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetFromHelpAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/package.html
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ActionRunner.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetHistory.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetPlugin.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ICheatSheetResource.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetHelpMenuAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenuAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/IMenuContributor.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/OpenPerspective.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/AbstractOverlayIcon.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/OverlayIcon.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ResetTaskAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/RestartAllAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/SkipAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/StartAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeContentProvider.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeExplorerMenu.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeTaskExplorer.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/EditableTask.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskChoiceCompletionStrategy.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskSetCompletionStrategy.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/CompositeCheatSheetParser.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/EditableTaskParseStrategy.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/IStatusContainer.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ITaskParseStrategy.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/MarkupParser.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/TaskGroupParseStrategy.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CheatsheetTaskEditor.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskEditorManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractExecutable.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractSubItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Action.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetCommand.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParserException.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IActionItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ICheatSheet.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IExecutableItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IParserTags.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IPerformWhenItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Intro.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/SubItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/DialogIntegerValueConverter.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetHandler.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetURLHandler.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenInputDialogHandler.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionSorter.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/RegistryReader.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Sorter.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/ICheatSheetStateManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/TrayStateManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetEvent.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetExpandRestoreAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetHelpPart.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetView.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/IntroItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/NoopAction.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/Page.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/StringDelimitedTokenizer.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/SubItemCompositeHolder.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheet.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheetTask.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/IEditableTask.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ITaskGroup.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskEditor.java
    org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskExplorer.java
    org.eclipse.ui.intro.universal/.classpath
    org.eclipse.ui.intro.universal/.cvsignore
    org.eclipse.ui.intro.universal/.options
    org.eclipse.ui.intro.universal/.project
    org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF
    org.eclipse.ui.intro.universal/about.html
    org.eclipse.ui.intro.universal/build.properties
    org.eclipse.ui.intro.universal/icons/full/elcl16/configure.gif
    org.eclipse.ui.intro.universal/icons/full/obj16/extension_obj.gif
    org.eclipse.ui.intro.universal/icons/full/obj16/icallout_obj.gif
    org.eclipse.ui.intro.universal/icons/full/obj16/ihigh_obj.gif
    org.eclipse.ui.intro.universal/icons/full/obj16/ilow_obj.gif
    org.eclipse.ui.intro.universal/icons/full/obj16/image_obj.gif
    org.eclipse.ui.intro.universal/icons/full/obj16/inew_obj.gif
    org.eclipse.ui.intro.universal/icons/welcome_item.gif
    org.eclipse.ui.intro.universal/introContent.xml
    org.eclipse.ui.intro.universal/plugin.properties
    org.eclipse.ui.intro.universal/plugin.xml
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/BaseData.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizeAction.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionData.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionDataTransfer.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/GroupData.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IUniversalIntroConstants.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IntroData.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.properties
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/PageData.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/SeparatorData.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroConfigurer.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroPlugin.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/WelcomeCustomizationPreferencePage.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/BundleUtil.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/ImageUtil.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/Log.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/StringUtil.java
    org.eclipse.ui.intro.universal/src/org/eclipse/ui/intro/universal/ExtensionFactory.java
    org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/fs_banner.jpg
    org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/mi_banner.jpg
    org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/ov_banner.jpg
    org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/sa_banner.jpg
    org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/tu_banner.jpg
    org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wn_banner.jpg
    org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wr_banner.jpg
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/content_nav_bar.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_bottomhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_midhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_64.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_64.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_midhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_rightedgehov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_64.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_midhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_rightedgehov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_bottomhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_midhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_bottomhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov2.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_64.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_onesample48.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_64.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_64.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_bottomhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_midhov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_tophov.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_32.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_64.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_hover.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/new_obj.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/newhov_obj.gif
    org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/firststeps16.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/migrate16.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/overview16.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/samples16.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/tutorials16.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/webresources16.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/whatsnew16.png
    org.eclipse.ui.intro.universal/themes/circles/graphics/rootpage/welcomebckgrd.jpg
    org.eclipse.ui.intro.universal/themes/circles/html/firststeps.css
    org.eclipse.ui.intro.universal/themes/circles/html/migrate.css
    org.eclipse.ui.intro.universal/themes/circles/html/overview.css
    org.eclipse.ui.intro.universal/themes/circles/html/root.css
    org.eclipse.ui.intro.universal/themes/circles/html/samples.css
    org.eclipse.ui.intro.universal/themes/circles/html/shared.css
    org.eclipse.ui.intro.universal/themes/circles/html/standby.css
    org.eclipse.ui.intro.universal/themes/circles/html/tutorials.css
    org.eclipse.ui.intro.universal/themes/circles/html/webresources.css
    org.eclipse.ui.intro.universal/themes/circles/html/whatsnew.css
    org.eclipse.ui.intro.universal/themes/circles/preview.png
    org.eclipse.ui.intro.universal/themes/circles/swt/firststeps.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/migrate.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/overview.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/root.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/samples.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/standby.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/tutorials.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/webresources.properties
    org.eclipse.ui.intro.universal/themes/circles/swt/whatsnew.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/background.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/backgroundcurve.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/firsteps_wtr.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/migrate_wtr.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/overview_wtr.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/samples_wtr.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section1.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section2.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section3.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section4.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/tutorials_wtr.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/webrsrc_wtr.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/whatsnew_wtr.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/back.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/forward.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/home.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/back.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/forward.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/back.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/forward.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/home.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/wb48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48sel.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew72.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/new_obj.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/newhov_obj.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/firststeps16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/migrate16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/overview.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/samples.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/tutorials.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/webresources16.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/whatsnew.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/background.jpg
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/brandmark.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/dots.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/swt/form_banner.gif
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/firststeps.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/migrate.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/overview.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/root.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/samples.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/shared.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/standby.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/tutorials.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/webresources.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/html/whatsnew.css
    org.eclipse.ui.intro.universal/themes/purpleMesh/preview.png
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/firststeps.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/migrate.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/overview.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/root.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/samples.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/standby.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/tutorials.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/webresources.properties
    org.eclipse.ui.intro.universal/themes/purpleMesh/swt/whatsnew.properties
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/grey_callout.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_high.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_med.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_high.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_med.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_high.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_med.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_high.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_med.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed_hov.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open.gif
    org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open_hov.gif
    org.eclipse.ui.intro.universal/themes/shared/html/shared.css
    org.eclipse.ui.intro/.classpath
    org.eclipse.ui.intro/.cvsignore
    org.eclipse.ui.intro/.options
    org.eclipse.ui.intro/.project
    org.eclipse.ui.intro/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.ui.intro/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.ui.intro/.settings/org.eclipse.pde.prefs
    org.eclipse.ui.intro/META-INF/MANIFEST.MF
    org.eclipse.ui.intro/about.html
    org.eclipse.ui.intro/about_files/copyright-software-19980720.htm
    org.eclipse.ui.intro/build.properties
    org.eclipse.ui.intro/component.xml
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-lat1.ent
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-special.ent
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-symbol.ent
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml.soc
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-frameset.dtd
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-strict.dtd
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-transitional.dtd
    org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1.dcl
    org.eclipse.ui.intro/empty_swt.properties
    org.eclipse.ui.intro/icons/blank.gif
    org.eclipse.ui.intro/icons/container_obj.gif
    org.eclipse.ui.intro/icons/contents_view.gif
    org.eclipse.ui.intro/icons/form_banner.gif
    org.eclipse.ui.intro/icons/full/dlcl16/backward_nav.gif
    org.eclipse.ui.intro/icons/full/dlcl16/forward_nav.gif
    org.eclipse.ui.intro/icons/full/dlcl16/home_nav.gif
    org.eclipse.ui.intro/icons/full/dtool16/restore_welcome.gif
    org.eclipse.ui.intro/icons/full/elcl16/backward_nav.gif
    org.eclipse.ui.intro/icons/full/elcl16/close_view.gif
    org.eclipse.ui.intro/icons/full/elcl16/forward_nav.gif
    org.eclipse.ui.intro/icons/full/elcl16/home_nav.gif
    org.eclipse.ui.intro/icons/full/etool16/restore_welcome.gif
    org.eclipse.ui.intro/icons/help_topic.gif
    org.eclipse.ui.intro/icons/overview_32.gif
    org.eclipse.ui.intro/icons/overview_48.gif
    org.eclipse.ui.intro/icons/topic.gif
    org.eclipse.ui.intro/icons/welcome_item.gif
    org.eclipse.ui.intro/invalidPage/invalidPage.xhtml
    org.eclipse.ui.intro/invalidPage/showerr_tsk.gif
    org.eclipse.ui.intro/javascript/common.js
    org.eclipse.ui.intro/plugin.properties
    org.eclipse.ui.intro/plugin.xml
    org.eclipse.ui.intro/schema/IntroContent.exsd
    org.eclipse.ui.intro/schema/book.css
    org.eclipse.ui.intro/schema/config.exsd
    org.eclipse.ui.intro/schema/configExtension.exsd
    org.eclipse.ui.intro/schema/introContentFileSpec.html
    org.eclipse.ui.intro/schema/schema.css
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IIntroConstants.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IntroPlugin.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.properties
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/FormattedHTMLElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLUtil.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IIntroHTMLConstants.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IntroHTMLGenerator.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractBaseIntroElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroContainer.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroIdElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPage.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPartImplementation.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractTextElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/History.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroAnchor.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroContentProvider.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroExtensionContent.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroGroup.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHTML.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHead.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHomePage.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroImage.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInclude.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInjectedIFrame.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarShortcut.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLink.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroModelRoot.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPage.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPageTitle.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPartPresentation.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSearchParticipant.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSeparator.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroStandbyContentPart.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroText.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroTheme.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroURLAction.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/BaseExtensionPointManager.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ContentProviderManager.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ExtensionPointManager.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/IntroContentParser.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ModelLoaderUtil.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/SharedConfigExtensionsManager.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURL.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURLParser.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/ShowHelpURLHandler.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/BundleUtil.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/FindSupport.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/ModelUtil.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelContentProvider.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelLabelProvider.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/EmptyStandbyContentPart.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/StandbyPart.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartImplementation.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartLocationListener.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/FormIntroPartImplementation.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/IntroLaunchBar.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/TextIntroPartImplementation.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageContentForm.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageForm.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageFormWithNavigation.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageStyleManager.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageWidgetFactory.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/RootPageForm.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/SharedStyleManager.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/DialogUtil.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/ImageUtil.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/IntroModelSerializer.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Log.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/StringUtil.java
    org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Util.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/CustomizableIntroPart.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroAction.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProvider.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProviderSite.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroURL.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroXHTMLContentProvider.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IStandbyContentPart.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroConfigurer.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroElement.java
    org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroURLFactory.java
diff --git a/org.eclipse.help.appserver/.classpath b/org.eclipse.help.appserver/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/org.eclipse.help.appserver/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.help.appserver/.cvsignore b/org.eclipse.help.appserver/.cvsignore
deleted file mode 100644
index 9eceff3..0000000
--- a/org.eclipse.help.appserver/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-build.xml
-appserver.jar
-appserver.jar.bin.log
-org.eclipse.help.appserver_*
-temp.folder
diff --git a/org.eclipse.help.appserver/.project b/org.eclipse.help.appserver/.project
deleted file mode 100644
index f46bd86..0000000
--- a/org.eclipse.help.appserver/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.help.appserver</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.help.appserver/META-INF/MANIFEST.MF b/org.eclipse.help.appserver/META-INF/MANIFEST.MF
deleted file mode 100644
index 298851d..0000000
--- a/org.eclipse.help.appserver/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %appserver_plugin_name
-Bundle-SymbolicName: org.eclipse.help.appserver; singleton:=true
-Bundle-Version: 3.1.100.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.help.internal.appserver.AppserverPlugin
-Bundle-Vendor: %providerName 
-Bundle-Localization: plugin
-Export-Package: org.eclipse.help.internal.appserver;x-friends:="org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.ua.tests,org.eclipse.tomcat"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)"
-Eclipse-LazyStart: true
diff --git a/org.eclipse.help.appserver/about.html b/org.eclipse.help.appserver/about.html
deleted file mode 100644
index e336131..0000000
--- a/org.eclipse.help.appserver/about.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.help.appserver/build.properties b/org.eclipse.help.appserver/build.properties
deleted file mode 100644
index 05091fb..0000000
--- a/org.eclipse.help.appserver/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source..=src/
-src.includes=schema/,about.html
-bin.includes = plugin.xml,\
-               preferences.ini,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               META-INF/
-
diff --git a/org.eclipse.help.appserver/plugin.properties b/org.eclipse.help.appserver/plugin.properties
deleted file mode 100644
index 60b4e38..0000000
--- a/org.eclipse.help.appserver/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-appserver_plugin_name = Help Application Server
-providerName=Eclipse.org
-server = Application Server
-
-
diff --git a/org.eclipse.help.appserver/plugin.xml b/org.eclipse.help.appserver/plugin.xml
deleted file mode 100644
index 40d3183..0000000
--- a/org.eclipse.help.appserver/plugin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension-point id="server" name="%server" schema="schema/server.exsd"/>
-
-</plugin>
diff --git a/org.eclipse.help.appserver/preferences.ini b/org.eclipse.help.appserver/preferences.ini
deleted file mode 100644
index 53b8fea..0000000
--- a/org.eclipse.help.appserver/preferences.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-# The port number on which the sever listens for http requests.
-# If the port is 0 and arbitrary port is picked by the system.
-port=
-
-# The host address or name to use for connecting to the server.
-# The default is nothing, and eclipse will pick up an available local address.
-host=
-
diff --git a/org.eclipse.help.appserver/schema/server.exsd b/org.eclipse.help.appserver/schema/server.exsd
deleted file mode 100644
index 29cfbb4..0000000
--- a/org.eclipse.help.appserver/schema/server.exsd
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.help.appserver">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.help.appserver" id="server" name="server"/>

-      </appInfo>

-      <documentation>

-         Internal extension point to plug in an application server for help and other eclipse plugins.

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="server"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appInfo>

-                  <meta.attribute translatable="true"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="server">

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  The contributors to this extension point must implement the org.eclipse.help.appserver.internal.IWebappServer interface.

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="default" type="boolean" use="default" value="false">

-            <annotation>

-               <documentation>

-                  When set to true, this is the default application server. Normally, only the platform contributed default implementation should set this attribute to true.

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         The following is a sample usage of the server extension point:
-&lt;p&gt;
-&lt;samp&gt;
-&amp;lt;extension id=&quot;appserver&quot; name=&quot;Tomcat&quot;  point=&quot;org.eclipse.help.appserver.server&quot;&amp;gt;
-&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &amp;lt;server class=&quot;org.eclipse.tomcat.internal.TomcatAppServer&quot; default=&quot;true&quot; /&amp;gt; 
-&lt;br&gt;   &amp;lt;/extension&amp;gt;
-&lt;/samp&gt;
-&lt;/p&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         The supplied class must implement the
-&lt;tt&gt;org.eclipse.help.internal.appserver.IWebappServer&lt;/tt&gt;
-interface. Methods in that interface control starting and stopping of the application server,
-as well as starting and stopping of a web application.
-Web applications must have direct access to classes loaded by the customized class loader passed in when starting the web application.
-&lt;p&gt;
-In addition to this, all the web applications running under the provided application server must have access to the Jasper 1 JSP Engine runtime. These libraries are currently shipped with Tomcat 4.0.x drivers (http://jakarta.apache.org).
-&lt;/p&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         The Eclipse Platform provides an implementation of this extension point using the Apache Tomcat
-application server.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies 
-this distribution, and is available at 
-&lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverPlugin.java b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverPlugin.java
deleted file mode 100644
index 1944faa..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverPlugin.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.appserver;
-import org.eclipse.core.runtime.*;
-import org.osgi.framework.*;
-/**
- */
-public class AppserverPlugin extends Plugin {
-	public final static String PLUGIN_ID = "org.eclipse.help.appserver"; //$NON-NLS-1$
-	public final static String HOST_KEY = "host"; //$NON-NLS-1$
-	public final static String PORT_KEY = "port"; //$NON-NLS-1$
-	private final static String APP_SERVER_EXTENSION_ID = PLUGIN_ID + ".server"; //$NON-NLS-1$
-	private static final String APP_SERVER_CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
-	private static final String APP_SERVER_DEFAULT_ATTRIBUTE = "default"; //$NON-NLS-1$
-	// singleton object
-	private static AppserverPlugin plugin;
-//	private static BundleContext bundleContext;
-	private IWebappServer appServer;
-	private String contributingServerPlugin;
-	private String hostAddress;
-	private int port;
-	/**
-	 */
-	public static AppserverPlugin getDefault() {
-		return plugin;
-	}
-	/**
-	 * Returns the instance of WebappServer.
-	 */
-	public synchronized IWebappServer getAppServer() throws CoreException {
-		if (appServer == null) {
-			createWebappServer();
-			startWebappServer();
-		}
-		return appServer;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		if (appServer != null) {
-			appServer.stop();
-		}
-		plugin = null;
-//		bundleContext = null;
-		super.stop(context);
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-//		bundleContext = context;
-	}
-	/**
-	 * Returns the plugin ID that contributes the server implementation
-	 * 
-	 * @return String
-	 */
-	public String getContributingServerPlugin() {
-		return contributingServerPlugin;
-	}
-	private void createWebappServer() throws CoreException {
-		// Initializes the app server by getting an instance via
-		// app-server the extension point
-		// get the app server extension from the system plugin registry
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint(APP_SERVER_EXTENSION_ID);
-		if (point != null) {
-			IExtension[] extensions = point.getExtensions();
-			if (extensions.length != 0) {
-				// We need to pick up the non-default configuration
-				IConfigurationElement[] elements = extensions[0]
-						.getConfigurationElements();
-				if (elements.length == 0)
-					return;
-				IConfigurationElement serverElement = null;
-				for (int i = 0; i < elements.length; i++) {
-					String defaultValue = elements[i]
-							.getAttribute(APP_SERVER_DEFAULT_ATTRIBUTE);
-					if (defaultValue == null || defaultValue.equals("false")) { //$NON-NLS-1$
-						serverElement = elements[i];
-						break;
-					}
-				}
-				// if all the servers are default, then pick the first one
-				if (serverElement == null)
-					serverElement = elements[0];
-				// Instantiate the app server
-				try {
-					appServer = (IWebappServer) serverElement
-							.createExecutableExtension(APP_SERVER_CLASS_ATTRIBUTE);
-					contributingServerPlugin = serverElement
-							.getContributor().getName();
-				} catch (CoreException e) {
-					getLog().log(e.getStatus());
-					throw e;
-				}
-			}
-		}
-	}
-	private void startWebappServer() throws CoreException {
-		// Initialize host and port from preferences
-		hostAddress = getPluginPreferences().getString(HOST_KEY);
-		if ("".equals(hostAddress)) { //$NON-NLS-1$
-			hostAddress = null;
-		}
-		port = getPluginPreferences().getInt(PORT_KEY);
-		// apply host and port overrides passed as command line arguments
-		try {
-			String hostCommandLineOverride = System.getProperty("server_host"); //$NON-NLS-1$
-			if (hostCommandLineOverride != null
-					&& hostCommandLineOverride.trim().length() > 0) {
-				hostAddress = hostCommandLineOverride;
-			}
-		} catch (Exception e) {
-		}
-		try {
-			String portCommandLineOverride = System.getProperty("server_port"); //$NON-NLS-1$
-			if (portCommandLineOverride != null
-					&& portCommandLineOverride.trim().length() > 0) {
-				port = Integer.parseInt(portCommandLineOverride);
-			}
-		} catch (Exception e) {
-		}
-		if (appServer == null)
-			throw new CoreException(new Status(IStatus.ERROR, PLUGIN_ID,
-					IStatus.OK,
-					AppserverResources.Appserver_start, null)); 
-		appServer.start(port, hostAddress);
-	}
-}
diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.java b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.java
deleted file mode 100644
index 2d96fa9..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.appserver;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class AppserverResources extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.help.internal.appserver.AppserverResources";//$NON-NLS-1$
-
-	private AppserverResources() {
-		// Do not instantiate
-	}
-
-	public static String LocalConnectionTest_cannotGetLocalhostName;
-	public static String Appserver_cannotFindPlugin;
-	public static String Appserver_cannotFindPath;
-	public static String Appserver_cannotResolvePath;
-	public static String Appserver_engineRemove;
-	public static String Appserver_embeddedStop;
-	public static String Appserver_addingWebapp;
-	public static String Appserver_start;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, AppserverResources.class);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.properties b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.properties
deleted file mode 100644
index a5bb864..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/AppserverResources.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-LocalConnectionTest_cannotGetLocalhostName = Host name of local machine cannot be obtained.
-
-Appserver_cannotFindPlugin = Location of plug-in {0} cannot be obtained.
-Appserver_cannotFindPath = Location of path {1} in plug-in {0} cannot be obtained.
-Appserver_cannotResolvePath = Location of path {1} in plug-in {0} cannot be resolved.
-Appserver_engineRemove = Exception occurred during removing an engine from embedded application server.
-Appserver_embeddedStop = Exception occurred during stopping embedded server.
-Appserver_addingWebapp = Exception occurred adding webapp {0} based at {1}.
-Appserver_start = Exception occurred starting application server.
diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/DevClassPathHelper.java b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/DevClassPathHelper.java
deleted file mode 100644
index 1416c97..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/DevClassPathHelper.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.appserver;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-/**
- * Class copied from org.eclipse.osgi.framework.internal.defaultadaptor
- */
-public class DevClassPathHelper {
-	static protected boolean inDevelopmentMode = false;
-	static protected String[] devDefaultClasspath;
-	static protected Properties devProperties = null;
-
-	static {
-		// Check the osgi.dev property to see if dev classpath entries have been
-		// defined.
-		String osgiDev = System.getProperty("osgi.dev"); //$NON-NLS-1$
-		if (osgiDev != null) {
-			try {
-				inDevelopmentMode = true;
-				URL location = new URL(osgiDev);
-				devProperties = load(location);
-				if (devProperties != null)
-					devDefaultClasspath = getArrayFromList(devProperties
-							.getProperty("*")); //$NON-NLS-1$
-			} catch (MalformedURLException e) {
-				devDefaultClasspath = getArrayFromList(osgiDev);
-			}
-		}
-	}
-
-	public static String[] getDevClassPath(String id) {
-		String[] result = null;
-		if (id != null && devProperties != null) {
-			String entry = devProperties.getProperty(id);
-			if (entry != null)
-				result = getArrayFromList(entry);
-		}
-		if (result == null)
-			result = devDefaultClasspath;
-		return result;
-	}
-
-	/**
-	 * Returns the result of converting a list of comma-separated tokens into an
-	 * array
-	 * 
-	 * @return the array of string tokens
-	 * @param prop
-	 *            the initial comma-separated string
-	 */
-	public static String[] getArrayFromList(String prop) {
-		if (prop == null || prop.trim().equals("")) //$NON-NLS-1$
-			return new String[0];
-		Vector list = new Vector();
-		StringTokenizer tokens = new StringTokenizer(prop, ","); //$NON-NLS-1$
-		while (tokens.hasMoreTokens()) {
-			String token = tokens.nextToken().trim();
-			if (!token.equals("")) //$NON-NLS-1$
-				list.addElement(token);
-		}
-		return list.isEmpty() ? new String[0] : (String[]) list
-				.toArray(new String[list.size()]);
-	}
-
-	public static boolean inDevelopmentMode() {
-		return inDevelopmentMode;
-	}
-
-	/*
-	 * Load the given properties file
-	 */
-	private static Properties load(URL url) {
-		Properties props = new Properties();
-		try {
-			InputStream is = null;
-			try {
-				is = url.openStream();
-				props.load(is);
-			} finally {
-				if (is != null)
-					is.close();
-			}
-		} catch (IOException e) {
-			// TODO consider logging here
-		}
-		return props;
-	}
-}
diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/IWebappServer.java b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/IWebappServer.java
deleted file mode 100644
index 39cce41..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/IWebappServer.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.appserver;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Interface to be implemented by the app servers that are contributed to the
- * org.eclipse.webapp.server extension point. The implementors of this class
- * should ensure that webapps are running in an environment in which they can
- * see their classes, the J2SE/J2EE classes, as well as classes loaded by the
- * custom class loader.
- * 
- * @since 2.1
- */
-public interface IWebappServer {
-	/**
-	 * Starts the server on specified host/port. Must be called before running a
-	 * webapp.
-	 * 
-	 * @param port
-	 *            port to listen to. Pass 0 to let the system pick up a port.
-	 * @param host
-	 *            server host. Can be an IP address or a server name
-	 */
-	public void start(int port, String host) throws CoreException;
-
-	/**
-	 * Stops the app server.
-	 */
-	public void stop() throws CoreException;
-
-	/**
-	 * Checks if the app server is running
-	 */
-	public boolean isRunning();
-
-	/**
-	 * Runs a webapp on the server.
-	 * 
-	 * @param webappName
-	 *            the name of the web app (also knowns as application context)
-	 * @param path
-	 *            path to the webapp directory or WAR file.
-	 * @param customLoader
-	 *            optional class loader to add to the default webapp class
-	 *            loader
-	 */
-	public void start(String webappName, IPath path, ClassLoader customLoader)
-			throws CoreException;
-
-	/**
-	 * Stops the specified webapp.
-	 */
-	public 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 int getPort();
-
-	/**
-	 * Returns the host name or ip the app server runs on.
-	 * 
-	 * @return String representaion of host name of IP, null if server not
-	 *         started yet
-	 */
-	public String getHost();
-}
diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/PluginClassLoaderWrapper.java b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/PluginClassLoaderWrapper.java
deleted file mode 100644
index cfa08d5..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/PluginClassLoaderWrapper.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.appserver;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.*;
-import org.osgi.framework.*;
-/**
- * Wrapper for a plugin class loader. This class is only needed because the
- * current PluginClassLoader is not clearly exposed as a URLClassLoader and its
- * getURLs() method does not properly return the list of url's (it misses
- * required jars, etc.)
- */
-public class PluginClassLoaderWrapper extends URLClassLoader {
-	private String plugin;
-	private Bundle bundle;
-	public PluginClassLoaderWrapper(String plugin) {
-		super(new URL[0]);
-		this.plugin = plugin;
-		this.bundle = Platform.getBundle(plugin);
-	}
-	public Class loadClass(String className) throws ClassNotFoundException {
-		return bundle.loadClass(className);
-	}
-	public URL getResource(String resName) {
-		return bundle.getResource(resName);
-	}
-	/**
-	 * This is a workaround for the jsp compiler that needs to know the
-	 * classpath.
-	 */
-	public URL[] getURLs() {
-		Set urls = getPluginClasspath(plugin);
-		return (URL[]) urls.toArray(new URL[urls.size()]);
-	}
-	private Set getPluginClasspath(String pluginId) {
-		// Collect set of plug-ins
-		Set plugins = new HashSet();
-		addPluginWithPrereqs(pluginId, plugins);
-		// Collect URLs for each plug-in
-		Set urls = new HashSet();
-		for (Iterator it = plugins.iterator(); it.hasNext();) {
-			String id = (String) it.next();
-			try {
-				Bundle b = Platform.getBundle(id);
-				if (b != null) {
-					// declared classpath
-					String headers = (String) b.getHeaders().get(
-							Constants.BUNDLE_CLASSPATH);
-					ManifestElement[] paths = ManifestElement.parseHeader(
-							Constants.BUNDLE_CLASSPATH, headers);
-					if (paths != null) {
-						for (int i = 0; i < paths.length; i++) {
-							String path = paths[i].getValue();
-							URL url = b.getEntry(path);
-							if (url != null)
-								try {
-									urls.add(FileLocator.toFileURL(url));
-								} catch (IOException ioe) {
-								}
-						}
-					}
-					// dev classpath
-					String[] devpaths = DevClassPathHelper
-							.getDevClassPath(pluginId);
-					if (devpaths != null) {
-						for (int i = 0; i < devpaths.length; i++) {
-							URL url = b.getEntry(devpaths[i]);
-							if (url != null)
-								try {
-									urls.add(FileLocator.toFileURL(url));
-								} catch (IOException ioe) {
-								}
-						}
-					}
-				}
-			} catch (BundleException e) {
-			}
-		}
-		return urls;
-	}
-	/**
-	 * Ensures set contains plugin ID of given plugin and all its prereqs. Does
-	 * nothing if set contains given plug-in.
-	 */
-	private void addPluginWithPrereqs(String pluginId, Set pluginIds) {
-		if (pluginIds.contains(pluginId)) {
-			return;
-		}
-		String[] immidiatePrereqs = getDirectPrereqs(pluginId);
-		for (int i = 0; i < immidiatePrereqs.length; i++) {
-			addPluginWithPrereqs(immidiatePrereqs[i], pluginIds);
-		}
-		pluginIds.add(pluginId);
-	}
-	/**
-	 * Obtain plug-ins immidiately required by given plug-in
-	 * 
-	 * @param pluginId
-	 * @return
-	 */
-	private String[] getDirectPrereqs(String pluginId) {
-		try {
-			Bundle bundle = Platform.getBundle(pluginId);
-			if (bundle != null) {
-				String header = (String) bundle.getHeaders().get(
-						Constants.REQUIRE_BUNDLE);
-				ManifestElement[] requires = ManifestElement.parseHeader(
-						Constants.REQUIRE_BUNDLE, header);
-				if (requires != null) {
-					String[] reqs = new String[requires.length];
-					for (int i = 0; i < requires.length; i++) {
-						reqs[i] = requires[i].getValue();
-					}
-					return reqs;
-				}
-			}
-		} catch (BundleException e) {
-		}
-		return new String[0];
-	}
-}
diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/WebappManager.java b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/WebappManager.java
deleted file mode 100644
index fa0c639..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/WebappManager.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.appserver;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.*;
-
-/**
- * Singleton class to be called by clients to run a webapp.
- * 
- * @since 2.1
- */
-public class WebappManager {
-	private static boolean applicationsStarted = false;
-
-	/**
-	 * Private constructor, so no instances can be created.
-	 * 
-	 * @see java.lang.Object#Object()
-	 */
-	private WebappManager() {
-	}
-
-	/**
-	 * Runs a webapp on the server. The webapp is defined in a plugin and the
-	 * path is relative to the plugin directory.
-	 * <p>
-	 * It is assumed that webapp names are unique. It is suggested to create
-	 * unique web app names by prefixing them with the plugin id.
-	 * </p>
-	 * 
-	 * @param webappName
-	 *            the name of the web app (also knowns as application context)
-	 * @param pluginId
-	 *            plugin that defines the webapp
-	 * @param path
-	 *            webapp relative path to the plugin directory
-	 */
-	public static void start(String webappName, String pluginId, IPath path)
-			throws CoreException {
-
-		IPath webappPath = getWebappPath(pluginId, path);
-
-		// we get the server before constructing the class loader, so
-		// class loader exposed by the server is available to the webapps.
-		IWebappServer server = AppserverPlugin.getDefault().getAppServer();
-		applicationsStarted = true;
-		server.start(webappName, webappPath, new PluginClassLoaderWrapper(
-				pluginId));
-	}
-
-	/**
-	 * Stops the specified webapp.
-	 */
-	public static void stop(String webappName) throws CoreException {
-		if (!applicationsStarted) {
-			// do not obtain (start) appserver when no reason
-			return;
-		}
-		AppserverPlugin.getDefault().getAppServer().stop(webappName);
-	}
-
-	/**
-	 * Returns the port number the app server listens on.
-	 * 
-	 * @return integer port number, 0 if server not started
-	 */
-	public static int getPort() {
-		try {
-			return AppserverPlugin.getDefault().getAppServer().getPort();
-		} catch (CoreException e) {
-			return 0;
-		}
-	}
-
-	/**
-	 * Returns the host name or ip the app server runs on.
-	 * 
-	 * @return String representaion of host name of IP, null if server not
-	 *         started yet
-	 */
-	public static String getHost() {
-		try {
-			return AppserverPlugin.getDefault().getAppServer().getHost();
-		} catch (CoreException e) {
-			return null;
-		}
-	}
-
-	/**
-	 * @param pluginId
-	 * @param path
-	 *            webapp path relative to the plugin directory
-	 * @return String absolute webapp path
-	 */
-	private static IPath getWebappPath(String pluginId, IPath path)
-			throws CoreException {
-
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle == null) {
-			throw new CoreException(new Status(IStatus.ERROR,
-					AppserverPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(AppserverResources.Appserver_cannotFindPlugin, pluginId), null));
-		}
-
-		// Note: we just look for one webapp directory.
-		//       If needed, may want to use the locale specific path.
-		URL webappURL = FileLocator.find(bundle, path, null);
-		if (webappURL == null) {
-			throw new CoreException(new Status(IStatus.ERROR,
-					AppserverPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(AppserverResources.Appserver_cannotFindPath, pluginId, path.toOSString()), null));
-		}
-
-		try {
-			String webappLocation = FileLocator.toFileURL(
-					FileLocator.resolve(webappURL)).getFile();
-			return new Path(webappLocation);
-		} catch (IOException ioe) {
-			throw new CoreException(new Status(IStatus.ERROR,
-					AppserverPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(AppserverResources.Appserver_cannotResolvePath, pluginId, path.toOSString()), ioe));
-		}
-	}
-}
diff --git a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/package.html b/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/package.html
deleted file mode 100644
index 3cdf855..0000000
--- a/org.eclipse.help.appserver/src/org/eclipse/help/internal/appserver/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides core support for an internal Eclipse application server.
-
-<h2>
-Package Specification</h2>
-The package defines the interface for contributing an application server
-as well as the class that lets clients run their plugin contributed web applications.
-<p>The actual application server an optional piece that plugs
-in to the platform's standard <tt>org.eclipse.help.appserver.server</tt> extension
-point. Only one application server will be selected from the list of all contributors.
-The platform provides its own default application server.
-In general terms, implementing an application server involves:
-<ul>
-<li>
-Implementing the <tt>IWebappServer</tt> interface to allow starting/stopping the app server, 
-starting/stopping a web application.</li>
-
-<li>
-Declaring an extension of the <tt>org.eclipse.help.appserver.server</tt> extension
-point that mentions the name of that class.</li>
-
-<li>
-Ensuring that the web application have access to classes loaded by a customized class loader.
- </li>
-</ul>
-Note that the platform declares a plug-in (<tt>org.eclipse.tomcat</tt>)
-which implements the server extension point. This plug-in is declared as default,
-and any other replacement must not be defined as a default server. 
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-</body>
-</html>
diff --git a/org.eclipse.help.ui/.classpath b/org.eclipse.help.ui/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/org.eclipse.help.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.help.ui/.cvsignore b/org.eclipse.help.ui/.cvsignore
deleted file mode 100644
index e219ad3..0000000
--- a/org.eclipse.help.ui/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-build.xml
-helpui.jar
-helpui.jar.bin.log
-org.eclipse.help.ui_*
\ No newline at end of file
diff --git a/org.eclipse.help.ui/.options b/org.eclipse.help.ui/.options
deleted file mode 100644
index 897f7be..0000000
--- a/org.eclipse.help.ui/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-org.eclipse.help.ui/debug=true
-org.eclipse.help.ui/debug/embeddedBrowser = false
-org.eclipse.help.ui/debug/embeddedBrowser/inprocess = false
-org.eclipse.help.ui/debug/infopop = false
diff --git a/org.eclipse.help.ui/.project b/org.eclipse.help.ui/.project
deleted file mode 100644
index 26b376c..0000000
--- a/org.eclipse.help.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.help.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.help.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.help.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2738198..0000000
--- a/org.eclipse.help.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,249 +0,0 @@
-#Fri Nov 11 12:08:45 EST 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,HELP
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=0
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=110
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=4
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
diff --git a/org.eclipse.help.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.help.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index cb8a5e9..0000000
--- a/org.eclipse.help.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Nov 11 12:08:45 EST 2005
-eclipse.preferences.version=1
-formatter_profile=_UA
-formatter_settings_version=9
diff --git a/org.eclipse.help.ui/META-INF/MANIFEST.MF b/org.eclipse.help.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index ac5daed..0000000
--- a/org.eclipse.help.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %help_system_plugin_name
-Bundle-SymbolicName: org.eclipse.help.ui; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.help.ui.internal.HelpUIPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.help.ui,
- org.eclipse.help.ui.browser,
- org.eclipse.help.ui.internal;x-friends:="org.eclipse.ua.tests",
- org.eclipse.help.ui.internal.browser;x-friends:="org.eclipse.ua.tests",
- org.eclipse.help.ui.internal.browser.embedded;x-friends:="org.eclipse.ua.tests",
- org.eclipse.help.ui.internal.search;x-friends:="org.eclipse.ua.tests",
- org.eclipse.help.ui.internal.util;x-friends:="org.eclipse.ua.tests",
- org.eclipse.help.ui.internal.views;x-friends:="org.eclipse.ui.cheatsheets,org.eclipse.ua.tests"
-Require-Bundle: org.eclipse.help.base;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.help.appserver;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
diff --git a/org.eclipse.help.ui/about.html b/org.eclipse.help.ui/about.html
deleted file mode 100644
index e336131..0000000
--- a/org.eclipse.help.ui/about.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.help.ui/build.properties b/org.eclipse.help.ui/build.properties
deleted file mode 100644
index 609f13b..0000000
--- a/org.eclipse.help.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source..=src/
-src.includes=schema/,about.html
-bin.includes = icons/,\
-               plugin.xml,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               .options,\
-               META-INF/
-
diff --git a/org.eclipse.help.ui/icons/dlcl16/addbkmrk_co.gif b/org.eclipse.help.ui/icons/dlcl16/addbkmrk_co.gif
deleted file mode 100644
index 064bc84..0000000
--- a/org.eclipse.help.ui/icons/dlcl16/addbkmrk_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/dlcl16/openseparate_co.gif b/org.eclipse.help.ui/icons/dlcl16/openseparate_co.gif
deleted file mode 100644
index 5db079b..0000000
--- a/org.eclipse.help.ui/icons/dlcl16/openseparate_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/dlcl16/showcat_co.gif b/org.eclipse.help.ui/icons/dlcl16/showcat_co.gif
deleted file mode 100644
index 7bdc2a6..0000000
--- a/org.eclipse.help.ui/icons/dlcl16/showcat_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/dlcl16/showdesc_co.gif b/org.eclipse.help.ui/icons/dlcl16/showdesc_co.gif
deleted file mode 100644
index f6df3e5..0000000
--- a/org.eclipse.help.ui/icons/dlcl16/showdesc_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/dtool16/alltopics_co.gif b/org.eclipse.help.ui/icons/dtool16/alltopics_co.gif
deleted file mode 100644
index b49cef2..0000000
--- a/org.eclipse.help.ui/icons/dtool16/alltopics_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/dtool16/helpsearch_co.gif b/org.eclipse.help.ui/icons/dtool16/helpsearch_co.gif
deleted file mode 100644
index af52881..0000000
--- a/org.eclipse.help.ui/icons/dtool16/helpsearch_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/dtool16/reltopics_co.gif b/org.eclipse.help.ui/icons/dtool16/reltopics_co.gif
deleted file mode 100644
index 37c9f10..0000000
--- a/org.eclipse.help.ui/icons/dtool16/reltopics_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/addbkmrk_co.gif b/org.eclipse.help.ui/icons/elcl16/addbkmrk_co.gif
deleted file mode 100644
index 449b5d9..0000000
--- a/org.eclipse.help.ui/icons/elcl16/addbkmrk_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/collapseall.gif b/org.eclipse.help.ui/icons/elcl16/collapseall.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/org.eclipse.help.ui/icons/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/openseparate_co.gif b/org.eclipse.help.ui/icons/elcl16/openseparate_co.gif
deleted file mode 100644
index 4017f6d..0000000
--- a/org.eclipse.help.ui/icons/elcl16/openseparate_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/show_all.gif b/org.eclipse.help.ui/icons/elcl16/show_all.gif
deleted file mode 100644
index e8ff460..0000000
--- a/org.eclipse.help.ui/icons/elcl16/show_all.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/show_categories.gif b/org.eclipse.help.ui/icons/elcl16/show_categories.gif
deleted file mode 100644
index 24f617a..0000000
--- a/org.eclipse.help.ui/icons/elcl16/show_categories.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/showcat_co.gif b/org.eclipse.help.ui/icons/elcl16/showcat_co.gif
deleted file mode 100644
index 5ef0ed7..0000000
--- a/org.eclipse.help.ui/icons/elcl16/showcat_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/showdesc_co.gif b/org.eclipse.help.ui/icons/elcl16/showdesc_co.gif
deleted file mode 100644
index 484d828..0000000
--- a/org.eclipse.help.ui/icons/elcl16/showdesc_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/elcl16/synch_toc_nav.gif b/org.eclipse.help.ui/icons/elcl16/synch_toc_nav.gif
deleted file mode 100644
index 4353fd5..0000000
--- a/org.eclipse.help.ui/icons/elcl16/synch_toc_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/etool16/alltopics_co.gif b/org.eclipse.help.ui/icons/etool16/alltopics_co.gif
deleted file mode 100644
index 45b0711..0000000
--- a/org.eclipse.help.ui/icons/etool16/alltopics_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/etool16/eclipse.gif b/org.eclipse.help.ui/icons/etool16/eclipse.gif
deleted file mode 100644
index eb7b90c..0000000
--- a/org.eclipse.help.ui/icons/etool16/eclipse.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/etool16/help.gif b/org.eclipse.help.ui/icons/etool16/help.gif
deleted file mode 100644
index 9d70301..0000000
--- a/org.eclipse.help.ui/icons/etool16/help.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/etool16/helpsearch_co.gif b/org.eclipse.help.ui/icons/etool16/helpsearch_co.gif
deleted file mode 100644
index b867103..0000000
--- a/org.eclipse.help.ui/icons/etool16/helpsearch_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/etool16/index_co.gif b/org.eclipse.help.ui/icons/etool16/index_co.gif
deleted file mode 100644
index 6645b64..0000000
--- a/org.eclipse.help.ui/icons/etool16/index_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/etool16/reltopics_co.gif b/org.eclipse.help.ui/icons/etool16/reltopics_co.gif
deleted file mode 100644
index bba3dbc..0000000
--- a/org.eclipse.help.ui/icons/etool16/reltopics_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/bookmark_obj.gif b/org.eclipse.help.ui/icons/obj16/bookmark_obj.gif
deleted file mode 100644
index 7432954..0000000
--- a/org.eclipse.help.ui/icons/obj16/bookmark_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/bookmarks_view.gif b/org.eclipse.help.ui/icons/obj16/bookmarks_view.gif
deleted file mode 100644
index 8eefad3..0000000
--- a/org.eclipse.help.ui/icons/obj16/bookmarks_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/container_obj.gif b/org.eclipse.help.ui/icons/obj16/container_obj.gif
deleted file mode 100644
index f32c28d..0000000
--- a/org.eclipse.help.ui/icons/obj16/container_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/scopeset_obj.gif b/org.eclipse.help.ui/icons/obj16/scopeset_obj.gif
deleted file mode 100644
index 9eaa9db..0000000
--- a/org.eclipse.help.ui/icons/obj16/scopeset_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/searchhit_obj.gif b/org.eclipse.help.ui/icons/obj16/searchhit_obj.gif
deleted file mode 100644
index ead314f..0000000
--- a/org.eclipse.help.ui/icons/obj16/searchhit_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/sinfocenter_obj.gif b/org.eclipse.help.ui/icons/obj16/sinfocenter_obj.gif
deleted file mode 100644
index b867103..0000000
--- a/org.eclipse.help.ui/icons/obj16/sinfocenter_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/slocalhelp_obj.gif b/org.eclipse.help.ui/icons/obj16/slocalhelp_obj.gif
deleted file mode 100644
index cbe7611..0000000
--- a/org.eclipse.help.ui/icons/obj16/slocalhelp_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/sweb_obj.gif b/org.eclipse.help.ui/icons/obj16/sweb_obj.gif
deleted file mode 100644
index 8db5adc..0000000
--- a/org.eclipse.help.ui/icons/obj16/sweb_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/toc_closed.gif b/org.eclipse.help.ui/icons/obj16/toc_closed.gif
deleted file mode 100644
index 504acb2..0000000
--- a/org.eclipse.help.ui/icons/obj16/toc_closed.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/toc_open.gif b/org.eclipse.help.ui/icons/obj16/toc_open.gif
deleted file mode 100644
index 9e665d5..0000000
--- a/org.eclipse.help.ui/icons/obj16/toc_open.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/topic.gif b/org.eclipse.help.ui/icons/obj16/topic.gif
deleted file mode 100644
index b226e41..0000000
--- a/org.eclipse.help.ui/icons/obj16/topic.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/obj16/topic_small.gif b/org.eclipse.help.ui/icons/obj16/topic_small.gif
deleted file mode 100644
index 17d8b2e..0000000
--- a/org.eclipse.help.ui/icons/obj16/topic_small.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/ovr16/doc_co.gif b/org.eclipse.help.ui/icons/ovr16/doc_co.gif
deleted file mode 100644
index 05ef403..0000000
--- a/org.eclipse.help.ui/icons/ovr16/doc_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/view16/help_view.gif b/org.eclipse.help.ui/icons/view16/help_view.gif
deleted file mode 100644
index bb00633..0000000
--- a/org.eclipse.help.ui/icons/view16/help_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/icons/wizban/newsearch_wiz.gif b/org.eclipse.help.ui/icons/wizban/newsearch_wiz.gif
deleted file mode 100644
index a585f29..0000000
--- a/org.eclipse.help.ui/icons/wizban/newsearch_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.ui/plugin.properties b/org.eclipse.help.ui/plugin.properties
deleted file mode 100644
index 9a1b82f..0000000
--- a/org.eclipse.help.ui/plugin.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-help_system_plugin_name = Help System UI
-help_system_plugin_name_win32 = Help System UI for Windows
-providerName=Eclipse.org
-help_preferences_page_name = Help
-
-# Browser adapters
-embedded_browser = Embedded Browser
-system_browser = Default System Browser
-
-# Application Server
-appserver_preferences_page_name= Help Server
-
-# Preference Keywords
-preferenceKeywords.browsersPreferencePage=Help Web Browser Infopop F1
-preferenceKeywords.appserverPreferencePage=Help Application Server
-
-#Help view
-HelpViewCategory = Help
-HelpViewName = Help
-
-LocalHelp.label = Local Help
-LocalHelp.desc = Searches local help documents
-
-InfoCenter.label = Info Center
-InfoCenter.desc = Searches a remote Info Center
-
-WebSearch.label = Web Search
-WebSearch.desc = Performs a general-purpose Web search
-
-#Extension points
-searchEngine = Search Engine
-
-#Action Set
-actionSet.description = Help System Toolbar Actions
-actionSet.label = Help System
-searchAction.label = Search Help
-searchAction.tooltip = Search Help
-dynamicHelpAction.label = Dynamic Help 
-dynamicHelpAction.tooltip = Dynamic Help
-
-#Commands
-command.closeTray.name = Close User Assistance Tray
-command.closeTray.description = Close the user assistance tray containing context help information and cheat sheets.
diff --git a/org.eclipse.help.ui/plugin.xml b/org.eclipse.help.ui/plugin.xml
deleted file mode 100644
index 929e531..0000000
--- a/org.eclipse.help.ui/plugin.xml
+++ /dev/null
@@ -1,175 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension-point id="searchEngine" name="%searchEngine" schema="schema/searchEngine.exsd"/>
-
-<!-- Default Help UI  -->
-   <extension
-         point="org.eclipse.ui.helpSupport">
-      <config
-            class="org.eclipse.help.ui.internal.DefaultHelpUI">
-      </config>
-   </extension>
-<!-- Preference pages -->
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%help_preferences_page_name"
-            class="org.eclipse.help.ui.internal.browser.BrowsersPreferencePage"
-            id="org.eclipse.help.ui.browsersPreferencePage">
-            <keywordReference id="org.eclipse.help.ui.browsersPreferencePage"/>
-      </page>
-      <page
-            name="%appserver_preferences_page_name"
-            category="org.eclipse.help.ui.browsersPreferencePage"
-            class="org.eclipse.help.ui.internal.AppserverPreferencePage"
-            id="org.eclipse.help.ui.appserverPreferencePage">
-            <keywordReference id="org.eclipse.help.ui.appserverPreferencePage"/>
-      </page>
-   </extension>
-   <extension
-   		point="org.eclipse.ui.keywords">
-      <keyword
-            label="%preferenceKeywords.browsersPreferencePage"
-            id="org.eclipse.help.ui.browsersPreferencePage"/>
-      <keyword
-            label="%preferenceKeywords.appserverPreferencePage"
-            id="org.eclipse.help.ui.appserverPreferencePage"/>
-   </extension>
-<!-- Web Browsers -->
-   <extension
-         point="org.eclipse.help.base.browser">
-      <browser
-            factoryclass="org.eclipse.help.ui.internal.browser.embedded.EmbeddedBrowserFactory"
-            name="%embedded_browser"
-            id="org.eclipse.help.ui.embeddedbrowser">
-      </browser>
-   </extension>
-   <extension
-         point="org.eclipse.help.base.browser">
-      <browser
-            factoryclass="org.eclipse.help.ui.internal.browser.SystemBrowserFactory"
-            name="%system_browser"
-            id="org.eclipse.help.ui.systembrowser">
-      </browser>
-   </extension>
-<!-- Help view (new since 3.1) -->
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%HelpViewCategory"
-            id="org.eclipse.help.ui">
-      </category>
-      <view
-            allowMultiple="false"
-            icon="$nl$/icons/view16/help_view.gif"
-            class="org.eclipse.help.ui.internal.views.HelpView"
-            category="org.eclipse.help.ui"
-            name="%HelpViewName"
-            id="org.eclipse.help.ui.HelpView"/>
-       <stickyView
-            closeable="true"
-            moveable="true"
-            location="RIGHT"
-            id="org.eclipse.help.ui.HelpView"/>            
-   </extension>
-   <extension
-         point="org.eclipse.help.ui.searchEngine">
-      <engineType
-            scopeFactory="org.eclipse.help.ui.internal.search.LocalSearchScopeFactory"
-            label="%LocalHelp.label"
-            class="org.eclipse.help.internal.search.federated.LocalHelp"
-            icon="$nl$/icons/obj16/slocalhelp_obj.gif"
-            pageClass="org.eclipse.help.ui.internal.search.LocalHelpPage"
-            id="org.eclipse.help.ui.localSearch">
-         <description>
-            %LocalHelp.desc
-         </description>
-      </engineType>
-      <engineType
-            scopeFactory="org.eclipse.help.ui.internal.search.InfoCenterSearchScopeFactory"
-            label="%InfoCenter.label"
-            class="org.eclipse.help.internal.search.InfoCenter"
-            icon="$nl$/icons/obj16/sinfocenter_obj.gif"
-            pageClass="org.eclipse.help.ui.internal.search.InfoCenterPage"
-            id="org.eclipse.help.ui.infoCenter">
-         <description>
-            %InfoCenter.desc
-         </description>
-      </engineType>
-      <engineType
-            scopeFactory="org.eclipse.help.ui.internal.search.WebSearchScopeFactory"
-            label="%WebSearch.label"
-            class="org.eclipse.help.internal.search.WebSearch"
-            icon="$nl$/icons/obj16/sweb_obj.gif"
-            id="org.eclipse.help.ui.web"
-            pageClass="org.eclipse.help.ui.internal.search.WebSearchPage">
-         <description>
-            %WebSearch.desc
-         </description>
-      </engineType>
-      <engine
-            enabled="true"
-            engineTypeId="org.eclipse.help.ui.localSearch"
-            id="org.eclipse.help.ui.localSearch"
-            label="%LocalHelp.label">
-      </engine>
-    </extension>
-    <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.category.help"
-            defaultHandler="org.eclipse.help.ui.internal.CloseHelpTrayHandler"
-            description="%command.closeTray.description"
-            id="org.eclipse.help.ui.closeTray"
-            name="%command.closeTray.name">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.help.ui.closeTray"
-            contextId="org.eclipse.ui.contexts.dialog"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+W"/>
-      <key
-            commandId="org.eclipse.help.ui.closeTray"
-            contextId="org.eclipse.ui.contexts.dialog"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+F4"/>
-      <key
-            commandId="org.eclipse.help.ui.closeTray"
-            contextId="org.eclipse.ui.contexts.dialog"
-            schemeId="org.eclipse.ui.emacsAcceleratorConfiguration"
-            sequence="CTRL+X K"/>
-   </extension>
-    
-<!--
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            description="%actionSet.description"
-            id="org.eclipse.help.ui.actions"
-            label="%actionSet.label"
-            visible="true">
-         <action
-               class="org.eclipse.help.ui.internal.SearchAction"
-               icon="$nl$/icons/etool16/search_menu.gif"
-               id="org.eclipse.help.ui.search"
-               label="%searchAction.label"
-               style="push"
-               toolbarPath="org.eclipse.ui.workbench.navigate"
-               tooltip="%searchAction.tooltip"/>
-         <action
-               class="org.eclipse.help.ui.internal.DynamicHelpAction"
-               icon="$nl$/icons/etool16/help.gif"
-               id="org.eclipse.help.ui.dynamicHelp"
-               label="%searchAction.label"
-               style="push"
-               toolbarPath="org.eclipse.ui.workbench.navigate"
-               tooltip="%dynamicHelpAction.tooltip"/>
-      </actionSet>
-   </extension>
--->
-</plugin>
diff --git a/org.eclipse.help.ui/schema/searchEngine.exsd b/org.eclipse.help.ui/schema/searchEngine.exsd
deleted file mode 100644
index 1503612..0000000
--- a/org.eclipse.help.ui/schema/searchEngine.exsd
+++ /dev/null
@@ -1,364 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.help.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.help.ui" id="searchEngine" name="Search Engine"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to plug in search participants in the federated help search. Each search engine can be configured individually. When search is initiated, each search engine is executed as a background job, and the results are collated in the help view immediately under the query.
-&lt;p&gt;Search engines defined here will not automatically show up as federated search participants until engine product binding is established, unless &lt;code&gt;productId&lt;/code&gt; attribute is left undefined. For engines that define it, only thouse bound to a particular product will show up when that product is running.
-&lt;p&gt;
-Search engines can simply compose a URL and provide only one hit containing that URL as href. Popular search engines for which API support requires license can be plugged in like this. On the other end of the spectrum, search engines can communicate with the server and receive individual hits with information like label, href, short description, score etc. Local help engine can produce hits this way.
-&lt;p&gt;Regardless of the search mechanism, engines can provide various search scope settings using JFace preference pages. These pages are shown when &apos;Advanced Settings&apos; link is followed from the Help view. In addition to root preference pages defined with the engine, additional preference sub-pages can be plugged in for more advanced settings.
-&lt;p&gt;Scope settings are loaded and stored using &lt;code&gt;IPreferenceStore&lt;/code&gt; objects. Scope settings for all engines are grouped together under a named &lt;b&gt;scope set&lt;/b&gt;. When first opened, default scope set (&apos;Default&apos;) is created, but users can define more scope sets and flip between them.
-&lt;p&gt;Since federated search support is part of &lt;code&gt;org.eclipse.help.base&lt;/code&gt; plug-in, a factory is needed to create search scope objects from the data in the preference store. Clients that plug in scope preference pages are required to plug in scope factories as well.
-&lt;p&gt;Engines defined in this extension point do not show up in the UI by default. What is shown there is a concrete &lt;b&gt;instance&lt;/b&gt;
-of a search engine that can be individually modified. Products can preconfigure the help system with a number of instances of the registered engine types, possibly parametrized to perform in a desired way. In addition, users can add their own instances of the registered engines and configure them to their liking.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="engineType" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="engine" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="engineType">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="label" icon="icon"/>
-         </appInfo>
-         <documentation>
-            defines a particular type of a search engine. Search engine type can be used to create concrete engine instances either by the user or pre-loaded by the product. In order to be useful, engine types must be configurable so that a number of engines can be created using a single engine type.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="subpage" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name of the search engine type
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a translatable name of the search engine type
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string">
-            <annotation>
-               <documentation>
-                  a 16x16 image that will be used to visually represent this engine type
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified name of the class that implements &lt;code&gt;org.eclipse.help.search.ISearchEngine&lt;/code&gt;. The class is responsible for searching based on a given query and scope.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.help.search.ISearchEngine"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="pageClass" type="string">
-            <annotation>
-               <documentation>
-                  a fully qualified name of the class that extends &lt;code&gt;org.eclipse.help.ui.RootScopePage&lt;/code&gt; class. This page holds the master switch for the search engine and is typically used to host widgets used to narrow down the search scope for the engine.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.help.ui.RootScopePage"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="scopeFactory" type="string">
-            <annotation>
-               <documentation>
-                  a fully qualified name of the class that implements &lt;code&gt;org.eclipse.help.ui.ISearchScopeFactory&lt;/code&gt;. The factory is responsible for creating ISearchScope objects from settings stored in &lt;code&gt;IPreferenceStore&lt;/code&gt; class. If &lt;code&gt;pageClass&lt;/code&gt; is specified, scope factory must be specified as well.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.help.ui.ISearchScopeFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <appInfo>
-            <meta.element translatable="true"/>
-         </appInfo>
-         <documentation>
-            a short description of the search engine
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="subpage">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="label"/>
-         </appInfo>
-         <documentation>
-            a child page to the root scope preference page defined in the &lt;code&gt;engine&lt;/code&gt; element. If &lt;code&gt;pageClass&lt;/code&gt; engine attribute is not defined, sub-pages will be ignored.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier of this page
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a translatable name of this page
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  a fully qualified name of a class that implements &lt;code&gt;org.eclipse.help.ui.ISearchScopePage&lt;/code&gt; interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.help.ui.ISearchScopePage"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="category" type="string" use="required">
-            <annotation>
-               <documentation>
-                  id of the parent subpage or engine id if the parent is the root page.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="engine">
-      <annotation>
-         <documentation>
-            Specifies a concrete instance of a particular search engine type. Instance may be bound to the product in order to show up only when that product is active. Engine can have its own label and description. If not specified, engine type data will be used. Finally, each engine type defines a valid set of parameters that can be passed to it to configure it. Engines can specify values of these parameters.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="param" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="productId" type="string">
-            <annotation>
-               <documentation>
-                  used to determine which engine is appropriate for the current product (as defined by &lt;code&gt;org.eclipse.core.runtime.Platform.getProduct()&lt;/code&gt;). If not specified, the engine will appear for all the products.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="engineTypeId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the unique identifier of a valid seach engine type
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="enabled" type="boolean">
-            <annotation>
-               <documentation>
-                  if &lt;code&gt;true&lt;/code&gt;, the engine will initially be enabled. Users can override this value in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  an optional label for this engine. If not specified, the label of the engine type will be used
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier of this engine
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="param">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-            an optional parameter that is used to configure this instance of a search engine type. Valid parameters are defined by the engine type.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the parameter
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the value of the parameter
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.1
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is the example of the help search extension:
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.help.ui.searchEngine&quot;&gt;
-      &lt;engineType
-            scopeFactory=&quot;com.example.xyz.XYZScopeFactory&quot;
-            label=&quot;XYZ Search&quot;
-            class=&quot;com.example.xyz.search.XYZSearch&quot;
-            icon=&quot;icons/etool16/xyzsearch.gif&quot;
-           pageClass=&quot;com.example.xyz.search.XYZSearchPage&quot;
-            id=&quot;com.example.xyz.XYZSearch&quot;&gt;
-         &lt;description&gt;
-            Instances of XYZ Search search the XYZ site.
-         &lt;/description&gt;
-      &lt;/engineType&gt;
-      &lt;engine
-            enabled=&quot;true&quot;
-            engineTypeId=&quot;com.example.xyz.search.XYZSearch&quot;
-            id=&quot;com.example.xyz.XYZSearch&quot;
-            label=&quot;XYZ Search&quot;&gt;
-      &lt;/engine&gt;
-      &lt;engine
-            enabled=&quot;true&quot;
-            engineTypeId=&quot;org.eclipse.help.ui.web&quot;
-            id=&quot;org.eclipse.sdk.Eclipse&quot;
-            label=&quot;%search.Eclipse.label&quot;&gt;
-      		&lt;description&gt;
-	      		%search.Eclipse.desc
-      		&lt;/description&gt;
-      		&lt;param 
-      			name=&quot;url&quot; 
-      			value=&quot;http://eclipse.org/search/search.cgi?q={expression}&amp;amp;ul=&amp;amp;ps=20&amp;amp;m=all&quot;&gt;
-      		&lt;/param&gt;
-      &lt;/engine&gt;
-    &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         Attribute &lt;code&gt;class&lt;/code&gt; of the element &lt;code&gt;engineType&lt;/code&gt; must provide a fully qualified name of the class that implements &lt;code&gt;org.eclipse.help.search.ISearchEngine&lt;/code&gt;. Attribute &lt;code&gt;pageClass&lt;/code&gt; must provide a fully qualified name of the class that extends &lt;code&gt;org.eclipse.help.ui.RootScopePage&lt;/code&gt;. Attribute &lt;code&gt;scopeFactory&lt;/code&gt; must provide a fully qualified name of the class that implements &lt;code&gt;org.eclipse.help.ui.ISearchScopeFactory&lt;/code&gt;.
-
-Attribute &lt;code&gt;class&lt;/code&gt; of the element &lt;code&gt;subpage&lt;/code&gt; must provide a fully qualified name of a class that implements &lt;code&gt;org.eclipse.help.ui.ISearchScopePage&lt;/code&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         Help UI plug-in provides search engine types for local help documentation, InfoCenter and Web search, as well as local help search engine instance. This instance does not accept parameters and has no product Id, thus will appear in every product.
-&lt;p&gt;
-Products can create concrete instances of InfoCenter and Web searches by using their engine id and the required paramaters.
-&lt;p&gt;
-InfoCenter engine type has engineId &lt;code&gt;org.eclipse.help.ui.infoCenter&lt;/code&gt; and accepts one parameter &lt;code&gt;url&lt;/code&gt; that points at the remote server where InfoCenter is installed. Results are shown in the same way as the local help results.
-&lt;p&gt;
-Web search engine type has engine id &lt;code&gt;org.eclipse.help.ui.web&lt;/code&gt; and accepts one parameter &lt;code&gt;url&lt;/code&gt; that represents a concrete search query with the actual search string replaced with a substitution symbol &apos;{expression}&apos;, as in the following example:
-&lt;p&gt;
-&lt;pre&gt;
-http://eclipse.org/search/search.cgi?q={expression}&amp;ul=&amp;ps=20&amp;m=all
-&lt;/pre&gt;
-&lt;/p&gt;
-Web search results are shown as one link that will open the web browser with the search string substituted in the &lt;code&gt;url&lt;/code&gt; parameter.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/IEngineDescriptor.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/IEngineDescriptor.java
deleted file mode 100644
index b928ba1..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/IEngineDescriptor.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui;
-
-import java.util.Dictionary;
-
-/**
- * Descriptor of a concrete instance of a search engine. It describes the search
- * engine instance that is either loaded from the plug-in extension point contribution,
- * or created by the user in the scope settings dialog. Engines created by the
- * user are marked as such. Only user-defined engines will permit their label or
- * description changed.
- * <p>
- * This interface is not intended to be extended or implemented by clients.
- * 
- * @since 3.1
- */
-
-public interface IEngineDescriptor {
-	/**
-	 * Returns the unique identifier of this engine instance.
-	 * 
-	 * @return the unique engine identifier
-	 */
-	String getId();
-
-	/**
-	 * Returns the unique identifier of the engine type of which this is an
-	 * instance.
-	 * 
-	 * @return the engine type identifier
-	 */
-	String getEngineTypeId();
-
-	/**
-	 * Returns the label of this engine for rendering in the UI.
-	 * 
-	 * @return the engine label
-	 */
-	String getLabel();
-
-	/**
-	 * Changes the label of this engine. This method does nothing for engine
-	 * descriptors that are not user-defined.
-	 * 
-	 * @param label
-	 *            the new engine label
-	 */
-	void setLabel(String label);
-
-	/**
-	 * Returns the description of this engine instance. It is initialized
-	 * from the engine type description.
-	 * @return the engine instance description.
-	 */
-	String getDescription();
-
-	/**
-	 * Changes the description of this engine. This method does nothing for
-	 * engine descriptors that are not user-defined.
-	 * 
-	 * @param desc
-	 *            the new engine description
-	 */
-	void setDescription(String desc);
-
-	/**
-	 * Returns the parameters used to configure this engine according to the
-	 * valid parameters for the associated engine type.
-	 * 
-	 * @return the parameter dictionary
-	 */
-	Dictionary getParameters();
-
-	/**
-	 * Tests whether this engine is provided as an extension point contribution
-	 * or is created by the user in the scope settings dialog. Only user-defined
-	 * engine instances can have their label and/or description changed.
-	 * 
-	 * @return <code>true</code> if the engine is user defined, or
-	 *         <code>false</code> otherwise.
-	 */
-	boolean isUserDefined();
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopeFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopeFactory.java
deleted file mode 100644
index 7c0c73a..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopeFactory.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui;
-
-import java.util.Dictionary;
-
-import org.eclipse.help.search.ISearchScope;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * Creates search scope objects from the provided preference store. Classes that
- * implement this interface should take settings manipulated in the search scope
- * preference pages and create scope objects that are required by search
- * engines. Search engine and scope factory are defined together in the same
- * extension point, hence the actual implementation of ISearchScope is up to the
- * contributor.
- * 
- * @since 3.1
- */
-public interface ISearchScopeFactory {
-	/**
-	 * Returns a new search scope object created from the data in the preference
-	 * store. Factories should be prepared to compute default values if they are
-	 * missing from the preference store. This can happen before users open
-	 * scope preference pages for the first time.
-	 * <p>
-	 * In cases where conflicting values can be found in the preference store
-	 * and parameters, preference store should win i.e. parameters should be
-	 * treated as default values only.
-	 * 
-	 * @param store
-	 *            the preference store that holds the scope data
-	 * @param engineId
-	 *            identifier of the engine instance that needs the scope object.
-	 * @param parameters
-	 *            configuration parameters provided in the engine extension
-	 *            point. They should be used as default values and preference
-	 *            store values (if defined) should be given precedance.
-	 * @return a new search scope object
-	 */
-	ISearchScope createSearchScope(IPreferenceStore store, String engineId,
-			Dictionary parameters);
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopePage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopePage.java
deleted file mode 100644
index b357e4b..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/ISearchScopePage.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui;
-
-import org.eclipse.jface.preference.IPreferencePage;
-
-/**
- * Preference pages that are used for editing help search scope settings should
- * implement this interface.
- * 
- * @since 3.1
- */
-public interface ISearchScopePage extends IPreferencePage {
-	/**
-	 * Initializes the search scope page.
-	 * 
-	 * @param ed
-	 *            the descriptor of the engine associated with this page
-	 * @param scopeSetName
-	 *            the name of the current scope set that is used to group data
-	 *            shown in this page
-	 */
-	void init(IEngineDescriptor ed, String scopeSetName);
-}
\ No newline at end of file
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
deleted file mode 100644
index 8a6f66f..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/RootScopePage.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui;
-
-import java.util.Hashtable;
-
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.help.ui.internal.views.EngineDescriptor;
-import org.eclipse.help.ui.internal.views.ScopeSet;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Clients that contribute search scope root page to the search engine
- * definition must extend this class and implement
- * <code>createScopeContents</code> method. The page will come preset with the
- * engine name, image and description, as well as the master switch that turns
- * the engine on or off. When the engine master switch is set to false, all the
- * children in the client composite will be disabled.
- * 
- * @since 3.1
- */
-public abstract class RootScopePage extends PreferencePage implements
-		ISearchScopePage {
-	private IEngineDescriptor ed;
-
-	private String scopeSetName;
-
-	private Button masterButton;
-
-	private Text labelText;
-
-	private Text descText;
-
-	private Hashtable disabledStates = new Hashtable();
-
-	/**
-	 * The default constructor.
-	 */
-	public RootScopePage() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see ISearchScopePage#init(IEngineDescriptor, String)
-	 */
-	public void init(IEngineDescriptor ed, String scopeSetName) {
-		this.ed = ed;
-		this.scopeSetName = scopeSetName;
-	}
-
-	/**
-	 * Creates the initial contents of the page and allocates the area for the
-	 * clients. Classes that extend this class should implement
-	 * <code>createScopeContents(Composite)</code> instead.
-	 * 
-	 * @param parent
-	 *            the page parent
-	 * @return the page client control
-	 */
-	protected final Control createContents(Composite parent) {
-		initializeDefaults(getPreferenceStore());
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		//if (ed.isUserDefined())
-			layout.numColumns = 2;
-		container.setLayout(layout);
-		masterButton = new Button(container, SWT.CHECK);
-		masterButton.setText(Messages.RootScopePage_masterButton); 
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;//ed.isUserDefined() ? 2 : 1;
-		masterButton.setLayoutData(gd);
-		Label spacer = new Label(container, SWT.NULL);
-		gd = new GridData();
-		gd.horizontalSpan = 2;//ed.isUserDefined() ? 2 : 1;
-		spacer.setLayoutData(gd);
-		boolean masterValue = getPreferenceStore().getBoolean(
-				ScopeSet.getMasterKey(ed.getId()));
-		masterButton.setSelection(masterValue);
-		masterButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				masterValueChanged(masterButton.getSelection());
-			}
-		});
-		//if (ed.isUserDefined()) {
-			Label label = new Label(container, SWT.NULL);
-			label.setText(Messages.RootScopePage_name);
-			labelText = new Text(container, SWT.BORDER);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			gd.widthHint = 200;
-			labelText.setLayoutData(gd);
-			labelText.setEditable(ed.isUserDefined());
-			label = new Label(container, SWT.NULL);
-			label.setText(Messages.RootScopePage_desc);
-			gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-			label.setLayoutData(gd);
-			descText = new Text(container, SWT.BORDER | SWT.MULTI | SWT.WRAP);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			descText.setEditable(ed.isUserDefined());
-			gd.widthHint = 200;
-			gd.heightHint = 48;
-			descText.setLayoutData(gd);
-		//}
-		int ccol = createScopeContents(container);
-		// adjust number of columns if needed
-		if (ccol > layout.numColumns) {
-			layout.numColumns = ccol;
-			gd = (GridData) masterButton.getLayoutData();
-			gd.horizontalSpan = layout.numColumns;
-			gd = (GridData) spacer.getLayoutData();
-			gd.horizontalSpan = layout.numColumns;
-			//if (ed.isUserDefined()) {
-				gd = (GridData) labelText.getLayoutData();
-				gd.horizontalSpan = layout.numColumns - 1;
-				gd = (GridData) descText.getLayoutData();
-				gd.horizontalSpan = layout.numColumns - 1;
-			//}
-		}
-		updateControls(true);
-		return container;
-	}
-
-	/**
-	 * Called when the value of the master switch has changed. The default
-	 * implementation disables the scope contents control when the master switch
-	 * is off. Subclass can override this behaviour.
-	 * 
-	 * @param value
-	 *            <code>true</code> if the master switch is on,
-	 *            <code>false</code> otherwise.
-	 */
-
-	protected void masterValueChanged(boolean value) {
-		updateEnableState(value);
-	}
-
-	private void updateEnableState(boolean enabled) {
-		Composite container = masterButton.getParent();
-		Control[] children = container.getChildren();
-
-		boolean first = disabledStates.isEmpty();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child == masterButton)
-				continue;
-			if (!enabled) {
-				disabledStates.put(child, new Boolean(child.isEnabled()));
-				child.setEnabled(false);
-			} else {
-				Boolean savedState = (Boolean) disabledStates.get(child);
-				if (!first)
-					child.setEnabled(savedState != null ? savedState
-							.booleanValue() : true);
-			}
-		}
-	}
-
-	/**
-	 * Returns the scope set name passed to the page during initialization.
-	 * 
-	 * @return the name of the current scope set
-	 */
-
-	protected String getScopeSetName() {
-		return scopeSetName;
-	}
-
-	/**
-	 * Returns the descriptor of the engine associated with this page.
-	 * 
-	 * @return the engine descriptor
-	 */
-
-	protected IEngineDescriptor getEngineDescriptor() {
-		return ed;
-	}
-
-	/**
-	 * Tests whether the search engine has been selected to participate in the
-	 * search.
-	 * 
-	 * @return <code>true</code> if the search engine is enabled, </code>false</code>
-	 *         otherwise.
-	 */
-
-	protected boolean isEngineEnabled() {
-		return masterButton.getSelection();
-	}
-
-	/**
-	 * Stores the value of the master switch in the preference store. Subclasses
-	 * may override but must call 'super'.
-	 * 
-	 * @return <code>true</code> if the wizard can be closed,
-	 *         <code>false</code> otherwise.
-	 */
-
-	public boolean performOk() {
-		getPreferenceStore().setValue(ScopeSet.getMasterKey(ed.getId()),
-				masterButton.getSelection());
-		if (labelText != null) {
-			ed.setLabel(labelText.getText());
-			ed.setDescription(descText.getText());
-		}
-		return true;
-	}
-
-	/**
-	 * Sets the value of the master switch to the initial value from the
-	 * extension. Subclasses may override but must call 'super'.
-	 */
-	protected void performDefaults() {
-		getPreferenceStore().setToDefault(ScopeSet.getMasterKey(ed.getId()));
-		updateControls(false);
-		super.performDefaults();
-	}
-
-	private void updateControls(boolean first) {
-		boolean value = getPreferenceStore().getBoolean(
-				ScopeSet.getMasterKey(ed.getId()));
-		boolean cvalue = masterButton.getSelection();
-		if (value != cvalue) {
-			masterButton.setSelection(value);
-			masterValueChanged(value);
-		} else if (first)
-			masterValueChanged(value);
-		labelText.setText(ed.getLabel());
-		descText.setText(ed.getDescription());
-	}
-
-	/**
-	 * Initializes default values of the store to be used when the user presses
-	 * 'Defaults' button. Subclasses may override but must call 'super'.
-	 * 
-	 * @param store
-	 *            the preference store
-	 */
-
-	protected void initializeDefaults(IPreferenceStore store) {
-		Boolean value = (Boolean) ed.getParameters().get(
-				EngineDescriptor.P_MASTER);
-		store.setDefault(ScopeSet.getMasterKey(ed.getId()), value
-				.booleanValue());
-	}
-
-	/**
-	 * Abstract method that subclasses must implement in order to provide root
-	 * page content. The parent uses <code>GridLayout</code> to position and
-	 * size the widgets. Widgets created in this method should use
-	 * <code>GridData</code> to configure the way they fit in the overall
-	 * page.
-	 * <p>
-	 * The common widgets created by this page will set number of columns they
-	 * need for themselves only. Clients that implement this method should
-	 * return the required number of columns so that the root page widgets can
-	 * be adjusted if more columns are needed than initially set.
-	 * 
-	 * @param parent
-	 *            the page parent
-	 * @return number of columns required by the client content
-	 */
-	protected abstract int createScopeContents(Composite parent);
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/browser/LaunchURL.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/browser/LaunchURL.java
deleted file mode 100644
index 5c54c25..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/browser/LaunchURL.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.browser;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.browser.*;
-import org.eclipse.help.internal.browser.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.help.ui.internal.util.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.ui.*;
-
-/**
- * Action that launches a URL in a browser.
- * <p>
- * This class is intended to be specified as a value of a class attribute of an
- * action element in plugin.xml for extensions of org.eclipse.ui.actionSets
- * extension point.  The URL to launch must be specified in the markup in one
- * of two ways.
- * </p>
- * </p>
- * The action element can have an attribute named url, in addition to markup
- * required by org.eclipse.ui.actionSets extension point specification. The
- * value of the url attribute should specify a URL to be opened in a browser.
- * </p>
- * </p>
- * Alternatively, since 3.1, instead of a class attribute on the action element,
- * the extension can specify a nested class element with a class attribute
- * and URL specified in a parameter sub-element.  For example:
- * <pre>         &lt;class class="org.eclipse.help.ui.browser.LaunchURL"&gt;
- *              &lt;parameter name="url" value="http://eclipse.org/" /&gt;
- *          &lt;/class&gt;</pre>
- * </p>
- */
-public class LaunchURL implements IWorkbenchWindowActionDelegate,
-		IExecutableExtension {
-	private String url;
-
-	/**
-	 * @see IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * @see IWorkbenchWindowActionDelegate#init(IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-	}
-
-	/**
-	 * @see IExecutableExtension#setInitializationData(IConfigurationElement,
-	 *      String, Object)
-	 */
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-		if (data != null && data instanceof Hashtable) {
-			url = (String) ((Hashtable) data).get("url"); //$NON-NLS-1$
-		}
-		if (url == null || url.length() == 0)
-			url = config.getAttribute("url"); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see IActionDelegate#run(IAction)
-	 */
-	public void run(IAction action) {
-		if (url == null || "".equals(url)) { //$NON-NLS-1$
-			return;
-		}
-		IBrowser browser = BrowserManager.getInstance().createBrowser(true);
-		try {
-			browser.displayURL(url);
-		} catch (Exception e) {
-			HelpUIPlugin.logError("Exception occurred when opening URL: " + url //$NON-NLS-1$
-					+ ".", e); //$NON-NLS-1$
-			ErrorUtil.displayErrorDialog(Messages.LaunchURL_exception); 
-		}
-	}
-
-	/**
-	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/browser/package.html b/org.eclipse.help.ui/src/org/eclipse/help/ui/browser/package.html
deleted file mode 100644
index 8e84d46..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/browser/package.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides an implementation of IWorkbenchWindowActionDelegate
-for opening a URL in a browser.
-<h2>
-Package Specification</h2>
-<p>LaunchURL class implementing <tt>IWorkbenchWindowActionDelegate</tt>
-is an action that can be specified in the <tt>action</tt> element in plugin.xml
-for extensions of <tt>org.eclipse.ui.actionSets</tt> extension point.&nbsp;
-The contributors of menu actions that need to perform launching of URL
-in a browser, can specify this class as an <tt>IWorkbenchWindowActionDelegate</tt>
-in their extension of <tt>org.eclipse.ui.actionSets</tt> point.
-<br>&nbsp;
-</body>
-</html>
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/AppserverPreferencePage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/AppserverPreferencePage.java
deleted file mode 100644
index 9be8b02..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/AppserverPreferencePage.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.help.internal.appserver.AppserverPlugin;
-import org.eclipse.jface.preference.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.widgets.FormText;
-
-/**
- * Preference page for Tomcat network interface and port.
- */
-public class AppserverPreferencePage extends PreferencePage
-		implements
-			IWorkbenchPreferencePage {
-	protected Text textServerAddr;
-	protected Text textServerPort;
-	/**
-	 * Creates preference page controls on demand.
-	 * 
-	 * @param parent
-	 *            the parent for the preference page
-	 */
-	protected Control createContents(Composite parent) {
-		Font font = parent.getFont();
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IHelpUIConstants.PREF_PAGE_APPSERVER);
-
-		final Composite mainComposite = new Composite(parent, SWT.NULL);
-		mainComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		final GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.numColumns = 2;
-		mainComposite.setLayout(layout);
-
-		final Label descLabel = new Label(mainComposite, SWT.WRAP);
-		descLabel.setText(Messages.AppserverPreferencePage_description); 
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		data.widthHint = 100;
-		data.heightHint = 20;
-		descLabel.setLayoutData(data);
-		descLabel.setFont(font);
-
-		// Spacer
-		Label label = new Label(mainComposite, SWT.NONE);
-		data = new GridData();
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-		label.setFont(font);
-
-		label = new Label(mainComposite, SWT.NONE);
-		label.setFont(font);
-		label.setText(Messages.AppserverPreferencePage_hostDescription); 
-
-		textServerAddr = new Text(mainComposite, SWT.SINGLE | SWT.BORDER);
-		//text.addListener(SWT.Modify, this);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = convertWidthInCharsToPixels(8);
-		textServerAddr.setLayoutData(data);
-		textServerAddr.setFont(font);
-
-		label = new Label(mainComposite, SWT.NONE);
-		label.setFont(font);
-		label.setText(Messages.AppserverPreferencePage_portDescription); 
-
-		textServerPort = new Text(mainComposite, SWT.SINGLE | SWT.BORDER);
-		textServerPort.setTextLimit(5);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = convertWidthInCharsToPixels(8);
-		textServerPort.setLayoutData(data);
-		textServerPort.setFont(font);
-
-		// Validation of port field
-		textServerPort.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (textServerPort.getText().length() == 0) {
-					AppserverPreferencePage.this.setValid(true);
-					setErrorMessage(null);
-					return;
-				}
-				try {
-					int num = Integer.valueOf(textServerPort.getText())
-							.intValue();
-					if (0 <= num && num <= 0xFFFF) {
-						// port is valid
-						AppserverPreferencePage.this.setValid(true);
-						setErrorMessage(null);
-						return;
-					}
-
-					// port is invalid
-				} catch (NumberFormatException nfe) {
-				}
-				AppserverPreferencePage.this.setValid(false);
-				setErrorMessage(Messages.AppserverPreferencePage_invalidPort); 
-			}
-		});
-
-		// Spacer
-		label = new Label(mainComposite, SWT.NONE);
-		data = new GridData();
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-		label.setFont(font);
-	
-		FormText ftext = new FormText(mainComposite, SWT.WRAP);
-		ftext.setText(Messages.AppserverPreferencePage_requireRestart, true, false);
-		data = new GridData(GridData.GRAB_HORIZONTAL);
-		ftext.setHyperlinkSettings(new HyperlinkSettings(mainComposite.getDisplay()));
-		data.horizontalSpan = 2;
-		data.widthHint = 100;
-		data.heightHint = 20;
-		ftext.setLayoutData(data);
-		ftext.setFont(font);
-		final GridData fdata = data;
-		mainComposite.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent e) {
-				GridData ddata = (GridData)descLabel.getLayoutData();
-				int width = mainComposite.getSize().x-layout.marginWidth*2;
-				fdata.widthHint = width;
-				fdata.heightHint = SWT.DEFAULT;
-				ddata.widthHint = width;
-				ddata.heightHint = SWT.DEFAULT;
-				mainComposite.layout();
-			}
-		});
-
-		Preferences pref = AppserverPlugin.getDefault().getPluginPreferences();
-		textServerAddr.setText(pref.getString(AppserverPlugin.HOST_KEY));
-		textServerPort.setText(pref.getString(AppserverPlugin.PORT_KEY));
-
-		return mainComposite;
-	}
-	/**
-	 * @see IWorkbenchPreferencePage
-	 */
-	public void init(IWorkbench workbench) {
-	}
-	/**
-	 * Performs special processing when this page's Defaults button has been
-	 * pressed.
-	 * <p>
-	 * This is a framework hook method for sublcasses to do special things when
-	 * the Defaults button has been pressed. Subclasses may override, but should
-	 * call <code>super.performDefaults</code>.
-	 * </p>
-	 */
-	protected void performDefaults() {
-		Preferences pref = AppserverPlugin.getDefault().getPluginPreferences();
-		textServerAddr.setText(pref.getDefaultString(AppserverPlugin.HOST_KEY));
-		textServerPort.setText(pref.getDefaultString(AppserverPlugin.PORT_KEY));
-		super.performDefaults();
-	}
-	/**
-	 * @see IPreferencePage
-	 */
-	public boolean performOk() {
-		Preferences pref = AppserverPlugin.getDefault().getPluginPreferences();
-		pref.setValue(AppserverPlugin.HOST_KEY, textServerAddr.getText());
-		pref.setValue(AppserverPlugin.PORT_KEY, textServerPort.getText());
-		AppserverPlugin.getDefault().savePluginPreferences();
-		return true;
-	}
-
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/CloseHelpTrayHandler.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/CloseHelpTrayHandler.java
deleted file mode 100644
index 77049c6..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/CloseHelpTrayHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.help.ui.internal.views.HelpTray;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * The command handler that gets invoked when the "Close User Assistance
- * Tray" command is invoked. It finds the current active dialog, and if it
- * has the tray open, it closes it.
- */
-public class CloseHelpTrayHandler extends AbstractHandler {
-
-	/**
-	 * Executes the command.
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault();
-		}
-		if (display != null) {
-			Shell shell = Display.getCurrent().getActiveShell();
-			if (shell != null && !shell.isDisposed()) {
-				Object shellData = shell.getData();
-				if (shellData instanceof TrayDialog) {
-					TrayDialog trayDialog = (TrayDialog)shellData;
-					if (trayDialog.getTray() instanceof HelpTray) {
-						trayDialog.closeTray();
-					}
-				}
-			}
-		}
-		return null;
-	}
-}
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
deleted file mode 100644
index 9944736..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java
+++ /dev/null
@@ -1,487 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IContext2;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.UAContentFilter;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.ui.internal.views.HelpTray;
-import org.eclipse.osgi.service.environment.Constants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.Accessible;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * ContextHelpDialog
- */
-public class ContextHelpDialog {
-	//private static ImageRegistry imgRegistry = null;
-
-	private Color backgroundColour = null;
-
-	private IContext context;
-
-	private Color foregroundColour = null;
-
-	private Color linkColour = null;
-
-	private static HyperlinkHandler linkManager = new HyperlinkHandler();
-
-	protected Shell parentShell;
-
-	protected Shell shell;
-
-	protected String infopopText;
-
-	/**
-	 * Listener for hyperlink selection.
-	 */
-	class LinkListener extends HyperlinkAdapter {
-		IHelpResource topic;
-
-		public LinkListener(IHelpResource topic) {
-			this.topic = topic;
-		}
-
-		public void linkActivated(Control c) {
-			launchLinks(topic);
-		}
-
-	}
-
-	/**
-	 * Constructor:
-	 * 
-	 * @param context
-	 *            an array of String or an array of IContext
-	 * @param x
-	 *            the x mouse location in the current display
-	 * @param y
-	 *            the y mouse location in the current display
-	 */
-	ContextHelpDialog(IContext context, int x, int y) {
-		this.context = context;
-		Display display = Display.getCurrent();
-		if (display == null) {
-			return;
-		}
-		backgroundColour = display.getSystemColor(SWT.COLOR_INFO_BACKGROUND);
-		foregroundColour = display.getSystemColor(SWT.COLOR_INFO_FOREGROUND);
-		linkColour = display.getSystemColor(SWT.COLOR_BLUE);
-		parentShell = display.getActiveShell();
-
-		if (parentShell != null) {
-			boolean isModal = 0 < (parentShell.getStyle() & (SWT.APPLICATION_MODAL
-					| SWT.PRIMARY_MODAL | SWT.SYSTEM_MODAL));
-			if (HelpUIPlugin.DEBUG_INFOPOP) {
-				System.out
-						.println("ContextHelpDialog.ContextHelpDialog(): ParentShell: " //$NON-NLS-1$
-								+ parentShell.toString() + " is " //$NON-NLS-1$
-								+ (isModal ? "modal" : "modeless")); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-
-		shell = new Shell(parentShell, SWT.NONE);
-		if (HelpUIPlugin.DEBUG_INFOPOP) {
-			System.out
-					.println("ContextHelpDialog.ContextHelpDialog(): Shell is:" //$NON-NLS-1$
-							+ shell.toString());
-		}
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IHelpUIConstants.F1_SHELL);
-
-		shell.addListener(SWT.Deactivate, new Listener() {
-			public void handleEvent(Event e) {
-				if (HelpUIPlugin.DEBUG_INFOPOP) {
-					System.out
-							.println("ContextHelpDialog shell deactivate listener: SWT.Deactivate called. "); //$NON-NLS-1$
-				}
-				close();
-			}
-		});
-
-		shell.addTraverseListener(new TraverseListener() {
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_ESCAPE) {
-					if (HelpUIPlugin.DEBUG_INFOPOP) {
-						System.out
-								.println("ContextHelpDialog: shell traverse listener: SWT.TRAVERSE_ESCAPE called. "); //$NON-NLS-1$
-					}
-					e.doit = true;
-				}
-			}
-		});
-
-		shell.addControlListener(new ControlAdapter() {
-			public void controlMoved(ControlEvent e) {
-				if (HelpUIPlugin.DEBUG_INFOPOP) {
-					System.out
-							.println("ContextHelpDialog: shell control adapter called."); //$NON-NLS-1$
-				}
-				Rectangle clientArea = shell.getClientArea();
-				shell.redraw(clientArea.x, clientArea.y, clientArea.width,
-						clientArea.height, true);
-				shell.update();
-			}
-		});
-		if (HelpUIPlugin.DEBUG_INFOPOP) {
-			System.out
-					.println("ContextHelpDialog.ContextHelpDialog(): Focus owner is: " //$NON-NLS-1$
-							+ Display.getCurrent().getFocusControl().toString());
-		}
-		linkManager
-				.setHyperlinkUnderlineMode(HyperlinkHandler.UNDERLINE_ALWAYS);
-		createContents(shell);
-		shell.pack();
-		// Correct x and y of the shell if it not contained within the screen
-		int width = shell.getBounds().width;
-		int height = shell.getBounds().height;
-		
-		Rectangle screen = display.getClientArea();
-		// check lower boundaries
-		x = x >= screen.x ? x : screen.x;
-		y = y >= screen.y ? y : screen.y;
-		// check upper boundaries
-		x = x + width <= screen.width ? x : screen.width - width;
-		y = y + height <= screen.height ? y : screen.height - height;
-		shell.setLocation(x, y);
-
-		initAccessible(shell);
-	}
-
-	public synchronized void close() {
-		try {
-			if (HelpUIPlugin.DEBUG_INFOPOP) {
-				System.out.println("ContextHelpDialog.close()"); //$NON-NLS-1$
-			}
-			if (shell != null) {
-				shell.close();
-				if (!shell.isDisposed())
-					shell.dispose();
-				shell = null;
-			}
-		} catch (Throwable ex) {
-		}
-	}
-
-	protected Control createContents(Composite contents) {
-		initAccessible(contents);
-		contents.setBackground(backgroundColour);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 5;
-		contents.setLayout(layout);
-		contents.setLayoutData(new GridData(GridData.FILL_BOTH));
-		// create the dialog area and button bar
-		createInfoArea(contents);
-		Control c = createLinksArea(contents);
-		if (c != null) {
-			// links exist, make them the only focusable controls
-			contents.setTabList(new Control[] { c });
-		}
-		return contents;
-	}
-
-	private Control createInfoArea(Composite parent) {
-		// Create the text field.
-		String styledText;
-		if (context instanceof IContext2) {
-			styledText = ((IContext2) context).getStyledText();
-		} else {
-			styledText = context.getText();
-		}
-		if (styledText == null) // no description found in context objects.
-			styledText = Messages.WW002; 
-		Description text = new Description(parent, SWT.MULTI | SWT.READ_ONLY);
-		text.addTraverseListener(new TraverseListener() {
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_ESCAPE) {
-					if (HelpUIPlugin.DEBUG_INFOPOP) {
-						System.out
-								.println("ContextHelpDialog text TraverseListener.handleEvent(): SWT.TRAVERSE_ESCAPE."); //$NON-NLS-1$
-					}
-					e.doit = true;
-				}
-			}
-		});
-
-		text.getCaret().setVisible(false);
-		text.setBackground(backgroundColour);
-		text.setForeground(foregroundColour);
-		text.setFont(parent.getFont());
-		int linkWidth = getLinksWidth(text);
-		StyledLineWrapper content = new StyledLineWrapper(styledText, text,
-				linkWidth + 70);
-		text.setContent(content);
-		text.setStyleRanges(content.getStyles());
-
-		infopopText = text.getText();
-		initAccessible(text);
-
-		return text;
-	}
-
-	/**
-	 * Measures the longest label of related links
-	 * 
-	 * @param text
-	 * @return
-	 */
-	private int getLinksWidth(Description text) {
-		int linkWidth = 0;
-		IHelpResource relatedTopics[] = context.getRelatedTopics();
-		if (relatedTopics != null) {
-			GC gc = new GC(text);
-			for (int i = 0; i < relatedTopics.length; i++) {
-				linkWidth = Math.max(linkWidth, gc.textExtent(relatedTopics[i]
-						.getLabel()).x);
-			}
-			gc.dispose();
-		}
-		return linkWidth;
-	}
-
-	private Control createLink(Composite parent, IHelpResource topic) {
-		Label image = new Label(parent, SWT.NONE);
-		image.setImage(getImage());
-		image.setBackground(backgroundColour);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-		data.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
-		//data.horizontalIndent = 4;
-		image.setLayoutData(data);
-		HyperlinkLabel link = new HyperlinkLabel(parent, SWT.NONE);
-		link.setText(topic.getLabel());
-		link.setBackground(backgroundColour);
-		link.setForeground(linkColour);
-		link.setFont(parent.getFont());
-		linkManager.registerHyperlink(link, new LinkListener(topic));
-		return link;
-	}
-
-	private Control createLinksArea(Composite parent) {
-		IHelpResource[] relatedTopics = context.getRelatedTopics();
-		if (relatedTopics == null)
-			return null;
-		// Create control
-		Composite composite = new Composite(parent, SWT.NONE);
-		initAccessible(composite);
-
-		composite.setBackground(backgroundColour);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 2;
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 3;
-		layout.horizontalSpacing = 2;
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-		composite.setFont(parent.getFont());
-		GridData data = new GridData(GridData.FILL_BOTH
-				| GridData.HORIZONTAL_ALIGN_BEGINNING
-				| GridData.VERTICAL_ALIGN_CENTER);
-		composite.setLayoutData(data);
-		// Create separator.
-		Label label = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-		label.setBackground(backgroundColour);
-		label.setForeground(foregroundColour);
-		data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING
-				| GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-		// Create related links
-		for (int i = 0; i < relatedTopics.length; i++) {
-			if (!UAContentFilter.isFiltered(relatedTopics[i])) {
-				createLink(composite, relatedTopics[i]);
-			}
-		}
-
-		// create dynamic help link if current context allows dynamic help
-		IWorkbenchWindow wbWindow = HelpUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
-		if (DefaultHelpUI.isActiveShell(parentShell, wbWindow) || HelpTray.isAppropriateFor(parentShell)) {
-			// Create separator.
-			label = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-			label.setBackground(backgroundColour);
-			label.setForeground(foregroundColour);
-			data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING
-					| GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			label.setLayoutData(data);
-
-			// create link to the dynamic help
-			createDynamicHelpLink(composite);
-		}
-		
-		return composite;
-	}
-
-	private Control createDynamicHelpLink(Composite parent) {
-		Label image = new Label(parent, SWT.NONE);
-		Image img = HelpUIResources.getImage(IHelpUIConstants.IMAGE_DHELP);
-		image.setImage(img);
-		image.setBackground(backgroundColour);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-		data.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
-		//data.horizontalIndent = 4;
-		image.setLayoutData(data);
-		HyperlinkLabel link = new HyperlinkLabel(parent, SWT.NONE);
-		link.setText(Messages.ContextHelpDialog_showInDynamicHelp);
-		link.setBackground(backgroundColour);
-		link.setForeground(linkColour);
-		link.setFont(parent.getFont());
-		linkManager.registerHyperlink(link, new HyperlinkAdapter() {
-			public void linkActivated(Control label) {
-				openDynamicHelp();
-			}
-		});
-		return link;
-	}
-
-	/**
-	 * Called when related link has been chosen Opens help viewer with list of
-	 * all related topics
-	 */
-	protected void launchLinks(IHelpResource selectedTopic) {
-		close();
-		if (HelpUIPlugin.DEBUG_INFOPOP) {
-			System.out.println("ContextHelpDialog.launchLinks(): closed shell"); //$NON-NLS-1$
-		}
-		BaseHelpSystem.getHelpDisplay().displayHelp(
-				context,
-				selectedTopic,
-				DefaultHelpUI.isDisplayModal(parentShell)
-				&& !Constants.OS_WIN32.equalsIgnoreCase(Platform
-								.getOS()));
-	}
-	
-	private void openDynamicHelp() {
-		BusyIndicator.showWhile(shell.getDisplay(), new Runnable() {
-			public void run() {
-				close();				
-				DefaultHelpUI.getInstance().displayContext(context, 0, 0, true);
-			}
-		});
-	}
-
-	public synchronized void open() {
-		try {
-			shell.open();
-			if (HelpUIPlugin.DEBUG_INFOPOP) {
-				System.out
-						.println("ContextHelpDialog.open(): Focus owner after open is: " //$NON-NLS-1$
-								+ Display.getCurrent().getFocusControl()
-										.toString());
-			}
-		} catch (Throwable e) {
-			HelpUIPlugin
-					.logError(
-							"An error occurred when opening context-sensitive help pop-up.", //$NON-NLS-1$
-							e);
-		}
-	}
-
-	private Image getImage() {
-		return HelpUIResources.getImage(IHelpUIConstants.IMAGE_FILE_F1TOPIC);
-	}
-
-	public boolean isShowing() {
-		return (shell != null && !shell.isDisposed() && shell.isVisible());
-	}
-
-	private void initAccessible(final Control control) {
-		Accessible accessible = control.getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				e.result = infopopText;
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				e.result = control.getToolTipText();
-			}
-		});
-
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				Point pt = control.toControl(new Point(e.x, e.y));
-				e.childID = (control.getBounds().contains(pt)) ? ACC.CHILDID_MULTIPLE
-						: ACC.CHILDID_NONE;
-			}
-
-			public void getLocation(AccessibleControlEvent e) {
-				Rectangle location = control.getBounds();
-				Point pt = control.toDisplay(new Point(location.x, location.y));
-				e.x = pt.x;
-				e.y = pt.y;
-				e.width = location.width;
-				e.height = location.height;
-			}
-
-			public void getChildCount(AccessibleControlEvent e) {
-				e.detail = 1;
-			}
-
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_LABEL;
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				e.detail = ACC.STATE_READONLY;
-			}
-		});
-	}
-
-	public class Description extends StyledText {
-		/**
-		 * @param parent
-		 * @param style
-		 */
-		public Description(Composite parent, int style) {
-			super(parent, style);
-		}
-
-		public boolean setFocus() {
-			return false;
-		}
-
-		public boolean isFocusControl() {
-			return false;
-		}
-	}
-
-}
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
deleted file mode 100644
index 8710048..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
+++ /dev/null
@@ -1,394 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation Sebastian Davids <sdavids@gmx.de> -
- * bug 93374
- **************************************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.help.IContext;
-import org.eclipse.help.browser.IBrowser;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.base.IHelpBaseConstants;
-import org.eclipse.help.ui.internal.util.ErrorUtil;
-import org.eclipse.help.ui.internal.views.ContextHelpPart;
-import org.eclipse.help.ui.internal.views.HelpTray;
-import org.eclipse.help.ui.internal.views.HelpView;
-import org.eclipse.help.ui.internal.views.ReusableHelpPart;
-import org.eclipse.jface.dialogs.DialogTray;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.osgi.service.environment.Constants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.help.AbstractHelpUI;
-import org.eclipse.ui.intro.IIntroManager;
-import org.eclipse.ui.intro.IIntroPart;
-
-/**
- * This class is an implementation of the Help UI. In is registered into the helpSupport extension
- * point, and is responsible for handling requests to display help. The methods on this class
- * interact with the actual UI component handling the display.
- * <p>
- * Most methods delegate most work to HelpDisplay class; only the UI specific ones implemented in
- * place.
- * </p>
- */
-public class DefaultHelpUI extends AbstractHelpUI {
-
-	private ContextHelpDialog f1Dialog = null;
-	private static DefaultHelpUI instance;
-
-	private static final String HELP_VIEW_ID = "org.eclipse.help.ui.HelpView"; //$NON-NLS-1$
-
-	class ExternalWorkbenchBrowser implements IBrowser {
-
-		public ExternalWorkbenchBrowser() {
-		}
-
-		private IWebBrowser getExternalBrowser() throws PartInitException {
-			IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
-			return support.getExternalBrowser();
-		}
-
-		public void close() {
-		}
-
-		public boolean isCloseSupported() {
-			return false;
-		}
-
-		public void displayURL(String url) throws Exception {
-			try {
-				IWebBrowser browser = getExternalBrowser();
-				if (browser != null) {
-					browser.openURL(new URL(url));
-				}
-			} catch (PartInitException pie) {
-				ErrorUtil.displayErrorDialog(pie.getLocalizedMessage());
-			}
-		}
-
-		public boolean isSetLocationSupported() {
-			return false;
-		}
-
-		public boolean isSetSizeSupported() {
-			return false;
-		}
-
-		public void setLocation(int x, int y) {
-		}
-
-		public void setSize(int width, int height) {
-		}
-	}
-
-	/**
-	 * Constructor.
-	 */
-	public DefaultHelpUI() {
-		super();
-		instance = this;
-		// register external browser. This will cause the help system
-		// to use workbench external browser instead of its own.
-		BaseHelpSystem.getInstance().setBrowserInstance(new ExternalWorkbenchBrowser());
-	}
-
-	static DefaultHelpUI getInstance() {
-		return instance;
-	}
-
-	/**
-	 * Displays help.
-	 */
-	public void displayHelp() {
-		BaseHelpSystem.getHelpDisplay().displayHelp(useExternalBrowser(null));
-	}
-
-	/**
-	 * Displays search.
-	 */
-	public void displaySearch() {
-		search(null);
-	}
-
-	/**
-	 * Displays dynamic help.
-	 */
-	public void displayDynamicHelp() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		Shell activeShell = getActiveShell();
-		if (window != null && isActiveShell(activeShell, window)) {
-			IIntroManager introMng = PlatformUI.getWorkbench().getIntroManager();
-			IIntroPart intro = introMng.getIntro();
-			if (intro != null && !introMng.isIntroStandby(intro))
-				introMng.setIntroStandby(intro, true);
-
-			IWorkbenchPage page = window.getActivePage();
-			Control c = activeShell.getDisplay().getFocusControl();
-			if (page != null) {
-				IWorkbenchPart activePart = page.getActivePart();
-				try {
-					IViewPart part = page.showView(HELP_VIEW_ID, null, IWorkbenchPage.VIEW_VISIBLE);
-					if (part != null) {
-						HelpView view = (HelpView) part;
-						view.showDynamicHelp(activePart, c);
-					}
-				} catch (PartInitException e) {
-				}
-			} else {
-				// check the dialog
-				if (activeShell != null) {
-					Object data = activeShell.getData();
-					if (data instanceof TrayDialog) {
-						IContext context = ContextHelpPart.findHelpContext(c);
-						displayContextAsHelpTray(activeShell, context);
-						return;
-					}
-				}
-				warnNoOpenPerspective(window);
-			}
-		}
-	}
-
-	/**
-	 * Starts the search.
-	 */
-
-	public void search(final String expression) {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		Shell activeShell = getActiveShell();
-		if (window != null && isActiveShell(activeShell, window)) {
-			IIntroManager introMng = PlatformUI.getWorkbench().getIntroManager();
-			IIntroPart intro = introMng.getIntro();
-			if (intro != null && !introMng.isIntroStandby(intro))
-				introMng.setIntroStandby(intro, true);
-
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				try {
-					IViewPart part = page.showView(HELP_VIEW_ID);
-					if (part != null) {
-						HelpView view = (HelpView) part;
-						view.startSearch(expression);
-					}
-				} catch (PartInitException e) {
-				}
-			} else {
-				// check the dialog
-				if (activeShell != null) {
-					Object data = activeShell.getData();
-					if (data instanceof TrayDialog) {
-						displayContextAsHelpTray(activeShell, null);
-						return;
-					}
-					else {
-						// tried to summon help from a non-tray dialog
-						// not supported
-						return;
-					}
-				}
-				warnNoOpenPerspective(window);
-			}
-		}
-	}
-
-	private void warnNoOpenPerspective(IWorkbenchWindow window) {
-		MessageDialog.openInformation(window.getShell(), Messages.DefaultHelpUI_wtitle,
-				Messages.DefaultHelpUI_noPerspMessage);
-	}
-
-	/**
-	 * Displays a help resource specified as a url.
-	 * <ul>
-	 * <li>a URL in a format that can be returned by
-	 * {@link  org.eclipse.help.IHelpResource#getHref() IHelpResource.getHref()}
-	 * <li>a URL query in the format format <em>key=value&amp;key=value ...</em> The valid keys
-	 * are: "tab", "toc", "topic", "contextId". For example,
-	 * <em>toc="/myplugin/mytoc.xml"&amp;topic="/myplugin/references/myclass.html"</em> is valid.
-	 * </ul>
-	 */
-	public void displayHelpResource(String href) {
-		BaseHelpSystem.getHelpDisplay().displayHelpResource(href, useExternalBrowser(href));
-	}
-
-	/**
-	 * Displays context-sensitive help for specified context
-	 * 
-	 * @param context
-	 *            the context to display
-	 * @param x
-	 *            int positioning information
-	 * @param y
-	 *            int positioning information
-	 */
-	public void displayContext(IContext context, int x, int y) {
-		displayContext(context, x, y, false);
-	}
-
-	void displayContext(IContext context, int x, int y, boolean noInfopop) {
-		if (context == null)
-			return;
-		Preferences pref = HelpBasePlugin.getDefault().getPluginPreferences();
-		boolean winfopop = pref.getBoolean(IHelpBaseConstants.P_KEY_WINDOW_INFOPOP);
-		boolean dinfopop = pref.getBoolean(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP);
-
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		Shell activeShell = getActiveShell();
-		if (window != null && isActiveShell(activeShell, window)) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				if (!noInfopop && winfopop) {
-					displayContextAsInfopop(context, x, y);
-					return;
-				}
-				try {
-					IWorkbenchPart activePart = page.getActivePart();
-					Control c = window.getShell().getDisplay().getFocusControl();
-					IViewPart part = page.showView(HELP_VIEW_ID, null, IWorkbenchPage.VIEW_VISIBLE);
-					if (part != null) {
-						HelpView view = (HelpView) part;
-						view.displayContext(context, activePart, c);
-					}
-					return;
-				} catch (PartInitException e) {
-					// ignore the exception and let
-					// the code default to the context
-					// help dialog
-				}
-			}
-		}
-		// check the dialog
-		if (HelpTray.isAppropriateFor(activeShell) && (!dinfopop || noInfopop)) {
-			displayContextAsHelpTray(activeShell, context);
-			return;
-		}
-		// we are here either as a fallback or because of the user preferences
-		displayContextAsInfopop(context, x, y);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.help.AbstractHelpUI#resolve(java.lang.String, boolean)
-	 */
-	public URL resolve(String href, boolean documentOnly) {
-		return BaseHelpSystem.resolve(href, documentOnly);
-	}
-
-	public String unresolve(URL url) {
-		return BaseHelpSystem.unresolve(url);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.help.AbstractHelpUI#resolve(java.lang.String, boolean)
-	 */
-	private static Shell getActiveShell() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		return display.getActiveShell();
-	}
-
-	static boolean isActiveShell(Shell activeShell, IWorkbenchWindow window) {
-		// Test if the active shell belongs to this window
-		return activeShell != null && activeShell.equals(window.getShell());
-	}
-
-	private void displayContextAsInfopop(IContext context, int x, int y) {
-		if (f1Dialog != null)
-			f1Dialog.close();
-		if (context == null)
-			return;
-		f1Dialog = new ContextHelpDialog(context, x, y);
-		f1Dialog.open();
-	}
-
-	private void displayContextAsHelpTray(Shell activeShell, IContext context) {
-		Control controlInFocus = activeShell.getDisplay().getFocusControl();
-		TrayDialog dialog = (TrayDialog)activeShell.getData();
-		
-		DialogTray tray = dialog.getTray();
-		if (tray == null) {
-			tray = new HelpTray();
-			dialog.openTray(tray);
-		}
-		if (tray instanceof HelpTray) {
-			ReusableHelpPart helpPart = ((HelpTray)tray).getHelpPart();
-			if (context != null) {
-				helpPart.showPage(IHelpUIConstants.HV_CONTEXT_HELP_PAGE);
-				helpPart.update(context, null, controlInFocus);
-			}
-			else {
-				helpPart.showPage(IHelpUIConstants.HV_FSEARCH_PAGE, true);
-			}
-		}
-		else {
-			// someone else was occupying the tray; not supported
-		}
-	}
-
-	/**
-	 * Returns <code>true</code> if the context-sensitive help window is currently being
-	 * displayed, <code>false</code> if not.
-	 */
-	public boolean isContextHelpDisplayed() {
-		if (f1Dialog == null) {
-			return false;
-		}
-		return f1Dialog.isShowing();
-	}
-
-	private boolean useExternalBrowser(String url) {
-		// On non Windows platforms, use external when modal window is displayed
-		if (!Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS())) {
-			Display display = Display.getCurrent();
-			if (display != null) {
-				if (insideModalParent(display))
-					return true;
-			}
-		}
-
-		// Use external when no help frames are to be displayed, otherwise no
-		// navigation buttons.
-		if (url != null) {
-			if (url.indexOf("?noframes=true") > 0 //$NON-NLS-1$
-					|| url.indexOf("&noframes=true") > 0) { //$NON-NLS-1$
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean insideModalParent(Display display) {
-		return isDisplayModal(display.getActiveShell());
-	}
-
-	public static boolean isDisplayModal(Shell activeShell) {
-		while (activeShell != null) {
-			if ((activeShell.getStyle() & (SWT.APPLICATION_MODAL | SWT.PRIMARY_MODAL | SWT.SYSTEM_MODAL)) > 0)
-				return true;
-			activeShell = (Shell) activeShell.getParent();
-		}
-		return false;
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 7e933c9..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DynamicHelpAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-
-public class DynamicHelpAction implements IWorkbenchWindowActionDelegate {
-
-    public DynamicHelpAction() {
-    }
-
-    public void dispose() {
-    }
-
-    public void init(IWorkbenchWindow window) {
-    }
-
-    public void run(IAction action) {
-        PlatformUI.getWorkbench().getHelpSystem().displayDynamicHelp();
-    }
-
-    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
deleted file mode 100644
index d57946a..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ExecuteCommandAction.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.ILiveHelpAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-
-/**
- * Executes a serialized parameterized command using the workbench command
- * service. This class is intended to be called by the
- * <code>executeCommand</code> function in <code>livehelp.js</code> (defined
- * in <code>org.eclipse.help</code> plugin).
- * 
- * @since 3.2
- */
-public class ExecuteCommandAction implements ILiveHelpAction {
-
-	/**
-	 * Stores the serialized command for execution when the <code>run</code>
-	 * method is called.
-	 */
-	private String serializedCommand;
-
-	public void setInitializationString(String data) {
-		serializedCommand = data;
-	}
-
-	public void run() {
-
-		if (serializedCommand == null) {
-			// No command to execute!
-			return;
-		}
-		
-		// workaround problem described in https://bugs.eclipse.org/bugs/show_bug.cgi?id=133694
-		// by making sure we can get the workbench before running the command.  In standalone
-		// help mode the attempt to get the workbench will fail and we will show an error dialog.
-		IWorkbench workbench = null;
-		try {
-			workbench = PlatformUI.getWorkbench();
-		}
-		catch (IllegalStateException ex) {
-			// this will happen when there is no workbench
-		}
-		if (workbench == null) {
-			Display.getDefault().syncExec(new Runnable() {
-				public void run() {
-					MessageDialog.openError(null, Messages.Help_Error,
-							Messages.NoWorkbenchForExecuteCommand_msg);
-				}
-			});
-			return;
-		}
-
-		Display.getDefault().syncExec(new Runnable() {
-			public void run() {
-				forceDialogsOnTop();
-				executeSerializedCommand();
-			}
-		});
-
-	}
-	
-	/**
-	 * This was introduced to work around the behavior described in
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=130206
-	 */
-	private void forceDialogsOnTop() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell windowShell=null;
-		
-		Shell[] shells = display.getShells();
-		for (int i=0; i<shells.length; i++) {
-			Object data = shells[i].getData();
-			if (data!=null && data instanceof IWorkbenchWindow) {
-				windowShell=shells[i];
-				break;
-			}
-		}
-		
-		if (windowShell!=null) {
-			windowShell.forceActive();
-			if (Platform.getWS().equals(Platform.WS_WIN32)) {
-				// feature in Windows. Without this code,
-				// the window will only flash in the launch bar.
-				windowShell.setVisible(false);
-				windowShell.setMinimized(true);
-				windowShell.setVisible(true);
-				windowShell.setMinimized(false);
-			}
-		}
-	}
-
-	private void executeSerializedCommand() {
-		try {
-			ICommandService commandService = getCommandService();
-			ParameterizedCommand command = commandService.deserialize(serializedCommand);
-			command.executeWithChecks(null, null);
-		} catch (CommandException ex) {
-			// silently ignore error
-		}
-	}
-
-	private static ICommandService getCommandService() {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		Object serviceObject = workbench.getAdapter(ICommandService.class);
-		if (serviceObject != null) {
-			ICommandService service = (ICommandService) serviceObject;
-			return service;
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpActivitySupport.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpActivitySupport.java
deleted file mode 100644
index f7d21a5..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpActivitySupport.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.ui.internal;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.*;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.model.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.activities.*;
-
-/**
- * Wrapper for eclipse ui activity support
- */
-public class HelpActivitySupport implements IHelpActivitySupport {
-	private static final String PREF_KEY_SHOW_DISABLED_ACTIVITIES = "showDisabledActivityTopics"; //$NON-NLS-1$
-	private static final String SHOW_DISABLED_ACTIVITIES_NEVER = "never"; //$NON-NLS-1$
-	private static final String SHOW_DISABLED_ACTIVITIES_OFF = "off"; //$NON-NLS-1$
-	private static final String SHOW_DISABLED_ACTIVITIES_ON = "on"; //$NON-NLS-1$
-//	private static final String SHOW_DISABLED_ACTIVITIES_ALWAYS = "always"; //$NON-NLS-1$
-
-	private Preferences pref;
-	private IWorkbenchActivitySupport activitySupport;
-	private boolean userCanToggleFiltering;
-	private boolean filteringEnabled;
-	private ActivityDescriptor activityDescriptor;
-	
-	class ActivityDescriptor {
-		private IConfigurationElement config;
-		private String documentMessage;
-		private boolean needsLiveHelp;
-		
-		public ActivityDescriptor() {
-			load();
-		}
-		
-		private void load() {
-			IConfigurationElement [] elements = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.help.base.activitySupport");//$NON-NLS-1$
-			if (elements.length==1 && elements[0].getName().equals("support")) //$NON-NLS-1$
-				config = elements[0];
-			else if (elements.length>0) {
-				IProduct product = Platform.getProduct();
-				if (product==null) return;
-				String productId = product.getId(); 
-				for (int i=0; i<elements.length; i++) {
-					IConfigurationElement element = elements[i];
-					if (element.getAttribute("productId").equals(productId)) { //$NON-NLS-1$
-						config = element;
-						break;
-					}
-				}
-			}
-		}
-		private IConfigurationElement getChild(String name) {
-			IConfigurationElement [] children = config.getChildren(name);
-			return children.length==1?children[0]:null;
-		}
-		public String getShowAllMessage() {
-			if (config==null)
-				return null;
-			IConfigurationElement child = getChild("showAllMessage"); //$NON-NLS-1$
-			if (child!=null)
-				return child.getValue();
-			return null;
-		}
-		public String getLocalScopeCheckboxLabel() {
-			if (config==null)
-				return null;
-			IConfigurationElement child = getChild("localScopeCheckbox"); //$NON-NLS-1$
-			if (child!=null)
-				return child.getValue();
-			return null;
-		}
-		public boolean needsLiveHelp(boolean embedded) {
-			getDocumentMessage(embedded);
-			return needsLiveHelp;
-		}
-		public String getDocumentMessage(boolean embedded) {
-			if (config!=null && documentMessage==null) {
-				IConfigurationElement child = getChild("documentMessage"); //$NON-NLS-1$
-				if (child!=null) {
-					String value = child.getValue();
-					String pluginId = child.getAttribute("pluginId"); //$NON-NLS-1$
-					String className = child.getAttribute("class"); //$NON-NLS-1$
-					int loc = value.indexOf("ACTIVITY_EDITOR"); //$NON-NLS-1$
-					if (loc!= -1 && className!=null) {
-						needsLiveHelp=true;
-						StringBuffer buffer = new StringBuffer();
-						buffer.append(value.substring(0, loc));
-						buffer.append(getActivityEditorValue(pluginId, className, embedded));
-						buffer.append(value.substring(loc+15));
-						documentMessage = buffer.toString();
-					}
-					else
-						documentMessage = value;
-				}
-			}
-			return documentMessage;
-		}
-		private String getActivityEditorValue(String pluginId, String className, boolean embedded) {
-			String evalue = embedded?"narrow":""; //$NON-NLS-1$ //$NON-NLS-2$
-			return "javascript:liveAction(\""+pluginId+"\", \""+className+"\",\""+evalue+"\")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-	}
-	
-
-	public HelpActivitySupport(IWorkbench workbench) {
-		activitySupport = workbench.getActivitySupport();
-		activityDescriptor = new ActivityDescriptor();
-		pref = HelpBasePlugin.getDefault().getPluginPreferences();
-
-		String showDisabledActivities = pref
-				.getString(PREF_KEY_SHOW_DISABLED_ACTIVITIES);
-		userCanToggleFiltering = SHOW_DISABLED_ACTIVITIES_OFF
-				.equalsIgnoreCase(showDisabledActivities)
-				|| SHOW_DISABLED_ACTIVITIES_ON
-						.equalsIgnoreCase(showDisabledActivities);
-		userCanToggleFiltering = userCanToggleFiltering
-				&& isWorkbenchFiltering();
-
-		filteringEnabled = SHOW_DISABLED_ACTIVITIES_OFF
-				.equalsIgnoreCase(showDisabledActivities)
-				|| SHOW_DISABLED_ACTIVITIES_NEVER
-						.equalsIgnoreCase(showDisabledActivities);
-		filteringEnabled = filteringEnabled && isWorkbenchFiltering();
-	}
-	public boolean isFilteringEnabled() {
-		return filteringEnabled;
-	}
-	public void setFilteringEnabled(boolean enabled) {
-		if (userCanToggleFiltering) {
-			filteringEnabled = enabled;
-			if (enabled) {
-				pref.setValue(PREF_KEY_SHOW_DISABLED_ACTIVITIES,
-						SHOW_DISABLED_ACTIVITIES_OFF);
-			} else {
-				pref.setValue(PREF_KEY_SHOW_DISABLED_ACTIVITIES,
-						SHOW_DISABLED_ACTIVITIES_ON);
-			}
-		}
-	}
-	public boolean isUserCanToggleFiltering() {
-		return userCanToggleFiltering;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.internal.base.IHelpActivitySupport#isEnabled()
-	 */
-	public boolean isEnabled(String href) {
-		if (!isFilteringEnabled()) {
-			return true;
-		}
-		return isRoleEnabled(href);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.help.internal.base.IHelpActivitySupport#isRoleEnabled(java.lang.String)
-	 */
-	public boolean isRoleEnabled(String href) {
-		if (href.startsWith("/")) { //$NON-NLS-1$
-			href = href.substring(1);
-		}
-
-		return activitySupport.getActivityManager().getIdentifier(href)
-				.isEnabled();
-	}
-
-	/**
-	 * Checks whether topic belongs to a TOC that mathes enabled activity.
-	 * Enabled children TOCs are searched if linked by also enabled TOCs.
-	 * Additionally topic may match description topic of a root TOC.
-	 * 
-	 * @return true if topic belongs to an enabled TOC
-	 * @param href
-	 * @param locale
-	 *            locale for which TOCs are checked
-	 */
-	public boolean isEnabledTopic(String href, String locale) {
-		if (href == null) {
-			return false;
-		}
-		if (!isFilteringEnabled()) {
-			return true;
-		}
-		int ix = href.indexOf("?resultof="); //$NON-NLS-1$
-		if (ix >= 0) {
-			href = href.substring(0, ix);
-		}
-		// Find out if description topic for enabled top level TOCs matches the
-		// topic
-		ITocElement[] tocs = HelpPlugin.getTocManager().getTocs(locale);
-		for (int t = 0; t < tocs.length; t++) {
-			String descriptionHref = tocs[t].getTocTopicHref();
-			if (descriptionHref != null
-					&& descriptionHref.length() > 0
-					&& descriptionHref.equals(href)
-					&& HelpBasePlugin.getActivitySupport().isEnabled(
-							tocs[t].getHref())) {
-				return true;
-			}
-		}
-		// Find out if any contributed toc that is enabled contains the topic
-		return isInTocSubtree(href, Arrays.asList(tocs));
-	}
-	/**
-	 * @param href
-	 *            href of a topic
-	 * @param tocList
-	 *            List of ITocElement
-	 * @return true if given topic belongs to one of enabled ITocElements or
-	 *         their children
-	 */
-	private boolean isInTocSubtree(String href, List tocList) {
-		for (Iterator it = tocList.iterator(); it.hasNext();) {
-			ITocElement toc = (ITocElement) it.next();
-			if (!HelpBasePlugin.getActivitySupport().isEnabled(toc.getHref())) {
-				// TOC is not enabled, check other TOCs
-				continue;
-			}
-			// Check topics in navigation
-			if (toc.getOwnedTopic(href) != null) {
-				return true;
-			}
-			// Check extra dir
-			if (toc.getOwnedExtraTopic(href) != null) {
-				return true;
-			}
-			// check children TOCs
-			if (isInTocSubtree(href, toc.getChildrenTocs())) {
-				return true;
-			}
-			// try other TOCs at this level
-		}
-		return false;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.internal.base.IHelpActivitySupport#enableActivities(java.lang.String)
-	 */
-	public void enableActivities(String href) {
-		if (href.startsWith("/")) { //$NON-NLS-1$
-			href = href.substring(1);
-		}
-
-		IIdentifier identifier = activitySupport.getActivityManager()
-				.getIdentifier(href);
-		Set activitityIds = identifier.getActivityIds();
-		if (activitityIds.isEmpty()) { // if there are no activities that match
-			// this identifier, do nothing.
-			return;
-		}
-
-		Set enabledIds = new HashSet(activitySupport.getActivityManager()
-				.getEnabledActivityIds());
-		enabledIds.addAll(activitityIds);
-		activitySupport.setEnabledActivityIds(enabledIds);
-	}
-
-	/**
-	 * @return whether the UI is set up to filter contributions (has defined
-	 *         activity categories).
-	 */
-	private static boolean isWorkbenchFiltering() {
-		return !PlatformUI.getWorkbench().getActivitySupport()
-				.getActivityManager().getDefinedActivityIds().isEmpty();
-	}
-	public String getShowAllMessage() {
-		return activityDescriptor.getShowAllMessage();
-	}
-	public String getDocumentMessage(boolean embedded) {
-		return activityDescriptor.getDocumentMessage(embedded);
-	}
-	public boolean getDocumentMessageUsesLiveHelp(boolean embedded) {
-		return activityDescriptor.needsLiveHelp(embedded);
-	}
-	public String getLocalScopeCheckboxLabel() {
-		return activityDescriptor.getLocalScopeCheckboxLabel();
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIEventLoop.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIEventLoop.java
deleted file mode 100644
index 06b6d30..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIEventLoop.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.swt.widgets.*;
-public class HelpUIEventLoop {
-	/**
-	 * Indicates whether run had a chance to execute and display got created
-	 */
-	private static boolean started = false;
-	/**
-	 * Indicates whether it is still running
-	 */
-	private static boolean running = false;
-	private static Display display;
-	/**
-	 * Called by base in stand-alone help since it cannot run event loop
-	 */
-	public static void run() {
-		try {
-			if (display == null)
-				display = Display.getCurrent();
-			if (display == null)
-				display = new Display();
-		} finally {
-			started = true;
-		}
-		try {
-			running = true;
-			while (HelpApplication.isRunning()) {
-				try {
-					if (!display.readAndDispatch()) {
-						display.sleep();
-					}
-				} catch (Throwable t) {
-					HelpBasePlugin.logError(t.getMessage(), t);
-				}
-			}
-			display.dispose();
-			display = null;
-		} finally {
-			running = false;
-		}
-	}
-	public static void wakeup() {
-		Display d = display;
-		if (d != null)
-			try {
-				d.wake();
-			} catch (Exception e) {
-			}
-	}
-	/**
-	 * Blocks until the loop is started (Display created)
-	 */
-	public static void waitFor() {
-		while (!started && HelpApplication.isRunning()) {
-			try {
-				Thread.sleep(100);
-			} catch (InterruptedException ie) {
-			}
-		}
-	}
-	/**
-	 * @return Returns if loop is running.
-	 */
-	public static boolean isRunning() {
-		return running;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIPlugin.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIPlugin.java
deleted file mode 100644
index 258297d..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIPlugin.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.search.federated.IndexerJob;
-import org.eclipse.help.internal.xhtml.XHTMLSupport;
-import org.eclipse.help.ui.internal.util.ErrorUtil;
-import org.eclipse.help.ui.internal.xhtml.UIContentFilterProcessor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * This class is Help UI plugin.
- */
-public class HelpUIPlugin extends AbstractUIPlugin {
-
-	public final static String PLUGIN_ID = "org.eclipse.help.ui"; //$NON-NLS-1$
-	// debug options
-	public static boolean DEBUG = false;
-	public static boolean DEBUG_INFOPOP = false;
-
-	private static HelpUIPlugin plugin;
-
-	// private static BundleContext bundleContext;
-	/**
-	 * Logs an Error message with an exception. Note that the message should already be localized to
-	 * proper locale. ie: Resources.getString() should already have been called
-	 */
-	public static synchronized void logError(String message, Throwable ex) {
-		logError(message, ex, true, false);
-	}
-
-	public static synchronized void logError(String message, Throwable ex, boolean log, boolean openDialog) {
-		if (message == null)
-			message = ""; //$NON-NLS-1$
-		Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, ex);
-		HelpPlugin.getDefault().getLog().log(errorStatus);
-		if (openDialog)
-			ErrorDialog.openError(null, null, null, errorStatus);
-	}
-
-	/**
-	 * Logs a Warning message with an exception. Note that the message should already be localized
-	 * to proper local. ie: Resources.getString() should already have been called
-	 */
-	public static synchronized void logWarning(String message) {
-		if (HelpPlugin.DEBUG) {
-			if (message == null)
-				message = ""; //$NON-NLS-1$
-			Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID, IStatus.OK, message, null);
-			HelpPlugin.getDefault().getLog().log(warningStatus);
-		}
-	}
-
-	/**
-	 * Provides access to singleton
-	 * 
-	 * @return HelpUIPlugin
-	 */
-	public static HelpUIPlugin getDefault() {
-		return plugin;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		// Make sure we cancel indexer if it is currently running
-		Platform.getJobManager().cancel(IndexerJob.FAMILY);
-		super.stop(context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-
-		XHTMLSupport.setFilterProcessor(new UIContentFilterProcessor());
-
-		// bundleContext = context;
-		// Setup debugging options
-		DEBUG = isDebugging();
-		if (DEBUG) {
-			DEBUG_INFOPOP = "true".equalsIgnoreCase(Platform.getDebugOption(PLUGIN_ID + "/debug/infopop")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_WORKBENCH)
-			// UI may get activated during standalone
-			BaseHelpSystem.setDefaultErrorUtil(new ErrorUtil());
-
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_WORKBENCH) {
-			// This is workbench scenario. Set activity support of base help to
-			// use workbench activity support
-			IWorkbench workbench = PlatformUI.getWorkbench();
-			if (workbench != null) {
-				HelpBasePlugin.setActivitySupport(new HelpActivitySupport(workbench));
-			}
-		}
-	}
-}
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
deleted file mode 100644
index 1108c36..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.osgi.framework.Bundle;
-/**
- * Uses a resource bundle to load images and strings from a property file. This
- * class needs to properly use the desired locale.
- */
-public class HelpUIResources {
-	/**
-	 * WorkbenchResources constructor comment.
-	 */
-	public HelpUIResources() {
-		super();
-	}
-	/**
-	 * Returns a string from a property file
-	 */
-	public static URL getImagePath(String name) {
-		IPath path = new Path("$nl$/icons/").append(name); //$NON-NLS-1$
-		return FileLocator.find(HelpUIPlugin.getDefault().getBundle(), path, null);
-	}
-	
-	/**
-	 * Returns an image descriptor from a property file
-	 * @param name simple image file name
-	 * @return the descriptor
-	 */
-
-	public static ImageDescriptor getImageDescriptor(String name) {
-		URL imagePath = getImagePath(name);
-		ImageRegistry registry = HelpUIPlugin.getDefault().getImageRegistry();
-		ImageDescriptor desc = registry.getDescriptor(name);
-		if (desc==null) {
-			desc = ImageDescriptor.createFromURL(imagePath);
-			registry.put(name, desc);
-		}
-		return desc;
-	}
-	
-	public static ImageDescriptor getImageDescriptor(String bundleId, String name) {
-		ImageRegistry registry = HelpUIPlugin.getDefault().getImageRegistry();		
-		ImageDescriptor desc = registry.getDescriptor(name);
-		if (desc==null) {
-			Bundle bundle = Platform.getBundle(bundleId);
-			if (bundle==null) return null;
-			URL url = FileLocator.find(bundle, new Path(name), null);			
-			desc = ImageDescriptor.createFromURL(url);
-			registry.put(name, desc);
-		}
-		return desc;
-	}
-	
-	/**
-	 * Returns an image from a property file
-	 * @param name simple image file name
-	 * @return the new image or <code>null</code> if image
-	 * could not be created
-	 */
-
-	public static Image getImage(String name) {
-		ImageRegistry registry = HelpUIPlugin.getDefault().getImageRegistry();
-		//Ensure we have the descriptor
-		getImageDescriptor(name);
-		return registry.get(name);
-	}
-	
-	public static Image getImage(URL url) {
-		ImageRegistry registry = HelpUIPlugin.getDefault().getImageRegistry();	
-		String name = url.toString();
-		ImageDescriptor desc = registry.getDescriptor(name);
-		if (desc==null) {
-			desc = ImageDescriptor.createFromURL(url);
-			registry.put(name, desc);
-		}
-		return registry.get(name);
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkAdapter.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkAdapter.java
deleted file mode 100644
index 5f22251..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkAdapter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-import org.eclipse.swt.widgets.*;
-public class HyperlinkAdapter implements IHyperlinkListener {
-	/**
-	 * HyperlinkAdapter constructor comment.
-	 */
-	public HyperlinkAdapter() {
-		super();
-	}
-	/**
-	 * @param linkLabel
-	 *            org.eclipse.swt.widgets.Label
-	 */
-	public void linkActivated(Control linkLabel) {
-	}
-	/**
-	 * @param linkLabel
-	 *            org.eclipse.swt.widgets.Label
-	 */
-	public void linkEntered(Control linkLabel) {
-	}
-	/**
-	 * @param linkLabel
-	 *            org.eclipse.swt.widgets.Label
-	 */
-	public void linkExited(Control linkLabel) {
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkHandler.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkHandler.java
deleted file mode 100644
index 8a75d7e..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkHandler.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-public class HyperlinkHandler
-		implements
-			MouseListener,
-			MouseTrackListener,
-			PaintListener,
-			Listener {
-	public static final int UNDERLINE_NEVER = 1;
-	public static final int UNDERLINE_ROLLOVER = 2;
-	public static final int UNDERLINE_ALWAYS = 3;
-	private Cursor hyperlinkCursor;
-	private Cursor busyCursor;
-	private boolean hyperlinkCursorUsed = true;
-	private int hyperlinkUnderlineMode = UNDERLINE_ALWAYS;
-	private Color background;
-	private Color foreground;
-	private Color activeBackground;
-	private Color activeForeground;
-	private Hashtable hyperlinkListeners;
-	private Control lastLink;
-	/**
-	 * HyperlinkHandler constructor comment.
-	 */
-	public HyperlinkHandler() {
-		hyperlinkListeners = new Hashtable();
-		hyperlinkCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_HAND);
-		busyCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_WAIT);
-	}
-	/**
-	 */
-	public void dispose() {
-		hyperlinkCursor.dispose();
-		busyCursor.dispose();
-	}
-	/**
-	 * @return org.eclipse.swt.graphics.Color
-	 */
-	public Color getActiveBackground() {
-		return activeBackground;
-	}
-	/**
-	 * @return org.eclipse.swt.graphics.Color
-	 */
-	public Color getActiveForeground() {
-		return activeForeground;
-	}
-	/**
-	 * @return org.eclipse.swt.graphics.Color
-	 */
-	public Color getBackground() {
-		return background;
-	}
-	/**
-	 * @return org.eclipse.swt.graphics.Cursor
-	 */
-	public Cursor getBusyCursor() {
-		return busyCursor;
-	}
-	/**
-	 * @return org.eclipse.swt.graphics.Color
-	 */
-	public Color getForeground() {
-		return foreground;
-	}
-	/**
-	 * @return org.eclipse.swt.graphics.Cursor
-	 */
-	public Cursor getHyperlinkCursor() {
-		return hyperlinkCursor;
-	}
-	/**
-	 * @return int
-	 */
-	public int getHyperlinkUnderlineMode() {
-		return hyperlinkUnderlineMode;
-	}
-	/**
-	 * @return org.eclipse.swt.widgets.Control
-	 */
-	public Control getLastLink() {
-		return lastLink;
-	}
-	/**
-	 * @return boolean
-	 */
-	public boolean isHyperlinkCursorUsed() {
-		return hyperlinkCursorUsed;
-	}
-	public void mouseDoubleClick(MouseEvent e) {
-	}
-	public void mouseDown(MouseEvent e) {
-		if (e.button == 1)
-			return;
-		lastLink = (Control) e.widget;
-	}
-	public void mouseEnter(MouseEvent e) {
-		Control control = (Control) e.widget;
-
-		if (isHyperlinkCursorUsed())
-			control.setCursor(hyperlinkCursor);
-		if (activeBackground != null)
-			control.setBackground(activeBackground);
-		if (activeForeground != null)
-			control.setForeground(activeForeground);
-		if (hyperlinkUnderlineMode == UNDERLINE_ROLLOVER)
-			underline(control, true);
-		IHyperlinkListener action = getLinkListener(control);
-		if (action != null)
-			action.linkEntered(control);
-	}
-	public void mouseExit(MouseEvent e) {
-		Control control = (Control) e.widget;
-
-		if (isHyperlinkCursorUsed())
-			control.setCursor(null);
-		if (hyperlinkUnderlineMode == UNDERLINE_ROLLOVER)
-			underline(control, false);
-		if (background != null)
-			control.setBackground(background);
-		if (foreground != null)
-			control.setForeground(foreground);
-		IHyperlinkListener action = getLinkListener(control);
-		if (action != null)
-			action.linkExited(control);
-	}
-	public void mouseHover(MouseEvent e) {
-	}
-	public void mouseUp(MouseEvent e) {
-		if (e.button != 1)
-			return;
-		IHyperlinkListener action = getLinkListener((Control) e.widget);
-
-		if (action != null) {
-			Control c = (Control) e.widget;
-			c.setCursor(busyCursor);
-			action.linkActivated(c);
-			if (!c.isDisposed())
-				c.setCursor(isHyperlinkCursorUsed() ? hyperlinkCursor : null);
-		}
-	}
-	public void paintControl(PaintEvent e) {
-		Control control = (Control) e.widget;
-		if (hyperlinkUnderlineMode == UNDERLINE_ALWAYS)
-			HyperlinkHandler.underline(control, true);
-	}
-	/**
-	 * @param control
-	 *            org.eclipse.swt.widgets.Control
-	 * @param listener
-	 *            org.eclipse.help.ui.internal.IHyperlinkListener
-	 */
-	public void registerHyperlink(Control control, IHyperlinkListener listener) {
-		if (background != null)
-			control.setBackground(background);
-		if (foreground != null)
-			control.setForeground(foreground);
-		control.addMouseListener(this);
-		control.addMouseTrackListener(this);
-		control.addListener(SWT.DefaultSelection, this);
-
-		if (hyperlinkUnderlineMode == UNDERLINE_ALWAYS)
-			control.addPaintListener(this);
-		hyperlinkListeners.put(control, listener);
-		removeDisposedLinks();
-	}
-	public IHyperlinkListener getLinkListener(Control c) {
-		if (c instanceof Label)
-			c = c.getParent();
-		return (IHyperlinkListener) hyperlinkListeners.get(c);
-	}
-
-	private void removeDisposedLinks() {
-		for (Enumeration keys = hyperlinkListeners.keys(); keys
-				.hasMoreElements();) {
-			Control control = (Control) keys.nextElement();
-			if (control.isDisposed()) {
-				hyperlinkListeners.remove(control);
-			}
-		}
-	}
-	/**
-	 */
-	public void reset() {
-		hyperlinkListeners.clear();
-	}
-	/**
-	 * @param newActiveBackground
-	 *            org.eclipse.swt.graphics.Color
-	 */
-	public void setActiveBackground(Color newActiveBackground) {
-		activeBackground = newActiveBackground;
-	}
-	/**
-	 * @param newActiveForeground
-	 *            org.eclipse.swt.graphics.Color
-	 */
-	public void setActiveForeground(Color newActiveForeground) {
-		activeForeground = newActiveForeground;
-	}
-	/**
-	 * @param newBackground
-	 *            org.eclipse.swt.graphics.Color
-	 */
-	public void setBackground(Color newBackground) {
-		background = newBackground;
-	}
-	/**
-	 * @param newForeground
-	 *            org.eclipse.swt.graphics.Color
-	 */
-	public void setForeground(Color newForeground) {
-		foreground = newForeground;
-	}
-	/**
-	 * @param newHyperlinkCursorUsed
-	 *            boolean
-	 */
-	public void setHyperlinkCursorUsed(boolean newHyperlinkCursorUsed) {
-		hyperlinkCursorUsed = newHyperlinkCursorUsed;
-	}
-	/**
-	 * @param newHyperlinkUnderlineMode
-	 *            int
-	 */
-	public void setHyperlinkUnderlineMode(int newHyperlinkUnderlineMode) {
-		hyperlinkUnderlineMode = newHyperlinkUnderlineMode;
-	}
-	/**
-	 * @param control
-	 *            org.eclipse.swt.widgets.Control
-	 * @param inside
-	 *            boolean
-	 */
-	public static void underline(Control control, boolean inside) {
-
-		if (control instanceof HyperlinkLabel)
-			control = ((HyperlinkLabel) control).getLabel();
-
-		Composite parent = control.getParent();
-		Rectangle bounds = control.getBounds();
-		GC gc = new GC(parent);
-		Color color = inside ? control.getForeground() : control
-				.getBackground();
-		gc.setForeground(color);
-		int y = bounds.y + bounds.height;
-		gc.drawLine(bounds.x, y, bounds.x + bounds.width, y);
-		gc.dispose();
-	}
-
-	/**
-	 * Sent when an event that the receiver has registered for occurs.
-	 * 
-	 * @param event
-	 *            the event which occurred
-	 */
-	public void handleEvent(Event event) {
-		IHyperlinkListener listener = getLinkListener((Control) event.widget);
-		listener.linkActivated((Control) event.widget);
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java
deleted file mode 100644
index 3b36352..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.accessibility.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * 
- * A canvas holding a hyperlink label. Need this to deal with focus selection.
- */
-public class HyperlinkLabel extends Canvas {
-	Label label;
-	boolean hasFocus;
-
-	/**
-	 * Constructor for Hyperlink.
-	 * 
-	 * @param parent
-	 * @param style
-	 */
-	public HyperlinkLabel(Composite parent, int style) {
-		super(parent, style);
-
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 3;
-		layout.marginWidth = 2;
-		layout.numColumns = 1;
-		this.setLayout(layout);
-
-		this.label = new Label(this, style);
-
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				paint(e);
-			}
-		});
-
-		addKeyListener(new KeyAdapter() {
-			public void keyPressed(KeyEvent e) {
-				if (e.character == '\r') {
-					// Activation
-					notifyListeners(SWT.DefaultSelection);
-				}
-			}
-		});
-
-		addListener(SWT.Traverse, new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.detail) {
-					// let arrows move focus
-					case SWT.TRAVERSE_ARROW_NEXT :
-						e.detail = SWT.TRAVERSE_TAB_NEXT;
-						break;
-					case SWT.TRAVERSE_ARROW_PREVIOUS :
-						e.detail = SWT.TRAVERSE_TAB_PREVIOUS;
-						break;
-
-					case SWT.TRAVERSE_PAGE_NEXT :
-					case SWT.TRAVERSE_PAGE_PREVIOUS :
-					case SWT.TRAVERSE_RETURN :
-						e.doit = false;
-						return;
-				}
-				e.doit = true;
-			}
-		});
-
-		addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent e) {
-				if (!hasFocus) {
-					hasFocus = true;
-					notifyListeners(SWT.Selection);
-					redraw();
-				}
-			}
-			public void focusLost(FocusEvent e) {
-				if (hasFocus) {
-					hasFocus = false;
-					notifyListeners(SWT.Selection);
-					redraw();
-				}
-			}
-		});
-
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-		data.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
-		label.setLayoutData(data);
-
-		initAccessibleLink();
-		initAccessibleLabel();
-	}
-
-	public void setText(String text) {
-		label.setText(text);
-	}
-
-	public boolean getSelection() {
-		return hasFocus;
-	}
-
-	public Label getLabel() {
-		return label;
-	}
-
-	void notifyListeners(int eventType) {
-		Event event = new Event();
-		event.type = eventType;
-		event.widget = this;
-		notifyListeners(eventType, event);
-	}
-
-	protected void paint(PaintEvent e) {
-		if (hasFocus) {
-			GC gc = e.gc;
-			Point size = getSize();
-			gc.setForeground(getForeground());
-			gc.drawFocus(0, 0, size.x, size.y);
-		}
-	}
-
-	public void addSelectionListener(SelectionListener listener) {
-		checkWidget();
-		if (listener == null)
-			return;
-		TypedListener typedListener = new TypedListener(listener);
-		addListener(SWT.Selection, typedListener);
-		addListener(SWT.DefaultSelection, typedListener);
-	}
-
-	public void removeSelectionListener(SelectionListener listener) {
-		checkWidget();
-		if (listener == null)
-			return;
-		removeListener(SWT.Selection, listener);
-		removeListener(SWT.DefaultSelection, listener);
-	}
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		int innerWidth = wHint;
-		if (innerWidth != SWT.DEFAULT)
-			innerWidth -= 4;
-		Point textSize = label.computeSize(wHint, hHint, changed);//computeTextSize(innerWidth,
-		// hHint);
-		int textWidth = textSize.x + 4;
-		int textHeight = textSize.y + 6;
-		return new Point(textWidth, textHeight);
-	}
-
-	public void addMouseListener(MouseListener l) {
-		//super.addMouseListener(l);
-		label.addMouseListener(l);
-	}
-
-	public void addMouseTrackListener(MouseTrackListener l) {
-		//super.addMouseTrackListener(l);
-		label.addMouseTrackListener(l);
-	}
-
-	public void addPaintListener(PaintListener l) {
-		super.addPaintListener(l);
-		label.addPaintListener(l);
-	}
-
-	public void addListener(int e, Listener l) {
-		super.addListener(e, l);
-		//label.addListener(e, l);
-	}
-
-	public void setBackground(Color c) {
-		super.setBackground(c);
-		label.setBackground(c);
-	}
-
-	public void setForeground(Color c) {
-		super.setForeground(c);
-		label.setForeground(c);
-	}
-
-	public void setCursor(Cursor c) {
-		super.setCursor(c);
-		label.setCursor(c);
-	}
-
-	private void initAccessibleLink() {
-		Accessible accessible = this.getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				e.result = label.getText();
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				e.result = label.getToolTipText();
-			}
-		});
-
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_LINK;
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				if (hasFocus)
-					e.detail = ACC.STATE_FOCUSABLE | ACC.STATE_LINKED
-							| ACC.STATE_FOCUSED;
-				else
-					e.detail = ACC.STATE_FOCUSABLE | ACC.STATE_LINKED;
-
-			}
-		});
-	}
-	private void initAccessibleLabel() {
-		Accessible accessible = label.getAccessible();
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getState(AccessibleControlEvent e) {
-				if (hasFocus)
-					e.detail = ACC.STATE_READONLY | ACC.STATE_FOCUSABLE
-							| ACC.STATE_SELECTABLE | ACC.STATE_LINKED
-							| ACC.STATE_FOCUSED;
-				else
-					e.detail = ACC.STATE_READONLY | ACC.STATE_FOCUSABLE
-							| ACC.STATE_SELECTABLE | ACC.STATE_LINKED;
-
-			}
-		});
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHelpUIConstants.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHelpUIConstants.java
deleted file mode 100644
index c47dab6..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHelpUIConstants.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-/**
- * Interface for holding Help UI plug-in constants
- */
-public interface IHelpUIConstants {
-	// Help UI pluging id with a "." for convenience.
-	public static final String HELP_UI_PLUGIN_ID = HelpUIPlugin.PLUGIN_ID + "."; //$NON-NLS-1$
-	// F1 ids
-	public static final String F1_SHELL = HELP_UI_PLUGIN_ID + "f1Shell"; //$NON-NLS-1$
-	public static final String PREF_PAGE_BROWSERS = HELP_UI_PLUGIN_ID
-			+ "prefPageBrowsers"; //$NON-NLS-1$
-	public static final String PREF_PAGE_APPSERVER = HELP_UI_PLUGIN_ID
-			+ "prefPageAppServer"; //$NON-NLS-1$
-	public static final String PREF_PAGE_CUSTOM_BROWSER_PATH = HELP_UI_PLUGIN_ID
-			+ "prefPageCustomBrowserPath"; //$NON-NLS-1$
-	
-	public static final String IMAGE_FILE_F1TOPIC = "obj16/topic_small.gif"; //$NON-NLS-1$
-	
-	// Help view images
-	public static final String IMAGE_CONTAINER = "obj16/container_obj.gif"; //$NON-NLS-1$
-	public static final String IMAGE_TOC_CLOSED= "obj16/toc_closed.gif"; //$NON-NLS-1$
-	public static final String IMAGE_TOC_OPEN = "obj16/toc_open.gif"; //$NON-NLS-1$
-	public static final String IMAGE_BOOKMARKS = "obj16/bookmarks_view.gif"; //$NON-NLS-1$
-	public static final String IMAGE_BOOKMARK = "obj16/bookmark_obj.gif"; //$NON-NLS-1$
-	public static final String IMAGE_HELP_SEARCH = "etool16/helpsearch_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_RELATED_TOPICS = "etool16/reltopics_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_ALL_TOPICS = "etool16/alltopics_co.gif"; //$NON-NLS-1$	
-	public static final String IMAGE_INDEX = "etool16/index_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_HELP = "etool16/help.gif"; //$NON-NLS-1$
-	public static final String IMAGE_DHELP = "view16/help_view.gif"; //$NON-NLS-1$
-	public static final String IMAGE_NW = "elcl16/openseparate_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_SHOW_CATEGORIES = "elcl16/showcat_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_SHOW_DESC = "elcl16/showdesc_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_ADD_BOOKMARK = "elcl16/addbkmrk_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_COLLAPSE_ALL = "elcl16/collapseall.gif"; //$NON-NLS-1$
-	public static final String IMAGE_SYNC_TOC = "elcl16/synch_toc_nav.gif"; //$NON-NLS-1$
-	public static final String IMAGE_SHOW_ALL = "elcl16/show_all.gif"; //$NON-NLS-1$	
-	public static final String IMAGE_DOC_OVR = "ovr16/doc_co.gif"; //$NON-NLS-1$
-	public static final String IMAGE_SCOPE_SET = "obj16/scopeset_obj.gif"; //$NON-NLS-1$
-	public static final String IMAGE_SEARCH_WIZ = "wizban/newsearch_wiz.gif"; //$NON-NLS-1$
-	// Help view constants
-	public static final String HV_SEARCH = "search"; //$NON-NLS-1$
-	public static final String HV_FSEARCH = "fsearch"; //$NON-NLS-1$
-	public static final String HV_SEARCH_RESULT = "search-result"; //$NON-NLS-1$
-	public static final String HV_FSEARCH_RESULT = "fsearch-result"; //$NON-NLS-1$
-	
-	public static final String HV_TOPIC_TREE = "topic-tree"; //$NON-NLS-1$
-	public static final String HV_BOOKMARKS_TREE = "bookmarks-tree"; //$NON-NLS-1$
-	public static final String HV_SEE_ALSO = "see-also"; //$NON-NLS-1$
-	public static final String HV_BROWSER = "browser"; //$NON-NLS-1$
-	public static final String HV_CONTEXT_HELP = "context-help"; //$NON-NLS-1$
-	public static final String HV_FSEARCH_PAGE = "fsearch-page"; //$NON-NLS-1$
-	public static final String HV_ALL_TOPICS_PAGE = "all-topics-page"; //$NON-NLS-1$
-	public static final String HV_BOOKMARKS_PAGE = "bookmarks-page"; //$NON-NLS-1$
-	public static final String HV_BROWSER_PAGE = "browser-page"; //$NON-NLS-1$
-	public static final String HV_RELATED_TOPICS = "related-topics"; //$NON-NLS-1$
-	public static final String HV_CONTEXT_HELP_PAGE = "context-help-page"; //$NON-NLS-1$
-
-	public static final String HV_INDEX = "index"; //$NON-NLS-1$
-	public static final String HV_INDEX_TYPEIN = "index-typein"; //$NON-NLS-1$
-	public static final String HV_INDEX_PAGE = "index-page"; //$NON-NLS-1$
-
-	static final String ENGINE_EXP_ID = "org.eclipse.help.ui.searchEngine"; //$NON-NLS-1$
-	static final String TAG_ENGINE = "engine"; //$NON-NLS-1$
-	static final String ATT_ID = "id"; //$NON-NLS-1$
-	static final String ATT_LABEL ="label"; //$NON-NLS-1$
-	static final String ATT_ICON = "icon";//$NON-NLS-1$
-	static final String ATT_CLASS = "class";//$NON-NLS-1$
-	static final String ATT_ENABLED = "enabled"; //$NON-NLS-1$
-	static final String ATT_PAGE_CLASS = "pageClass";//$NON-NLS-1$
-	static final String ATT_CATEGORY = "category";//$NON-NLS-1$
-	static final String TAG_DESC = "description"; //$NON-NLS-1$
-	static final String ATT_SCOPE_FACTORY = "scopeFactory";//$NON-NLS-1$
-	static final String ATT_ENGINE_TYPE_ID = "engineTypeId"; //$NON-NLS-1$
-	static final String ATT_NAME = "name";//$NON-NLS-1$
-	static final String ATT_VALUE = "value";//$NON-NLS-1$
-	static final int ADD = 1;
-	static final int REMOVE = 2;
-	static final int CHANGE = 3;
-	static final String INTERNAL_HELP_ID = "org.eclipse.help.ui.localSearch";//$NON-NLS-1$
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHyperlinkListener.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHyperlinkListener.java
deleted file mode 100644
index 47f50a99..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/IHyperlinkListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.swt.widgets.*;
-
-/**
- *  
- */
-public interface IHyperlinkListener {
-	/**
-	 * @param linkLabel
-	 *            org.eclipse.swt.widgets.Label
-	 */
-	public void linkActivated(Control linkLabel);
-	/**
-	 * @param linkLabel
-	 *            org.eclipse.swt.widgets.Label
-	 */
-	public void linkEntered(Control linkLabel);
-	/**
-	 * @param linkLabel
-	 *            org.eclipse.swt.widgets.Label
-	 */
-	public void linkExited(Control linkLabel);
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java
deleted file mode 100644
index 1c057da..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.help.ui.internal.Messages";//$NON-NLS-1$
-
-	private Messages() {
-		// Do not instantiate
-	}
-
-	public static String Help_Error;
-	public static String Help_Question;
-	public static String Help_Info;
-	public static String browserTitle;
-	public static String use_only_external_browser;
-	public static String select_browser;
-	public static String current_browser;
-	public static String SystemBrowser_noProgramForURL;
-	public static String SystemBrowser_noProgramForHTML;
-	public static String CustomBrowserPreferencePage_Program;
-	public static String CustomBrowserPreferencePage_Browse;
-	public static String CustomBrowserPreferencePage_Details;
-	public static String AppserverPreferencePage_description;
-	public static String AppserverPreferencePage_hostDescription;
-	public static String AppserverPreferencePage_portDescription;
-	public static String AppserverPreferencePage_requireRestart;
-	public static String AppserverPreferencePage_invalidPort;
-	public static String WW002;
-	public static String WE022;
-	public static String WE023;
-	public static String WE024;
-	public static String WE029;
-	public static String WW003;
-	public static String LaunchURL_exception;
-	public static String ReusableHelpPart_searchPage_name;
-	public static String ReusableHelpPart_allTopicsPage_name;
-	public static String ReusableHelpPart_bookmarksPage_name;
-	public static String ReusableHelpPart_contextHelpPage_name;
-	public static String ReusableHelpPart_back_label;
-	public static String ReusableHelpPart_back_tooltip;
-	public static String ReusableHelpPart_forward_label;
-	public static String ReusableHelpPart_forward_tooltip;
-	public static String ReusableHelpPart_openInfoCenterAction_label;
-	public static String ReusableHelpPart_openAction_label;
-	public static String ReusableHelpPart_openInHelpContentsAction_label;
-	public static String ReusableHelpPart_closeAction_tooltip;
-	public static String ReusableHelpPart_copyAction_label;
-	public static String ReusableHelpPart_bookmarkAction_label;
-	public static String ReusableHelpPart_status;
-	public static String ReusableHelpPart_indexPage_name;
-	public static String HelpView_defaultText;
-	public static String expression;
-	public static String expression_label;
-	public static String limit_to;
-	public static String SeeAlsoPart_search;
-	public static String SeeAlsoPart_allTopics;
-	public static String SeeAlsoPart_goto;
-	public static String SeeAlsoPart_contextHelp;
-	public static String SeeAlsoPart_bookmarks;
-	public static String SeeAlsoPart_index;
-	public static String ContextHelpPart_about;
-	public static String ContextHelpPart_aboutP;
-	public static String ContextHelpPart_dynamicHelp;
-	public static String ContextHelpPart_query_view;
-	public static String ContextHelpPart_query_perspective;
-	public static String ContextHelpPart_seeAlso;
-	public static String SearchResultsPart_label;
-	public static String SearchResultsPart_progress;
-	public static String SearchResultsPart_cancel;
-	public static String SearchResultsPart_nwtooltip;
-	public static String SearchResultsPart_bmktooltip;
-	public static String SearchResultsPart_moreResults;
-	public static String SearchPart_clearResults;
-	public static String SearchPart_dynamicJob;
-	public static String SearchPart_learnMore;
-	public static String SearchPart_title;
-	public static String SearchPart_stop;
-	public static String SearchPart_go;
-	public static String SearchPart_errors;
-	public static String SearchPart_collapse;
-	public static String SearchPart_expand;
-	public static String SearchPart_potential_hit;
-	public static String WorkingSetPageDescription;
-	public static String WorkingSetContent;
-	public static String selectAll;
-	public static String selectWorkingSet;
-	public static String WE030;
-	public static String WE031;
-	public static String WE032;
-	public static String WE033;
-	public static String FederatedSearchPart_advanced;
-	public static String FederatedSearchPart_changeScopeSet;
-	public static String ScopeSet_default;
-	public static String ScopeSetDialog_wtitle;
-	public static String ScopeSetDialog_new;
-	public static String ScopeSetDialog_edit;
-	public static String ScopeSetDialog_remove;
-	public static String ScopeSetDialog_rename;
-	public static String RenameDialog_wtitle;
-	public static String RenameDialog_label;
-	public static String RenameDialog_validationError;
-	public static String EngineResultSection_moreResults;
-	public static String EngineResultSection_lessResults;
-	public static String EngineResultSection_progress2;
-	public static String EngineResultSection_canceling;
-	public static String EngineResultSection_progressError;
-	public static String EngineResultSection_previous;
-	public static String EngineResultSection_next;
-	public static String EngineResultSection_sectionTitle_error;
-	public static String EngineResultSection_sectionTitle_hit;
-	public static String EngineResultSection_progressTooltip;
-	public static String EngineResultSection_searchInProgress;
-	public static String EngineResultSection_sectionTitle_hits;
-	public static String EngineResultSection_sectionTitle_hitsRange;
-	public static String EngineTypeWizardPage_title;
-	public static String EngineTypeWizardPage_desc;
-	public static String EngineTypeWizardPage_label;
-	public static String EngineDescriptorManager_errorLoading;
-	public static String EngineDescriptorManager_errorSaving;
-	public static String SearchResultsPart_showCategoriesAction_tooltip;
-	public static String SearchResultsPart_showDescriptionAction_tooltip;
-	public static String ScopePreferenceDialog_wtitle;
-	public static String ScopePreferenceDialog_new;
-	public static String ScopePreferenceDialog_delete;
-	public static String NewEngineWizard_wtitle;
-	public static String BrowserPart_showExternalTooltip;
-	public static String BrowsersPreferencePage_message;
-	public static String BrowsersPreferencePage_winfopop;
-	public static String BrowsersPreferencePage_dinfopop;
-	public static String BrowserPart_bookmarkTooltip;
-	public static String BrowserPart_syncTocTooltip;	
-	public static String BrowsersPreferencePage_wgroup;
-	public static String BrowsersPreferencePage_view;
-	public static String BrowsersPreferencePage_dgroup;
-	public static String BrowsersPreferencePage_tray;
-	public static String BrowsersPreferencePage_search;
-	public static String BrowsersPreferencePage_searchPotentialHits;
-	public static String BrowsersPreferencePage_searchActualHits;
-	public static String InfoCenterPage_url;
-	public static String InfoCenterPage_invalidURL;
-	public static String InfoCenterPage_tocError;
-	public static String WebSearchPage_label;
-	public static String WebSearchPage_info;
-	public static String LocalHelpPage_capabilityFiltering_name;
-	public static String RootScopePage_masterButton;
-	public static String RootScopePage_name;
-	public static String RootScopePage_desc;
-	public static String AllTopicsPart_collapseAll_tooltip;
-	public static String AllTopicsPart_showAll_tooltip;
-	public static String BookmarksPart_savedTopics;
-	public static String BookmarksPart_delete;
-	public static String BookmarksPart_deleteAll;
-	public static String AskShowAll_dialogTitle;
-	public static String AskShowAll_message;
-	public static String AskShowAll_toggleMessage;
-	
-	public static String DefaultHelpUI_wtitle;
-	public static String DefaultHelpUI_noPerspMessage;
-	public static String ContextHelpDialog_showInDynamicHelp;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String BrowsersPreferencePage_openModeGroup;
-	public static String BrowsersPreferencePage_openInPlace;
-	public static String BrowsersPreferencePage_openInEditor;
-	public static String ReusableHelpPart_internalBrowserTitle;
-	public static String ReusableHelpPart_internalWebBrowserError;
-	public static String ScopeSet_errorLoading;
-	public static String ScopeSet_errorSaving;
-	public static String IndexInstructions;
-	public static String IndexButton;
-	
-	public static String NoWorkbenchForExecuteCommand_msg;
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties
deleted file mode 100644
index 0d7845d..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties
+++ /dev/null
@@ -1,210 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# ErrorUtil
-Help_Error = Help Error
-Help_Question = Help Question
-Help_Info = Help Information
-
-# IEBrowserAdapter
-browserTitle = Help - {0}
-
-# BrowsersPreferencePage
-use_only_external_browser = Use e&xternal browser
-
-select_browser = Specify how help information is displayed.
-current_browser = Current external &web browser adapter:
-
-# SystemBrowserAdapter
-SystemBrowser_noProgramForURL = Your system has no program registered for file {0}.  Change the file association or choose a different help web browser in the preferences.
-SystemBrowser_noProgramForHTML= A program associated with ".html" extension could not be launched.  Change the file association or choose a different help web browser in the preferences.
-
-# BrowsersPreferencePage
-CustomBrowserPreferencePage_Program = Custom Browser &command:
-CustomBrowserPreferencePage_Browse = &Browse...
-CustomBrowserPreferencePage_Details = Select a browser program
-
-# AppserverPreferencePage
-AppserverPreferencePage_description = Internal Application Server configuration.  The server is used internally \
-by help system.
-AppserverPreferencePage_hostDescription = &Host name or IP address:
-#AppserverPreferencePage.host = &Host:
-AppserverPreferencePage_portDescription = Server &port:
-#AppserverPreferencePage.port = &Port:
-AppserverPreferencePage_requireRestart = <form><p><b>Note:</b> Leave the above fields empty to have the IP address and port number \
-dynamically computed by the help system. If the server is already running, these preferences will only take effect \
-after restarting.</p></form>
-AppserverPreferencePage_invalidPort = Port must be a number in the range 0-65535
-
-# ContextHelpDialog
-WW002 = No description.
-
-# Embedded Browser Adapter
-WE022 = Exception occurred trying to obtain install location of embedded browser adapter.
-WE023 = Embedded Browser adapter process has been interrupted.
-WE024 = Exception occurred launching embedded help browser.  Executed command: {0}
-WE029 = Exception occurred when obtaining product icon.
-WW003 = Could not send command to embedded browser.  Possible that browser is not running.
-
-# Other
-LaunchURL_exception = Exception occurred when opening URL.  Refer to the log for details.
-
-#Help View
-ReusableHelpPart_searchPage_name=Search
-ReusableHelpPart_allTopicsPage_name=All Topics
-ReusableHelpPart_bookmarksPage_name=Bookmarks
-ReusableHelpPart_contextHelpPage_name=Related Topics
-ReusableHelpPart_back_label=&Back
-ReusableHelpPart_back_tooltip=Back
-ReusableHelpPart_forward_label=&Forward
-ReusableHelpPart_forward_tooltip=Forward
-ReusableHelpPart_openInfoCenterAction_label=&Help Contents
-ReusableHelpPart_openAction_label=&Open
-ReusableHelpPart_internalWebBrowserError=Error while opening internal web browser
-ReusableHelpPart_openInHelpContentsAction_label=Open in Help &Contents
-ReusableHelpPart_copyAction_label=&Copy
-ReusableHelpPart_closeAction_tooltip=Close
-ReusableHelpPart_bookmarkAction_label=&Add Bookmark
-ReusableHelpPart_internalBrowserTitle=Help
-ReusableHelpPart_status = {0} - {1}
-ReusableHelpPart_indexPage_name=Index
-
-HelpView_defaultText=Click on any workbench part to show related help topics.
-
-expression = Search expression:
-expression_label = * = any string, ? = any character, "" = phrase, AND, OR, NOT = boolean operators
-limit_to = Search scope
-
-SeeAlsoPart_search=Search
-SeeAlsoPart_allTopics=All Topics
-SeeAlsoPart_goto=Go To:
-SeeAlsoPart_contextHelp=Related Topics
-SeeAlsoPart_bookmarks = Bookmarks
-SeeAlsoPart_index = Index
-ContextHelpPart_about=About
-ContextHelpPart_aboutP=About {0}
-ContextHelpPart_dynamicHelp=Search for other related topics
-ContextHelpPart_query_view= {0} view
-ContextHelpPart_query_perspective= {0} perspective
-ContextHelpPart_seeAlso=See also:
-
-SearchResultsPart_label=Search results:
-SearchResultsPart_progress=Search in progress...
-SearchResultsPart_cancel=Cancel
-SearchResultsPart_nwtooltip=Open link in a Help window
-SearchResultsPart_bmktooltip = Bookmark document
-SearchResultsPart_moreResults=More results...
-
-SearchPart_clearResults=Clear results
-SearchPart_dynamicJob=Dynamic Help Search
-SearchPart_learnMore=Learn more
-SearchPart_title= Dynamic Help
-SearchPart_stop=Stop
-SearchPart_go=Go
-SearchPart_errors=Errors during search
-SearchPart_collapse=Collapse
-SearchPart_expand=Expand
-SearchPart_potential_hit={0} (potential hit)
-
-# LocalHelpPage
-WorkingSetPageDescription = Enter a working set name and select working set elements
-WorkingSetContent = Working set &content:
-selectAll=Sea&rch all topics
-selectWorkingSet=Search only the following &topics
-WE030 = The name must not have leading or trailing whitespace
-WE031 = The name must not be empty
-WE032 = The working set already exists
-WE033 = Need to select something
-FederatedSearchPart_advanced=Advanced Settings
-FederatedSearchPart_changeScopeSet=Change the current scope set
-
-ScopeSet_default=Default
-ScopeSetDialog_wtitle = Select Search Scope Sets
-ScopeSetDialog_new=&New...
-ScopeSetDialog_edit=&Edit...
-ScopeSetDialog_remove=&Remove
-ScopeSetDialog_rename = Rena&me...
-ScopeSet_errorLoading=Error loading the scope set: {0}
-ScopeSet_errorSaving=Error saving the scope set: {0}
-RenameDialog_wtitle = Rename Scope Set
-RenameDialog_label = Scope Set &Name:
-RenameDialog_validationError = Name has already been used.
-
-EngineResultSection_moreResults=More results &gt;&gt;
-EngineResultSection_lessResults=&lt;&lt; Less results
-EngineResultSection_progress2=Search in progress...
-EngineResultSection_canceling=Canceling...
-EngineResultSection_progressError=Error opening the progress view
-EngineResultSection_previous=Previous {0}
-EngineResultSection_next=Next {0}
-EngineResultSection_sectionTitle_error = {0} (error)
-EngineResultSection_sectionTitle_hit = {0} ({1} hit)
-EngineResultSection_progressTooltip=Show Progress View
-EngineResultSection_searchInProgress=Search in progress...
-EngineResultSection_sectionTitle_hits = {0} ({1} hits)
-EngineResultSection_sectionTitle_hitsRange = {0} ({1}-{2} of {3} hits)
-
-EngineTypeWizardPage_title=Search Engine Type
-EngineTypeWizardPage_desc=Choose the type of the search engine from the list.
-EngineTypeWizardPage_label=Available search engine types:
-
-EngineDescriptorManager_errorLoading=Errors while loading user searches
-EngineDescriptorManager_errorSaving=Error while saving user searches
-
-SearchResultsPart_showCategoriesAction_tooltip=Show result categories
-SearchResultsPart_showDescriptionAction_tooltip=Show result descriptions
-
-ScopePreferenceDialog_wtitle = Search Scope - {0}
-ScopePreferenceDialog_new=&New...
-ScopePreferenceDialog_delete=De&lete
-NewEngineWizard_wtitle=New Search Engine
-BrowserPart_showExternalTooltip=Show in external window
-BrowsersPreferencePage_message=See <a>''{0}''</a> for configuring the external browser used to display help topics.
-BrowsersPreferencePage_winfopop= &in an infopop
-BrowsersPreferencePage_dinfopop=in an in&fopop
-BrowsersPreferencePage_openModeGroup=Help view document open mode
-BrowsersPreferencePage_openInPlace=Open in &place
-BrowsersPreferencePage_openInEditor=Open in &editor area
-BrowserPart_bookmarkTooltip=Bookmark document
-BrowserPart_syncTocTooltip = Show in All Topics
-BrowsersPreferencePage_wgroup=Open window context help
-BrowsersPreferencePage_view=in a dynamic help &view
-BrowsersPreferencePage_dgroup=Open dialog context help
-BrowsersPreferencePage_tray=in dialog &tray
-BrowsersPreferencePage_search=Search
-BrowsersPreferencePage_searchPotentialHits=Show all p&otential hits (faster)
-BrowsersPreferencePage_searchActualHits=Show only a&ctual hits
-InfoCenterPage_url = &URL:
-InfoCenterPage_invalidURL=Invalid URL
-InfoCenterPage_tocError=Error while loading table of contents
-WebSearchPage_label=&URL template:
-WebSearchPage_info=You can capture the URL template by copying the web query from the browser address field and replacing the search word with {expression}.
-LocalHelpPage_capabilityFiltering_name= &Include results about disabled capabilities
-RootScopePage_masterButton=&Enable search engine
-RootScopePage_name=Na&me:
-RootScopePage_desc=Descri&ption:
-AllTopicsPart_collapseAll_tooltip=Collapse All
-AllTopicsPart_showAll_tooltip = Show All Topics
-BookmarksPart_savedTopics=Saved Topics
-BookmarksPart_delete=&Delete
-BookmarksPart_deleteAll = D&elete All
-AskShowAll_dialogTitle= Confirm
-AskShowAll_message=While showing all topics, documentation about disabled capabilities is also shown in the table of contents and search results. Some documents may refer to user interface elements that are not visible. To manually enable capabilities, use the "General -> Capabilities" preference page.
-AskShowAll_toggleMessage=Do not warn me again
-DefaultHelpUI_wtitle = Help
-DefaultHelpUI_noPerspMessage =This operation requires at least one open perspective.
-
-ContextHelpDialog_showInDynamicHelp = Open in dynamic help 
-
-IndexInstructions = Type in the word to find:
-IndexButton = Display
-
-NoWorkbenchForExecuteCommand_msg = No workbench available for command execution.
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
deleted file mode 100644
index a6f82be..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/SearchAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-
-public class SearchAction implements IWorkbenchWindowActionDelegate {
-
-    public SearchAction() {
-    }
-
-    public void dispose() {
-    }
-
-    public void init(IWorkbenchWindow window) {
-    }
-
-    public void run(IAction action) {
-        PlatformUI.getWorkbench().getHelpSystem().displaySearch();
-    }
-
-    public void selectionChanged(IAction action, ISelection selection) {
-    }
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ShowCapabilitiesPreferenceAction.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ShowCapabilitiesPreferenceAction.java
deleted file mode 100644
index ae69bb2..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ShowCapabilitiesPreferenceAction.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.ILiveHelpAction;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-
-public class ShowCapabilitiesPreferenceAction implements ILiveHelpAction {
-	private boolean narrow;
-
-	public void setInitializationString(String data) {
-		if (data!=null && data.equals("narrow")) //$NON-NLS-1$
-			narrow=true;
-	}
-
-	public void run() {
-		final Display display = PlatformUI.getWorkbench().getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				Shell windowShell=null;
-				if (!narrow) {
-					Shell[] shells = display.getShells();
-					for (int i=0; i<shells.length; i++) {
-						Object data = shells[i].getData();
-						if (data!=null && data instanceof IWorkbenchWindow) {
-							windowShell=shells[i];
-							break;
-						}
-					}
-				}
-				if (windowShell!=null) {
-					windowShell.forceActive();
-					if (Platform.getWS().equals(Platform.WS_WIN32)) {
-						// feature in Windows. Without this code,
-						// the window will only flash in the launch bar.
-						windowShell.setVisible(false);
-						windowShell.setMinimized(true);
-						windowShell.setVisible(true);
-						windowShell.setMinimized(false);
-					}
-				}
-				PreferenceDialog dialog = PreferencesUtil
-						.createPreferenceDialogOn(windowShell, getCapabilityPageId(),
-								null, null);
-				dialog.open();
-			}
-		});
-	}
-
-	private String getCapabilityPageId() {
-		return "org.eclipse.sdk.capabilities"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/StyledLineWrapper.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/StyledLineWrapper.java
deleted file mode 100644
index b7c96c7..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/StyledLineWrapper.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal;
-
-import com.ibm.icu.text.BreakIterator;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.help.internal.context.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.graphics.*;
-
-public class StyledLineWrapper implements StyledTextContent {
-	private Drawable drawable;
-
-	/** Lines after splitting */
-	private ArrayList lines = new ArrayList();
-
-	/** Style ranges, per line */
-	private ArrayList lineStyleRanges = new ArrayList();
-
-	/** Character count */
-	private int charCount = -1;
-
-	/** Line breaker */
-	private static BreakIterator lineBreaker = BreakIterator.getLineInstance();
-
-	/** Beyond this length (pixels), lines should wrap */
-	public final static int DEFAULT_WIDTH = 350;
-
-	public int maxWidth;
-
-	/**
-	 * Constructor
-	 */
-	public StyledLineWrapper(String text, Drawable drawable, int minWidth) {
-		this.drawable = drawable;
-		maxWidth = Math.max(DEFAULT_WIDTH, minWidth);
-		if (text == null || text.length() == 0)
-			text = " "; // use one blank space //$NON-NLS-1$
-		setText(text);
-	}
-
-	/**
-	 * @see StyledTextContent#addTextChangeListener(TextChangeListener)
-	 */
-	public void addTextChangeListener(TextChangeListener l) {
-		// do nothing
-	}
-
-	/**
-	 * @see StyledTextContent#getCharCount()
-	 */
-	public int getCharCount() {
-		if (charCount != -1)
-			return charCount;
-		charCount = 0;
-		for (Iterator i = lines.iterator(); i.hasNext();)
-			charCount += ((String) i.next()).length();
-		return charCount;
-	}
-
-	/**
-	 * @see StyledTextContent#getLine(int)
-	 */
-	public String getLine(int i) {
-		if ((i >= lines.size()) || (i < 0))
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-		return (String) lines.get(i);
-	}
-
-	/**
-	 * @see StyledTextContent#getLineAtOffset(int)
-	 */
-	public int getLineAtOffset(int offset) {
-		if (offset >= getCharCount())
-			return getLineCount() - 1;
-		int count = 0;
-		int line = -1;
-		while (count <= offset) {
-			count += getLine(++line).length();
-		}
-		return line;
-	}
-
-	/**
-	 * @see StyledTextContent#getLineCount()
-	 */
-	public int getLineCount() {
-		if (lines.size() == 0)
-			return 1;
-		return lines.size();
-	}
-
-	/**
-	 * @see StyledTextContent#getLineDelimiter()
-	 */
-	public String getLineDelimiter() {
-		return null;
-	}
-
-	/**
-	 * @see StyledTextContent#getOffsetAtLine(int)
-	 */
-	public int getOffsetAtLine(int line) {
-		if (lines.size() == 0)
-			return 0;
-		int offset = 0;
-		for (int i = 0; i < line; i++)
-			offset += getLine(i).length();
-		return offset;
-	}
-
-	/**
-	 * @see StyledTextContent#getTextRange(int, int)
-	 */
-	public String getTextRange(int start, int end) {
-		int l1 = getLineAtOffset(start);
-		int l2 = getLineAtOffset(end);
-		if (l1 == l2)
-			return getLine(l1).substring(start - getOffsetAtLine(l1),
-					end - start);
-		StringBuffer range = new StringBuffer(getLine(l1).substring(
-				start - getOffsetAtLine(l1)));
-		for (int i = l1 + 1; i < l2; i++)
-			range.append(getLine(i));
-		range.append(getLine(l2).substring(0, end - getOffsetAtLine(l2)));
-		return range.toString();
-	}
-
-	/**
-	 * @see StyledTextContent#removeTextChangeListener(TextChangeListener)
-	 */
-	public void removeTextChangeListener(TextChangeListener arg0) {
-		// do nothing
-	}
-
-	/**
-	 * @see StyledTextContent#replaceTextRange(int, int, String)
-	 */
-	public void replaceTextRange(int arg0, int arg1, String arg2) {
-		// do nothing
-	}
-
-	/**
-	 * @see StyledTextContent#setText(String)
-	 */
-	public void setText(String text) {
-		if (text == null)
-			text = " "; //$NON-NLS-1$
-		processLineBreaks(text);
-		processStyles(text);
-	}
-
-	/**
-	 * Returns the array of styles.
-	 */
-	public StyleRange[] getStyles() {
-		StyleRange[] array = new StyleRange[lineStyleRanges.size()];
-		lineStyleRanges.toArray(array);
-		return array;
-	}
-
-	/**
-	 * Create an array of lines with sytles stripped off. Each lines is at most
-	 * MAX_LINE_LENGTH characters.
-	 */
-	private void processLineBreaks(String text) {
-		// Create the original lines with style stripped
-		lines = new ArrayList();
-		char[] textChars = getUnstyledText(text).toCharArray();
-		int start = 0;
-		for (int i = start; i < textChars.length; i++) {
-			char ch = textChars[i];
-			if (ch == SWT.CR) {
-				lines.add(new String(textChars, start, i - start));
-				start = i + 1;
-				// if we reached the end, stop
-				if (start >= textChars.length)
-					break;
-				{ // see if the next character is an LF
-					ch = textChars[start];
-					if (ch == SWT.LF) {
-						start++;
-						i++;
-						if (start >= textChars.length)
-							break;
-					}
-				}
-			} else if (ch == SWT.LF) {
-				lines.add(new String(textChars, start, i - start));
-				start = i + 1;
-				if (start >= textChars.length)
-					break;
-			} else if (i == textChars.length - 1) {
-				lines.add(new String(textChars, start, i - start + 1));
-			}
-		}
-		// Break long lines
-		GC gc = new GC(drawable);
-		for (int i = 0; i < lines.size(); i++) {
-			String line = (String) lines.get(i);
-			while (line.length() > 0) {
-				int linebreak = getLineBreak(line, gc);
-				if (linebreak == 0 || linebreak == line.length())
-					break;
-				String newline = line.substring(0, linebreak);
-				lines.remove(i);
-				lines.add(i, newline);
-				line = line.substring(linebreak);
-				lines.add(++i, line);
-			}
-		}
-		gc.dispose();
-	}
-
-	/**
-	 * Returns the text without the style
-	 */
-	private static String getUnstyledText(String styledText) {
-		return styledText.replaceAll("</?@#\\$b>", ""); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Finds a good line breaking point
-	 */
-	private int getLineBreak(String line, GC gc) {
-		lineBreaker.setText(line);
-		int lastGoodIndex = 0;
-		int currentIndex = lineBreaker.first();
-		int width = gc.textExtent(line.substring(0, currentIndex)).x;
-		while (width < maxWidth && currentIndex != BreakIterator.DONE) {
-			lastGoodIndex = currentIndex;
-			currentIndex = lineBreaker.next();
-			if (currentIndex == BreakIterator.DONE) {
-				break;
-			}
-			width = gc.textExtent(line.substring(0, currentIndex)).x;
-		}
-		return lastGoodIndex;
-	}
-
-	/**
-	 * Creates all the (bold) style ranges for the text. It is assumed that the
-	 * text has been split across lines.
-	 */
-	private void processStyles(String text) {
-		// create a new array of styles
-		lineStyleRanges = new ArrayList();
-		// first, remove the line breaks
-		text = text.replaceAll("\n|\r", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		int offset = 0;
-		do {
-			// create a style
-			StyleRange style = new StyleRange();
-			style.fontStyle = SWT.BOLD;
-			// the index of the starting style in styled text
-			int start = text.indexOf(ContextsNode.BOLD_TAG, offset);
-			if (start == -1)
-				break;
-			String prefix = getUnstyledText(text.substring(0, start));
-			style.start = prefix.length();
-			// the index of the ending style in styled text
-			offset = start + 1;
-			int end = text.indexOf(ContextsNode.BOLD_CLOSE_TAG, offset);
-			if (end == -1)
-				break;
-			prefix = getUnstyledText(text.substring(0, end));
-			style.length = prefix.length() - style.start;
-			lineStyleRanges.add(style);
-			offset = end + 1;
-		} while (offset < text.length());
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/BrowsersPreferencePage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/BrowsersPreferencePage.java
deleted file mode 100644
index 717dc53..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/BrowsersPreferencePage.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.browser;
-
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.base.IHelpBaseConstants;
-import org.eclipse.help.internal.browser.BrowserManager;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.IPreferencePage;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferenceLinkArea;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/**
- * Preference page for selecting default web browser.
- */
-public class BrowsersPreferencePage extends PreferencePage implements
-		IWorkbenchPreferencePage {
-	private Button alwaysExternal;
-
-	private static final String WBROWSER_PAGE_ID = "org.eclipse.ui.browser.preferencePage";//$NON-NLS-1$
-
-	private Button whelpAsViewButton;
-
-	private Button whelpAsInfopopButton;
-
-	private Button dhelpAsTrayButton;
-
-	private Button dhelpAsInfopopButton;
-
-	private Button openInPlaceButton;
-
-	private Button openInEditorButton;
-
-	private Button showPotentialHitsButton;
-
-	private Button showActualHitsButton;
-
-	/**
-	 * Creates preference page controls on demand.
-	 * 
-	 * @param parent
-	 *            the parent for the preference page
-	 */
-	protected Control createContents(Composite parent) {
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				IHelpUIConstants.PREF_PAGE_BROWSERS);
-		Composite mainComposite = new Composite(parent, SWT.NULL);
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		mainComposite.setLayoutData(data);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		mainComposite.setLayout(layout);
-		Label description = new Label(mainComposite, SWT.NULL);
-		description.setText(Messages.select_browser);
-		if (BrowserManager.getInstance().isEmbeddedBrowserPresent()) {
-			alwaysExternal = new Button(mainComposite, SWT.CHECK);
-			alwaysExternal
-					.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL));
-			alwaysExternal.setText(Messages.use_only_external_browser); 
-			alwaysExternal.setSelection(HelpBasePlugin.getDefault()
-					.getPluginPreferences().getBoolean(
-							IHelpBaseConstants.P_KEY_ALWAYS_EXTERNAL_BROWSER));
-		}
-		createLinkArea(mainComposite);
-		createSpacer(mainComposite);
-		createDynamicHelpArea(mainComposite);
-		createSpacer(mainComposite);
-		createSearchArea(mainComposite);
-		Dialog.applyDialogFont(mainComposite);
-		return mainComposite;
-	}
-
-	private void createLinkArea(Composite parent) {
-		IPreferenceNode node = getPreferenceNode(WBROWSER_PAGE_ID);
-		if (node != null) {
-			PreferenceLinkArea linkArea = new PreferenceLinkArea(parent,
-					SWT.WRAP, WBROWSER_PAGE_ID,
-					Messages.BrowsersPreferencePage_message,
-					(IWorkbenchPreferenceContainer) getContainer(), null);
-			GridData data = new GridData(GridData.FILL_HORIZONTAL
-					| GridData.GRAB_HORIZONTAL);
-			linkArea.getControl().setLayoutData(data);
-		}
-	}
-
-	private void createDynamicHelpArea(Composite parent) {
-		Group group = new Group(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		group.setLayout(layout);
-		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		group.setText(Messages.BrowsersPreferencePage_wgroup);
-		whelpAsViewButton = new Button(group, SWT.RADIO);
-		whelpAsViewButton.setText(Messages.BrowsersPreferencePage_view);
-		whelpAsInfopopButton = new Button(group, SWT.RADIO);
-		whelpAsInfopopButton.setText(Messages.BrowsersPreferencePage_winfopop);
-		boolean winfopop = HelpBasePlugin.getDefault().getPluginPreferences()
-				.getBoolean(IHelpBaseConstants.P_KEY_WINDOW_INFOPOP);
-		whelpAsViewButton.setSelection(!winfopop);
-		whelpAsInfopopButton.setSelection(winfopop);
-
-		createSpacer(parent);
-		layout = new GridLayout();
-		layout.numColumns = 2;
-		group = new Group(parent, SWT.NONE);
-		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		group.setLayout(layout);
-		group.setText(Messages.BrowsersPreferencePage_dgroup);
-		dhelpAsTrayButton = new Button(group, SWT.RADIO);
-		dhelpAsTrayButton.setText(Messages.BrowsersPreferencePage_tray);
-		dhelpAsInfopopButton = new Button(group, SWT.RADIO);
-		dhelpAsInfopopButton.setText(Messages.BrowsersPreferencePage_dinfopop);
-		boolean dinfopop = HelpBasePlugin.getDefault().getPluginPreferences()
-				.getBoolean(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP);
-		dhelpAsTrayButton.setSelection(!dinfopop);
-		dhelpAsInfopopButton.setSelection(dinfopop);
-
-		if (PlatformUI.getWorkbench().getBrowserSupport()
-				.isInternalWebBrowserAvailable()) {
-			createSpacer(parent);
-			layout = new GridLayout();
-			layout.numColumns = 2;
-			group = new Group(parent, SWT.NONE);
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			group.setLayout(layout);
-			group.setText(Messages.BrowsersPreferencePage_openModeGroup);
-			openInPlaceButton = new Button(group, SWT.RADIO);
-			openInPlaceButton
-					.setText(Messages.BrowsersPreferencePage_openInPlace);
-			openInEditorButton = new Button(group, SWT.RADIO);
-			openInEditorButton
-					.setText(Messages.BrowsersPreferencePage_openInEditor);
-			boolean openInBrowser = HelpBasePlugin.getDefault()
-					.getPluginPreferences().getBoolean(
-							IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR);
-			openInPlaceButton.setSelection(!openInBrowser);
-			openInEditorButton.setSelection(openInBrowser);
-		}
-	}
-	
-	private void createSearchArea(Composite parent) {
-		Group searchGroup = new Group(parent, SWT.NONE);
-		searchGroup.setText(Messages.BrowsersPreferencePage_search);
-		searchGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-		searchGroup.setLayout(new GridLayout());
-		
-		showPotentialHitsButton = new Button(searchGroup, SWT.RADIO);
-		showPotentialHitsButton.setText(Messages.BrowsersPreferencePage_searchPotentialHits);
-
-		showActualHitsButton = new Button(searchGroup, SWT.RADIO);
-		showActualHitsButton.setText(Messages.BrowsersPreferencePage_searchActualHits);
-
-		boolean showPotentialHits = HelpBasePlugin.getDefault().getPluginPreferences()
-			.getBoolean(IHelpBaseConstants.P_KEY_SHOW_POTENTIAL_HITS);
-		
-		showPotentialHitsButton.setSelection(showPotentialHits);
-		showActualHitsButton.setSelection(!showPotentialHits);
-	}
-
-	private IPreferenceNode getPreferenceNode(String pageId) {
-		Iterator iterator = PlatformUI.getWorkbench().getPreferenceManager()
-				.getElements(PreferenceManager.PRE_ORDER).iterator();
-		while (iterator.hasNext()) {
-			IPreferenceNode next = (IPreferenceNode) iterator.next();
-			if (next.getId().equals(pageId))
-				return next;
-		}
-		return null;
-	}
-
-	/**
-	 * @see IWorkbenchPreferencePage
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-	/**
-	 * Performs special processing when this page's Defaults button has been
-	 * pressed.
-	 * <p>
-	 * This is a framework hook method for sublcasses to do special things when
-	 * the Defaults button has been pressed. Subclasses may override, but should
-	 * call <code>super.performDefaults</code>.
-	 * </p>
-	 */
-	protected void performDefaults() {
-		if (alwaysExternal != null) {
-			alwaysExternal.setSelection(HelpBasePlugin.getDefault()
-					.getPluginPreferences().getDefaultBoolean(
-							IHelpBaseConstants.P_KEY_ALWAYS_EXTERNAL_BROWSER));
-		}
-
-		boolean winfopop = HelpBasePlugin.getDefault().getPluginPreferences()
-				.getDefaultBoolean(IHelpBaseConstants.P_KEY_WINDOW_INFOPOP);
-		whelpAsViewButton.setSelection(!winfopop);
-		whelpAsInfopopButton.setSelection(winfopop);
-
-		boolean dinfopop = HelpBasePlugin.getDefault().getPluginPreferences()
-				.getDefaultBoolean(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP);
-		dhelpAsTrayButton.setSelection(!dinfopop);
-		dhelpAsInfopopButton.setSelection(dinfopop);
-		
-		if (openInPlaceButton!=null) {
-		boolean openInEditor = HelpBasePlugin.getDefault()
-				.getPluginPreferences().getDefaultBoolean(
-						IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR);
-		openInPlaceButton.setSelection(!openInEditor);
-		openInEditorButton.setSelection(openInEditor);
-		}
-
-		boolean showPotentialHits = HelpBasePlugin.getDefault().getPluginPreferences()
-		.getDefaultBoolean(IHelpBaseConstants.P_KEY_SHOW_POTENTIAL_HITS);
-		showPotentialHitsButton.setSelection(showPotentialHits);
-		showActualHitsButton.setSelection(!showPotentialHits);
-
-		super.performDefaults();
-	}
-
-	/**
-	 * @see IPreferencePage
-	 */
-	public boolean performOk() {
-		Preferences pref = HelpBasePlugin.getDefault().getPluginPreferences();
-		if (alwaysExternal != null) {
-			pref.setValue(IHelpBaseConstants.P_KEY_ALWAYS_EXTERNAL_BROWSER,
-					alwaysExternal.getSelection());
-			BrowserManager.getInstance().setAlwaysUseExternal(
-					alwaysExternal.getSelection());
-		}
-		pref.setValue(IHelpBaseConstants.P_KEY_WINDOW_INFOPOP,
-				whelpAsInfopopButton.getSelection());
-		pref.setValue(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP,
-				dhelpAsInfopopButton.getSelection());
-		if (openInEditorButton!=null)
-			pref.setValue(IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR,
-				openInEditorButton.getSelection());
-		pref.setValue(IHelpBaseConstants.P_KEY_SHOW_POTENTIAL_HITS,
-				showPotentialHitsButton.getSelection());
-		HelpBasePlugin.getDefault().savePluginPreferences();
-		return true;
-	}
-
-	/**
-	 * Creates a horizontal spacer line that fills the width of its container.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 */
-	private void createSpacer(Composite parent) {
-		Label spacer = new Label(parent, SWT.NONE);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.verticalAlignment = GridData.BEGINNING;
-		spacer.setLayoutData(data);
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserAdapter.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserAdapter.java
deleted file mode 100644
index bfe5f24..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserAdapter.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.browser;
-
-import org.eclipse.help.browser.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.help.ui.internal.util.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.program.*;
-
-/**
- * Implmentation of IBrowser interface, using org.eclipse.swt.Program
- */
-public class SystemBrowserAdapter implements IBrowser {
-	String[] cmdarray;
-
-	/**
-	 * Adapter constructor.
-	 */
-	public SystemBrowserAdapter() {
-	}
-
-	/*
-	 * @see IBrowser#close()
-	 */
-	public void close() {
-	}
-
-	/*
-	 * @see IBrowser#displayURL(String)
-	 */
-	public void displayURL(String url) {
-		//		if (Constants.WS_WIN32.equalsIgnoreCase(Platform.getOS())) {
-		if (!Program.launch(url)) {
-			HelpUIPlugin
-					.logError(
-							"Browser adapter for System Browser failed.  The system has no program registered for file " //$NON-NLS-1$
-									+ url
-									+ ".  Change the file association or choose a different help web browser in the preferences.", //$NON-NLS-1$
-							null);
-			ErrorUtil.displayErrorDialog(NLS.bind(Messages.SystemBrowser_noProgramForURL, url));
-		}
-		//		} else {
-		//			Program b = Program.findProgram("html");
-		//			if (b == null || !b.execute(url)) {
-		//				ErrorUtil.displayErrorDialog(
-		//					HelpUIResources.getString(
-		//						"SystemBrowser.noProgramForHTML",
-		//						url));
-		//			}
-		//		}
-	}
-
-	/*
-	 * @see IBrowser#isCloseSupported()
-	 */
-	public boolean isCloseSupported() {
-		return false;
-	}
-
-	/*
-	 * @see IBrowser#isSetLocationSupported()
-	 */
-	public boolean isSetLocationSupported() {
-		return false;
-	}
-
-	/*
-	 * @see IBrowser#isSetSizeSupported()
-	 */
-	public boolean isSetSizeSupported() {
-		return false;
-	}
-
-	/*
-	 * @see IBrowser#setLocation(int, int)
-	 */
-	public void setLocation(int x, int y) {
-	}
-
-	/*
-	 * @see IBrowser#setSize(int, int)
-	 */
-	public void setSize(int width, int height) {
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserFactory.java
deleted file mode 100644
index bfb2b90..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/SystemBrowserFactory.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.browser;
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.browser.*;
-import org.eclipse.osgi.service.environment.*;
-public class SystemBrowserFactory implements IBrowserFactory {
-	/**
-	 * Constructor.
-	 */
-	public SystemBrowserFactory() {
-		super();
-	}
-	/*
-	 * @see IBrowserFactory#isAvailable()
-	 */
-	public boolean isAvailable() {
-		return Constants.WS_WIN32.equalsIgnoreCase(Platform.getOS());
-	}
-	/*
-	 * @see IBrowserFactory#createBrowser()
-	 */
-	public IBrowser createBrowser() {
-		return new SystemBrowserAdapter();
-	}
-}
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
deleted file mode 100644
index 4800e20..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.browser.embedded;
-import java.net.*;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Vector;
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.*;
-import org.eclipse.swt.browser.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.osgi.framework.*;
-import org.eclipse.core.runtime.Path; 
-/**
- * Help browser employing SWT Browser widget
- */
-public class EmbeddedBrowser {
-	private static final String BROWSER_X = "browser.x"; //$NON-NLS-1$
-	private static final String BROWSER_Y = "browser.y"; //$NON-NLS-1$
-	private static final String BROWSER_WIDTH = "browser.w"; //$NON-NLS-1$
-	private static final String BROWSER_HEIGTH = "browser.h"; //$NON-NLS-1$
-	private static final String BROWSER_MAXIMIZED = "browser.maximized"; //$NON-NLS-1$
-	private Preferences store;
-	private static String initialTitle = getWindowTitle();
-	private Shell shell;
-	private Browser browser;
-	private int x, y, w, h;
-	private long modalRequestTime = 0;
-	private Vector closeListeners = new Vector(1);
-	/**
-	 * Constructor for main help window intance
-	 */
-	public EmbeddedBrowser() {
-		store = HelpUIPlugin.getDefault().getPluginPreferences();
-		int style = SWT.SHELL_TRIM;
-		if (BaseHelpSystem.isRTL())
-			style |= SWT.RIGHT_TO_LEFT;
-		else
-			style |= SWT.LEFT_TO_RIGHT;
-		shell = new Shell(style);
-		initializeShell(shell);
-		shell.addControlListener(new ControlListener() {
-			public void controlMoved(ControlEvent e) {
-				if (!shell.getMaximized()) {
-					Point location = shell.getLocation();
-					x = location.x;
-					y = location.y;
-				}
-			}
-			public void controlResized(ControlEvent e) {
-				if (!shell.getMaximized()) {
-					Point size = shell.getSize();
-					w = size.x;
-					h = size.y;
-				}
-			}
-		});
-		shell.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				// save position
-				store.setValue(BROWSER_X, Integer.toString(x));
-				store.setValue(BROWSER_Y, Integer.toString(y));
-				store.setValue(BROWSER_WIDTH, Integer.toString(w));
-				store.setValue(BROWSER_HEIGTH, Integer.toString(h));
-				store.setValue(BROWSER_MAXIMIZED, (new Boolean(shell
-						.getMaximized()).toString()));
-				notifyCloseListners();
-			}
-		});
-		browser = new Browser(shell, SWT.NONE);
-		initialize(browser);
-		// use saved location and size
-		x = store.getInt(BROWSER_X);
-		y = store.getInt(BROWSER_Y);
-		w = store.getInt(BROWSER_WIDTH);
-		h = store.getInt(BROWSER_HEIGTH);
-		if (w == 0 || h == 0) {
-			// first launch, use default size
-			w = 1024;
-			h = 768;
-			x = shell.getLocation().x;
-			y = shell.getLocation().y;
-		}
-		setSafeBounds(shell, x, y, w, h);
-		if (store.getBoolean(BROWSER_MAXIMIZED))
-			shell.setMaximized(true);
-		shell.addControlListener(new ControlListener() {
-			public void controlMoved(ControlEvent e) {
-				if (!shell.getMaximized()) {
-					Point location = shell.getLocation();
-					x = location.x;
-					y = location.y;
-				}
-			}
-			public void controlResized(ControlEvent e) {
-				if (!shell.getMaximized()) {
-					Point size = shell.getSize();
-					w = size.x;
-					h = size.y;
-				}
-			}
-		});
-
-		//
-		shell.open();
-		//browser.setUrl("about:blank");
-
-		browser.addLocationListener(new LocationListener() {
-			public void changing(LocationEvent e) {
-				// hack to know when help webapp needs modal window
-				modalRequestTime = 0;
-				if (e.location != null
-						&& e.location.startsWith("javascript://needModal")) { //$NON-NLS-1$
-					modalRequestTime = System.currentTimeMillis();
-				}
-				if (!e.doit && e.location != null
-						&& e.location.startsWith("https://")) { //$NON-NLS-1$
-					try {
-						BaseHelpSystem.getHelpBrowser(true).displayURL(
-								e.location);
-					} catch (Exception exc) {
-					}
-				}
-			}
-			public void changed(LocationEvent e) {
-			}
-		});
-	}
-	/**
-	 * Constructor for derived help window It is either secondary browser or a
-	 * help dialog
-	 * 
-	 * @param event
-	 * @param parent
-	 *            Shell or null
-	 */
-	public EmbeddedBrowser(WindowEvent event, Shell parent) {
-		if (parent == null){
-			int style = SWT.SHELL_TRIM;
-			if (BaseHelpSystem.isRTL())
-				style |= SWT.RIGHT_TO_LEFT;
-			else
-				style |= SWT.LEFT_TO_RIGHT;
-			shell = new Shell(style);
-		} else
-			shell = new Shell(parent, SWT.PRIMARY_MODAL | SWT.DIALOG_TRIM);
-		initializeShell(shell);
-		Browser browser = new Browser(shell, SWT.NONE);
-
-		initialize(browser);
-		event.browser = browser;
-
-		browser.addLocationListener(new LocationListener() {
-			public void changing(LocationEvent e) {
-				// hack to know when help webapp needs modal window
-				modalRequestTime = 0;
-				if (e.location != null
-						&& e.location.startsWith("javascript://needModal")) { //$NON-NLS-1$
-					modalRequestTime = System.currentTimeMillis();
-				}
-			}
-			public void changed(LocationEvent e) {
-			}
-		});
-	}
-	private static void initializeShell(Shell s) {
-		s.setText(initialTitle);
-		Image[] shellImages = createImages();
-		if (shellImages != null)
-			s.setImages(shellImages);
-		s.setLayout(new FillLayout());
-	}
-	private void initialize(Browser browser) {
-		browser.addOpenWindowListener(new OpenWindowListener() {
-			public void open(WindowEvent event) {
-				if (System.currentTimeMillis() - modalRequestTime <= 1000) {
-					new EmbeddedBrowser(event, shell);
-				} else {
-					new EmbeddedBrowser(event, null);
-				}
-			}
-		});
-		browser.addVisibilityWindowListener(new VisibilityWindowListener() {
-			public void hide(WindowEvent event) {
-				Browser browser = (Browser) event.widget;
-				Shell shell = browser.getShell();
-				shell.setVisible(false);
-			}
-			public void show(WindowEvent event) {
-				Browser browser = (Browser) event.widget;
-				Shell shell = browser.getShell();
-				if (event.location != null)
-					shell.setLocation(event.location);
-				if (event.size != null) {
-					Point size = event.size;
-					shell.setSize(shell.computeSize(size.x, size.y));
-				}
-				shell.open();
-			}
-		});
-		browser.addCloseWindowListener(new CloseWindowListener() {
-			public void close(WindowEvent event) {
-				Browser browser = (Browser) event.widget;
-				Shell shell = browser.getShell();
-				shell.close();
-			}
-		});
-		browser.addTitleListener(new TitleListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.browser.TitleListener#changed(org.eclipse.swt.browser.TitleEvent)
-			 */
-			public void changed(TitleEvent event) {
-				if (event.title != null && event.title.length() > 0) {
-					Browser browser = (Browser) event.widget;
-					Shell shell = browser.getShell();
-					shell.setText(event.title);
-				}
-			}
-		});
-		browser.addLocationListener(new LocationListener() {
-			public void changing(LocationEvent e) {
-				if (!e.doit && e.location != null
-						&& e.location.startsWith("https://")) { //$NON-NLS-1$
-					try {
-						BaseHelpSystem.getHelpBrowser(true).displayURL(
-								e.location);
-					} catch (Exception exc) {
-					}
-				}
-			}
-
-			public void changed(LocationEvent e) {
-			}
-		});
-	}
-	public void displayUrl(String url) {
-		browser.setUrl(url);
-		shell.setMinimized(false);
-		shell.forceActive();
-	}
-	public boolean isDisposed() {
-		return shell.isDisposed();
-	}
-	private static String getWindowTitle() {
-		if ("true".equalsIgnoreCase(HelpBasePlugin.getDefault() //$NON-NLS-1$
-				.getPluginPreferences().getString("windowTitlePrefix"))) { //$NON-NLS-1$
-			return NLS.bind(Messages.browserTitle, BaseHelpSystem
-            .getProductName());
-		}
-		return BaseHelpSystem.getProductName();
-	}
-	/**
-	 * Create shell images
-	 */
-	private static Image[] createImages() {
-		String[] productImageURLs = getProductImageURLs();
-		if (productImageURLs != null) {
-			ArrayList shellImgs = new ArrayList();
-			for (int i = 0; i < productImageURLs.length; i++) {
-				if ("".equals(productImageURLs[i])) { //$NON-NLS-1$
-					continue;
-				}
-				URL imageURL = null;
-				try {
-					imageURL = new URL(productImageURLs[i]);
-				} catch (MalformedURLException mue) {
-					// must be a path relative to the product bundle
-					IProduct product = Platform.getProduct();
-					if (product != null) {
-						Bundle productBundle = product.getDefiningBundle();
-						if (productBundle != null) {
-							imageURL = FileLocator.find(productBundle, new Path(
-									productImageURLs[i]), null);
-						}
-					}
-				}
-				Image image = null;
-				if (imageURL != null) {
-					image = ImageDescriptor.createFromURL(imageURL)
-							.createImage();
-				}
-				if (image != null) {
-					shellImgs.add(image);
-				}
-			}
-			return (Image[]) shellImgs.toArray(new Image[shellImgs.size()]);
-		}
-		return new Image[0];
-	}
-	/**
-	 * Obtains URLs to product image
-	 * 
-	 * @return String[] with URLs as Strings or null
-	 */
-	private static String[] getProductImageURLs() {
-		IProduct product = Platform.getProduct();
-		if (product != null) {
-			String url = product.getProperty("windowImages"); //$NON-NLS-1$
-			if (url != null && url.length() > 0) {
-				return url.split(",\\s*"); //$NON-NLS-1$
-			}
-			url = product.getProperty("windowImage"); //$NON-NLS-1$
-			if (url != null && url.length() > 0) {
-				return new String[]{url};
-			}
-		}
-		return null;
-	}
-	/**
-	 * Closes the browser.
-	 */
-	public void close() {
-		if (!shell.isDisposed())
-			shell.dispose();
-	}
-	private static void setSafeBounds(Shell s, int x, int y, int width,
-			int height) {
-		Rectangle clientArea = s.getDisplay().getClientArea();
-		width = Math.min(clientArea.width, width);
-		height = Math.min(clientArea.height, height);
-		x = Math.min(x + width, clientArea.x + clientArea.width) - width;
-		y = Math.min(y + height, clientArea.y + clientArea.height) - height;
-		x = Math.max(x, clientArea.x);
-		y = Math.max(y, clientArea.y);
-		s.setBounds(x, y, width, height);
-	}
-	public void setLocation(int x, int y) {
-		shell.setLocation(x, y);
-	}
-	public void setSize(int width, int height) {
-		shell.setSize(w, h);
-	}
-	private void notifyCloseListners() {
-		for (Iterator it = closeListeners.iterator(); it.hasNext();) {
-			IBrowserCloseListener listener = (IBrowserCloseListener) it.next();
-			listener.browserClosed();
-		}
-	}
-
-	public void addCloseListener(IBrowserCloseListener listener) {
-		if (!closeListeners.contains(listener)) {
-			closeListeners.add(listener);
-		}
-	}
-
-	public void removeCloseListener(IBrowserCloseListener listener) {
-		closeListeners.remove(listener);
-	}
-}
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
deleted file mode 100644
index 7b2c534..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.browser.embedded;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.browser.IBrowser;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.osgi.service.environment.Constants;
-import org.eclipse.swt.widgets.Display;
-/**
- * Web browser.
- */
-public class EmbeddedBrowserAdapter implements IBrowser, IBrowserCloseListener{
-	private EmbeddedBrowser browser;
-	// Thread to use in workbench mode on Windows
-	private UIThread2 secondThread;
-	class UIThread2 extends Thread {
-		
-		Display d;
-		
-		boolean runEventLoop = true;
-
-		public UIThread2() {
-			super();
-			setDaemon(true);
-			setName("Help Browser UI"); //$NON-NLS-1$
-		}
-
-		public void run() {
-			d = new Display();
-			while (runEventLoop) {
-				if (!d.readAndDispatch()) {
-					d.sleep();
-				}
-			}
-			d.dispose();
-		}
-		public Display getDisplay() {
-			while (d == null && isAlive()) {
-				try {
-					sleep(40);
-				} catch (InterruptedException ie) {
-				}
-			}
-			return d;
-		}
-		public void dispose() {
-			runEventLoop = false;
-		}
-	}
-	/**
-	 * Adapter constructor.
-	 */
-	public EmbeddedBrowserAdapter() {
-	}
-	public Display getBrowserDisplay() {
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_WORKBENCH
-				&& Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS())) {
-			if (secondThread == null) {
-				secondThread = new UIThread2();
-				secondThread.start();
-			}
-			return secondThread.getDisplay();
-		}
-		return Display.getDefault();
-	}
-
-	public void browserClosed() {
-		browser=null;
-		if(secondThread!=null){
-			secondThread.dispose();
-			secondThread = null;
-		}
-	}
-	/*
-	 * @see IBrowser#displayURL(String)
-	 */
-	public synchronized void displayURL(final String url) {
-		close();
-		if (getBrowserDisplay() == Display.getCurrent()) {
-			uiDisplayURL(url);
-		} else {
-			getBrowserDisplay().syncExec(new Runnable() {
-				public void run() {
-					uiDisplayURL(url);
-				}
-			});
-		}
-	}
-	/**
-	 * Must be run on UI thread
-	 * 
-	 * @param url
-	 */
-	private void uiDisplayURL(final String url) {
-		getBrowser().displayUrl(url);
-	}
-
-	/*
-	 * @see IBrowser#close()
-	 */
-	public synchronized void close() {
-		if (getBrowserDisplay() == Display.getCurrent()) {
-			uiClose();
-		} else {
-			getBrowserDisplay().syncExec(new Runnable() {
-				public void run() {
-					uiClose();
-				}
-			});
-		}
-	}
-	/*
-	 * Must be run on UI thread
-	 */
-	private void uiClose() {
-		if (browser != null && !browser.isDisposed()){
-			browser.close();
-		}
-		if(secondThread!=null){
-			secondThread.dispose();
-			secondThread=null;
-		}
-	}
-	/**
-	 *  
-	 */
-	private EmbeddedBrowser getBrowser() {
-		if (browser == null || browser.isDisposed()) {
-			browser = new EmbeddedBrowser();
-			browser.addCloseListener(this);
-		}
-		return browser;
-	}
-	/*
-	 * @see IBrowser#isCloseSupported()
-	 */
-	public boolean isCloseSupported() {
-		return true;
-	}
-	/*
-	 * @see IBrowser#isSetLocationSupported()
-	 */
-	public boolean isSetLocationSupported() {
-		return true;
-	}
-	/*
-	 * @see IBrowser#isSetSizeSupported()
-	 */
-	public boolean isSetSizeSupported() {
-		return true;
-	}
-	/*
-	 * @see IBrowser#setLocation(int, int)
-	 */
-	public synchronized void setLocation(final int x, final int y) {
-		if (getBrowserDisplay() == Display.getCurrent()) {
-			uiSetLocation(x, y);
-		} else {
-			getBrowserDisplay().syncExec(new Runnable() {
-				public void run() {
-					uiSetLocation(x, y);
-				}
-			});
-		}
-	}
-	/*
-	 * Must be run on UI thread
-	 */
-	private void uiSetLocation(int x, int y) {
-		getBrowser().setLocation(x, y);
-	}
-	/*
-	 * @see IBrowser#setSize(int, int)
-	 */
-	public synchronized void setSize(final int width, final int height) {
-		if (getBrowserDisplay() == Display.getCurrent()) {
-			uiSetSize(width, height);
-		} else {
-			getBrowserDisplay().syncExec(new Runnable() {
-				public void run() {
-					uiSetSize(width, height);
-				}
-			});
-		}
-	}
-	/*
-	 * Must be run on UI thread
-	 */
-	private void uiSetSize(int width, int height) {
-		getBrowser().setSize(width, height);
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java
deleted file mode 100644
index 2ed977a..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.browser.embedded;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.browser.*;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.osgi.service.environment.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.browser.*;
-import org.eclipse.swt.widgets.*;
-
-public class EmbeddedBrowserFactory implements IBrowserFactory {
-	private boolean tested = false;
-
-	private boolean available = false;
-
-	/**
-	 * Constructor.
-	 */
-	public EmbeddedBrowserFactory() {
-		super();
-	}
-
-	/*
-	 * @see IBrowserFactory#isAvailable()
-	 */
-	public boolean isAvailable() {
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_STANDALONE) {
-			try {
-				if (HelpUIEventLoop.isRunning()) {
-					Display.getDefault().syncExec(new Runnable() {
-						public void run() {
-							test();
-						}
-					});
-				}
-			} catch (Exception e) {
-				// just in case
-			}
-		} else {
-			test();
-		}
-		tested = true;
-		return available;
-	}
-
-	/**
-	 * Must run on UI thread
-	 * 
-	 * @return
-	 */
-	private boolean test() {
-		if (!Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS())
-				&& !Constants.OS_LINUX.equalsIgnoreCase(Platform.getOS())) {
-			return false;
-		}
-		if (!tested) {
-			tested = true;
-			Shell sh = new Shell();
-			try {
-				new Browser(sh, SWT.NONE);
-				available = true;
-			} catch (SWTError se) {
-				if (se.code == SWT.ERROR_NO_HANDLES) {
-					// Browser not implemented
-					available = false;
-				} else {
-					HelpUIPlugin
-							.logError(
-									"An error occurred during creation of embedded help browser.", se); //$NON-NLS-1$
-				}
-			} catch (Exception e) {
-				// Browser not implemented
-			}
-			if (sh != null && !sh.isDisposed())
-				sh.dispose();
-		}
-		return available;
-	}
-
-	/*
-	 * @see IBrowserFactory#createBrowser()
-	 */
-	public IBrowser createBrowser() {
-		return new EmbeddedBrowserAdapter();
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/IBrowserCloseListener.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/IBrowserCloseListener.java
deleted file mode 100644
index 64eb9ee..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/IBrowserCloseListener.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.browser.embedded;
-
-public interface IBrowserCloseListener {
-	public void browserClosed();
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetElementLabelProvider.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetElementLabelProvider.java
deleted file mode 100644
index 3f770a1..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetElementLabelProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.search;
-
-import org.eclipse.help.internal.workingset.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.graphics.*;
-
-public class HelpWorkingSetElementLabelProvider extends LabelProvider {
-
-	/**
-	 * Constructor for HelpWorkingSetElementLabelProvider.
-	 */
-	public HelpWorkingSetElementLabelProvider() {
-		super();
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof AdaptableToc)
-			return ((AdaptableToc) element).getLabel();
-		else if (element instanceof AdaptableTopic)
-			return ((AdaptableTopic) element).getLabel();
-		else
-			return null;
-	}
-
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetTreeContentProvider.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetTreeContentProvider.java
deleted file mode 100644
index 7312540..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/HelpWorkingSetTreeContentProvider.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.search;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.workingset.*;
-import org.eclipse.jface.viewers.*;
-
-public class HelpWorkingSetTreeContentProvider implements ITreeContentProvider {
-
-	/**
-	 * Constructor for HelpWorkingSetTreeContentProvider.
-	 */
-	public HelpWorkingSetTreeContentProvider() {
-		super();
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object parentElement) {
-		if (parentElement instanceof AdaptableTocsArray)
-			return ((AdaptableTocsArray) parentElement).getChildren();
-		else if (parentElement instanceof AdaptableToc)
-			return ((AdaptableToc) parentElement).getChildren();
-		else
-			return new IAdaptable[0];
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object element) {
-		if (element instanceof AdaptableHelpResource)
-			return ((AdaptableHelpResource) element).getParent();
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		return (element instanceof AdaptableToc || element instanceof AdaptableTocsArray);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-	}
-
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterPage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterPage.java
deleted file mode 100644
index c3f1038..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterPage.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.ui.internal.search;
-
-import java.io.*;
-import java.net.*;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import javax.xml.parsers.*;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.help.*;
-import org.eclipse.help.internal.workingset.*;
-import org.eclipse.help.ui.RootScopePage;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.widgets.Text;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-/**
- * Local Help participant in the federated search.
- */
-public class InfoCenterPage extends RootScopePage {
-	private Text urlText;
-
-	private Button searchAll;
-
-	private Button searchSelected;
-
-	private CheckboxTreeViewer tree;
-
-	private ITreeContentProvider treeContentProvider;
-
-	private ILabelProvider elementLabelProvider;
-
-	private AdaptableTocsArray remoteTocs;
-
-	//private boolean firstCheck;
-
-	private RemoteWorkingSet workingSet;
-	
-	private boolean tocStale;
-
-	class RemoteWorkingSet extends WorkingSet {
-		public RemoteWorkingSet() {
-			super("InfoCenter"); //$NON-NLS-1$
-		}
-
-		public void load(IPreferenceStore store) {
-			String elements = store.getString(getKey(InfoCenterSearchScopeFactory.P_TOCS));
-			StringTokenizer stok = new StringTokenizer(elements, InfoCenterSearchScopeFactory.TOC_SEPARATOR);
-			ArrayList list = new ArrayList();
-			while (stok.hasMoreTokens()) {
-				final String url = stok.nextToken();
-				AdaptableHelpResource res = find(url);
-				if (res != null)
-					list.add(res);
-			}
-			setElements((AdaptableHelpResource[]) list
-					.toArray(new AdaptableHelpResource[list.size()]));
-		}
-
-		private AdaptableHelpResource find(String url) {
-			if (remoteTocs == null)
-				return null;
-			IAdaptable[] children = remoteTocs.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				IAdaptable child = children[i];
-				if (child instanceof AdaptableHelpResource) {
-					AdaptableHelpResource res = (AdaptableHelpResource) child;
-					if (res.getHref().equals(url))
-						return res;
-				}
-			}
-			return null;
-		}
-
-		public void store(IPreferenceStore store) {
-			StringBuffer buf = new StringBuffer();
-			AdaptableHelpResource[] elements = getElements();
-
-			for (int i = 0; i < elements.length; i++) {
-				if (i > 0)
-					buf.append(InfoCenterSearchScopeFactory.TOC_SEPARATOR);
-				buf.append(elements[i].getHref());
-			}
-			store.setValue(getKey(InfoCenterSearchScopeFactory.P_TOCS), buf.toString());
-		}
-	}
-
-	/**
-	 * Default constructor.
-	 */
-	public InfoCenterPage() {
-		//firstCheck = true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.RootScopePage#createScopeContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected int createScopeContents(Composite parent) {
-		Font font = parent.getFont();
-		initializeDialogUnits(parent);
-
-		Label label = new Label(parent, SWT.NULL);
-		label.setText(Messages.InfoCenterPage_url); 
-
-		urlText = new Text(parent, SWT.BORDER);
-		urlText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		urlText.setEditable(getEngineDescriptor().isUserDefined());
-
-		searchAll = new Button(parent, SWT.RADIO);
-		searchAll.setText(Messages.selectAll); 
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;
-		searchAll.setLayoutData(gd);
-		searchAll.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (searchAll.getSelection())
-					tree.getTree().setEnabled(false);
-			}
-		});
-
-		searchSelected = new Button(parent, SWT.RADIO);
-		searchSelected.setText(Messages.selectWorkingSet); 
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		searchSelected.setLayoutData(gd);
-		searchSelected.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (searchSelected.getSelection()) {
-					tree.getTree().setEnabled(true);
-					if (tocStale)
-						updateTocs();
-				}
-			}
-		});
-
-		label = new Label(parent, SWT.WRAP);
-		label.setFont(font);
-		label.setText(Messages.WorkingSetContent); 
-		gd = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = 2;
-		label.setLayoutData(gd);
-
-		tree = new CheckboxTreeViewer(parent, SWT.BORDER | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		gd = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
-		gd.heightHint = convertHeightInCharsToPixels(15);
-		gd.horizontalSpan = 2;
-		tree.getControl().setLayoutData(gd);
-		tree.getControl().setFont(font);
-
-		treeContentProvider = new HelpWorkingSetTreeContentProvider();
-		tree.setContentProvider(treeContentProvider);
-
-		elementLabelProvider = new HelpWorkingSetElementLabelProvider();
-		tree.setLabelProvider(elementLabelProvider);
-
-		tree.setUseHashlookup(true);
-
-		initializeControls();
-
-		tree.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				handleCheckStateChange(event);
-			}
-		});
-
-		tree.addTreeListener(new ITreeViewerListener() {
-			public void treeCollapsed(TreeExpansionEvent event) {
-			}
-
-			public void treeExpanded(TreeExpansionEvent event) {
-				final Object element = event.getElement();
-				if (tree.getGrayed(element) == false)
-					BusyIndicator.showWhile(getShell().getDisplay(),
-							new Runnable() {
-								public void run() {
-									setSubtreeChecked(element, tree
-											.getChecked(element), false);
-								}
-							});
-			}
-		});
-
-		// Set help for the page
-		// WorkbenchHelp.setHelp(tree, "help_workingset_page");
-		return 2;
-	}
-
-	private void loadTocs(String urlName) {
-		InputStream is = null;
-		if (urlName==null || urlName.length()==0) {
-			resetRemoteTocs();
-			return;
-		}
-		try {
-			URL url = new URL(urlName);
-			url = new URL(url, "toc/"); //$NON-NLS-1$
-			URLConnection connection = url.openConnection();
-			is = connection.getInputStream();
-			BufferedReader reader = new BufferedReader(new InputStreamReader(
-					is, "utf-8"));//$NON-NLS-1$
-			load(reader);
-			reader.close();
-		} catch (MalformedURLException e) {
-			HelpUIPlugin.logError(Messages.InfoCenterPage_invalidURL, e, false, true);
-			resetRemoteTocs();
-		} catch (IOException e) {
-			HelpUIPlugin.logError(Messages.InfoCenterPage_tocError, e, false, true);
-			resetRemoteTocs();
-		} finally {
-			if (is != null) {
-				try {
-					is.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-	
-	private void resetRemoteTocs() {
-		remoteTocs = new AdaptableTocsArray(new IToc[0]);
-	}
-
-	private void load(Reader r) {
-		Document document = null;
-		try {
-			DocumentBuilder parser = DocumentBuilderFactory.newInstance()
-					.newDocumentBuilder();
-			// parser.setProcessNamespace(true);
-			document = parser.parse(new InputSource(r));
-
-			// Strip out any comments first
-			Node root = document.getFirstChild();
-			while (root.getNodeType() == Node.COMMENT_NODE) {
-				document.removeChild(root);
-				root = document.getFirstChild();
-			}
-			load(document, (Element) root);
-		} catch (ParserConfigurationException e) {
-			// ignore
-		} catch (IOException e) {
-			// ignore
-		} catch (SAXException e) {
-			// ignore
-		}
-	}
-
-	private void load(Document doc, Element root) {
-		ArrayList list = new ArrayList();
-		NodeList engines = root.getElementsByTagName("toc"); //$NON-NLS-1$
-		for (int i = 0; i < engines.getLength(); i++) {
-			final Node node = engines.item(i);
-			IToc toc = new IToc() {
-				public ITopic[] getTopics() {
-					return new ITopic[0];
-				}
-
-				public ITopic getTopic(String href) {
-					return null;
-				}
-
-				public String getHref() {
-					return node.getAttributes().getNamedItem("href") //$NON-NLS-1$
-							.getNodeValue();
-				}
-
-				public String getLabel() {
-					return node.getAttributes().getNamedItem("label") //$NON-NLS-1$
-							.getNodeValue();
-				}
-			};
-			list.add(toc);
-		}
-		IToc[] tocs = (IToc[]) list.toArray(new IToc[list.size()]);
-		remoteTocs = new AdaptableTocsArray(tocs);
-	}
-
-	private void initializeControls() {
-		IPreferenceStore store = getPreferenceStore();
-		String url = store
-				.getString(getKey(InfoCenterSearchScopeFactory.P_URL));
-		if (url.length() == 0) {
-			url = (String) getEngineDescriptor().getParameters().get(
-					InfoCenterSearchScopeFactory.P_URL);
-			if (url == null)
-				url = ""; //$NON-NLS-1$
-		}
-		urlText.setText(url);
-		busyLoadTocs(url);
-		workingSet = new RemoteWorkingSet();
-		workingSet.load(store);
-		urlText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				tocStale=true;
-			}
-		});
-		tree.setInput(remoteTocs);
-		boolean selected = store
-				.getBoolean(getKey(InfoCenterSearchScopeFactory.P_SEARCH_SELECTED));
-		searchAll.setSelection(!selected);
-		searchSelected.setSelection(selected);
-		tree.getTree().setEnabled(selected);
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				Object[] elements = workingSet.getElements();
-				tree.setCheckedElements(elements);
-				for (int i = 0; i < elements.length; i++) {
-					Object element = elements[i];
-					if (isExpandable(element))
-						setSubtreeChecked(element, true, true);
-					updateParentState(element, true);
-				}
-			}
-		});
-	}
-	
-	private void updateTocs() {
-		String url = urlText.getText();
-		busyLoadTocs(url);
-		tocStale=false;
-		tree.setInput(remoteTocs);
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				Object[] elements = workingSet.getElements();
-				tree.setCheckedElements(elements);
-				for (int i = 0; i < elements.length; i++) {
-					Object element = elements[i];
-					if (isExpandable(element))
-						setSubtreeChecked(element, true, true);
-					updateParentState(element, true);
-				}
-			}
-		});
-	}
-	
-	private void busyLoadTocs(final String url) {
-		BusyIndicator.showWhile(urlText.getDisplay(), new Runnable() {
-			public void run() {
-				loadTocs(url);
-			}
-		});		
-	}
-
-	boolean isExpandable(Object element) {
-		return treeContentProvider.hasChildren(element);
-	}
-
-	void updateParentState(Object child, boolean baseChildState) {
-		if (child == null)
-			return;
-
-		Object parent = treeContentProvider.getParent(child);
-		if (parent == null)
-			return;
-
-		boolean allSameState = true;
-		Object[] children = null;
-		children = treeContentProvider.getChildren(parent);
-
-		for (int i = children.length - 1; i >= 0; i--) {
-			if (tree.getChecked(children[i]) != baseChildState
-					|| tree.getGrayed(children[i])) {
-				allSameState = false;
-				break;
-			}
-		}
-
-		tree.setGrayed(parent, !allSameState);
-		tree.setChecked(parent, !allSameState || baseChildState);
-
-		updateParentState(parent, baseChildState);
-	}
-
-	void setSubtreeChecked(Object parent, boolean state,
-			boolean checkExpandedState) {
-
-		Object[] children = treeContentProvider.getChildren(parent);
-		for (int i = children.length - 1; i >= 0; i--) {
-			Object element = children[i];
-			if (state) {
-				tree.setChecked(element, true);
-				tree.setGrayed(element, false);
-			} else
-				tree.setGrayChecked(element, false);
-			if (isExpandable(element))
-				setSubtreeChecked(element, state, checkExpandedState);
-		}
-	}
-
-	private void findCheckedElements(java.util.List checkedResources,
-			Object parent) {
-		Object[] children = treeContentProvider.getChildren(parent);
-		for (int i = 0; i < children.length; i++) {
-			if (tree.getGrayed(children[i]))
-				findCheckedElements(checkedResources, children[i]);
-			else if (tree.getChecked(children[i]))
-				checkedResources.add(children[i]);
-		}
-	}
-
-	void handleCheckStateChange(final CheckStateChangedEvent event) {
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				Object element = event.getElement();
-				boolean state = event.getChecked();
-				tree.setGrayed(element, false);
-				if (isExpandable(element))
-					setSubtreeChecked(element, state, state);
-				// only check subtree if state is set to true
-
-				updateParentState(element, state);
-				// validateInput();
-			}
-		});
-	}
-
-	public void updateWorkingSet() {
-		ArrayList elements = new ArrayList(10);
-		findCheckedElements(elements, tree.getInput());
-		workingSet.setElements((AdaptableHelpResource[]) elements
-				.toArray(new AdaptableHelpResource[elements.size()]));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		IPreferenceStore store = getPreferenceStore();
-		if (getEngineDescriptor().isUserDefined())
-			store.setValue(getKey(InfoCenterSearchScopeFactory.P_URL), urlText
-					.getText());
-		updateWorkingSet();
-		workingSet.store(store);
-		store.setValue(getKey(InfoCenterSearchScopeFactory.P_SEARCH_SELECTED),
-				searchSelected.getSelection());
-		return super.performOk();
-	}
-
-	private String getKey(String key) {
-		return getEngineDescriptor().getId() + "." + key; //$NON-NLS-1$
-	}
-}
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
deleted file mode 100644
index b7349bf..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/InfoCenterSearchScopeFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.search;
-
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.StringTokenizer;
-
-import org.eclipse.help.internal.search.InfoCenter;
-import org.eclipse.help.search.*;
-import org.eclipse.help.ui.ISearchScopeFactory;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * Creates the scope for local search using the help working sets
- */
-public class InfoCenterSearchScopeFactory implements ISearchScopeFactory {
-	public static final String P_URL = "url"; //$NON-NLS-1$
-	public static final String P_SEARCH_SELECTED = "searchSelected"; //$NON-NLS-1$
-	public static final String P_TOCS = "tocs"; //$NON-NLS-1$
-	public static final String TOC_SEPARATOR = ";"; //$NON-NLS-1$
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.help.ui.ISearchScopeFactory#createSearchScope(org.eclipse.jface.preference.IPreferenceStore)
-     */
-    public ISearchScope createSearchScope(IPreferenceStore store, String engineId, Dictionary 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 list = new ArrayList();
-        		while (stok.hasMoreTokens()) {
-        			String toc = stok.nextToken();
-        			list.add(toc);
-        		}
-        		if (list.size()>0)
-        			tocs = (String[])list.toArray(new String[list.size()]);
-        	}
-        }
-        return new InfoCenter.Scope(url, searchSelected, tocs);
-    }
-    
-    private String getProperty(String key, IPreferenceStore store, String engineId, Dictionary 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
deleted file mode 100644
index 94e484c..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalHelpPage.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.ui.internal.search;
-
-import java.util.ArrayList;
-
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.workingset.*;
-import org.eclipse.help.ui.*;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * Local Help participant in the federated search.
- */
-public class LocalHelpPage extends RootScopePage {
-	private Button searchAll;
-
-	private Button searchSelected;
-
-	private CheckboxTreeViewer tree;
-
-	private ITreeContentProvider treeContentProvider;
-
-	private ILabelProvider elementLabelProvider;
-
-	//private boolean firstCheck;
-
-	private WorkingSet workingSet;
-
-	private Button capabilityFiltering;
-
-	public void init(IEngineDescriptor ed, String scopeSetName) {
-		super.init(ed, scopeSetName);
-		if (scopeSetName != null)
-			workingSet = BaseHelpSystem.getWorkingSetManager().getWorkingSet(
-					scopeSetName);
-	}
-
-	/**
-	 * Default constructor.
-	 */
-	public LocalHelpPage() {
-		//firstCheck = true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.RootScopePage#createScopeContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected int createScopeContents(Composite parent) {
-		Font font = parent.getFont();
-		initializeDialogUnits(parent);
-
-		searchAll = new Button(parent, SWT.RADIO);
-		searchAll.setText(Messages.selectAll); 
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;
-		searchAll.setLayoutData(gd);
-		searchAll.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				tree.getTree().setEnabled(false);
-				// searchQueryData.setBookFiltering(false);
-			}
-		});
-
-		searchSelected = new Button(parent, SWT.RADIO);
-		searchSelected.setText(Messages.selectWorkingSet); 
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		searchSelected.setLayoutData(gd);
-		searchSelected.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				tree.getTree().setEnabled(true);
-				// searchQueryData.setBookFiltering(false);
-			}
-		});
-
-		if (workingSet == null)
-			searchAll.setSelection(true);
-		else
-			searchSelected.setSelection(true);
-
-		Label label = new Label(parent, SWT.WRAP);
-		label.setFont(font);
-		label.setText(Messages.WorkingSetContent); 
-		gd = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = 2;
-		label.setLayoutData(gd);
-
-		tree = new CheckboxTreeViewer(parent, SWT.BORDER | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		gd = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
-		gd.heightHint = convertHeightInCharsToPixels(15);
-		gd.horizontalSpan = 2;
-		tree.getControl().setLayoutData(gd);
-		tree.getControl().setFont(font);
-
-		treeContentProvider = new HelpWorkingSetTreeContentProvider();
-		tree.setContentProvider(treeContentProvider);
-
-		elementLabelProvider = new HelpWorkingSetElementLabelProvider();
-		tree.setLabelProvider(elementLabelProvider);
-
-		tree.setUseHashlookup(true);
-
-		tree.setInput(BaseHelpSystem.getWorkingSetManager().getRoot());
-
-		tree.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				handleCheckStateChange(event);
-			}
-		});
-
-		tree.addTreeListener(new ITreeViewerListener() {
-			public void treeCollapsed(TreeExpansionEvent event) {
-			}
-
-			public void treeExpanded(TreeExpansionEvent event) {
-				final Object element = event.getElement();
-				if (tree.getGrayed(element) == false)
-					BusyIndicator.showWhile(getShell().getDisplay(),
-							new Runnable() {
-								public void run() {
-									setSubtreeChecked(element, tree
-											.getChecked(element), false);
-								}
-							});
-			}
-		});
-		tree.getTree().setEnabled(workingSet != null);
-		capabilityFiltering = new Button(parent, SWT.CHECK);
-		String checkboxLabel = HelpBasePlugin.getActivitySupport().getLocalScopeCheckboxLabel();
-		if (checkboxLabel==null)
-			checkboxLabel = Messages.LocalHelpPage_capabilityFiltering_name;  
-		capabilityFiltering.setText(checkboxLabel);
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		capabilityFiltering.setLayoutData(gd);
-		
-		initializeCheckedState();
-
-		// Set help for the page
-		// WorkbenchHelp.setHelp(tree, "help_workingset_page");
-		return 1;
-	}
-
-	private void initializeCheckedState() {
-		IPreferenceStore store = getPreferenceStore();
-		capabilityFiltering.setSelection(store.getBoolean(getEngineDescriptor()
-				.getId()
-				+ "." + LocalSearchScopeFactory.P_CAPABILITY_FILTERING)); //$NON-NLS-1$
-		if (workingSet == null)
-			return;
-
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				Object[] elements = workingSet.getElements();
-				tree.setCheckedElements(elements);
-				for (int i = 0; i < elements.length; i++) {
-					Object element = elements[i];
-					if (isExpandable(element))
-						setSubtreeChecked(element, true, true);
-					updateParentState(element, true);
-				}
-			}
-		});
-	}
-
-	boolean isExpandable(Object element) {
-		return treeContentProvider.hasChildren(element);
-	}
-
-	void updateParentState(Object child, boolean baseChildState) {
-		if (child == null)
-			return;
-
-		Object parent = treeContentProvider.getParent(child);
-		if (parent == null)
-			return;
-
-		boolean allSameState = true;
-		Object[] children = null;
-		children = treeContentProvider.getChildren(parent);
-
-		for (int i = children.length - 1; i >= 0; i--) {
-			if (tree.getChecked(children[i]) != baseChildState
-					|| tree.getGrayed(children[i])) {
-				allSameState = false;
-				break;
-			}
-		}
-
-		tree.setGrayed(parent, !allSameState);
-		tree.setChecked(parent, !allSameState || baseChildState);
-
-		updateParentState(parent, baseChildState);
-	}
-
-	void setSubtreeChecked(Object parent, boolean state,
-			boolean checkExpandedState) {
-
-		Object[] children = treeContentProvider.getChildren(parent);
-		for (int i = children.length - 1; i >= 0; i--) {
-			Object element = children[i];
-			if (state) {
-				tree.setChecked(element, true);
-				tree.setGrayed(element, false);
-			} else
-				tree.setGrayChecked(element, false);
-			if (isExpandable(element))
-				setSubtreeChecked(element, state, checkExpandedState);
-		}
-	}
-
-	private void findCheckedElements(java.util.List checkedResources,
-			Object parent) {
-		Object[] children = treeContentProvider.getChildren(parent);
-		for (int i = 0; i < children.length; i++) {
-			if (tree.getGrayed(children[i]))
-				findCheckedElements(checkedResources, children[i]);
-			else if (tree.getChecked(children[i]))
-				checkedResources.add(children[i]);
-		}
-	}
-
-	void handleCheckStateChange(final CheckStateChangedEvent event) {
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				Object element = event.getElement();
-				boolean state = event.getChecked();
-				tree.setGrayed(element, false);
-				if (isExpandable(element))
-					setSubtreeChecked(element, state, state);
-				// only check subtree if state is set to true
-
-				updateParentState(element, state);
-				// validateInput();
-			}
-		});
-	}
-
-	public WorkingSet getWorkingSet() {
-		ArrayList elements = new ArrayList(10);
-		findCheckedElements(elements, tree.getInput());
-		if (workingSet == null) {
-			workingSet = new WorkingSet(
-					getScopeSetName(),
-					(AdaptableHelpResource[]) elements
-							.toArray(new AdaptableHelpResource[elements.size()]));
-		} else {
-			workingSet.setName(getScopeSetName());
-			workingSet.setElements((AdaptableHelpResource[]) elements
-					.toArray(new AdaptableHelpResource[elements.size()]));
-		}
-		return workingSet;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		if (searchSelected.getSelection())
-			BaseHelpSystem.getWorkingSetManager()
-					.addWorkingSet(getWorkingSet());
-		else
-			BaseHelpSystem.getWorkingSetManager().removeWorkingSet(
-					getWorkingSet());
-
-		getPreferenceStore().setValue(
-				getKey(LocalSearchScopeFactory.P_WORKING_SET),
-				getScopeSetName());
-		getPreferenceStore().setValue(
-				getKey(LocalSearchScopeFactory.P_CAPABILITY_FILTERING),
-				capabilityFiltering.getSelection());
-		return super.performOk();
-	}
-
-	private String getKey(String key) {
-		return getEngineDescriptor().getId() + "." + key; //$NON-NLS-1$
-	}
-}
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
deleted file mode 100644
index 37c9e40..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/LocalSearchScopeFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.search;
-
-import java.util.Dictionary;
-
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.search.federated.LocalHelpScope;
-import org.eclipse.help.internal.workingset.WorkingSet;
-import org.eclipse.help.search.ISearchScope;
-import org.eclipse.help.ui.ISearchScopeFactory;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * 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$
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.help.ui.ISearchScopeFactory#createSearchScope(org.eclipse.jface.preference.IPreferenceStore)
-     */
-    public ISearchScope createSearchScope(IPreferenceStore store, String engineId, Dictionary 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);
-    }
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchPage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchPage.java
deleted file mode 100644
index 391c0d6..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchPage.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.ui.internal.search;
-
-import org.eclipse.help.ui.RootScopePage;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Web serch participant in the federated search.
- */
-public class WebSearchPage extends RootScopePage {
-	private Text urlText;
-
-	/**
-	 * Default constructor.
-	 */
-	public WebSearchPage() {
-	}
-
-	protected int createScopeContents(Composite parent) {
-		//Font font = parent.getFont();
-		initializeDialogUnits(parent);
-
-		Label label = new Label(parent, SWT.NULL);
-		label.setText(Messages.WebSearchPage_label); 
-		GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		label.setLayoutData(gd);
-		urlText = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL
-				| SWT.BORDER);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint = 64;
-		gd.widthHint = 200;
-		urlText.setLayoutData(gd);
-		urlText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				validate();
-			}
-		});
-		urlText.setEditable(getEngineDescriptor().isUserDefined());
-		new Label(parent, SWT.NULL);
-		label = new Label(parent, SWT.WRAP);
-		label.setText(Messages.WebSearchPage_info); 
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 100;
-		label.setLayoutData(gd);
-		updateControls();
-		return 2;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.help.ui.RootScopePage#initializeDefaults(org.eclipse.jface.preference.IPreferenceStore)
-	 */
-	protected void initializeDefaults(IPreferenceStore store) {
-		super.initializeDefaults(store);
-		String template = (String) getEngineDescriptor().getParameters().get(
-				WebSearchScopeFactory.P_URL);
-		if (template != null)
-			store
-					.setDefault(getStoreKey(WebSearchScopeFactory.P_URL),
-							template);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		getPreferenceStore().setToDefault(
-				getStoreKey(WebSearchScopeFactory.P_URL));
-		updateControls();
-		super.performDefaults();
-	}
-
-	private void updateControls() {
-		String template = getPreferenceStore().getString(
-				getStoreKey(WebSearchScopeFactory.P_URL));
-		urlText.setText(template != null ? template : "http://"); //$NON-NLS-1$
-		validate();
-	}
-
-	private void validate() {
-		String text = urlText.getText();
-		setValid(text.length() > 0);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		String urlTemplate = urlText.getText();
-		getPreferenceStore().setValue(getStoreKey(WebSearchScopeFactory.P_URL),
-				urlTemplate);
-		return super.performOk();
-	}
-
-	private String getStoreKey(String key) {
-		return getEngineDescriptor().getId() + "." + key; //$NON-NLS-1$
-	}
-}
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
deleted file mode 100644
index 27995ae..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/search/WebSearchScopeFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.search;
-
-import java.util.Dictionary;
-
-import org.eclipse.help.internal.search.WebSearch;
-import org.eclipse.help.search.*;
-import org.eclipse.help.ui.ISearchScopeFactory;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * Factory for creating scope objects for the generic web search engine
- */
-public class WebSearchScopeFactory implements ISearchScopeFactory {
-	public final static String P_URL = "url"; //$NON-NLS-1$
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.help.ui.ISearchScopeFactory#createSearchScope(org.eclipse.jface.preference.IPreferenceStore)
-     */
-    public ISearchScope createSearchScope(IPreferenceStore store, String engineId, Dictionary parameters) {
-        String urlTemplate = getProperty(store, engineId, parameters);
-        return new WebSearch.Scope(urlTemplate);
-    }
-    
-    private String getProperty(IPreferenceStore store, String engineId, Dictionary 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);
-    }
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/AbstractOverlayIcon.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/AbstractOverlayIcon.java
deleted file mode 100644
index 7266b8a..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/AbstractOverlayIcon.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.util;
-
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An OverlayIcon consists of a main icon and several adornments.
- */
-public abstract class AbstractOverlayIcon extends CompositeImageDescriptor {
-
-	static final int DEFAULT_WIDTH = 16;
-	static final int DEFAULT_HEIGHT = 16;
-
-	private Point fSize = null;
-
-	private ImageDescriptor fOverlays[][];
-
-	public AbstractOverlayIcon(ImageDescriptor[][] overlays) {
-		this(overlays, null);
-	}
-
-	public AbstractOverlayIcon(ImageDescriptor[][] overlays, Point size) {
-		fOverlays = overlays;
-		if (size != null)
-			fSize = size;
-		else
-			fSize = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);
-	}
-	protected void drawBottomLeft(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = 0;
-		for (int i = 0; i < 3; i++) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				drawImage(id, x, getSize().y - id.height);
-				x += id.width;
-			}
-		}
-	}
-	protected void drawBottomRight(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = getSize().x;
-		for (int i = 2; i >= 0; i--) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
-				drawImage(id, x, getSize().y - id.height);
-			}
-		}
-	}
-
-	protected abstract ImageData getBaseImageData();
-
-	protected void drawCompositeImage(int width, int height) {
-		ImageData base = getBaseImageData();
-		drawImage(base, 0, 0);
-		if (fOverlays != null) {
-			if (fOverlays.length > 0)
-				drawTopRight(fOverlays[0]);
-
-			if (fOverlays.length > 1)
-				drawBottomRight(fOverlays[1]);
-
-			if (fOverlays.length > 2)
-				drawBottomLeft(fOverlays[2]);
-
-			if (fOverlays.length > 3)
-				drawTopLeft(fOverlays[3]);
-		}
-	}
-	protected void drawTopLeft(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = 0;
-		for (int i = 0; i < 3; i++) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				drawImage(id, x, 0);
-				x += id.width;
-			}
-		}
-	}
-	protected void drawTopRight(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = getSize().x;
-		for (int i = 2; i >= 0; i--) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
-				drawImage(id, x, 0);
-			}
-		}
-	}
-
-	protected Point getSize() {
-		return fSize;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/ErrorUtil.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/ErrorUtil.java
deleted file mode 100644
index a5439c0..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/ErrorUtil.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.help.ui.internal.util;
-
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.internal.base.util.IErrorUtil;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Utiliy class for common error displaying tasks.
- */
-public class ErrorUtil implements IErrorUtil {
-
-	public void displayError(String msg) {
-		displayErrorDialog(msg);
-	}
-
-	public void displayError(final String msg, Thread uiThread) {
-		try {
-			Display.findDisplay(uiThread).asyncExec(new Runnable() {
-
-				public void run() {
-					displayErrorDialog(msg);
-				}
-			});
-		} catch (Exception e2) {
-		}
-	}
-
-	/**
-	 * Immidiately displays error dialog with a given string
-	 * 
-	 * @param msg
-	 *            error message to display and log.
-	 */
-	public static void displayErrorDialog(String msg) {
-		String title = Messages.Help_Error;
-		IWorkbenchWindow workbenchWindow = getActiveWorkbenchWindow();
-		Shell shell;
-		if (workbenchWindow != null) {
-			shell = workbenchWindow.getShell();
-		} else {
-			shell = new Shell();
-		}
-		MessageDialog.openError(shell, title, msg);
-	}
-
-	/**
-	 * Immidiately displays an Information dialog with a given string
-	 * 
-	 * @param msg
-	 *            error message to display.
-	 */
-	public static void displayInfoDialog(String msg) {
-		String title = Messages.Help_Info;
-		IWorkbenchWindow workbenchWindow = getActiveWorkbenchWindow();
-		Shell shell;
-		if (workbenchWindow != null) {
-			shell = workbenchWindow.getShell();
-		} else {
-			shell = new Shell();
-		}
-		MessageDialog.openInformation(shell, title, msg);
-		if (HelpPlugin.DEBUG) {
-			System.out.println(msg);
-		}
-	}
-
-	/**
-	 * Immidiately displays a Question dialog with a given string (question).
-	 * 
-	 * @return which button(Yes/No) was pressed by user
-	 */
-	public static boolean displayQuestionDialog(String msg) {
-		String title = Messages.Help_Question;
-		IWorkbenchWindow workbenchWindow = getActiveWorkbenchWindow();
-		Shell shell;
-		if (workbenchWindow != null) {
-			shell = workbenchWindow.getShell();
-		} else {
-			shell = new Shell();
-		}
-		return MessageDialog.openQuestion(shell, title, msg);
-	}
-
-	protected static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/OverlayIcon.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/OverlayIcon.java
deleted file mode 100644
index bb8047c..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/OverlayIcon.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.util;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An OverlayIcon consists of a main icon and several adornments.
- */
-public class OverlayIcon extends AbstractOverlayIcon {
-	private ImageDescriptor fBase;
-
-	public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays) {
-		this(base, overlays, null);
-	}
-
-	public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays,
-			Point size) {
-		super(overlays, size);
-		fBase = base;
-		if (fBase == null)
-			fBase = ImageDescriptor.getMissingImageDescriptor();
-	}
-
-	protected ImageData getBaseImageData() {
-		return fBase.getImageData();
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/AllTopicsPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/AllTopicsPart.java
deleted file mode 100644
index 204f069..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/AllTopicsPart.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.ArrayList;
-
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.IToc;
-import org.eclipse.help.ITopic;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.util.OverlayIcon;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class AllTopicsPart extends HyperlinkTreePart implements IHelpPart {
-
-	private Image containerWithTopicImage;
-
-	//private Action showAllAction;
-
-	class TopicsProvider implements ITreeContentProvider {
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement == AllTopicsPart.this)
-				return HelpSystem.getTocs();
-			if (parentElement instanceof IToc)
-				return ((IToc) parentElement).getTopics();
-			if (parentElement instanceof ITopic)
-				return ((ITopic) parentElement).getSubtopics();
-			return new Object[0];
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element instanceof IToc) {
-				return AllTopicsPart.this;
-			}
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-
-	class TopicsLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			if (obj instanceof IHelpResource)
-				return ((IHelpResource) obj).getLabel();
-			return super.getText(obj);
-		}
-
-		public Image getImage(Object obj) {
-			if (obj instanceof IToc) {
-				boolean expanded = treeViewer.getExpandedState(obj);
-				String key = expanded ? IHelpUIConstants.IMAGE_TOC_OPEN
-						: IHelpUIConstants.IMAGE_TOC_CLOSED;
-				return HelpUIResources.getImage(key);
-			}
-			if (obj instanceof ITopic) {
-				boolean expandable = treeViewer.isExpandable(obj);
-				if (expandable) {
-					ITopic topic = (ITopic) obj;
-					if (topic.getHref() != null)
-						return containerWithTopicImage;
-				}
-				String key = expandable ? IHelpUIConstants.IMAGE_CONTAINER
-						: IHelpUIConstants.IMAGE_FILE_F1TOPIC;
-				return HelpUIResources.getImage(key);
-			}
-			return super.getImage(obj);
-		}
-	}
-
-	class EmptyContainerFilter extends ViewerFilter {
-		public boolean select(Viewer viewer, Object parentElement,
-				Object element) {
-			if (element instanceof IToc) {
-				return isNotEmpty((IToc) element);
-			} else if (element instanceof ITopic) {
-				return isNotEmpty((ITopic) element);
-			}
-			return false;
-		}
-
-		private boolean isNotEmpty(IToc toc) {
-			ITopic[] topics = toc.getTopics();
-			return isNotEmpty(topics);
-		}
-
-		private boolean isNotEmpty(ITopic topic) {
-			String href = topic.getHref();
-			ITopic[] topics = topic.getSubtopics();
-			return href != null || isNotEmpty(topics);
-		}
-
-		private boolean isNotEmpty(ITopic[] topics) {
-			for (int i = 0; i < topics.length; i++) {
-				if (isNotEmpty(topics[i]))
-					return true;
-			}
-			return false;
-		}
-	}
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public AllTopicsPart(Composite parent, final FormToolkit toolkit,
-			IToolBarManager tbm) {
-		super(parent, toolkit, tbm);
-	}
-
-	protected void configureTreeViewer() {
-		initializeImages();
-		treeViewer.setContentProvider(new TopicsProvider());
-		treeViewer.setLabelProvider(new TopicsLabelProvider());
-		treeViewer.addTreeListener(new ITreeViewerListener() {
-			public void treeCollapsed(TreeExpansionEvent event) {
-				Object obj = event.getElement();
-				if (obj instanceof IToc) {
-					postUpdate(obj);
-				}
-			}
-
-			public void treeExpanded(TreeExpansionEvent event) {
-				Object obj = event.getElement();
-
-				if (obj instanceof IToc) {
-					postUpdate(event.getElement());
-				}
-			}
-		});
-	}
-
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		super.init(parent, id, memento);
-		if (parent.isFilteredByRoles())
-			treeViewer.addFilter(parent.getRoleFilter());
-		treeViewer.addFilter(parent.getUAFilter());
-		treeViewer.addFilter(new EmptyContainerFilter());
-	}
-
-	private void initializeImages() {
-		ImageDescriptor base = HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_CONTAINER);
-		ImageDescriptor ovr = HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_DOC_OVR);
-		ImageDescriptor desc = new OverlayIcon(base,
-				new ImageDescriptor[][] { { ovr } });
-		containerWithTopicImage = desc.createImage();
-	}
-
-	public void dispose() {
-		containerWithTopicImage.dispose();
-		super.dispose();
-	}
-
-	protected void doOpen(Object obj) {
-		if (!(obj instanceof IHelpResource))
-			return;
-		IHelpResource res = (IHelpResource) obj;
-		if (res instanceof IToc
-				|| (res instanceof ITopic
-						&& ((ITopic) obj).getSubtopics().length > 0 && res
-						.getHref() == null))
-			treeViewer.setExpandedState(obj, !treeViewer.getExpandedState(res));
-		if (res instanceof IToc)
-			postUpdate(res);
-		else if (res.getHref() != null)
-			parent.showURL(res.getHref());
-	}
-
-	protected String getHref(IHelpResource res) {
-		return (res instanceof ITopic) ? res.getHref() : null;
-	}
-
-	public void selectReveal(String href) {
-		IToc[] tocs = HelpSystem.getTocs();
-		for (int i = 0; i < tocs.length; i++) {
-			IToc toc = tocs[i];
-			ITopic topic = toc.getTopic(href);
-			if (topic != null) {
-				ArrayList path = getPath(toc, topic);
-				for (int j = 0; j < path.size(); j++) {
-					Object obj = path.get(j);
-					treeViewer.expandToLevel(obj, 1);
-				}
-				treeViewer.setSelection(new StructuredSelection(topic), true);
-				return;
-			}
-		}
-	}
-
-	private ArrayList getPath(IToc toc, ITopic topic) {
-		ArrayList path = new ArrayList();
-		findPath(toc.getTopics(), topic, path);
-		path.add(0, toc);
-		return path;
-	}
-
-	private boolean findPath(ITopic[] siblings, ITopic topic, ArrayList path) {
-		for (int i = 0; i < siblings.length; i++) {
-			ITopic sibling = siblings[i];
-			if (sibling.equals(topic)) {
-				return true;
-			}
-			ITopic[] subtopics = sibling.getSubtopics();
-			if (subtopics.length > 0) {
-				boolean result = findPath(subtopics, topic, path);
-				if (result) {
-					path.add(0, sibling);
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	protected boolean canAddBookmarks() {
-		return true;
-	}
-
-	public void toggleRoleFilter() {
-		if (parent.isFilteredByRoles())
-			treeViewer.addFilter(parent.getRoleFilter());
-		else
-			treeViewer.removeFilter(parent.getRoleFilter());
-	}
-
-	public void refilter() {
-		treeViewer.refresh();
-	}
-
-	public void saveState(IMemento memento) {
-		// TODO Auto-generated method stub
-		
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BookmarksPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BookmarksPart.java
deleted file mode 100644
index f3cf156..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BookmarksPart.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.Observable;
-import java.util.Observer;
-
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class BookmarksPart extends HyperlinkTreePart implements IHelpPart,
-		Observer {
-	private Action deleteAction;
-
-	class BookmarksProvider implements ITreeContentProvider {
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement == BookmarksPart.this)
-				return new Object[] { BaseHelpSystem.getBookmarkManager() };
-			if (parentElement instanceof BookmarkManager)
-				return ((BookmarkManager) parentElement).getBookmarks();
-			return new Object[0];
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-
-	class BookmarksLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			if (obj instanceof BookmarkManager)
-				return Messages.BookmarksPart_savedTopics; 
-			if (obj instanceof IHelpResource)
-				return ((IHelpResource) obj).getLabel();
-			return super.getText(obj);
-		}
-
-		public Image getImage(Object obj) {
-			if (obj instanceof BookmarkManager)
-				return HelpUIResources
-						.getImage(IHelpUIConstants.IMAGE_BOOKMARKS);
-			if (obj instanceof IHelpResource)
-				return HelpUIResources
-						.getImage(IHelpUIConstants.IMAGE_BOOKMARK);
-			return super.getImage(obj);
-		}
-	}
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public BookmarksPart(Composite parent, final FormToolkit toolkit,
-			IToolBarManager tbm) {
-		super(parent, toolkit, tbm);
-		BaseHelpSystem.getBookmarkManager().addObserver(this);
-	}
-
-	public void dispose() {
-		BaseHelpSystem.getBookmarkManager().deleteObserver(this);
-		super.dispose();
-	}
-
-	protected void configureTreeViewer() {
-		treeViewer.setContentProvider(new BookmarksProvider());
-		treeViewer.setLabelProvider(new BookmarksLabelProvider());
-		treeViewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS);
-		deleteAction = new Action("") { //$NON-NLS-1$
-			public void run() {
-				Object obj = ((IStructuredSelection)treeViewer.getSelection()).getFirstElement();
-				if (obj instanceof BookmarkManager.Bookmark) {
-					BookmarkManager.Bookmark b = (BookmarkManager.Bookmark)obj;
-					BaseHelpSystem.getBookmarkManager().removeBookmark(b);
-				}
-			}
-		};
-		deleteAction.setText(Messages.BookmarksPart_delete); 
-		deleteAction.setEnabled(false);
-	}
-	
-	protected void handleSelectionChanged(IStructuredSelection sel) {
-		Object obj = sel.getFirstElement();
-		deleteAction.setEnabled(obj!=null && obj instanceof BookmarkManager.Bookmark);
-		super.handleSelectionChanged(sel);
-	}
-
-	public boolean fillContextMenu(IMenuManager manager) {
-		boolean value = super.fillContextMenu(manager);
-		ISelection selection = treeViewer.getSelection();
-		boolean canDeleteAll=false;
-		int count = BaseHelpSystem.getBookmarkManager().getBookmarks().length;
-		canDeleteAll = count>0;
-
-		if (canDelete((IStructuredSelection) selection)) {
-			if (value)
-				manager.add(new Separator());
-			manager.add(deleteAction);
-			value=true;
-		}
-		if (canDeleteAll) {
-			Action action = new Action("") { //$NON-NLS-1$
-				public void run() {
-					BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-						public void run() {
-							BaseHelpSystem.getBookmarkManager().removeAllBookmarks();
-						}
-					});
-				}
-			};
-			action.setText(Messages.BookmarksPart_deleteAll); 
-			manager.add(action);
-			value=true;
-		}
-		if (value==true)
-			manager.add(new Separator());
-		return value;
-	}
-
-	private boolean canDelete(IStructuredSelection ssel) {
-		Object obj = ssel.getFirstElement();
-		return obj instanceof BookmarkManager.Bookmark;
-	}
-
-	protected void doOpen(Object obj) {
-		if (obj instanceof BookmarkManager) {
-			treeViewer.setExpandedState(obj, !treeViewer.getExpandedState(obj));
-		} else if (obj instanceof IHelpResource) {
-			IHelpResource res = (IHelpResource) obj;
-			if (res.getHref() != null)
-				parent.showURL(res.getHref());
-		}
-	}
-	
-	public void update(final Observable o, final Object arg) {
-		treeViewer.getControl().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				asyncUpdate(o, arg);
-			}
-		});
-	}
-
-	private void asyncUpdate(Observable o, Object arg) {
-		BookmarkManager.BookmarkEvent event = (BookmarkManager.BookmarkEvent) arg;
-		switch (event.getType()) {
-		case BookmarkManager.ADD:
-			treeViewer.add(BaseHelpSystem.getBookmarkManager(), event
-					.getBookmark());
-			break;
-		case BookmarkManager.REMOVE:
-			treeViewer.remove(event.getBookmark());
-			break;
-		case BookmarkManager.REMOVE_ALL:
-		case BookmarkManager.WORLD_CHANGED:
-			treeViewer.refresh();
-			break;
-		}
-	}
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.DELETE.getId()))
-			return deleteAction;
-		return super.getGlobalAction(id);
-	}
-
-	protected boolean canAddBookmarks() {
-		return false;
-	}
-
-	public void toggleRoleFilter() {
-	}
-
-	public void refilter() {
-	}
-
-	public void saveState(IMemento memento) {
-		// TODO Auto-generated method stub
-		
-	}
-}
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
deleted file mode 100644
index 99df5e1..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/BrowserPart.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.util.URLCoder;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.LocationListener;
-import org.eclipse.swt.browser.OpenWindowListener;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.browser.StatusTextEvent;
-import org.eclipse.swt.browser.StatusTextListener;
-import org.eclipse.swt.browser.WindowEvent;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class BrowserPart extends AbstractFormPart implements IHelpPart {
-	private final static String QUERY = "BrowserPartQuery:"; //$NON-NLS-1$
-
-	private ReusableHelpPart parent;
-
-	private Browser browser;
-
-	private String id;
-
-	private int lastProgress = -1;
-
-	private String url;
-
-	private Action showExternalAction;
-
-	private Action syncTocAction;
-
-	private Action bookmarkAction;
-
-	private Action printAction;
-
-	private String statusURL;
-
-	private String title;
-
-	public BrowserPart(final Composite parent, FormToolkit toolkit,
-			IToolBarManager tbm) {
-		browser = new Browser(parent, SWT.NULL);
-		browser.addLocationListener(new LocationListener() {
-			public void changing(LocationEvent event) {
-				if (redirectLink(event.location))
-					event.doit = false;
-				if (!event.doit && event.location != null
-						&& event.location.startsWith("https://")) { //$NON-NLS-1$
-					try {
-						BaseHelpSystem.getHelpBrowser(true).displayURL(
-								event.location);
-					} catch (Exception exc) {
-					}
-				}
-			}
-
-			public void changed(LocationEvent event) {
-				String url = event.location;
-				BrowserPart.this.parent.browserChanged(url);
-				BrowserPart.this.url = url;
-				updateSyncTocAction();
-			}
-		});
-		browser.addProgressListener(new ProgressListener() {
-			public void changed(ProgressEvent e) {
-				if (e.current == e.total)
-					return;
-				IStatusLineManager slm = BrowserPart.this.parent
-						.getStatusLineManager();
-				IProgressMonitor monitor = slm != null ? slm
-						.getProgressMonitor() : null;
-				if (lastProgress == -1) {
-					lastProgress = 0;
-					if (monitor != null) {
-						monitor.beginTask("", e.total); //$NON-NLS-1$
-						slm.setCancelEnabled(true);
-					}
-				} else if (monitor != null && monitor.isCanceled()) {
-					browser.stop();
-					return;
-				}
-				if (monitor != null)
-					monitor.worked(e.current - lastProgress);
-				lastProgress = e.current;
-			}
-
-			public void completed(ProgressEvent e) {
-				IStatusLineManager slm = BrowserPart.this.parent
-						.getStatusLineManager();
-				IProgressMonitor monitor = slm != null ? slm
-						.getProgressMonitor() : null;
-				if (monitor != null) {
-					slm.setCancelEnabled(false);
-					monitor.done();
-				}
-				lastProgress = -1;
-				String value = executeQuery("document.title"); //$NON-NLS-1$
-				BrowserPart.this.title = value != null ? value : "N/A"; //$NON-NLS-1$
-			}
-		});
-		browser.addStatusTextListener(new StatusTextListener() {
-			public void changed(StatusTextEvent event) {
-				if (processQuery(event.text))
-					return;
-				IStatusLineManager statusLine = BrowserPart.this.parent
-						.getStatusLineManager();
-				if (statusLine != null)
-					statusLine.setMessage(event.text);
-				if (event.text.indexOf("://") != -1) //$NON-NLS-1$
-					statusURL = event.text;
-			}
-		});
-		browser.addOpenWindowListener(new OpenWindowListener() {
-			public void open(WindowEvent event) {
-				if (statusURL != null) {
-					try {
-						String relativeURL = BaseHelpSystem.unresolve(new URL(
-								statusURL));
-						if (BrowserPart.this.parent.isHelpResource(relativeURL)) {
-							BrowserPart.this.parent
-									.showExternalURL(relativeURL);
-							event.required = true;
-						}
-					} catch (MalformedURLException e) {
-						// TODO report this
-					}
-				}
-			}
-		});
-		contributeToToolBar(tbm);
-	}
-
-	private String executeQuery(String domValue) {
-		String query = "window.status=\"" + QUERY + "\"+" + domValue + ";"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		boolean status = browser.execute(query);
-		if (status) {
-			return (String) browser.getData("query"); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	private boolean processQuery(String text) {
-		if (text.startsWith(QUERY)) {
-			browser.setData("query", text.substring(QUERY.length())); //$NON-NLS-1$
-			return true;
-		}
-		return false;
-	}
-
-	private void contributeToToolBar(IToolBarManager tbm) {
-		showExternalAction = new Action() {
-			public void run() {
-				BusyIndicator.showWhile(browser.getDisplay(), new Runnable() {
-					public void run() {
-						try {
-							parent.showExternalURL(BaseHelpSystem
-									.unresolve(new URL(url)));
-						} catch (MalformedURLException e) {
-							// TODO report this
-						}
-					}
-				});
-			}
-		};
-		showExternalAction
-				.setToolTipText(Messages.BrowserPart_showExternalTooltip);
-		showExternalAction.setImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_NW));
-		syncTocAction = new Action() {
-			public void run() {
-				doSyncToc();
-			}
-		};
-		syncTocAction.setToolTipText(Messages.BrowserPart_syncTocTooltip);
-		syncTocAction.setImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_SYNC_TOC));
-		syncTocAction.setEnabled(false);
-		bookmarkAction = new Action() {
-			public void run() {
-				String href = BaseHelpSystem.unresolve(url);
-				BaseHelpSystem.getBookmarkManager().addBookmark(href, title);
-			}
-		};
-		bookmarkAction.setToolTipText(Messages.BrowserPart_bookmarkTooltip);
-		bookmarkAction.setImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_ADD_BOOKMARK));
-		tbm.insertBefore("back", showExternalAction); //$NON-NLS-1$
-		tbm.insertBefore("back", syncTocAction); //$NON-NLS-1$
-		tbm.insertBefore("back", bookmarkAction); //$NON-NLS-1$
-		tbm.insertBefore("back", new Separator()); //$NON-NLS-1$
-		printAction = new Action(ActionFactory.PRINT.getId()) {
-			public void run() {
-				doPrint();
-			}
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#init(org.eclipse.help.ui.internal.views.NewReusableHelpPart)
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.parent = parent;
-		this.id = id;
-		if (memento != null) {
-			String href = memento.getString("BrowserPart.url"); //$NON-NLS-1$
-			if (href != null)
-				showURL(BaseHelpSystem.resolve(href, "/help/ntopic").toString()); //$NON-NLS-1$
-		}
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#getControl()
-	 */
-	public Control getControl() {
-		return browser;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		if (browser != null) {
-			browser.setVisible(visible);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IFormPart#setFocus()
-	 */
-	public void setFocus() {
-		if (browser != null)
-			browser.setFocus();
-	}
-
-	public void showURL(String url) {
-		if (browser != null && url != null) {
-			browser.setUrl(url);
-		}
-	}
-
-	public void stop() {
-		if (browser != null && !browser.isDisposed()) {
-			browser.stop();
-		}
-	}
-
-	private void doPrint() {
-		browser.execute("window.print();"); //$NON-NLS-1$
-	}
-
-	private void doSyncToc() {
-		String href = BaseHelpSystem.unresolve(this.url);
-		int ix = href.indexOf("?resultof="); //$NON-NLS-1$
-		if (ix >= 0) {
-			href = href.substring(0, ix);
-		}
-		parent.showPage(IHelpUIConstants.HV_ALL_TOPICS_PAGE);
-		AllTopicsPart part = (AllTopicsPart) parent
-				.findPart(IHelpUIConstants.HV_TOPIC_TREE);
-		if (part != null) {
-			part.selectReveal(href);
-		}
-	}
-
-	private void updateSyncTocAction() {
-		String href = BaseHelpSystem.unresolve(this.url);
-		syncTocAction.setEnabled(parent.isHelpResource(href));
-	}
-
-	private boolean redirectLink(final String url) {
-		if (url.indexOf("/topic/") != -1) { //$NON-NLS-1$
-			if (url.indexOf("noframes") == -1) { //$NON-NLS-1$
-				// char sep = url.lastIndexOf('?') != -1 ? '&' : '?';
-				// String newURL = url + sep + "noframes=true"; //$NON-NLS-1$
-				return true;
-			}
-		} else if (url.indexOf("livehelp/?pluginID=")>0) { //$NON-NLS-1$
-			processLiveAction(url);
-			return true;
-		}
-		return false;
-	}
-
-	private void processLiveAction(String url) {
-		Preferences prefs = HelpBasePlugin.getDefault().getPluginPreferences();
-		if (!"true".equalsIgnoreCase(prefs.getString("activeHelp"))) { //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-
-		String query = null;
-		try {
-			URL u = new URL(url);
-			query = u.getQuery();
-		} catch (MalformedURLException mue) {
-		}
-		if (query == null)
-			return;
-		StringTokenizer st = new StringTokenizer(query, "=&"); //$NON-NLS-1$
-		if (st.countTokens() < 6) {
-			return;
-		}
-		st.nextToken();
-		String pluginId = URLCoder.decode(st.nextToken());
-		st.nextToken();
-		String className = URLCoder.decode(st.nextToken());
-		st.nextToken();
-		String arg = URLCoder.decode(st.nextToken());
-		if (pluginId == null || className == null || arg == null)
-			return;
-		BaseHelpSystem.runLiveHelp(pluginId, className, arg);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-
-	public boolean fillContextMenu(IMenuManager manager) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#hasFocusControl(org.eclipse.swt.widgets.Control)
-	 */
-	public boolean hasFocusControl(Control control) {
-		return browser.equals(control);
-	}
-
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.PRINT.getId()))
-			return printAction;
-		return null;
-	}
-
-	public void toggleRoleFilter() {
-	}
-
-	public void refilter() {
-		showURL(this.url);
-	}
-
-	public void saveState(IMemento memento) {
-		if (url != null) {
-			String href = BaseHelpSystem.unresolve(url);
-			memento.putString("BrowserPart.url", href); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/Chevron.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/Chevron.java
deleted file mode 100644
index e363904..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/Chevron.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.ToggleHyperlink;
-
-public final class Chevron extends ToggleHyperlink {
-	private static final int[][] offLines = { { 0, 0, 2, 2, 0, 4 },
-			{ 1, 0, 3, 2, 1, 4 }, { 4, 0, 6, 2, 4, 4 }, { 5, 0, 7, 2, 5, 4 } };
-
-	private static final int[][] onLines = { { 2, 0, 0, 2, 2, 4 },
-			{ 3, 0, 1, 2, 3, 4 }, { 6, 0, 4, 2, 6, 4 }, { 7, 0, 5, 2, 7, 4 } };
-
-	/**
-	 * Creates a control in a provided composite.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param style
-	 *            the style
-	 */
-	public Chevron(Composite parent, int style) {
-		super(parent, style);
-		innerWidth = 8;
-		innerHeight = 5;
-		marginWidth = 3;
-		marginHeight = 4;
-	}
-
-	/*
-	 * @see SelectableControl#paint(GC)
-	 */
-	protected void paintHyperlink(GC gc) {
-		if (hover && getHoverDecorationColor() != null)
-			gc.setForeground(getHoverDecorationColor());
-		else if (getDecorationColor() != null)
-			gc.setForeground(getDecorationColor());
-		int[][] data;
-		Rectangle carea = getClientArea();
-		int x = (carea.width - innerWidth) /2;
-		int y = (carea.height - innerHeight) / 2;
-		if (isExpanded())
-			data = translate(onLines, x, y);
-		else
-			data = translate(offLines, x, y);
-		for (int i=0; i<data.length; i++) {
-			gc.drawPolyline(data[i]);
-		}
-		gc.setBackground(getBackground());
-	}
-
-	private int[][] translate(int[][] data, int x, int y) {
-		int[][] target = new int[data.length][];
-		for (int i = 0; i<data.length; i++) {
-			int [] line = data[i];
-			target[i] = new int[line.length];
-			for (int j = 0; j < line.length; j += 2) {
-				target[i][j] = line[j] + x;
-			}
-			for (int j = 1; j < line.length; j += 2) {
-				target[i][j] = line[j] + y;
-			}
-		}
-		return target;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ComboPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ComboPart.java
deleted file mode 100644
index 17cd277..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ComboPart.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class ComboPart {
-	private Control combo;
-
-	public ComboPart() {
-	}
-	
-	public ComboPart(Composite parent, FormToolkit toolkit, int style) {
-		createControl(parent, toolkit, style);
-	}
-
-	public void addSelectionListener(SelectionListener listener) {
-		if (combo instanceof Combo)
-			((Combo) combo).addSelectionListener(listener);
-		else
-			((CCombo) combo).addSelectionListener(listener);
-	}
-	
-	public void addModifyListener(ModifyListener listener) {
-		if (combo instanceof Combo)
-			((Combo) combo).addModifyListener(listener);
-		else
-			((CCombo) combo).addModifyListener(listener);
-	}	
-	
-	public void addKeyListener(KeyListener listener) {
-		if (combo instanceof Combo)
-			((Combo) combo).addKeyListener(listener);
-		else
-			((CCombo) combo).addKeyListener(listener);
-	}	
-
-	public void createControl(Composite parent, FormToolkit toolkit, int style) {
-		if (toolkit.getBorderStyle() == SWT.BORDER)
-			combo = new Combo(parent, style | SWT.BORDER);
-		else
-			combo = new CCombo(parent, style | SWT.FLAT);
-		toolkit.adapt(combo, true, true);
-	}
-
-	public Control getControl() {
-		return combo;
-	}
-
-	public int getSelectionIndex() {
-		if (combo instanceof Combo)
-			return ((Combo) combo).getSelectionIndex();
-		return ((CCombo) combo).getSelectionIndex();
-	}
-
-	public void add(String item, int index) {
-		if (combo instanceof Combo)
-			((Combo) combo).add(item, index);
-		else
-			((CCombo) combo).add(item, index);
-	}
-
-	public void add(String item) {
-		if (combo instanceof Combo)
-			((Combo) combo).add(item);
-		else
-			((CCombo) combo).add(item);
-	}
-
-	public void select(int index) {
-		if (combo instanceof Combo)
-			((Combo) combo).select(index);
-		else
-			((CCombo) combo).select(index);
-	}
-
-	public String getSelection() {
-		if (combo instanceof Combo)
-			return ((Combo) combo).getItem(getSelectionIndex());
-		return ((CCombo) combo).getItem(getSelectionIndex());
-	}
-
-	public void setText(String text) {
-		if (combo instanceof Combo)
-			((Combo) combo).setText(text);
-		else
-			((CCombo) combo).setText(text);
-	}
-	public String getText() {
-		if (combo instanceof Combo)
-			return ((Combo) combo).getText();
-		return ((CCombo) combo).getText();
-	}
-
-	public void setItems(String[] items) {
-		if (combo instanceof Combo)
-			((Combo) combo).setItems(items);
-		else
-			((CCombo) combo).setItems(items);
-	}
-}
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
deleted file mode 100644
index fd9c3b6..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java
+++ /dev/null
@@ -1,572 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IContext2;
-import org.eclipse.help.IContextProvider;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.IToc;
-import org.eclipse.help.ITopic;
-import org.eclipse.help.UAContentFilter;
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.dialogs.IPageChangeProvider;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.IWizardContainer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.SectionPart;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class ContextHelpPart extends SectionPart implements IHelpPart {
-	private ReusableHelpPart parent;
-
-	private static final String HELP_KEY = "org.eclipse.ui.help"; //$NON-NLS-1$	
-
-	private FormText text;
-
-	private Control lastControl;
-
-	private IContextProvider lastProvider;
-
-	private IContext lastContext;
-
-	private IWorkbenchPart lastPart;
-
-	private String defaultText = ""; //$NON-NLS-1$
-
-	private String id;
-	
-	private Font codeFont;
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public ContextHelpPart(Composite parent, FormToolkit toolkit) {
-		super(parent, toolkit, Section.EXPANDED | Section.TWISTIE
-				| Section.TITLE_BAR);
-		Section section = getSection();
-		section.marginWidth = 5;
-		section.setText(Messages.ContextHelpPart_about);
-		Composite container = toolkit.createComposite(section);
-		section.setClient(container);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				if (e.getState()
-						&& (lastProvider != null || lastControl != null)) {
-					String helpText = createContextHelp(lastProvider,
-							lastControl);
-					updateText(helpText);
-				}
-			}
-		});
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.topMargin = layout.bottomMargin = 0;
-		layout.leftMargin = layout.rightMargin = 0;
-		layout.verticalSpacing = 10;
-		container.setLayout(layout);
-		text = toolkit.createFormText(container, false);
-		text.setWhitespaceNormalized(false);
-		text.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		text.setColor(FormColors.TITLE, toolkit.getColors().getColor(
-				FormColors.TITLE));
-		codeFont = createCodeFont(parent.getDisplay(), parent.getFont(), JFaceResources.getTextFont());
-		text.setFont("code", codeFont); //$NON-NLS-1$
-		String key = IHelpUIConstants.IMAGE_FILE_F1TOPIC;
-		text.setImage(key, HelpUIResources.getImage(key));
-		text.addHyperlinkListener(new IHyperlinkListener() {
-			public void linkActivated(HyperlinkEvent e) {
-				doOpenLink(e.getHref());
-			}
-
-			public void linkEntered(HyperlinkEvent e) {
-				ContextHelpPart.this.parent.handleLinkEntered(e);
-			}
-
-			public void linkExited(HyperlinkEvent e) {
-				ContextHelpPart.this.parent.handleLinkExited(e);
-			}
-		});
-		text.setText(defaultText, false, false);
-	}
-	
-	private static Font createCodeFont(Display display, Font regularFont, Font textFont) {
-		FontData[] rfontData = regularFont.getFontData();
-		FontData[] tfontData = textFont.getFontData();
-		int height = 0;
-		
-		for (int i=0; i<rfontData.length; i++) {
-			FontData data = rfontData[i];
-			height = Math.max(height, data.getHeight());
-		}
-		for (int i = 0; i < tfontData.length; i++) {
-			tfontData[i].setHeight(height);
-		}
-		return new Font(display, tfontData);
-	}
-	
-	public void dispose() {
-		if (codeFont!=null)
-			codeFont.dispose();
-		codeFont = null;
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#getControl()
-	 */
-	public Control getControl() {
-		return getSection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#init(org.eclipse.help.ui.internal.views.NewReusableHelpPart)
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.parent = parent;
-		this.id = id;
-		parent.hookFormText(text);
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		getSection().setVisible(visible);
-	}
-
-	/**
-	 * @return Returns the defaultText.
-	 */
-	public String getDefaultText() {
-		return defaultText;
-	}
-
-	/**
-	 * @param defaultText
-	 *            The defaultText to set.
-	 */
-	public void setDefaultText(String defaultText) {
-		this.defaultText = defaultText;
-		if (text != null)
-			text.setText(defaultText, false, false);
-	}
-
-	private void doOpenLink(Object href) {
-		parent.showURL((String) href);
-	}
-
-	public void handleActivation(Control c, IWorkbenchPart part) {
-		if (text.isDisposed())
-			return;
-		lastControl = c;
-		lastPart = part;
-		lastProvider = null;
-		String helpText = createContextHelp(c);
-		if (getSection().isExpanded())
-			updateText(helpText);
-		updateDynamicHelp(false);
-	}
-
-	private void updateDynamicHelp(boolean explicitContext) {
-		if (explicitContext && lastContext instanceof IContext2) {
-			String title = ((IContext2)lastContext).getTitle();
-			if (title!=null) {
-				updateDynamicHelp(stripMnemonic(title), lastControl);
-				return;
-			}
-		}
-		if (lastProvider != null || lastControl != null)
-			updateDynamicHelp(lastProvider != null ? lastProvider
-					.getSearchExpression(lastControl) : null, lastControl);
-	}
-
-	public void handleActivation(IContextProvider provider, IContext context, 
-			Control c,
-			IWorkbenchPart part) {
-		if (text.isDisposed())
-			return;
-		lastControl = c;
-		lastProvider = provider;
-		lastContext = context;
-		lastPart = part;
-		if (context==null && provider!=null) {
-			lastContext = provider.getContext(c);
-		}
-		String helpText;
-		if (lastContext!=null)
-			helpText = formatHelpContext(lastContext);
-		else
-			helpText = createContextHelp(c);
-		updateTitle(context!=null);
-		if (getSection().isExpanded())
-			updateText(helpText);
-		updateDynamicHelp(context!=null);
-	}
-	
-	private void updateTitle(boolean contextSupplied) {
-		String title = null;
-		if (lastContext != null && lastContext instanceof IContext2) {
-			IContext2 c2 = (IContext2)lastContext;
-			title = c2.getTitle(); 
-		}
-		if (title==null && !contextSupplied && lastPart != null)
-			title = NLS.bind(Messages.ContextHelpPart_aboutP, lastPart
-							.getSite().getRegisteredName());
-		if (title==null)
-			title = Messages.ContextHelpPart_about;
-		getSection().setText(title);
-	}
-
-	private void updateText(String helpText) {
-		text.setText(helpText != null ? helpText : defaultText,
-				helpText != null, 
-				false);
-		getSection().layout();
-		getManagedForm().reflow(true);
-	}
-
-	private void updateDynamicHelp(String expression, Control c) {
-		if (expression == null) {
-			expression = computeDefaultSearchExpression(c);
-		}
-		RelatedTopicsPart part = (RelatedTopicsPart) parent
-				.findPart(IHelpUIConstants.HV_RELATED_TOPICS);
-		if (part != null) {
-			if (expression != null)
-				part.startSearch(expression, lastContext);
-		}
-	}
-
-	private String computeDefaultSearchExpression(Control c) {
-		StringBuffer buff = new StringBuffer();
-		Composite parent = c.getParent();
-
-		while (parent != null) {
-			Object data = parent.getData();
-			if (data instanceof IWizardContainer) {
-				IWizardContainer wc = (IWizardContainer) data;
-				buff.append("\""); //$NON-NLS-1$
-				buff.append(wc.getCurrentPage().getTitle());
-				buff.append("\" OR \""); //$NON-NLS-1$
-				buff.append(wc.getCurrentPage().getWizard().getWindowTitle());
-				buff.append("\""); //$NON-NLS-1$
-				break;
-			} else if (data instanceof IWorkbenchWindow) {
-				IWorkbenchWindow window = (IWorkbenchWindow) data;
-				IWorkbenchPage page = window.getActivePage();
-				if (page != null) {
-					IWorkbenchPart part = lastPart;
-					if (part != null) {
-						buff.append("\""); //$NON-NLS-1$
-						if (part instanceof IViewPart)
-							buff.append(NLS.bind(
-									Messages.ContextHelpPart_query_view, part
-											.getSite().getRegisteredName()));
-						buff.append("\" "); //$NON-NLS-1$
-					}
-					IPerspectiveDescriptor persp = page.getPerspective();
-					if (persp != null) {
-						if (buff.length() > 0)
-							buff.append("OR "); //$NON-NLS-1$
-						buff.append("\""); //$NON-NLS-1$
-						buff.append(NLS.bind(
-								Messages.ContextHelpPart_query_perspective,
-								persp.getLabel()));
-						buff.append("\""); //$NON-NLS-1$
-					}
-				}
-				break;
-			} else if (data instanceof Window) {
-				Window w = (Window) data;
-				if (w instanceof IPageChangeProvider) {
-					Object page = ((IPageChangeProvider) w).getSelectedPage();
-					String pageName = getPageName(c, page);
-					if (pageName != null) {
-						buff.append("\""); //$NON-NLS-1$
-						buff.append(pageName);
-						buff.append("\" "); //$NON-NLS-1$
-					}
-				}
-				if (buff.length() > 0)
-					buff.append("OR "); //$NON-NLS-1$
-				buff.append("\""); //$NON-NLS-1$
-				buff.append(w.getShell().getText());
-				buff.append("\""); //$NON-NLS-1$
-				break;
-			}
-			parent = parent.getParent();
-		}
-		return buff.length() > 0 ? buff.toString().trim() : null;
-	}
-
-	private String getPageName(Control focusControl, Object page) {
-		if (page instanceof IDialogPage)
-			return ((IDialogPage) page).getTitle();
-		if (focusControl == null)
-			return null;
-
-		Composite parent = focusControl.getParent();
-		while (parent != null) {
-			if (parent instanceof TabFolder) {
-				TabItem[] selection = ((TabFolder) parent).getSelection();
-				if (selection.length == 1)
-					return stripMnemonic(selection[0].getText());
-			} else if (parent instanceof CTabFolder) {
-				CTabItem selection = ((CTabFolder) parent).getSelection();
-				return stripMnemonic(selection.getText());
-			}
-			parent = parent.getParent();
-		}
-		return null;
-	}
-	
-	private String stripMnemonic(String name) {
-		int loc = name.indexOf('&');
-		if (loc!= -1)
-			return name.substring(0, loc)+name.substring(loc+1);
-		return name;
-	}
-
-	private String createContextHelp(IContextProvider provider, Control c) {
-		if (provider == null)
-			return createContextHelp(c);
-		lastContext = provider.getContext(c);
-		if (lastContext != null) {
-			return formatHelpContext(lastContext);
-		}
-		return null;
-	}
-
-	private String createContextHelp(Control page) {
-		String text = null;
-		lastContext = null;
-		if (page != null) {
-			if (page != null /* && page.isVisible() */&& !page.isDisposed()) {
-				IContext helpContext = findHelpContext(page);
-				if (helpContext != null) {
-					text = formatHelpContext(helpContext);
-					lastContext = helpContext;
-				}
-			}
-		}
-		return text;
-	}
-
-	public static IContext findHelpContext(Control c) {
-		String contextId = null;
-		Control node = c;
-		do {
-			contextId = (String) node.getData(HELP_KEY);
-			if (contextId != null)
-				break;
-			node = node.getParent();
-		} while (node != null);
-		if (contextId != null) {
-			return HelpSystem.getContext(contextId);
-		}
-		return null;
-	}
-
-	private String formatHelpContext(IContext context) {
-		String locale = Platform.getNL();
-		StringBuffer sbuf = new StringBuffer();
-		sbuf.append("<form>"); //$NON-NLS-1$
-		sbuf.append("<p>"); //$NON-NLS-1$
-		sbuf.append(decodeContextBoldTags(context));
-		sbuf.append("</p>"); //$NON-NLS-1$
-		IHelpResource[] links = context.getRelatedTopics();
-		IContext2 context2 = null;
-		if (links != null && context instanceof IContext2) {
-			context2 = (IContext2) context;
-			ContextHelpSorter sorter = new ContextHelpSorter(context2);
-			sorter.sort(null, links);
-		}
-		if (links != null && links.length > 0) {
-			String category = null;
-			if (context2 == null)
-				addCategory(sbuf, null);
-			for (int i = 0; i < links.length; i++) {
-				IHelpResource link = links[i];
-				if (!UAContentFilter.isFiltered(link)) {
-					if (context2 != null) {
-						String cat = context2.getCategory(link);
-						if (cat == null && category != null || cat != null
-								&& category == null || cat != null
-								&& category != null && !cat.equals(category)) {
-							addCategory(sbuf, cat);
-						}
-						category = cat;
-					}
-					sbuf.append("<li style=\"image\" value=\""); //$NON-NLS-1$
-					sbuf.append(IHelpUIConstants.IMAGE_FILE_F1TOPIC);
-					sbuf.append("\" indent=\"21\">"); //$NON-NLS-1$
-					sbuf.append("<a href=\""); //$NON-NLS-1$
-					sbuf.append(link.getHref());
-					String tcat = getTopicCategory(link.getHref(), locale);
-					if (tcat != null && !Platform.getWS().equals(Platform.WS_GTK)) {
-						sbuf.append("\" alt=\""); //$NON-NLS-1$
-						sbuf.append(tcat);
-					}
-					sbuf.append("\">"); //$NON-NLS-1$	 		
-					sbuf.append(parent.escapeSpecialChars(link.getLabel()));
-					sbuf.append("</a>"); //$NON-NLS-1$
-					sbuf.append("</li>"); //$NON-NLS-1$
-				}
-			}
-		}
-		sbuf.append("</form>"); //$NON-NLS-1$
-		return sbuf.toString();
-	}
-
-	private void addCategory(StringBuffer sbuf, String category) {
-		if (category == null)
-			category = Messages.ContextHelpPart_seeAlso;
-		sbuf.append("<p><span color=\""); //$NON-NLS-1$
-		sbuf.append(FormColors.TITLE);
-		sbuf.append("\">"); //$NON-NLS-1$
-		sbuf.append(category);
-		sbuf.append("</span></p>"); //$NON-NLS-1$
-	}
-
-	private String getTopicCategory(String href, String locale) {
-		IToc[] tocs = HelpPlugin.getTocManager().getTocs(locale);
-		for (int i = 0; i < tocs.length; i++) {
-			ITopic topic = tocs[i].getTopic(href);
-			if (topic != null)
-				return tocs[i].getLabel();
-		}
-		return null;
-	}
-
-	/**
-	 * Make sure to support the Help system bold tag. Help systen returns a
-	 * regular string for getText(). Use internal apis for now to get bold.
-	 * 
-	 * @param context
-	 * @return
-	 */
-	private String decodeContextBoldTags(IContext context) {
-		String styledText;
-		if (context instanceof IContext2) {
-			styledText = ((IContext2) context).getStyledText();
-		} else {
-			styledText = context.getText();
-		}
-		if (styledText == null)
-			return ""; //$NON-NLS-1$
-		String decodedString = styledText.replaceAll("<@#\\$b>", "<b>"); //$NON-NLS-1$ //$NON-NLS-2$
-		decodedString = decodedString.replaceAll("</@#\\$b>", "</b>"); //$NON-NLS-1$ //$NON-NLS-2$
-		decodedString = parent.escapeSpecialChars(decodedString, true);
-		decodedString = decodedString.replaceAll("\r\n|\n|\r", "<br/>");  //$NON-NLS-1$ //$NON-NLS-2$		
-		return decodedString;
-	}
-
-	public boolean setFormInput(Object input) {
-		if (input instanceof ContextHelpProviderInput) {
-			ContextHelpProviderInput chinput = (ContextHelpProviderInput) input;
-			//if (chinput.getContext() != null)
-				handleActivation(chinput.getProvider(), chinput.getContext(), chinput.getControl(),
-						chinput.getPart());
-			//else
-				//handleActivation(chinput.getProvider(), chinput.getControl(),
-					//	chinput.getPart());
-			return true;
-		}
-		return false;
-	}
-
-	public void setFocus() {
-		if (text != null)
-			text.setFocus();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public boolean fillContextMenu(IMenuManager manager) {
-		return parent.fillFormContextMenu(text, manager);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#hasFocusControl(org.eclipse.swt.widgets.Control)
-	 */
-	public boolean hasFocusControl(Control control) {
-		return text.equals(control);
-	}
-
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.COPY.getId()))
-			return parent.getCopyAction();
-		return null;
-	}
-
-	public void stop() {
-	}
-
-	public void toggleRoleFilter() {
-	}
-
-	public void refilter() {
-	}
-
-	public void saveState(IMemento memento) {
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpProviderInput.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpProviderInput.java
deleted file mode 100644
index 796c262..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpProviderInput.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.IContext;
-import org.eclipse.help.IContextProvider;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class ContextHelpProviderInput {
-	private IContext context;
-	private IContextProvider provider;
-	private Control control;
-	private IWorkbenchPart part;
-	public ContextHelpProviderInput(IContextProvider provider, IContext context, Control control, IWorkbenchPart part) {
-		this.provider = provider;
-		this.context = context;
-		this.control =control;
-		this.part = part;
-	}
-	
-	public IContextProvider getProvider() {
-		return provider;
-	}
-	public IContext getContext() {
-		return context;
-	}
-	public Control getControl() {
-		return control;
-	}
-	public IWorkbenchPart getPart() {
-		return part;
-	}
-}
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
deleted file mode 100644
index a308885..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpSorter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.*;
-import org.eclipse.jface.viewers.*;
-
-public class ContextHelpSorter extends ViewerSorter {
-	private IContext2 context;
-	
-	public ContextHelpSorter(IContext2 context) {
-		super(ReusableHelpPart.SHARED_COLLATOR);
-		this.context = context;
-	}
-	
-    public int category(Object element) {
-		if (element instanceof IHelpResource) {
-			IHelpResource r = (IHelpResource)element;
-			String c = context.getCategory(r);
-			if (c!=null) {
-				return -5;
-			}
-		}
-        return super.category(element);
-    }
-	/**
-	 * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,java.lang.Object,java.lang.Object)
-	 */
-	public int compare(Viewer viewer, Object e1, Object e2) {
-	    int cat1 = category(e1);
-	    int cat2 = category(e2);
-
-	    if (cat1 != cat2)
-	    	return cat1 - cat2;
-	    IHelpResource r1 = (IHelpResource) e1;
-	    IHelpResource r2 = (IHelpResource) e2;
-		String c1 = context.getCategory(r1);
-		String c2 = context.getCategory(r2);
-		if (c1!=null && c2!=null) {
-			int cat = super.compare(viewer, c1, c2);
-			if (cat!=0) return cat;
-		}
-	    return 0;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/DynamicHelpPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/DynamicHelpPart.java
deleted file mode 100644
index cbf722e..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/DynamicHelpPart.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.search.SearchHit;
-import org.eclipse.help.internal.search.SearchQuery;
-import org.eclipse.help.internal.search.SearchResults;
-import org.eclipse.help.internal.search.federated.IndexerJob;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.SectionPart;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IExpansionListener;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-public class DynamicHelpPart extends SectionPart implements IHelpPart {
-	private static final String CANCEL_HREF = "__cancel__"; //$NON-NLS-1$
-
-	private static final String MORE_HREF = "__more__"; //$NON-NLS-1$
-
-	private ReusableHelpPart parent;
-
-	private FormText searchResults;
-
-	private SorterByScore resultSorter;
-
-	private String id;
-
-	private String phrase;
-
-	private Job runningJob;
-	private IContext context;
-
-	private JobListener jobListener;
-	public static final int SHORT_COUNT = 8;
-
-	class JobListener implements IJobChangeListener {
-		public void aboutToRun(IJobChangeEvent event) {
-		}
-
-		public void awake(IJobChangeEvent event) {
-		}
-
-		public void done(IJobChangeEvent event) {
-			if (event.getJob() == runningJob) {
-				runningJob = null;
-			}
-		}
-
-		public void running(IJobChangeEvent event) {
-		}
-
-		public void scheduled(IJobChangeEvent event) {
-		}
-
-		public void sleeping(IJobChangeEvent event) {
-		}
-	}
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public DynamicHelpPart(Composite parent, FormToolkit toolkit) {
-		super(parent, toolkit, Section.EXPANDED | Section.TWISTIE
-				| Section.TITLE_BAR);
-		// configure section
-		Section section = getSection();
-		section.setText(Messages.SearchPart_title); 
-		section.marginWidth = 5;
-		section.addExpansionListener(new IExpansionListener() {
-			public void expansionStateChanging(ExpansionEvent e) {
-			}
-			public void expansionStateChanged(ExpansionEvent e) {
-				if (e.getState()) {
-					refilter();
-				}
-			}
-		});
-		// create 'clear' hyperlink on the section tool bar
-		//ImageHyperlink clearLink = new ImageHyperlink(section, SWT.NULL);
-		//toolkit.adapt(clearLink, true, true);
-		/*
-		clearLink.setToolTipText(HelpUIResources
-				.getString("SearchPart.clearResults")); //$NON-NLS-1$
-		clearLink.setImage(HelpUIResources
-				.getImage(IHelpUIConstants.IMAGE_CLEAR));
-		clearLink.setBackground(section.getTitleBarGradientBackground());
-		clearLink.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				clearResults();
-			}
-		});
-		section.setTextClient(clearLink);
-		*/		
-		resultSorter = new SorterByScore();
-		searchResults = toolkit.createFormText(section, false);
-		section.setClient(searchResults);
-		searchResults.setColor(FormColors.TITLE, toolkit.getColors().getColor(
-				FormColors.TITLE));
-		String topicKey = IHelpUIConstants.IMAGE_FILE_F1TOPIC;
-		String nwKey = IHelpUIConstants.IMAGE_NW;
-		String searchKey = IHelpUIConstants.IMAGE_HELP_SEARCH;
-		searchResults.setImage(topicKey, HelpUIResources.getImage(topicKey));
-		searchResults.setImage(nwKey, HelpUIResources.getImage(nwKey));
-		searchResults.setImage(searchKey, HelpUIResources.getImage(searchKey));
-		searchResults.addHyperlinkListener(new IHyperlinkListener() {
-			public void linkActivated(HyperlinkEvent e) {
-				Object href = e.getHref();
-				if (href.equals(CANCEL_HREF)) { 
-					if (runningJob != null) {
-						runningJob.cancel();
-						runningJob = null;
-					}
-					clearResults();
-				} else if (href.equals(MORE_HREF)) {
-					doMore();
-				} else
-					doOpenLink(e.getHref());
-			}
-			public void linkEntered(HyperlinkEvent e) {
-				DynamicHelpPart.this.parent.handleLinkEntered(e);
-			}
-			public void linkExited(HyperlinkEvent e) {
-				DynamicHelpPart.this.parent.handleLinkExited(e);
-			}
-		});
-		searchResults.setText("", false, false); //$NON-NLS-1$
-		jobListener = new JobListener();
-		Platform.getJobManager().addJobChangeListener(jobListener);
-	}
-
-	public void dispose() {
-		Platform.getJobManager().removeJobChangeListener(jobListener);
-		stop();
-		super.dispose();
-	}
-	
-	public void setFocus() {
-		if (searchResults!=null)
-			searchResults.setFocus();
-	}
-	
-	public void stop () {
-		if (runningJob!=null) {
-			runningJob.cancel();
-			runningJob=null;
-		}		
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#getControl()
-	 */
-	public Control getControl() {
-		return getSection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#init(org.eclipse.help.ui.internal.views.NewReusableHelpPart)
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.parent = parent;
-		this.id = id;
-		parent.hookFormText(searchResults);
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		getSection().setVisible(visible);
-	}
-
-	void clearResults() {
-		if (runningJob != null) {
-			runningJob.cancel();
-			runningJob = null;
-		}
-		searchResults.setText("", false, false); //$NON-NLS-1$
-		getManagedForm().reflow(true);
-	}
-	
-	public void startSearch(String newPhrase, IContext excludeContext) {
-		if (phrase!=null && phrase.equals(newPhrase))
-			return;
-		this.phrase = newPhrase;
-		this.context = excludeContext;
-		if (getSection().isExpanded())
-			startInPlaceSearch(phrase, excludeContext);
-	}
-	
-	private void startInPlaceSearch(final String phrase,
-			final IContext excludeContext) {
-		Job job = new Job(Messages.SearchPart_dynamicJob) { 
-			protected IStatus run(IProgressMonitor monitor) {
-				try {
-					try {
-						Platform.getJobManager().join(IndexerJob.FAMILY,
-								monitor);
-					} catch (InterruptedException e) {
-						// TODO should we do someting here?
-					}
-					performSearch(phrase, excludeContext, monitor);
-					return Status.OK_STATUS;
-				} catch (OperationCanceledException e) {
-					// it is ok to cancel the search
-					return Status.OK_STATUS;
-				}
-			}
-		};
-		scheduleSearch(job);
-	}
-	
-	private void performSearch(String phrase, IContext excludeContext,
-			IProgressMonitor monitor) {
-		SearchQuery searchQuery = new SearchQuery();
-		searchQuery.setSearchWord(phrase);
-		SearchResults localResults = new SearchResults(null,
-				DynamicHelpPart.SHORT_COUNT * 2, Platform.getNL());
-		BaseHelpSystem.getSearchManager().search(searchQuery, localResults,
-				monitor);
-		SearchHit[] hits = localResults.getSearchHits();
-		updateResults(phrase, excludeContext, new StringBuffer(), hits);
-	}
-
-	void scheduleSearch(Job job) {
-		if (runningJob != null) {
-			runningJob.cancel();
-		}
-		StringBuffer buff = new StringBuffer();
-		buff.append("<form>"); //$NON-NLS-1$
-		buff.append("<p><span color=\""); //$NON-NLS-1$
-		buff.append(FormColors.TITLE);
-		buff.append("\">"); //$NON-NLS-1$
-		buff.append(Messages.SearchResultsPart_progress); 
-		buff.append("</span>"); //$NON-NLS-1$
-		buff.append("<a href=\""); //$NON-NLS-1$
-		buff.append(CANCEL_HREF);
-		buff.append("\">"); //$NON-NLS-1$
-		buff.append(Messages.SearchResultsPart_cancel); 
-		buff.append("</a></p>"); //$NON-NLS-1$
-		buff.append("</form>"); //$NON-NLS-1$
-		searchResults.setText(buff.toString(), true, false);
-		getManagedForm().reflow(true);
-		runningJob = job;
-		job.schedule();
-	}
-	
-	private void updateResults(final String phrase,
-			final IContext excludeContext, final StringBuffer buffer,
-			final SearchHit[] hits) {
-		if (getSection().isDisposed())
-			return;
-		getSection().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				doUpdateResults(phrase, excludeContext, buffer, hits);
-			}
-		});
-	}	
-
-	private void doUpdateResults(String phrase, IContext excludeContext, StringBuffer buff, SearchHit[] hits) {
-		if (runningJob != null) {
-			runningJob.cancel();
-		}
-		this.phrase = phrase;
-		buff.delete(0, buff.length());
-		if (hits.length > 0) {
-			buff.append("<form>"); //$NON-NLS-1$
-			buff.append("<p><span color=\""); //$NON-NLS-1$
-			buff.append(FormColors.TITLE);
-			buff.append("\">"); //$NON-NLS-1$
-			buff.append(Messages.SearchResultsPart_label); 
-			buff.append("</span></p>"); //$NON-NLS-1$
-			resultSorter.sort(null, hits);
-			IHelpResource [] excludedTopics = excludeContext!=null?excludeContext.getRelatedTopics():null;
-
-			for (int i = 0; i < hits.length; i++) {
-				SearchHit hit = hits[i];
-				if (isExcluded(hit.getHref(), excludedTopics))
-					continue;
-				if (i==SHORT_COUNT)
-					break;
-				buff.append("<li indent=\"21\" style=\"image\" value=\""); //$NON-NLS-1$
-				buff.append(IHelpUIConstants.IMAGE_FILE_F1TOPIC);
-				buff.append("\">"); //$NON-NLS-1$
-				buff.append("<a href=\""); //$NON-NLS-1$
-				buff.append(hit.getHref());
-				buff.append("\""); //$NON-NLS-1$
-				if (hit.getToc()!=null && !Platform.getWS().equals(Platform.WS_GTK)) {
-					buff.append(" alt=\""); //$NON-NLS-1$
-					buff.append(parent.escapeSpecialChars(hit.getToc().getLabel()));
-					buff.append("\""); //$NON-NLS-1$
-				}
-				buff.append(">"); //$NON-NLS-1$
-				buff.append(parent.escapeSpecialChars(hit.getLabel()));
-				buff.append("</a>"); //$NON-NLS-1$
-				buff.append("</li>"); //$NON-NLS-1$
-			}
-			if (hits.length > 0) {
-				buff.append("<p><img href=\""); //$NON-NLS-1$
-				buff.append(IHelpUIConstants.IMAGE_HELP_SEARCH);
-				buff.append("\"/>"); //$NON-NLS-1$
-				buff.append(" <a href=\""); //$NON-NLS-1$
-				buff.append(MORE_HREF);
-				buff.append("\">"); //$NON-NLS-1$
-				buff.append(Messages.SearchResultsPart_moreResults); 
-				buff.append("</a></p>"); //$NON-NLS-1$
-			}
-			buff.append("</form>"); //$NON-NLS-1$
-			if (!searchResults.isDisposed())
-				searchResults.setText(buff.toString(), true, false);
-		} else
-			if (!searchResults.isDisposed())
-				searchResults.setText("", false, false); //$NON-NLS-1$
-		if (!searchResults.isDisposed())
-			getManagedForm().reflow(true);
-	}
-	
-	private boolean isExcluded(String href, IHelpResource [] excludedTopics) {
-		if (excludedTopics==null) return false;
-		for (int i=0; i<excludedTopics.length; i++) {
-			if (href.startsWith(excludedTopics[i].getHref()))
-				return true;
-			if (parent.isFilteredByRoles()) {
-				if (!HelpBasePlugin.getActivitySupport().isEnabled(href))
-					return true;
-			}
-		}
-		return false;
-	}
-
-	private void doMore() {
-		parent.startSearch(phrase);
-	}
-
-	private void doOpenLink(Object href) {
-		String url = (String) href;
-
-		if (url.startsWith("nw:")) { //$NON-NLS-1$
-			PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(url.substring(3));
-		} else
-			parent.showURL(url);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public boolean fillContextMenu(IMenuManager manager) {
-		return parent.fillFormContextMenu(searchResults, manager);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#hasFocusControl(org.eclipse.swt.widgets.Control)
-	 */
-	public boolean hasFocusControl(Control control) {
-		return searchResults.equals(control);
-	}
-
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.COPY.getId()))
-			return parent.getCopyAction();
-		return null;
-	}
-
-	public void toggleRoleFilter() {
-		refilter();
-	}
-
-	public void refilter() {
-		if (phrase!=null && phrase.length() > 0)
-			startInPlaceSearch(phrase, context);		
-	}
-
-	public void saveState(IMemento memento) {
-		// TODO Auto-generated method stub
-		
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java
deleted file mode 100644
index 7a80175..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.help.search.*;
-import org.eclipse.help.ui.*;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Descriptor for a federated search engine participant.
- */
-public class EngineDescriptor implements IEngineDescriptor {
-	public static final String P_MASTER = "__enabled__"; //$NON-NLS-1$
-
-	private ISearchEngine engine;
-
-	private IConfigurationElement config;
-	
-	private EngineDescriptorManager manager;
-
-	private EngineTypeDescriptor etdesc;
-
-	private Hashtable parameters;
-
-	//private boolean removable;
-
-	//private boolean enabled;
-
-	private String id;
-
-	private String label;
-
-	private String desc;
-
-	private boolean userDefined;
-
-	/**
-	 * 
-	 */
-	public EngineDescriptor(IConfigurationElement config) {
-		this.config = config;
-	}
-	
-	public EngineDescriptor(EngineDescriptorManager manager) {
-		this.manager = manager;
-	}
-
-	public void setEngineType(EngineTypeDescriptor etdesc) {
-		this.etdesc = etdesc;
-	}
-	
-	public void setEngineDescriptorManager(EngineDescriptorManager manager) {
-		this.manager = manager;
-	}
-
-	public IConfigurationElement getConfig() {
-		return config;
-	}
-
-	public String getLabel() {
-		if (label != null)
-			return label;
-		String clabel = null;
-		if (config != null)
-			clabel = config.getAttribute(IHelpUIConstants.ATT_LABEL);
-		if (clabel == null)
-			clabel = etdesc.getLabel();
-		return clabel;
-	}
-
-	public String getId() {
-		if (id != null)
-			return id;
-		return config.getAttribute(IHelpUIConstants.ATT_ID);
-	}
-
-	public String getEngineTypeId() {
-		if (etdesc != null)
-			return etdesc.getId();
-		return config.getAttribute(IHelpUIConstants.ATT_ENGINE_TYPE_ID);
-	}
-
-	public boolean isEnabled() {
-		if (userDefined)
-			return true;
-		String aenabled = config.getAttribute(IHelpUIConstants.ATT_ENABLED);
-		if (aenabled != null)
-			return aenabled.equals("true"); //$NON-NLS-1$
-		return false;
-	}
-
-	public Image getIconImage() {
-		return etdesc.getIconImage();
-	}
-
-	public String getDescription() {
-		if (desc != null)
-			return desc;
-		String cdesc = null;
-		if (config != null) {
-			IConfigurationElement[] children = config
-					.getChildren(IHelpUIConstants.TAG_DESC);
-			if (children.length == 1)
-				cdesc = children[0].getValue();
-		}
-		if (cdesc == null)
-			return etdesc.getDescription();
-		return cdesc;
-	}
-
-	public IConfigurationElement[] getPages() {
-		return etdesc.getPages();
-	}
-
-	public ImageDescriptor getImageDescriptor() {
-		return etdesc.getImageDescriptor();
-	}
-
-	public RootScopePage createRootPage(String scopeSetName) {
-		RootScopePage page = etdesc.createRootPage(scopeSetName);
-		if (page != null) {
-			//Dictionary parameters = getParameters();
-			page.init(this, scopeSetName);
-		}
-		return page;
-	}
-
-	public Dictionary getParameters() {
-		if (parameters != null)
-			return parameters;
-		parameters = new Hashtable();
-		parameters.put(P_MASTER, isEnabled() ? Boolean.TRUE : Boolean.FALSE);
-		if (config != null) {
-			IConfigurationElement[] params = config.getChildren("param"); //$NON-NLS-1$
-			for (int i = 0; i < params.length; i++) {
-				IConfigurationElement param = params[i];
-				String name = param.getAttribute(IHelpUIConstants.ATT_NAME);
-				String value = param.getAttribute(IHelpUIConstants.ATT_VALUE);
-				if (name != null && value != null)
-					parameters.put(name, value);
-			}
-		}
-		return parameters;
-	}
-
-	public ISearchEngine getEngine() {
-		if (engine == null) {
-			engine = etdesc.createEngine();
-		}
-		return engine;
-	}
-
-	public ISearchScope createSearchScope(IPreferenceStore store) {
-		return etdesc.createSearchScope(store, getId(), getParameters());
-	}
-
-	void setId(String id) {
-		this.id = id;
-	}
-
-	public void setLabel(String label) {
-		if (isUserDefined()) {
-			this.label = label;
-			if (manager!=null)
-				manager.notifyPropertyChange(this);
-		}
-	}
-
-	public void setDescription(String desc) {
-		if (isUserDefined()) {
-			this.desc = desc;
-			if (manager!=null)
-				manager.notifyPropertyChange(this);
-		}
-	}
-
-	public boolean isUserDefined() {
-		return userDefined;
-	}
-
-	public void setUserDefined(boolean userDefined) {
-		this.userDefined = userDefined;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptorManager.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptorManager.java
deleted file mode 100644
index b4c9898..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptorManager.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Observable;
-
-import javax.xml.parsers.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.ui.internal.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-public class EngineDescriptorManager extends Observable implements IHelpUIConstants {
-	private ArrayList descriptors;
-
-	private EngineTypeDescriptor[] engineTypes;
-
-	private static final String USER_FILE = "userSearches.xml"; //$NON-NLS-1$
-	private static final String ATT_ENGINE_TYPE_ID = "engineTypeId"; //$NON-NLS-1$
-	
-	public static class DescriptorEvent {
-		private EngineDescriptor desc;
-		private int kind;
-		public DescriptorEvent(EngineDescriptor desc, int kind) {
-			this.desc = desc;
-			this.kind = kind;
-		}
-		public EngineDescriptor getDescriptor() {
-			return desc;
-		}
-		public int getKind() {
-			return kind;
-		}
-	}
-
-	public EngineDescriptorManager() {
-		descriptors = new ArrayList();
-		load();
-	}
-	
-	public void add(EngineDescriptor desc) {
-		descriptors.add(desc);
-		this.setChanged();
-		this.notifyObservers(new DescriptorEvent(desc, ADD));
-	}
-
-	public void remove(EngineDescriptor desc) {
-		descriptors.remove(desc);
-		this.setChanged();
-		this.notifyObservers(new DescriptorEvent(desc, REMOVE));
-	}
-
-	public void notifyPropertyChange(EngineDescriptor desc) {
-		this.setChanged();
-		this.notifyObservers(new DescriptorEvent(desc, CHANGE));
-	}
-	
-	public EngineDescriptor[] getDescriptors() {
-		return (EngineDescriptor[]) descriptors
-				.toArray(new EngineDescriptor[descriptors.size()]);
-	}
-	
-	public EngineDescriptor findEngine(String engineId) {
-		for (int i=0; i<descriptors.size(); i++) {
-			EngineDescriptor desc = (EngineDescriptor)descriptors.get(i);
-			if (desc.getId().equals(engineId))
-				return desc;
-		}
-		return null;
-	}
-
-	public EngineTypeDescriptor[] getEngineTypes() {
-		return engineTypes;
-	}
-
-	public void save() {
-		IPath stateLoc = HelpUIPlugin.getDefault().getStateLocation();
-		String fileName = stateLoc.append(USER_FILE).toOSString();
-		FileOutputStream fos = null;
-		OutputStreamWriter osw = null;
-		try {
-			fos = new FileOutputStream(fileName);
-			osw = new OutputStreamWriter(fos, "UTF8"); //$NON-NLS-1$
-			PrintWriter writer = new PrintWriter(osw);
-			writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
-			writer.println("<engines>"); //$NON-NLS-1$
-			for (int i = 0; i < descriptors.size(); i++) {
-				EngineDescriptor desc = (EngineDescriptor) descriptors.get(i);
-				if (desc.isUserDefined()) {
-					save(writer, desc);
-				}
-			}
-			writer.println("</engines>"); //$NON-NLS-1$
-			writer.flush();
-		}
-		catch (IOException e) {
-			HelpUIPlugin.logError(Messages.EngineDescriptorManager_errorSaving, e); 
-		}
-		finally {
-			if (osw!=null) {
-				try {
-					osw.close();
-				}
-				catch (IOException e) {
-				}
-			}
-			if (fos!=null) {
-				try {
-					fos.close();
-				}
-				catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	public void load() {
-		loadFromExtensionRegistry();
-		IPath stateLoc = HelpUIPlugin.getDefault().getStateLocation();
-		String fileName = stateLoc.append(USER_FILE).toOSString();
-		try {
-			load(fileName);
-		}
-		catch (IOException e) {
-			HelpUIPlugin.logError(Messages.EngineDescriptorManager_errorLoading, e); 
-		}
-	}
-
-	private void loadFromExtensionRegistry() {
-		IConfigurationElement[] elements = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(ENGINE_EXP_ID);
-		Hashtable engineTypes = loadEngineTypes(elements);
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (element.getName().equals(TAG_ENGINE)) { 
-				EngineDescriptor desc = new EngineDescriptor(element);
-				String engineId = desc.getEngineTypeId();
-				if (engineId != null) {
-					EngineTypeDescriptor etdesc = (EngineTypeDescriptor) engineTypes
-							.get(engineId);
-					if (etdesc != null) {
-						desc.setEngineType(etdesc);
-						descriptors.add(desc);
-					}
-				}
-			}
-		}
-	}
-
-	private Hashtable loadEngineTypes(IConfigurationElement[] elements) {
-		Hashtable result = new Hashtable();
-		ArrayList list = new ArrayList();
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (element.getName().equals("engineType")) { //$NON-NLS-1$
-				EngineTypeDescriptor etdesc = new EngineTypeDescriptor(element);
-				String id = etdesc.getId();
-				if (id != null) {
-					list.add(etdesc);
-					result.put(etdesc.getId(), etdesc);
-				}
-			}
-		}
-		engineTypes = (EngineTypeDescriptor[]) list
-				.toArray(new EngineTypeDescriptor[list.size()]);
-		return result;
-	}
-
-	public void load(Reader r) {
-		Document document = null;
-		try {
-			DocumentBuilder parser = DocumentBuilderFactory.newInstance()
-					.newDocumentBuilder();
-			// parser.setProcessNamespace(true);
-			document = parser.parse(new InputSource(r));
-
-			// Strip out any comments first
-			Node root = document.getFirstChild();
-			while (root.getNodeType() == Node.COMMENT_NODE) {
-				document.removeChild(root);
-				root = document.getFirstChild();
-			}
-			load(document, (Element) root);
-		} catch (ParserConfigurationException e) {
-			// ignore
-		} catch (IOException e) {
-			// ignore
-		} catch (SAXException e) {
-			// ignore
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IDialogSettings.
-	 */
-	public void load(String fileName) throws IOException {
-		File file = new File(fileName);
-		if (!file.exists()) return;
-		FileInputStream stream = new FileInputStream(file);
-		BufferedReader reader = new BufferedReader(new InputStreamReader(
-				stream, "utf-8"));//$NON-NLS-1$
-		load(reader);
-		reader.close();
-	}
-
-	private void load(Document doc, Element root) {
-		NodeList engines = root.getElementsByTagName(TAG_ENGINE);
-		for (int i=0; i<engines.getLength(); i++) {
-			Node node = engines.item(i);
-			loadUserEntry(node);
-		}
-	}
-
-	private void loadUserEntry(Node node) {
-		EngineDescriptor edesc = new EngineDescriptor(this);
-		String id = getAttribute(node, ATT_ID);
-		String engineTypeId = getAttribute(node, ATT_ENGINE_TYPE_ID);
-		EngineTypeDescriptor etdesc = findEngineType(engineTypeId);
-		String label = getAttribute(node, ATT_LABEL);
-		String desc = getDescription(node);
-		if (etdesc == null)
-			return;
-		edesc.setEngineType(etdesc);
-		edesc.setUserDefined(true);
-		edesc.setId(id);
-		edesc.setLabel(label);
-		edesc.setDescription(desc);
-		descriptors.add(edesc);
-	}
-
-	public String computeNewId(String typeId) {
-		ArrayList used = new ArrayList();
-		for (int i=0; i<descriptors.size(); i++) {
-			EngineDescriptor ed = (EngineDescriptor)descriptors.get(i);
-			if (!ed.isUserDefined()) continue;
-			String edTypeId = ed.getEngineTypeId();
-			if (typeId.equals(edTypeId)) {
-				String edId = ed.getId();
-				int loc = edId.lastIndexOf('.');
-				if (loc!= -1) {
-					String cvalue = edId.substring(loc+1);
-					int ivalue = Integer.parseInt(cvalue);
-					used.add(new Integer(ivalue));
-				}
-			}
-		}
-		for (int i=1; i<Integer.MAX_VALUE; i++) {
-			if (!isUsed(i, used)) {
-				return typeId+"."+"user."+i; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return typeId;
-	}
-	
-	private boolean isUsed(int value, ArrayList used) {
-		for (int i=0; i<used.size(); i++) {
-			Integer iv = (Integer)used.get(i);
-			if (iv.intValue()==value)
-				return true;
-		}
-		return false;
-	}
-
-	private String getDescription(Node node) {
-		NodeList list = ((Element)node).getElementsByTagName(TAG_DESC);
-		if (list.getLength()==1) {
-			Node desc = list.item(0);
-			NodeList children = desc.getChildNodes();
-			for (int i=0; i<children.getLength(); i++) {
-				Node child = children.item(i);
-				if (child.getNodeType()==Node.TEXT_NODE) {
-					String text = child.getNodeValue();
-					return text.trim();
-				}
-			}
-		}
-		return null;
-	}
-	
-	private void save(PrintWriter writer, EngineDescriptor desc) {
-		String indent = "   "; //$NON-NLS-1$
-		String attIndent = indent + indent;
-		writer.print(indent);
-		writer.println("<engine "); //$NON-NLS-1$
-		saveAttribute(writer, attIndent, "id", desc.getId()); //$NON-NLS-1$
-		saveAttribute(writer, attIndent, ATT_ENGINE_TYPE_ID, desc.getEngineTypeId());
-		saveAttribute(writer, attIndent, ATT_LABEL, desc.getLabel());
-		writer.println(">"); //$NON-NLS-1$
-		saveDescription(writer, indent+indent, desc.getDescription());
-		writer.print(indent);
-		writer.println("</engine>"); //$NON-NLS-1$
-	}
-	
-	private String getAttribute(Node node, String name) {
-		Node att = node.getAttributes().getNamedItem(name);
-		if (att!=null)
-			return att.getNodeValue();
-		return null;
-	}
-	
-	private void saveAttribute(PrintWriter writer, String indent, String name, String value) {
-		if (value==null)
-			return;
-		writer.print(indent);
-		writer.print(name);
-		writer.print("=\""); //$NON-NLS-1$
-		writer.print(value);
-		writer.println("\""); //$NON-NLS-1$
-	}
-	private void saveDescription(PrintWriter writer, String indent, String desc) {
-		if (desc==null)
-			return;
-		writer.print(indent);
-		writer.println("<description>"); //$NON-NLS-1$
-		writer.println(desc);
-		writer.print(indent);
-		writer.println("</description>"); //$NON-NLS-1$
-	}
-
-	private EngineTypeDescriptor findEngineType(String id) {
-		if (id == null)
-			return null;
-		for (int i = 0; i < engineTypes.length; i++) {
-			EngineTypeDescriptor etd = engineTypes[i];
-			if (etd.getId().equals(id))
-				return etd;
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java
deleted file mode 100644
index 29372d7..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java
+++ /dev/null
@@ -1,607 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.net.URL;
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.base.IHelpBaseConstants;
-import org.eclipse.help.internal.search.SearchHit;
-import org.eclipse.help.search.ISearchEngineResult;
-import org.eclipse.help.search.ISearchEngineResult2;
-import org.eclipse.help.ui.internal.HelpUIPlugin;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IExpansionListener;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.osgi.framework.Bundle;
-
-public class EngineResultSection {
-
-	private static final String KEY_PREFIX_GRAYED = "grayed:"; //$NON-NLS-1$
-	
-	private SearchResultsPart part;
-
-	private EngineDescriptor desc;
-
-	private IStatus errorStatus;
-
-	private ArrayList hits;
-
-	private Section section;
-
-	private Composite container;
-
-	private FormText searchResults;
-
-	private ImageHyperlink prevLink;
-
-	private ImageHyperlink nextLink;
-
-	private boolean needsUpdating;
-
-	private FederatedSearchSorter sorter;
-
-	private int HITS_PER_PAGE = 10;
-
-	private static final String HREF_PROGRESS = "__progress__"; //$NON-NLS-1$
-
-	private static final String PROGRESS_VIEW = "org.eclipse.ui.views.ProgressView"; //$NON-NLS-1$
-
-	private int resultOffset = 0;
-
-	public EngineResultSection(SearchResultsPart part, EngineDescriptor desc) {
-		this.part = part;
-		this.desc = desc;
-		hits = new ArrayList();
-		sorter = new FederatedSearchSorter();
-	}
-
-	public boolean hasControl(Control control) {
-		return searchResults.equals(control);
-	}
-
-	public boolean matches(EngineDescriptor desc) {
-		return this.desc == desc;
-	}
-
-	public Control createControl(Composite parent, final FormToolkit toolkit) {
-		section = toolkit.createSection(parent, Section.SHORT_TITLE_BAR | Section.COMPACT | Section.TWISTIE
-				| Section.EXPANDED | Section.LEFT_TEXT_CLIENT_ALIGNMENT);
-		// section.marginHeight = 10;
-		container = toolkit.createComposite(section);
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.topMargin = 0;
-		layout.bottomMargin = 0;
-		layout.leftMargin = 0;
-		layout.rightMargin = 0;
-		layout.verticalSpacing = 0;
-		container.setLayout(layout);
-		createFormText(container, toolkit);
-		searchResults.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		searchResults.setColor("summary", parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW)); //$NON-NLS-1$
-		section.setClient(container);
-		updateSectionTitle(0);
-		section.addExpansionListener(new IExpansionListener() {
-
-			public void expansionStateChanging(ExpansionEvent e) {
-				if (needsUpdating)
-					asyncUpdateResults(true, false);
-			}
-
-			public void expansionStateChanged(ExpansionEvent e) {
-			}
-		});
-		return section;
-	}
-
-	private void createFormText(Composite parent, FormToolkit toolkit) {
-		searchResults = toolkit.createFormText(parent, false);
-		searchResults.setColor(FormColors.TITLE, toolkit.getColors().getColor(FormColors.TITLE));
-		searchResults.marginHeight = 5;
-		String topicKey = IHelpUIConstants.IMAGE_FILE_F1TOPIC;
-		String searchKey = IHelpUIConstants.IMAGE_HELP_SEARCH;
-		searchResults.setImage(topicKey, HelpUIResources.getImage(topicKey));
-		searchResults.setImage(searchKey, HelpUIResources.getImage(searchKey));
-		searchResults.setColor("summary", parent.getDisplay().getSystemColor( //$NON-NLS-1$
-				SWT.COLOR_WIDGET_DARK_SHADOW));
-		searchResults.setImage(ISharedImages.IMG_TOOL_FORWARD, PlatformUI.getWorkbench().getSharedImages()
-				.getImage(ISharedImages.IMG_TOOL_FORWARD));
-		searchResults.setImage(ISharedImages.IMG_TOOL_BACK, PlatformUI.getWorkbench().getSharedImages()
-				.getImage(ISharedImages.IMG_TOOL_BACK));
-		searchResults.setImage(ISharedImages.IMG_OBJS_ERROR_TSK, PlatformUI.getWorkbench().getSharedImages()
-				.getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
-		searchResults.setImage(desc.getId(), desc.getIconImage());
-		searchResults.setImage(KEY_PREFIX_GRAYED + desc.getId(), getGrayedImage(desc.getIconImage()));
-		searchResults.addHyperlinkListener(new IHyperlinkListener() {
-
-			public void linkActivated(HyperlinkEvent e) {
-				Object href = e.getHref();
-				if (HREF_PROGRESS.equals(href)) {
-					showProgressView();
-				} else if (((String) href).startsWith("bmk:")) { //$NON-NLS-1$
-					doBookmark(e.getLabel(), (String) href);
-				} else
-					part.doOpenLink(e.getHref());
-			}
-
-			public void linkEntered(HyperlinkEvent e) {
-				part.parent.handleLinkEntered(e);
-			}
-
-			public void linkExited(HyperlinkEvent e) {
-				part.parent.handleLinkExited(e);
-			}
-		});
-		initializeText();
-		part.parent.hookFormText(searchResults);
-		needsUpdating = true;
-	}
-
-	private void initializeText() {
-		Bundle bundle = Platform.getBundle("org.eclipse.ui.views"); //$NON-NLS-1$
-		if (bundle != null) {
-			StringBuffer buff = new StringBuffer();
-			buff.append("<form>"); //$NON-NLS-1$
-			buff.append("<p><a href=\""); //$NON-NLS-1$
-			buff.append(HREF_PROGRESS);
-			buff.append("\""); //$NON-NLS-1$
-			if (!Platform.getWS().equals(Platform.WS_GTK)) {
-				buff.append(" alt=\""); //$NON-NLS-1$
-				buff.append(Messages.EngineResultSection_progressTooltip);
-				buff.append("\""); //$NON-NLS-1$
-			}
-			buff.append(">"); //$NON-NLS-1$
-			buff.append(Messages.EngineResultSection_searchInProgress);
-			buff.append("</a></p></form>"); //$NON-NLS-1$
-			searchResults.setText(buff.toString(), true, false);
-		} else {
-			searchResults.setText(Messages.EngineResultSection_progress2, false, false);
-		}
-	}
-
-	private void showProgressView() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				try {
-					page.showView(PROGRESS_VIEW);
-				} catch (PartInitException e) {
-					HelpUIPlugin.logError(Messages.EngineResultSection_progressError, e);
-				}
-			}
-		}
-	}
-
-	public synchronized void add(ISearchEngineResult match) {
-		hits.add(match);
-		asyncUpdateResults(false, false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.internal.search.federated.ISearchEngineResultCollector#add(org.eclipse.help.internal.search.federated.ISearchEngineResult[])
-	 */
-	public synchronized void add(ISearchEngineResult[] matches) {
-		for (int i = 0; i < matches.length; i++)
-			hits.add(matches[i]);
-		asyncUpdateResults(false, false);
-	}
-
-	public synchronized void error(IStatus status) {
-		errorStatus = status;
-		asyncUpdateResults(false, false);
-	}
-
-	public synchronized void completed() {
-		if (hits.size() == 0 && !searchResults.isDisposed())
-			asyncUpdateResults(false, false);
-	}
-
-	public synchronized void canceling() {
-		if (hits.size() == 0 && !searchResults.isDisposed()) {
-			StringBuffer buff = new StringBuffer();
-			buff.append("<form>"); //$NON-NLS-1$
-			buff.append("<p><span color=\"summary\">");//$NON-NLS-1$
-			buff.append(Messages.EngineResultSection_canceling);
-			buff.append("</span></p>"); //$NON-NLS-1$
-			buff.append("</form>"); //$NON-NLS-1$
-			searchResults.setText(buff.toString(), true, false);
-		}
-	}
-
-	private void asyncUpdateResults(boolean now, final boolean scrollToBeginning) {
-		Runnable runnable = new Runnable() {
-
-			public void run() {
-				BusyIndicator.showWhile(section.getDisplay(), new Runnable() {
-
-					public void run() {
-						updateResults(true);
-						if (scrollToBeginning) {
-							searchResults.setFocus();
-							FormToolkit.setControlVisible(section, true);
-							part.updateSeparatorVisibility();
-						}
-					}
-				});
-			}
-		};
-		if (section.isDisposed())
-			return;
-		if (now)
-			section.getDisplay().syncExec(runnable);
-		else
-			section.getDisplay().asyncExec(runnable);
-	}
-
-	private ISearchEngineResult[] getResults() {
-		ArrayList list = hits;
-		if (desc.getEngineTypeId().equals(IHelpUIConstants.INTERNAL_HELP_ID)) {
-			if (part.parent.isFilteredByRoles()) {
-				list = new ArrayList();
-				for (int i = 0; i < hits.size(); i++) {
-					ISearchEngineResult hit = (ISearchEngineResult) hits.get(i);
-					if (HelpBasePlugin.getActivitySupport().isEnabled(hit.getHref()))
-						list.add(hit);
-				}
-			}
-		}
-		ISearchEngineResult[] results = (ISearchEngineResult[]) list.toArray(new ISearchEngineResult[list
-				.size()]);
-		if (part.getShowCategories())
-			sorter.sort(null, results);
-		return results;
-	}
-	
-	/**
-	 * Returns a copy of the given image but grayed and half transparent.
-	 * This gives the icon a grayed/disabled look.
-	 * 
-	 * @param image the image to gray
-	 * @return the grayed image
-	 */
-	private Image getGrayedImage(Image image) {
-		// first gray the image
-		Image temp = new Image(image.getDevice(), image, SWT.IMAGE_GRAY);
-		// then add alpha to blend it 50/50 with the background
-		ImageData data = temp.getImageData();
-		ImageData maskData = data.getTransparencyMask();
-		if (maskData != null) {
-			for (int y=0;y<maskData.height;++y) {
-				for (int x=0;x<maskData.width;++x) {
-					if (maskData.getPixel(x, y) == 0) {
-						// masked; set to transparent
-						data.setAlpha(x, y, 0);
-					}
-					else {
-						// not masked; set to translucent
-						data.setAlpha(x, y, 128);
-					}
-				}
-			}
-			data.maskData = null;
-		}
-		Image grayed = new Image(image.getDevice(), data);
-		temp.dispose();
-		return grayed;
-	}
-
-	void updateResults(boolean reflow) {
-		ISearchEngineResult[] results = getResults();
-		updateSectionTitle(results.length);
-		StringBuffer buff = new StringBuffer();
-		buff.append("<form>"); //$NON-NLS-1$
-		IHelpResource oldCat = null;
-		// boolean earlyExit = false;
-
-		boolean showPotentialHits = HelpBasePlugin.getDefault().getPluginPreferences()
-			.getBoolean(IHelpBaseConstants.P_KEY_SHOW_POTENTIAL_HITS);
-
-		for (int i = resultOffset; i < results.length; i++) {
-			if (i - resultOffset == HITS_PER_PAGE) {
-				break;
-			}
-			ISearchEngineResult hit = results[i];
-			IHelpResource cat = hit.getCategory();
-			if (part.getShowCategories() && cat != null
-					&& (oldCat == null || !oldCat.getLabel().equals(cat.getLabel()))) {
-				buff.append("<p>"); //$NON-NLS-1$
-				if (cat.getHref() != null) {
-					buff.append("<a bold=\"true\" href=\""); //$NON-NLS-1$
-					String absoluteHref = hit.toAbsoluteHref(cat.getHref(), true);
-					buff.append(part.parent.escapeSpecialChars(absoluteHref));
-					buff.append("\">"); //$NON-NLS-1$
-					buff.append(cat.getLabel());
-					buff.append("</a>"); //$NON-NLS-1$
-				} else {
-					buff.append("<b>"); //$NON-NLS-1$
-					buff.append(cat.getLabel());
-					buff.append("</b>"); //$NON-NLS-1$
-				}
-				buff.append("</p>"); //$NON-NLS-1$
-				oldCat = cat;
-			}
-			int indent = part.getShowCategories() && cat != null ? 26 : 21;
-			int bindent = part.getShowCategories() && cat != null ? 5 : 0;
-			buff.append("<li indent=\"" + indent + "\" bindent=\"" + bindent + "\" style=\"image\" value=\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			String imageId = desc.getId();
-			boolean isPotentialHit = (showPotentialHits && hit instanceof SearchHit && ((SearchHit)hit).getFilters() != null);
-			if (hit instanceof ISearchEngineResult2) {
-				URL iconURL = ((ISearchEngineResult2) hit).getIconURL();
-				if (iconURL != null) {
-					String id = null;
-					if (isPotentialHit) {
-						id = registerGrayedHitIcon(iconURL);
-					}
-					else {
-						id = registerHitIcon(iconURL);
-					}
-					if (id != null)
-						imageId = id;
-				}
-			}
-			
-			if (isPotentialHit) {
-				imageId = KEY_PREFIX_GRAYED + imageId;
-			}
-			
-			buff.append(imageId);
-			buff.append("\">"); //$NON-NLS-1$
-			buff.append("<a href=\""); //$NON-NLS-1$
-			String href=null;
-			if (hit instanceof ISearchEngineResult2) {
-				ISearchEngineResult2 hit2 = (ISearchEngineResult2)hit;
-				if (((ISearchEngineResult2)hit).canOpen()) {
-					href = "open:"+desc.getId()+"?id="+hit2.getId(); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-			if (href==null) {
-				if (hit.getForceExternalWindow())
-					href = "nw:";//$NON-NLS-1$
-				href = part.parent.escapeSpecialChars(hit.toAbsoluteHref(hit.getHref(), false));
-			}
-			buff.append(href);
-			buff.append("\""); //$NON-NLS-1$
-			if (hit.getCategory() != null && Platform.getWS() != Platform.WS_GTK) {
-				buff.append(" alt=\""); //$NON-NLS-1$
-				buff.append(hit.getCategory().getLabel());
-				buff.append("\""); //$NON-NLS-1$
-			}
-			buff.append(">"); //$NON-NLS-1$
-			String elabel = null;
-			if (isPotentialHit) {
-				// add "(potential hit)"
-				elabel = Messages.bind(Messages.SearchPart_potential_hit, hit.getLabel());
-			}
-			else {
-				elabel = hit.getLabel();
-			}
-			
-			elabel = part.parent.escapeSpecialChars(elabel);
-			buff.append(elabel);
-			buff.append("</a>"); //$NON-NLS-1$
-			if (part.getShowDescription()) {
-				String edesc = hit.getDescription();
-				if (edesc != null) {
-					edesc = part.parent.escapeSpecialChars(edesc);
-					buff.append("<br/>"); //$NON-NLS-1$
-					buff.append(edesc);
-				}
-			}
-			buff.append("</li>"); //$NON-NLS-1$
-		}
-		if (errorStatus != null)
-			updateErrorStatus(buff);
-		updateNavigation(results.length);
-		buff.append("</form>"); //$NON-NLS-1$
-		searchResults.setText(buff.toString(), true, false);
-		section.layout();
-		if (reflow)
-			part.reflow();
-	}
-
-	/**
-	 * Registers the given icon URL for use with this section. Icons
-	 * must be registered before use and referenced by the returned
-	 * ID.
-	 * 
-	 * @param iconURL the URL to the icon
-	 * @return the ID to use for referencing the icon
-	 */
-	private String registerHitIcon(URL iconURL) {
-		Image image = HelpUIResources.getImage(iconURL);
-		if (image != null) {
-			searchResults.setImage(iconURL.toString(), image);
-			return iconURL.toString();
-		}
-		return null;
-	}
-
-	/**
-	 * Same as registerHitIcon() but to register a grayed icon. You
-	 * can provide the same URL for both the regular and grayed icons,
-	 * but two different IDs will be returned.
-	 * 
-	 * @param iconURL the URL to the icon
-	 * @return the ID to use for referencing the icon
-	 */
-	private String registerGrayedHitIcon(URL iconURL) {
-		Image image = HelpUIResources.getImage(iconURL);
-		if (image != null) {
-			searchResults.setImage(iconURL.toString(), image);
-			return KEY_PREFIX_GRAYED + iconURL.toString();
-		}
-		return null;
-	}
-
-	private void updateErrorStatus(StringBuffer buff) {
-		int indent = 21;
-		buff.append("<li indent=\"" + indent + "\" style=\"image\" value=\""); //$NON-NLS-1$ //$NON-NLS-2$
-		buff.append(ISharedImages.IMG_OBJS_ERROR_TSK);
-		buff.append("\">"); //$NON-NLS-1$
-		buff.append("<b>"); //$NON-NLS-1$
-		buff.append(part.parent.escapeSpecialChars(errorStatus.getMessage()));
-		buff.append("</b>"); //$NON-NLS-1$
-		buff.append("<br/>"); //$NON-NLS-1$
-		Throwable t = errorStatus.getException();
-		if (t != null)
-			buff.append(part.parent.escapeSpecialChars(t.getMessage()));
-		buff.append("</li>"); //$NON-NLS-1$
-	}
-
-	private void updateNavigation(int size) {
-		if (size > HITS_PER_PAGE) {
-			if (prevLink == null) {
-				FormToolkit toolkit = part.getToolkit();
-				Composite navContainer = toolkit.createComposite(container);
-				TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
-				navContainer.setLayoutData(td);
-				GridLayout glayout = new GridLayout();
-				glayout.numColumns = 2;
-				navContainer.setLayout(glayout);
-				GridData gd;
-				/*
-				 * Label sep = toolkit.createLabel(navContainer, null, SWT.SEPARATOR |
-				 * SWT.HORIZONTAL); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-				 * gd.horizontalSpan = 2; gd.widthHint = 2; sep.setLayoutData(gd);
-				 */
-				prevLink = toolkit.createImageHyperlink(navContainer, SWT.NULL);
-
-				prevLink.setText(NLS.bind(Messages.EngineResultSection_previous, "" + HITS_PER_PAGE)); //$NON-NLS-1$
-				prevLink.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_TOOL_BACK));
-				prevLink.addHyperlinkListener(new HyperlinkAdapter() {
-
-					public void linkActivated(HyperlinkEvent e) {
-						resultOffset -= HITS_PER_PAGE;
-						asyncUpdateResults(false, true);
-					}
-				});
-				nextLink = toolkit.createImageHyperlink(navContainer, SWT.RIGHT);
-
-				nextLink.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_TOOL_FORWARD));
-				gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
-				gd.grabExcessHorizontalSpace = true;
-				nextLink.setLayoutData(gd);
-				nextLink.addHyperlinkListener(new HyperlinkAdapter() {
-
-					public void linkActivated(HyperlinkEvent e) {
-						resultOffset += HITS_PER_PAGE;
-						asyncUpdateResults(false, true);
-					}
-				});
-			}
-			prevLink.setVisible(resultOffset > 0);
-
-			int nextOffset = resultOffset + HITS_PER_PAGE;
-			int remainder = hits.size() - nextOffset;
-			remainder = Math.min(remainder, HITS_PER_PAGE);
-
-			nextLink.setText(NLS.bind(Messages.EngineResultSection_next, "" + remainder)); //$NON-NLS-1$
-			nextLink.setVisible(hits.size() >= resultOffset + HITS_PER_PAGE);
-		} else {
-			if (prevLink != null) {
-				prevLink.getParent().setMenu(null);
-				prevLink.getParent().dispose();
-				prevLink = null;
-				nextLink = null;
-			}
-		}
-	}
-
-	private void updateSectionTitle(int size) {
-		if (errorStatus != null) {
-			Label label = part.getToolkit().createLabel(section, null);
-			label.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_ERROR_TSK));
-			section.setTextClient(label);
-			section.setText(Messages.EngineResultSection_sectionTitle_error);
-		} else {
-			section.setTextClient(null);
-		}
-		if (size == 1)
-			section.setText(NLS.bind(Messages.EngineResultSection_sectionTitle_hit, desc.getLabel(), "" //$NON-NLS-1$
-					+ hits.size()));
-		else if (size <= HITS_PER_PAGE)
-			section.setText(NLS.bind(Messages.EngineResultSection_sectionTitle_hits, desc.getLabel(),
-					"" + hits.size())); //$NON-NLS-1$
-		else {
-			int from = (resultOffset + 1);
-			int to = (resultOffset + HITS_PER_PAGE);
-			to = Math.min(to, size);
-			section.setText(NLS.bind(Messages.EngineResultSection_sectionTitle_hitsRange, new String[] {
-					desc.getLabel(), "" + from, "" + to, "" + size })); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	private void doBookmark(final String label, String href) {
-		final String fhref = href.substring(4);
-		BusyIndicator.showWhile(container.getDisplay(), new Runnable() {
-
-			public void run() {
-				BaseHelpSystem.getBookmarkManager().addBookmark(fhref, label);
-			}
-		});
-	}
-
-	public void dispose() {
-		part.parent.unhookFormText(searchResults);
-		if (!section.isDisposed()) {
-			recursiveSetMenu(section, null);
-			section.dispose();
-		}
-	}
-
-	private void recursiveSetMenu(Control control, Menu menu) {
-		control.setMenu(menu);
-		if (control instanceof Composite) {
-			Composite parent = (Composite) control;
-			Control[] children = parent.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				recursiveSetMenu(children[i], menu);
-			}
-		}
-	}
-}
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
deleted file mode 100644
index 3eaa053..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeDescriptor.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.Dictionary;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.search.*;
-import org.eclipse.help.ui.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Descriptor for a federated search engine participant.
- */
-public class EngineTypeDescriptor {
-	private IConfigurationElement config;
-	private Image image;
-	private ISearchScopeFactory factory;
-	/**
-	 * 
-	 */
-	public EngineTypeDescriptor(IConfigurationElement config) {
-		this.config = config;
-	}
-	public IConfigurationElement getConfig() {
-		return config;
-	}
-	public IConfigurationElement [] getPages() {
-		return config.getChildren("subpage"); //$NON-NLS-1$
-	}
-	
-	public String getLabel() {
-		return config.getAttribute(IHelpUIConstants.ATT_LABEL);		
-	}
-	public String getId() {
-		return config.getAttribute(IHelpUIConstants.ATT_ID);
-	}
-
-	public Image getIconImage() {
-		if (image!=null)
-			return image;
-		String icon = config.getAttribute(IHelpUIConstants.ATT_ICON);
-		if (icon!=null) {
-			String bundleId = config.getContributor().getName();
-			HelpUIResources.getImageDescriptor(bundleId, icon);
-			return HelpUIResources.getImage(icon);
-		}
-		image = HelpUIResources.getImage(IHelpUIConstants.IMAGE_HELP_SEARCH);
-		return image;
-	}
-	public String getDescription() {
-		String desc = null;
-		IConfigurationElement [] children = config.getChildren(IHelpUIConstants.TAG_DESC);
-		if (children.length==1) 
-			desc = children[0].getValue();
-		return desc;
-	}
-	public ImageDescriptor getImageDescriptor() {
-		ImageDescriptor desc=null;
-		String icon = config.getAttribute(IHelpUIConstants.ATT_ICON);
-		if (icon!=null)
-			desc = HelpUIResources.getImageDescriptor(icon);
-		else
-			desc = HelpUIResources.getImageDescriptor(IHelpUIConstants.IMAGE_HELP_SEARCH);
-		return desc;
-	}
-	public RootScopePage createRootPage(String scopeSetName) {
-		try {
-			Object obj = config.createExecutableExtension(IHelpUIConstants.ATT_PAGE_CLASS);
-			if (obj instanceof RootScopePage) {
-				RootScopePage page = (RootScopePage)obj;
-				return page;
-			}
-			return null;
-		}
-		catch (CoreException e) {
-			return null;
-		}
-	}
-	public ISearchEngine createEngine() {
-		String eclass = config.getAttribute(IHelpUIConstants.ATT_CLASS);
-		if (eclass!=null) {
-			try {
-				Object obj = config.createExecutableExtension(IHelpUIConstants.ATT_CLASS);
-				if (obj instanceof ISearchEngine)
-					return (ISearchEngine)obj;
-			}
-			catch (CoreException e) {
-				HelpUIPlugin.logWarning("Engine " + eclass + " cannot be instantiated"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return null;
-	}
-	
-	public ISearchScope createSearchScope(IPreferenceStore store, String engineId, Dictionary parameters) {
-		if (factory==null) {
-			String fclass = config.getAttribute(IHelpUIConstants.ATT_SCOPE_FACTORY);
-			if (fclass!=null) {
-				try {
-					Object obj = config.createExecutableExtension(IHelpUIConstants.ATT_SCOPE_FACTORY);
-					if (obj instanceof ISearchScopeFactory) {
-						factory = (ISearchScopeFactory)obj;
-					}
-				}
-				catch (CoreException e) {
-                    HelpUIPlugin.logWarning("Scope factory " + fclass + " cannot be instantiated"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-		}
-		if (factory!=null)
-			return factory.createSearchScope(store, engineId, parameters);
-		return null;
-	}
-}
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
deleted file mode 100644
index 3586ec4..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineTypeWizardPage.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-public class EngineTypeWizardPage extends WizardPage {
-	private TableViewer tableViewer;
-	private EngineTypeDescriptor [] engineTypes;
-	private EngineTypeDescriptor selection;
-	
-	class EngineContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return engineTypes;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-	
-	class EngineLabelProvider extends LabelProvider implements ITableLabelProvider {
-		public String getText(Object obj) {
-			EngineTypeDescriptor desc = (EngineTypeDescriptor)obj;
-			return desc.getLabel();
-		}
-		public Image getImage(Object obj) {
-			EngineTypeDescriptor desc = (EngineTypeDescriptor)obj;
-			return desc.getIconImage();
-		}
-		public Image getColumnImage(Object element, int columnIndex) {
-			return getImage(element);
-		}
-		public String getColumnText(Object element, int columnIndex) {
-			return getText(element);
-		}
-	}
-
-	public EngineTypeWizardPage(EngineTypeDescriptor[] engineTypes) {
-		super("engineType"); //$NON-NLS-1$
-		setTitle(Messages.EngineTypeWizardPage_title); 
-		setDescription(Messages.EngineTypeWizardPage_desc); 
-		this.engineTypes = engineTypes;
-	}
-
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		container.setLayout(layout);
-		Label label = new Label(container, SWT.NULL);
-		label.setText(Messages.EngineTypeWizardPage_label); 
-		tableViewer = new TableViewer(container);
-		tableViewer.setContentProvider(new EngineContentProvider());
-		tableViewer.setLabelProvider(new EngineLabelProvider());
-		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				setPageComplete(!event.getSelection().isEmpty());
-				selection = (EngineTypeDescriptor)((IStructuredSelection)event.getSelection()).getFirstElement();
-			}
-		});
-		tableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
-		tableViewer.setInput(engineTypes);
-		setControl(container);
-		setPageComplete(false);
-	}
-	public EngineTypeDescriptor getSelectedEngineType() {
-		return selection;
-	}
-}
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
deleted file mode 100644
index 1cf5775..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/FederatedSearchSorter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.search.ISearchEngineResult;
-import org.eclipse.jface.viewers.*;
-
-public class FederatedSearchSorter extends ViewerSorter {
-	public FederatedSearchSorter() {
-		super(ReusableHelpPart.SHARED_COLLATOR);
-	}
-	
-    public int category(Object element) {
-		if (element instanceof ISearchEngineResult) {
-			ISearchEngineResult r = (ISearchEngineResult)element;
-			IHelpResource c = r.getCategory();
-			if (c!=null) {
-				String label = c.getLabel();
-				if (label.length()==0)
-					return 10;
-				return 5;
-			}
-		}
-        return super.category(element);
-    }
-	/**
-	 * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,java.lang.Object,java.lang.Object)
-	 */
-	public int compare(Viewer viewer, Object e1, Object e2) {
-	    int cat1 = category(e1);
-	    int cat2 = category(e2);
-
-	    if (cat1 != cat2)
-	    	return cat1 - cat2;
-		try {
-			ISearchEngineResult r1 = (ISearchEngineResult) e1;
-			ISearchEngineResult r2 = (ISearchEngineResult) e2;
-			IHelpResource c1 = r1.getCategory();
-			IHelpResource c2 = r2.getCategory();
-			if (c1!=null && c2!=null) {
-				int cat = super.compare(viewer, c1.getLabel(), c2.getLabel());
-				if (cat!=0) return cat;
-			}
-			float rank1 = ((ISearchEngineResult) e1).getScore();
-			float rank2 = ((ISearchEngineResult) e2).getScore();
-			if (rank1 - rank2 > 0) {
-				return -1;
-			} else if (rank1 == rank2) {
-				return 0;
-			} else {
-				return 1;
-			}
-		} catch (Exception e) {
-		}
-		return super.compare(viewer, e1, e2);
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpTray.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpTray.java
deleted file mode 100644
index 2b63fd7..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpTray.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.DialogTray;
-import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.dialogs.IPageChangeProvider;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.HyperlinkGroup;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * The tray that appears on the side of dialogs when the user summons context
- * help or a cheat sheet follows the user into a dialog.
- */
-public class HelpTray extends DialogTray implements IPageChangedListener {
-	
-	public static final int MINIMUM_HEIGHT = 450;
-	private static final int DEFAULT_WIDTH = 210;
-	
-	private int originalHeight;
-	private int heightAdded;
-	
-	private FormToolkit toolkit;
-	private ReusableHelpPart helpPart;
-	private Shell shell;
-	private IContributionItem closeAction;
-	private Image normal;
-	private Image hover;
-	
-	/**
-	 * Creates any actions needed by the tray.
-	 */
-	private void createActions() {
-		createImages();
-		closeAction = new ContributionItem() {
-			public void fill(ToolBar parent, int index) {
-				final ToolItem item = new ToolItem(parent, SWT.PUSH);
-				item.setImage(normal);
-				item.setHotImage(hover);
-				item.setToolTipText(Messages.ReusableHelpPart_closeAction_tooltip);
-				item.addListener(SWT.Selection, new Listener() {
-					public void handleEvent(Event event) {
-						// close the tray
-						TrayDialog dialog = (TrayDialog)shell.getData();
-						dialog.closeTray();
-						
-						// set focus back to shell
-						shell.setFocus();
-					}
-				});
-			}
-		};
-	}
-	
-	/**
-	 * Creates the contents of the tray.
-	 * 
-	 * @param parent the parent composite that will contain the tray
-	 */
-	protected Control createContents(Composite parent) {
-		// if the dialog is too short, make it taller
-		ensureMinimumHeight(parent.getShell());
-		
-		toolkit = new FormToolkit(parent.getDisplay());
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(HyperlinkGroup.UNDERLINE_HOVER);
-		toolkit.getColors().initializeSectionToolBarColors();
-		Composite container = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.verticalSpacing = 0;
-		container.setLayout(layout);
-		container.addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event event) {
-				dispose();
-			}
-		});
-		
-		ToolBarManager tbm = new ToolBarManager(SWT.FLAT);
-		tbm.createControl(container);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		gd.grabExcessHorizontalSpace = true;
-		tbm.getControl().setLayoutData(gd);
-		Label separator = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.heightHint = 1;
-		separator.setLayoutData(gd);
-		helpPart = new ReusableHelpPart(PlatformUI.getWorkbench().getProgressService());
-		helpPart.init(null, tbm, null, null);
-		helpPart.setDefaultContextHelpText(Messages.HelpView_defaultText);
-		helpPart.createControl(container, toolkit);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = DEFAULT_WIDTH;
-		helpPart.getControl().setLayoutData(gd);
-		
-		createActions();
-		tbm.add(closeAction);
-		
-		shell = parent.getShell();
-		hookPageChangeListener(shell);
-		helpPart.getControl().addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event event) {
-				unhookPageChangeListener(shell);
-			}
-		});
-		
-		return container;
-	}
-
-	/**
-	 * Creates any custom needed by the tray, such as the close button.
-	 */
-	private void createImages() {
-		Display display = Display.getCurrent();
-		int[] shape = new int[] { 
-				3,  3, 5,  3, 7,  5, 8,  5, 10, 3, 12, 3, 
-				12, 5, 10, 7, 10, 8, 12,10, 12,12,
-				10,12, 8, 10, 7, 10, 5, 12, 3, 12,
-				3, 10, 5,  8, 5,  7, 3,  5
-		};
-		
-		/*
-		 * Use magenta as transparency color since it is used infrequently.
-		 */
-		Color border = display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
-		Color background = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-		Color backgroundHot = new Color(display, new RGB(252, 160, 160));
-		Color transparent = display.getSystemColor(SWT.COLOR_MAGENTA);
-
-		PaletteData palette = new PaletteData(new RGB[] { transparent.getRGB(), border.getRGB(), background.getRGB(), backgroundHot.getRGB() });
-		ImageData data = new ImageData(16, 16, 8, palette);
-		data.transparentPixel = 0;
-
-		normal = new Image(display, data);
-		normal.setBackground(transparent);
-		GC gc = new GC(normal);
-		gc.setBackground(background);
-		gc.fillPolygon(shape);
-		gc.setForeground(border);
-		gc.drawPolygon(shape);
-		gc.dispose();
-
-		hover = new Image(display, data);
-		hover.setBackground(transparent);
-		gc = new GC(hover);
-		gc.setBackground(backgroundHot);
-		gc.fillPolygon(shape);
-		gc.setForeground(border);
-		gc.drawPolygon(shape);
-		gc.dispose();
-		
-		backgroundHot.dispose();
-	}
-
-	/**
-	 * Disposes any resources used by the tray.
-	 */
-	private void dispose() {
-		normal.dispose();
-		hover.dispose();
-		toolkit.dispose();
-		helpPart.dispose();
-		
-		/*
-		 * Shell is about to be closed. Add a one-time-only listener
-		 * that will return the dialog height back to original.
-		 */
-		shell.addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event event) {
-				shell.removeListener(SWT.Resize, this);
-				Point p = shell.getSize();
-				if (heightAdded > 0 && p.y > originalHeight) {
-					p.y = Math.max(p.y - heightAdded, originalHeight);
-					shell.setSize(p);
-				}
-			}
-		});
-	}
-
-	/**
-	 * Ensures that the dialog's height is sufficient to contain the help tray.
-	 * If the dialog is too short, its height is increased. When closing the tray,
-	 * the height is returned to original (see dispose()).
-	 * 
-	 * @param shell the dialog's shell
-	 */
-	private void ensureMinimumHeight(Shell shell) {
-		Point p = shell.getSize();
-		originalHeight = p.y;
-		if (p.y < MINIMUM_HEIGHT) {
-			heightAdded = MINIMUM_HEIGHT - p.y;
-			p.y = MINIMUM_HEIGHT;
-			shell.setSize(p);
-		}
-		else {
-			heightAdded = 0;
-		}
-	}
-	
-	/**
-	 * Returns the ReusableHelpPart contained in the tray.
-	 * 
-	 * @return the tray's ReusableHelpPart
-	 */
-	public ReusableHelpPart getHelpPart() {
-		return helpPart;
-	}
-	
-	/**
-	 * Add the listener that gets notified of page changes (to automatically
-	 * update context help).
-	 * 
-	 * @param parent the Composite to hook the listener to
-	 */
-	private void hookPageChangeListener(Composite parent) {
-		Object data = parent.getData();
-		if (data instanceof IPageChangeProvider) {
-			((IPageChangeProvider)data).addPageChangedListener(this);
-		}
-	}
-
-	/**
-	 * Returns whether or not the help tray can handle the given shell. In some
-	 * cases the help tray is not appropriate for shells that are too short and
-	 * not resizable. In these cases infopops are used.
-	 * 
-	 * @param shell the shell to check
-	 * @return whether or not the help tray is appropriate for the hsell
-	 */
-	public static boolean isAppropriateFor(Shell shell) {
-		if (shell != null && !shell.isDisposed() && shell.isVisible()) {
-			Object data = shell.getData();
-			return (data instanceof TrayDialog && (shell.getSize().y >= MINIMUM_HEIGHT || (shell.getStyle() & SWT.RESIZE) != 0));
-		}
-		return false;
-	}
-
-	/**
-	 * Called whenever the dialog we're inside has changed pages. This updates
-	 * the context help page if it is visible.
-	 * 
-	 * @param event the page change event
-	 */
-	public void pageChanged(PageChangedEvent event) {
-		Object page = event.getSelectedPage();
-		Control c = null;
-		if (page instanceof IDialogPage) {
-			c = ((IDialogPage) page).getControl();
-		} else {
-			c = shell.getDisplay().getFocusControl();
-			if (c instanceof TabFolder) {
-				TabFolder folder = (TabFolder) c;
-				TabItem[] selection = folder.getSelection();
-				if (selection.length == 1) {
-					c = selection[0].getControl();
-				}
-			}
-		}
-		helpPart.update(null, null, c);
-	}
-	
-	/**
-	 * Remove the listener that gets notified of page changes (to automatically
-	 * update context help).
-	 * 
-	 * @param parent the Composite that had the listener
-	 */
-	private void unhookPageChangeListener(Composite parent) {
-		Object data = parent.getData();
-		if (data instanceof IPageChangeProvider) {
-			((IPageChangeProvider)data).removePageChangedListener(this);
-		}
-	}
-}
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
deleted file mode 100644
index fa2b880..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HelpView.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.dialogs.IPageChangeProvider;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.forms.HyperlinkGroup;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.part.ViewPart;
-
-public class HelpView extends ViewPart implements IPartListener2,
-		ISelectionChangedListener, IPageChangedListener {
-	private FormToolkit toolkit;
-	
-	private String firstPageId;
-
-	private ReusableHelpPart reusableHelpPart;
-
-	//private Hashtable pageRecs;
-
-	private IWorkbenchPart monitoredPart;
-
-	private boolean visible;
-
-	/**
-	 * 
-	 */
-	public HelpView() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-				HyperlinkGroup.UNDERLINE_HOVER);
-		// toolkit.setBackground(toolkit.getColors().createNoContentBackground());
-		toolkit.getColors().initializeSectionToolBarColors();
-		reusableHelpPart.createControl(parent, toolkit);
-		reusableHelpPart.setDefaultContextHelpText(Messages.HelpView_defaultText); 
-		reusableHelpPart.showPage(getFirstPage());
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (window == null)
-			return;
-		IWorkbenchPage page = window.getActivePage();
-		if (page == null)
-			return;
-		IWorkbenchPartReference aref = page.getActivePartReference();
-		if (aref != null)
-			handlePartActivation(aref);
-	}
-
-	public void dispose() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IPartService service = window.getPartService();
-		if (monitoredPart != null) {
-			uninstallSelectionListener(monitoredPart);
-			uninstallPageListener(monitoredPart);
-		}
-		service.removePartListener(this);
-		if (reusableHelpPart != null) {
-			reusableHelpPart.dispose();
-			reusableHelpPart = null;
-		}
-		if (toolkit != null) {
-			toolkit.dispose();
-			toolkit = null;
-		}
-		super.dispose();
-	}
-
-	public void init(IViewSite site, IMemento memento) throws PartInitException {
-		if (memento!=null)
-			this.firstPageId = memento.getString("pageId"); //$NON-NLS-1$
-		init(site);
-		reusableHelpPart = new ReusableHelpPart(site.getWorkbenchWindow(),
-				getHelpPartStyle());
-		IActionBars actionBars = site.getActionBars();
-		reusableHelpPart.init(actionBars, actionBars.getToolBarManager(),
-				actionBars.getStatusLineManager(), memento);
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IPartService service = window.getPartService();
-		service.addPartListener(this);
-	}
-	
-    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);
-    	}
-    }
-
-	private void handlePartActivation(IWorkbenchPartReference ref) {
-		if (reusableHelpPart == null)
-			return;
-		if (!visible || !reusableHelpPart.isMonitoringContextHelp())
-			return;
-		if (isThisPart(ref))
-			return;
-		IWorkbenchPart part = ref.getPart(false);
-		Display display = part.getSite().getShell().getDisplay();
-		Control c = display.getFocusControl();
-		if (c != null && c.isVisible() && !c.isDisposed()) {
-			IContextProvider provider = (IContextProvider) part
-					.getAdapter(IContextProvider.class);
-			if (provider != null) {
-				reusableHelpPart.update(provider, null, part, c);
-				if ((provider.getContextChangeMask() & IContextProvider.SELECTION) != 0) {
-					// context help changes with selections
-					installSelectionListener(part);
-				}
-			} else
-				reusableHelpPart.update(part, c);
-			if (part instanceof IPageChangeProvider)
-				installPageListener(part);
-		}
-	}
-
-	private void installPageListener(IWorkbenchPart part) {
-		if (part instanceof IPageChangeProvider)
-			((IPageChangeProvider)part).addPageChangedListener(this);
-		monitoredPart = part;
-	}
-	
-	private void uninstallPageListener(IWorkbenchPart part) {
-		if (part instanceof IPageChangeProvider)
-			((IPageChangeProvider)part).removePageChangedListener(this);
-		monitoredPart = null;
-	}
-
-	private void installSelectionListener(IWorkbenchPart part) {
-		ISelectionProvider provider = part.getSite().getSelectionProvider();
-		if (provider instanceof IPostSelectionProvider)
-			((IPostSelectionProvider) provider)
-				.addPostSelectionChangedListener(this);
-		else
-			provider.addSelectionChangedListener(this);
-		monitoredPart = part;
-	}
-
-	private void uninstallSelectionListener(IWorkbenchPart part) {
-		ISelectionProvider provider = part.getSite().getSelectionProvider();
-		if (provider instanceof IPostSelectionProvider)
-			((IPostSelectionProvider) provider)
-					.removePostSelectionChangedListener(this);
-		else
-			provider.removeSelectionChangedListener(this);
-		monitoredPart = null;
-	}
-
-	private boolean isThisPart(IWorkbenchPartReference ref) {
-		IWorkbenchPart part = ref.getPart(false);
-		return part != null && part.equals(this);
-	}
-
-	private void updateActivePart() {
-		if (reusableHelpPart == null)
-			return;
-		if (!reusableHelpPart.isMonitoringContextHelp())
-			return;
-		if (monitoredPart == null)
-			return;
-		Control c = monitoredPart.getSite().getShell().getDisplay()
-				.getFocusControl();
-		if (c != null && c.isDisposed() == false && visible) {
-			IContextProvider provider = (IContextProvider) monitoredPart
-			.getAdapter(IContextProvider.class);
-			if (provider != null)
-				reusableHelpPart.update(provider, null, monitoredPart, c);
-			else
-				reusableHelpPart.update(monitoredPart, c);
-		}
-	}
-
-	private void handlePartDeactivation(IWorkbenchPartReference ref) {
-		IWorkbenchPart part = ref.getPart(false);
-		if (monitoredPart != null && part != null && part.equals(monitoredPart)) {
-			uninstallSelectionListener(part);
-			uninstallPageListener(part);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partActivated(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partActivated(final IWorkbenchPartReference partRef) {
-		if (isThisPart(partRef)) {
-			visible = true;
-			hook(true);
-			selectionChanged(null);
-		} else {
-			handlePartActivation(partRef);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partBroughtToTop(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partBroughtToTop(IWorkbenchPartReference partRef) {
-		if (isThisPart(partRef)) {
-			visible = true;
-			hook(true);
-			selectionChanged(null);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partClosed(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partClosed(IWorkbenchPartReference partRef) {
-		handlePartDeactivation(partRef);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partDeactivated(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partDeactivated(IWorkbenchPartReference partRef) {
-		handlePartDeactivation(partRef);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partHidden(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partHidden(IWorkbenchPartReference partRef) {
-		if (isThisPart(partRef)) {
-			visible = false;
-			hook(false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partInputChanged(IWorkbenchPartReference partRef) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partOpened(IWorkbenchPartReference partRef) {
-		if (isThisPart(partRef)) {
-			visible = true;
-			hook(true);
-			selectionChanged(null);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPartListener2#partVisible(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partVisible(IWorkbenchPartReference partRef) {
-		if (isThisPart(partRef)) {
-			visible = true;
-			hook(true);
-			selectionChanged(null);
-		}
-	}
-
-	private void hook(boolean doHook) {
-		if (doHook) {
-			IWorkbenchWindow window = PlatformUI.getWorkbench()
-					.getActiveWorkbenchWindow();
-			IPartService service = window.getPartService();
-			IWorkbenchPartReference aref = service.getActivePartReference();
-			if (aref != null)
-				handlePartActivation(aref);
-		} else {
-			if (monitoredPart != null) {
-				uninstallSelectionListener(monitoredPart);
-				uninstallPageListener(monitoredPart);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		if (!visible)
-			return;
-		getSite().getShell().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				updateActivePart();
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.BaseHelpView#getFirstPage()
-	 */
-	protected String getFirstPage() {
-		if (firstPageId!=null)
-			return firstPageId;
-		return IHelpUIConstants.HV_CONTEXT_HELP_PAGE;
-	}
-
-	public void displayContext(IContext context, IWorkbenchPart part,
-			Control control) {
-		if (reusableHelpPart != null) {
-			// Ensure that context help is currently showing
-			reusableHelpPart.showPage(IHelpUIConstants.HV_CONTEXT_HELP_PAGE);
-			// check if there is a dynamic version
-			IContextProvider provider = null;
-			if (part!=null)
-					provider = (IContextProvider) part
-					.getAdapter(IContextProvider.class);
-			if (provider != null)
-				reusableHelpPart.update(provider, context, part, control);
-			else
-				reusableHelpPart.update(context, part, control);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.BaseHelpView#getHelpPartStyle()
-	 */
-	protected int getHelpPartStyle() {
-		return ReusableHelpPart.getDefaultStyle();
-	}
-
-	public void setFocus() {
-		if (reusableHelpPart != null)
-			reusableHelpPart.setFocus();
-	}
-
-	public void startSearch(String phrase) {
-		if (reusableHelpPart != null)
-			reusableHelpPart.startSearch(phrase);
-	}
-	public void showDynamicHelp(IWorkbenchPart part, Control c) {
-		if (reusableHelpPart != null)
-			reusableHelpPart.showDynamicHelp(part, c);
-	}
-
-	public void pageChanged(PageChangedEvent event) {
-		if (!visible)
-			return;
-		updateActivePart();
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryEntry.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryEntry.java
deleted file mode 100644
index 676bb5d..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryEntry.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-public class HistoryEntry {
-	public static final int URL = 1;
-	public static final int PAGE = 2;
-	private int type;
-	private String target;
-	private Object data;
-	/**
-	 * 
-	 */
-	public HistoryEntry(int type, String target, Object data) {
-		this.type = type;
-		this.target = target;
-		this.data = data;
-	}
-	public int getType() {
-		return type;
-	}
-	public String getTarget() {
-		return target;
-	}
-	public Object getData() {
-		return data;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryScopeSet.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryScopeSet.java
deleted file mode 100644
index 45a5ea9..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HistoryScopeSet.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-
-public class HistoryScopeSet extends ScopeSet {
-	private static final String KEY_EXPRESSION = "expression"; //$NON-NLS-1$
-	public static final String EXT = ".hist"; //$NON-NLS-1$
-
-	public HistoryScopeSet(String expression) {
-		this(expression, expression);
-	}
-
-	public HistoryScopeSet(String name, String expression) {
-		super(name);
-		if (expression!=null)
-			setExpression(expression);
-	}
-
-	public HistoryScopeSet(HistoryScopeSet set) {
-		super(set);
-		setExpression(set.getExpression());
-	}
-	
-	public void copyFrom(ScopeSet set) {
-		String expression = getExpression();
-		super.copyFrom(set);
-		setExpression(expression);
-	}
-
-	public String getExpression() {
-		IPreferenceStore store = getPreferenceStore();
-		return store.getString(KEY_EXPRESSION);
-	}
-	
-	public boolean isImplicit() {
-		return true;
-	}	
-	
-	protected String getExtension() {
-		return EXT;
-	}	
-
-	protected String encodeFileName(String name) {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < name.length(); i++) {
-			char c = name.charAt(i);
-			switch (c) {
-			case '\"':
-				buf.append("QUOTE"); //$NON-NLS-1$
-				break;
-			case ' ':
-				buf.append("_"); //$NON-NLS-1$
-				break;
-			case '?':
-				buf.append("QUESTION"); //$NON-NLS-1$
-				break;
-			case '*':
-				buf.append("STAR"); //$NON-NLS-1$
-				break;
-			default:
-				buf.append(c);
-				break;
-			}
-		}
-		return buf.toString();
-	}
-
-	public void setExpression(String expression) {
-		IPreferenceStore store = getPreferenceStore();
-		store.setValue(KEY_EXPRESSION, expression);		
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index cacc7b6..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/HyperlinkTreePart.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public abstract class HyperlinkTreePart extends AbstractFormPart implements
-		IHelpPart {
-	protected ReusableHelpPart parent;
-
-	private String id;
-
-	private Composite container;
-
-	protected TreeViewer treeViewer;
-
-	private TreeItem lastItem;
-
-	private Cursor handCursor;
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public HyperlinkTreePart(Composite parent, final FormToolkit toolkit,
-			IToolBarManager tbm) {
-		handCursor = new Cursor(parent.getDisplay(), SWT.CURSOR_HAND);
-		container = toolkit.createComposite(parent);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 0;
-		container.setLayout(layout);
-		Composite sep = toolkit.createCompositeSeparator(container);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.heightHint = 1;
-		sep.setLayoutData(gd);
-
-		treeViewer = new TreeViewer(container, SWT.H_SCROLL | SWT.V_SCROLL);
-		treeViewer.getTree().setMenu(parent.getMenu());
-		treeViewer.getTree().setForeground(
-				toolkit.getHyperlinkGroup().getForeground());
-		configureTreeViewer();
-		treeViewer.setInput(this);
-		treeViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		treeViewer.addOpenListener(new IOpenListener() {
-			public void open(OpenEvent event) {
-				doOpenSelection((IStructuredSelection) event.getSelection());
-			}
-		});
-		treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				handleSelectionChanged((IStructuredSelection) event
-						.getSelection());
-			}
-		});
-		treeViewer.getTree().addMouseListener(new MouseAdapter() {
-			long lastTime;
-
-			public void mouseUp(MouseEvent e) {
-				long eventTime = e.time & 0xFFFFFFFFL;
-				if (eventTime - lastTime <= e.display.getDoubleClickTime())
-					return;
-				if (e.button != 1)
-					return;
-				lastTime = eventTime;
-				Point p = new Point(e.x, e.y);
-				TreeItem item = treeViewer.getTree().getItem(p);
-				if (item != null) {
-					Object obj = item.getData();
-					if (obj != null) {
-						doOpen(obj);
-					}
-				}
-			}
-		});
-
-		treeViewer.getTree().addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				validateLastItem();
-				if (lastItem == null)
-					return;
-				Rectangle bounds = lastItem.getBounds();
-				boolean selected = false;
-				TreeItem[] items = lastItem.getParent().getSelection();
-				for (int i = 0; i < items.length; i++) {
-					if (items[i].equals(lastItem)) {
-						selected = true;
-						break;
-					}
-				}
-				if (selected)
-					e.gc.setForeground(container.getDisplay().getSystemColor(
-							SWT.COLOR_LIST_SELECTION_TEXT));
-				else
-					e.gc.setForeground(toolkit.getHyperlinkGroup()
-							.getActiveForeground());
-				FontMetrics fm = e.gc.getFontMetrics();
-				int height = fm.getHeight();
-				int lineY = bounds.y + height;
-				e.gc.drawLine(bounds.x, lineY, bounds.x + bounds.width - 1,
-						lineY);
-			}
-		});
-
-		treeViewer.getTree().addMouseTrackListener(new MouseTrackAdapter() {
-			public void mouseExit(MouseEvent e) {
-				validateLastItem();
-				if (lastItem != null) {
-					TreeItem item = lastItem;
-					lastItem = null;
-					item.setForeground(null);
-				}
-			}
-		});
-
-		treeViewer.getTree().addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent e) {
-				Point p = new Point(e.x, e.y);
-				TreeItem item = treeViewer.getTree().getItem(p);
-				validateLastItem();
-				if (item != null) {
-					if (lastItem != null) {
-						if (!lastItem.equals(item)) {
-							lastItem.setForeground(null);
-							repaintItem(lastItem);
-							updateStatus(null);
-							lastItem = null;
-						} else
-							return;
-					}
-					Object obj = item.getData();
-					treeViewer.getTree().setCursor(handCursor);
-					IStructuredSelection ssel = (IStructuredSelection) treeViewer
-							.getSelection();
-					if (ssel.getFirstElement() == obj)
-						item.setForeground(container.getDisplay()
-								.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT));
-					else
-						item.setForeground(toolkit.getHyperlinkGroup()
-								.getActiveForeground());
-					lastItem = item;
-					repaintItem(lastItem);
-					if (obj instanceof IHelpResource)
-						updateStatus((IHelpResource) obj);
-					else
-						updateStatus(null);
-					return;
-				} else if (lastItem != null) {
-					lastItem.setForeground(null);
-					repaintItem(lastItem);
-					lastItem = null;
-					updateStatus(null);
-				}
-				treeViewer.getTree().setCursor(null);
-			}
-		});
-		contributeToToolBar(tbm);
-	}
-
-	public void dispose() {
-		handCursor.dispose();
-		super.dispose();
-	}
-
-	private void repaintItem(TreeItem item) {
-		Rectangle bounds = item.getBounds();
-		item.getParent().redraw(bounds.x, bounds.y, bounds.width,
-				bounds.height, false);
-	}
-
-	protected void contributeToToolBar(IToolBarManager tbm) {
-		Action collapseAllAction = new Action() {
-			public void run() {
-				BusyIndicator.showWhile(container.getDisplay(), new Runnable() {
-					public void run() {
-						doCollapseAll();
-					}
-				});
-			}
-		};
-		collapseAllAction.setImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_COLLAPSE_ALL));
-		collapseAllAction
-				.setToolTipText(Messages.AllTopicsPart_collapseAll_tooltip); 
-		tbm.insertBefore("back", collapseAllAction); //$NON-NLS-1$
-		tbm.insertBefore("back", new Separator()); //$NON-NLS-1$
-	}
-
-	private void doCollapseAll() {
-		Object[] expanded = treeViewer.getExpandedElements();
-		treeViewer.collapseAll();
-		treeViewer.update(expanded, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#getControl()
-	 */
-	public Control getControl() {
-		return container;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#init(org.eclipse.help.ui.internal.views.NewReusableHelpPart)
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.parent = parent;
-		this.id = id;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		container.setVisible(visible);
-		if (visible)
-			treeViewer.refresh();
-	}
-
-	private void doOpenSelection(IStructuredSelection sel) {
-		Object obj = sel.getFirstElement();
-		if (obj != null) {
-			doOpen(obj);
-		}
-	}
-
-	protected void handleSelectionChanged(IStructuredSelection sel) {
-		Object obj = sel.getFirstElement();
-		if (lastItem != null) {
-			Object lastObj = lastItem.getData();
-			if (lastObj==obj)
-				lastItem.setForeground(container.getDisplay()
-							.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT));
-			else
-				lastItem.setForeground(parent.getForm().getToolkit().getHyperlinkGroup()
-						.getActiveForeground());
-			repaintItem(lastItem);
-		}
-		if (obj instanceof IHelpResource) {
-			IHelpResource res = (IHelpResource) obj;
-			updateStatus(res, false);
-		} else
-			updateStatus(null, false);
-	}
-
-	private void updateStatus(IHelpResource res) {
-		updateStatus(res, true);
-	}
-
-	private void updateStatus(IHelpResource res, boolean defaultToSelection) {
-		if (defaultToSelection && res == null) {
-			IStructuredSelection ssel = (IStructuredSelection) treeViewer
-					.getSelection();
-			Object obj = ssel.getFirstElement();
-			if (obj instanceof IHelpResource)
-				res = (IHelpResource) obj;
-		}
-		if (res != null) {
-			String label = res.getLabel();
-			String href = getHref(res);
-			HyperlinkTreePart.this.parent.handleLinkEntered(new HyperlinkEvent(
-					treeViewer.getTree(), href, label, SWT.NULL));
-		} else {
-			HyperlinkTreePart.this.parent.handleLinkExited(null);
-		}
-	}
-
-	protected String getHref(IHelpResource res) {
-		return res.getHref();
-	}
-
-	protected abstract void configureTreeViewer();
-
-	protected abstract void doOpen(Object obj);
-
-	protected void postUpdate(final Object obj) {
-		treeViewer.getControl().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				treeViewer.update(obj, null);
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public boolean fillContextMenu(IMenuManager manager) {
-		return parent.fillSelectionProviderMenu(treeViewer, manager,
-				canAddBookmarks());
-	}
-
-	protected abstract boolean canAddBookmarks();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#hasFocus()
-	 */
-	public boolean hasFocusControl(Control focusControl) {
-		return treeViewer.getControl().equals(focusControl);
-	}
-
-	public void setFocus() {
-		if (treeViewer != null)
-			treeViewer.getTree().setFocus();
-	}
-
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.COPY.getId()))
-			return parent.getCopyAction();
-		return null;
-	}
-
-	public void stop() {
-	}
-
-	private void validateLastItem() {
-		if (lastItem != null && lastItem.isDisposed())
-			lastItem = null;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPart.java
deleted file mode 100644
index fed9725..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPart.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.IFormPart;
-
-public interface IHelpPart extends IFormPart {
-	void init(ReusableHelpPart parent, String id, IMemento memento);
-	void saveState(IMemento memento);
-	Control getControl();
-	String getId();
-	void setVisible(boolean visible);
-	boolean hasFocusControl(Control control);
-	boolean fillContextMenu(IMenuManager manager);
-	IAction getGlobalAction(String id);
-	void stop();
-	void toggleRoleFilter();
-	void refilter();
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPartPage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPartPage.java
deleted file mode 100644
index 34c36cb..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IHelpPartPage.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IMemento;
-
-public interface IHelpPartPage {
-	void addPart(String id, boolean flexible);
-	void addPart(String id, boolean flexible, boolean grabVertical);
-	boolean canOpen();
-	void dispose();
-	IHelpPart findPart(String id);
-	int getHorizontalMargin();
-	String getIconId();
-	String getId();
-	int getNumberOfFlexibleParts();
-	String getText();
-	IToolBarManager getToolBarManager();
-	int getVerticalSpacing();
-	void refilter();
-	void saveState(IMemento memento);
-	void setFocus();
-	void setHorizontalMargin(int value);
-	void setVerticalSpacing(int value);
-	void setVisible(boolean visible);
-	void stop();
-	void toggleRoleFilter();
-}
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
deleted file mode 100644
index d7978b6..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexPart.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.IIndexEntry;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class IndexPart extends HyperlinkTreePart implements IHelpUIConstants {
-	private RoleFilter roleFilter;
-
-	class IndexProvider implements ITreeContentProvider {
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement == IndexPart.this) {
-				return HelpSystem.getIndex().getEntries();
-			}
-			if (parentElement instanceof IIndexEntry) {
-				return IndexPart.this.getChildren((IIndexEntry) parentElement);
-			}
-			return new Object[0];
-		}
-
-		public Object getParent(Object element) {
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		public void dispose() {}
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
-	}
-
-	class IndexLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			if (obj instanceof IIndexEntry)
-				return ((IIndexEntry) obj).getKeyword();
-			if (obj instanceof IHelpResource)
-				return ((IHelpResource) obj).getLabel();
-			return super.getText(obj);
-		}
-
-		public Image getImage(Object obj) {
-			return super.getImage(obj);
-		}
-	}
-
-	class RoleFilter extends ViewerFilter {
-		public boolean select(Viewer viewer, Object parentElement,
-				Object element) {
-			if (element instanceof IIndexEntry) {
-				return isNotFiltered((IIndexEntry) element);
-			} else if (element instanceof IHelpResource) {
-				return isNotFiltered((IHelpResource) element);
-			}
-			return false;
-		}
-
-		private boolean isNotFiltered(IIndexEntry entry) {
-			IHelpResource[] topics = entry.getTopics();
-			for (int i = 0; i < topics.length; i++) {
-				if (isNotFiltered(topics[i]))
-					return true;
-			}
-
-			IIndexEntry[] subentries = entry.getSubentries();
-			for (int i = 0; i < subentries.length; i++) {
-				if (isNotFiltered(subentries[i]))
-					return true;
-			}
-
-			return false;
-		}
-
-		private boolean isNotFiltered(IHelpResource topic) {
-			return HelpBasePlugin.getActivitySupport().isEnabled(topic.getHref());
-		}
-	}
-
-	public IndexPart(Composite parent, FormToolkit toolkit, IToolBarManager tbm) {
-		super(parent, toolkit, tbm);
-		roleFilter = new RoleFilter();
-	}
-
-	protected void configureTreeViewer() {
-		treeViewer.setContentProvider(new IndexProvider());
-		treeViewer.setLabelProvider(new IndexLabelProvider());
-	}
-
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		super.init(parent, id, memento);
-		if (parent.isFilteredByRoles())
-			treeViewer.addFilter(roleFilter);
-	}
-
-	protected void doOpen(Object obj) {
-		if (obj instanceof IHelpResource) {
-			parent.showURL(((IHelpResource) obj).getHref());
-		} else if (obj instanceof IIndexEntry) {
-			IIndexEntry entry = (IIndexEntry) obj;
-			if (getChildren(entry).length > 0) {
-				treeViewer.setExpandedState(obj, !treeViewer.getExpandedState(obj));
-			}
-			IHelpResource[] topics = entry.getTopics();
-			if (topics.length == 1) {
-				parent.showURL(topics[0].getHref());
-			}
-		}
-	}
-
-	protected boolean canAddBookmarks() {
-		return true;
-	}
-
-	public void saveState(IMemento memento) {
-	}
-
-	public void toggleRoleFilter() {
-		if (parent.isFilteredByRoles())
-			treeViewer.addFilter(roleFilter);
-		else
-			treeViewer.removeFilter(roleFilter);
-	}
-
-	public void refilter() {
-		treeViewer.refresh();
-	}
-
-	private Object[] getChildren(IIndexEntry entry) {
-		/*
-		 * Index entry has two types of children: topics and subentries.
-		 * 
-		 * The method returns topics among children only if number of the topics
-		 * more than 1.
-		 * 
-		 * In case when the entry owns only one topic, this topic is not returned
-		 * as child because the entry will represent this topic by its keyword.
-		 */
-		IHelpResource[] topics = entry.getTopics();
-		IIndexEntry[] subentries = entry.getSubentries();
-
-		if (topics.length <= 1) {
-			return subentries;
-		}
-
-		Object[] childrens = new Object[topics.length + subentries.length];
-		System.arraycopy(topics, 0, childrens, 0, topics.length);
-		System.arraycopy(subentries, 0, childrens, topics.length, subentries.length);
-
-		return childrens; 
-	}
-
-	protected Tree getTreeWidget() {
-		return treeViewer.getTree();
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexTypeinPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexTypeinPart.java
deleted file mode 100644
index edf4c1a..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/IndexTypeinPart.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-
-public class IndexTypeinPart extends AbstractFormPart implements IHelpPart, IHelpUIConstants {
-	private ReusableHelpPart parent;
-	String id;
-	private Composite container;
-	private FormText indexInstructions;
-	private Text indexText;
-	private Button indexButton;
-	private IndexPart indexPart;
-	private Tree indexTree;
-	private int itemCount;
-	private String[] rootItems;
-	private int currentIndex;
-
-	public IndexTypeinPart(Composite parent, FormToolkit toolkit, IToolBarManager tbm) {
-		container = toolkit.createComposite(parent);
-
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.numColumns = 2;
-		container.setLayout(layout);
-
-		// Instructions
-		indexInstructions = toolkit.createFormText(container, false);
-		indexInstructions.setText(Messages.IndexInstructions, false, false);
-		TableWrapData td = new TableWrapData();
-		td.colspan = 2;
-		indexInstructions.setLayoutData(td);
-
-		// Index typein
-		indexText = toolkit.createText(container, null);
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		td.maxWidth = 100;
-		td.valign = TableWrapData.MIDDLE;
-		indexText.setLayoutData(td);
-		indexButton = toolkit.createButton(container, Messages.IndexButton, SWT.PUSH);
-		indexButton.setEnabled(false);
-
-		indexText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				indexButton.setEnabled(indexText.getText().length() > 0);//!!!
-				doNavigate(indexText.getText());
-			}});
-		indexText.addKeyListener(new KeyListener() {
-			public void keyReleased(KeyEvent e) {
-				if (e.character == '\r' && indexButton.isEnabled()) {
-						doOpen();
-				}
-			}
-			public void keyPressed(KeyEvent e) {
-				if (e.keyCode == SWT.ARROW_UP) {
-					e.doit = false;
-					doUp();
-				} else if (e.keyCode == SWT.ARROW_DOWN) {
-					e.doit = false;
-					doDown();
-				}
-			}});
-		indexButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				doOpen();
-			}});
-
-		toolkit.paintBordersFor(container);
-
-		currentIndex = -1;
-	}
-
-	protected void doUp() {
-		checkTree();
-		if (indexTree == null) return;
-
-		int index = 0;
-		TreeItem[] items = indexTree.getSelection();
-		if (items.length > 0) {
-			index = indexTree.indexOf(items[0]) - 1;
-			if (index < 0) {
-				return;
-			}
-		}
-		TreeItem item = indexTree.getItem(index); 
-		indexTree.setSelection(new TreeItem[] { item });
-		String text = item.getText();
-		indexText.setText(text);
-		indexText.setSelection(0, text.length());
-	}
-
-	protected void doDown() {
-		checkTree();
-		if (indexTree == null) return;
-
-		int index = 0;
-		TreeItem[] items = indexTree.getSelection();
-		if (items.length > 0) {
-			index = indexTree.indexOf(items[0]) + 1;
-			if (index >= indexTree.getItemCount()) {
-				return;
-			}
-		}
-		TreeItem item = indexTree.getItem(index); 
-		indexTree.setSelection(new TreeItem[] { item });
-		String text = item.getText();
-		indexText.setText(text);
-		indexText.setSelection(0, text.length());
-	}
-
-	protected void doNavigate(String text) {
-		checkTree();
-		if (rootItems == null) return;
-
-		int index = searchPattern(text);
-		if (index != -1 && index != currentIndex) {
-			indexTree.setSelection(new TreeItem[] { indexTree.getItem(index) });
-			currentIndex = index;
-		}
-	}
-
-	private void checkTree() {
-		if (rootItems != null) return;
-
-		indexPart = (IndexPart)parent.findPart(HV_INDEX);
-		if (indexPart == null) return;
-
-		indexTree = indexPart.getTreeWidget();
-		if (indexTree == null) return;
-
-		itemCount = indexTree.getItemCount();
-		if (itemCount == 0) {
-			indexTree = null;
-		} else {
-			rootItems = new String[itemCount];
-			for (int i = 0; i < itemCount; i++) {
-				rootItems[i] = indexTree.getItem(i).getText();
-			}
-		}
-	}
-
-	/*
-	 * TODO optimize
-	 */
-	private int searchPattern(String pattern) {
-		int from = 0;
-		int to = rootItems.length;
-		int i;
-		int res;
-
-		while (to > from) {
-			i = (to + from) / 2;
-			res = compare(rootItems[i], pattern);
-			if (res == 0) {
-				while (i > 0) {
-					if (compare(rootItems[--i], pattern) != 0) {
-						i++;
-						break;
-					}
-				}
-				return i;
-			}
-
-			if (res < 0) {
-				from = i + 1;
-			} else {
-				to = i;
-			}
-		}
-
-		return -1;
-	}
-
-	/*
-	 * TODO optimize
-	 */
-	int compare(String keyword, String pattern) {
-		int kI = 0, pI = 0;
-		char kCh, pCh;
-
-		while (kI < keyword.length() && pI < pattern.length()) {
-			kCh = Character.toLowerCase(keyword.charAt(kI));
-			pCh = Character.toLowerCase(pattern.charAt(pI));
-			if (kCh > pCh) {
-				return 1;
-			} else if (kCh < pCh) {
-				return -1;
-			}
-			kI++;
-			pI++;
-		}
-		if (keyword.length() >= pattern.length()) {
-			return 0;
-		} else {
-			return -1;
-		}
-	}
-
-	protected void doOpen() {
-		checkTree();
-		if (indexTree == null) return;
-
-		TreeItem items[] = indexTree.getSelection();
-		if (items.length == 0) return;
-
-		Object obj = items[0].getData();
-		if (obj != null) {
-			indexPart.doOpen(obj);
-		}
-	}
-
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		// TODO Auto-generated method stub
-		this.parent = parent;
-		this.id = id;
-	}
-
-	public void saveState(IMemento memento) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public Control getControl() {
-		return container;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public void setVisible(boolean visible) {
-		getControl().setVisible(visible);
-	}
-
-	public boolean hasFocusControl(Control control) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public boolean fillContextMenu(IMenuManager manager) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public IAction getGlobalAction(String id) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void stop() {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void toggleRoleFilter() {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void refilter() {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setFocus() {
-		indexText.setFocus();
-	}
-
-	public Text getTextWidget() {
-		return indexText;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/NewEngineWizard.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/NewEngineWizard.java
deleted file mode 100644
index eb9b041..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/NewEngineWizard.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.wizard.Wizard;
-
-public class NewEngineWizard extends Wizard {
-	private EngineTypeDescriptor[] engineTypes;
-
-	private EngineTypeWizardPage selectionPage;
-
-	public NewEngineWizard(EngineTypeDescriptor[] engineTypes) {
-		setWindowTitle(Messages.NewEngineWizard_wtitle);
-		setDefaultPageImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_SEARCH_WIZ));
-		this.engineTypes = engineTypes;
-	}
-
-	public void addPages() {
-		selectionPage = new EngineTypeWizardPage(engineTypes);
-		addPage(selectionPage);
-	}
-
-	public boolean performFinish() {
-		return true;
-	}
-
-	public EngineTypeDescriptor getSelectedEngineType() {
-		return selectionPage.getSelectedEngineType();
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 4db6a38..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RelatedTopicsPart.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.IContext;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.ManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-public class RelatedTopicsPart extends AbstractFormPart implements IHelpPart {
-	private ManagedForm mform;
-
-	private ContextHelpPart contextHelpPart;
-
-	private DynamicHelpPart dynamicHelpPart;
-
-	private ReusableHelpPart parent;
-
-	private String id;
-
-	private int VSPACE = 10;
-
-	class RelatedLayout extends Layout implements ILayoutExtension {
-
-		protected Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			Point topSize = contextHelpPart.getControl().computeSize(wHint,
-					hHint, flushCache);
-			Point botSize = dynamicHelpPart.getControl().computeSize(wHint,
-					hHint, flushCache);
-			Point size = new Point(0, 0);
-			size.x = Math.max(topSize.x, botSize.x);
-			size.y = topSize.y + VSPACE + botSize.y;
-			return size;
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			Rectangle carea = composite.getClientArea();
-			Point topSize = contextHelpPart.getControl().computeSize(
-					carea.width, SWT.DEFAULT, flushCache);
-			Point botSize = dynamicHelpPart.getControl().computeSize(
-					carea.width, SWT.DEFAULT, flushCache);
-			int y = 0;
-			contextHelpPart.getControl().setBounds(0, y, carea.width, topSize.y);
-			y += topSize.y + VSPACE;
-			dynamicHelpPart.getControl().setBounds(0, y, carea.width, botSize.y);
-		}
-
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			int top = computeMinimumWidth(contextHelpPart, parent, changed);
-			int bot = computeMinimumWidth(dynamicHelpPart, parent, changed);
-			return Math.max(top, bot);
-		}
-		
-		private int computeMinimumWidth(IHelpPart part, Composite parent, boolean changed) {
-			ILayoutExtension le = (ILayoutExtension)((Composite)part.getControl()).getLayout();
-			return le.computeMinimumWidth(parent, changed);
-		}
-
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-	}
-
-	public RelatedTopicsPart(Composite parent, FormToolkit toolkit) {
-		ScrolledForm form = toolkit.createScrolledForm(parent);
-		mform = new ManagedForm(toolkit, form) {
-			public void reflow(boolean changed) {
-				super.reflow(changed);
-				RelatedTopicsPart.this.parent.reflow();
-			}
-		};
-		form.getBody().setLayout(new RelatedLayout());
-		contextHelpPart = new ContextHelpPart(form.getBody(), toolkit);
-		dynamicHelpPart = new DynamicHelpPart(form.getBody(), toolkit);
-	}
-
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.parent = parent;
-		this.id = id;
-		contextHelpPart.init(parent, IHelpUIConstants.HV_CONTEXT_HELP, memento);
-		dynamicHelpPart.init(parent, IHelpUIConstants.HV_SEARCH_RESULT, memento);
-		mform.addPart(contextHelpPart);
-		mform.addPart(dynamicHelpPart);
-		mform.initialize();
-	}
-	
-	public void dispose() {
-		mform.dispose();
-	}
-	
-	public void handleActivation(Control c, IWorkbenchPart wpart) {
-		contextHelpPart.handleActivation(c, wpart);
-	}
-	
-	public void setDefaultText(String defaultText) {
-		contextHelpPart.setDefaultText(defaultText);
-	}
-
-	public Control getControl() {
-		return mform.getForm();
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public void setVisible(boolean visible) {
-		mform.getForm().setVisible(visible);
-	}
-
-	public boolean hasFocusControl(Control control) {
-		return contextHelpPart.hasFocusControl(control)
-				|| dynamicHelpPart.hasFocusControl(control);
-	}
-
-	public boolean fillContextMenu(IMenuManager manager) {
-		Control focusControl = mform.getForm().getDisplay().getFocusControl();
-		if (contextHelpPart.hasFocusControl(focusControl))
-			return contextHelpPart.fillContextMenu(manager);
-		return dynamicHelpPart.fillContextMenu(manager);
-	}
-
-	public IAction getGlobalAction(String id) {
-		return contextHelpPart.getGlobalAction(id);
-	}
-
-	public void stop() {
-		contextHelpPart.stop();
-		dynamicHelpPart.stop();
-	}
-
-	public void toggleRoleFilter() {
-		contextHelpPart.toggleRoleFilter();
-		dynamicHelpPart.toggleRoleFilter();
-	}
-
-	public void refilter() {
-		contextHelpPart.refilter();
-		dynamicHelpPart.refilter();
-	}
-	public boolean setFormInput(Object input) {
-		return mform.setInput(input);
-	}
-	public void startSearch(String newPhrase, IContext excludeContext) {
-		dynamicHelpPart.startSearch(newPhrase, excludeContext);
-	}
-
-	public void saveState(IMemento memento) {
-	}
-
-	public void setFocus() {
-		if (contextHelpPart!=null)
-			contextHelpPart.setFocus();
-	}
-}
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
deleted file mode 100644
index 94ac69f..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/RenameDialog.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.dialogs.SelectionStatusDialog;
-
-public class RenameDialog extends SelectionStatusDialog {
-	private ArrayList oldNames;
-	private String oldName;
-	private String newName;
-	private Text text;
-	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
-     */
-	public RenameDialog(Shell shell, String oldName) {
-		super(shell);
-		this.isCaseSensitive = false;
-		initialize();
-		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
-     */
-	public RenameDialog(Shell shell, boolean isCaseSensitive, String[] names, String oldName){
-		super(shell);
-		this.isCaseSensitive = isCaseSensitive;
-		initialize();
-		if (names!=null){
-			for (int i = 0; i<names.length; i++)
-				addOldName(names[i]);
-		}
-		setOldName(oldName);
-	}
-	
-	public void initialize(){
-		oldNames = new ArrayList();
-		setStatusLineAboveButtons(true);
-	}
-	public void addOldName(String oldName){
-		if (!oldNames.contains(oldName))
-			oldNames.add(oldName);
-		
-	}
-	public void setOldName(String oldName) {
-		this.oldName = oldName;
-		//addOldName(oldName);
-		if (text!=null) 
-			text.setText(oldName);
-		this.newName = oldName;
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-        layout.marginHeight = layout.marginWidth = 9;
-		container.setLayout(layout);
-		
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		container.setLayoutData(gd);
-		
-		Label label = new Label(container, SWT.NULL);
-		label.setText(Messages.RenameDialog_label); 
-		
-		text = new Text(container, SWT.SINGLE|SWT.BORDER);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				textChanged(text.getText());
-			}
-		});
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 200;
-		text.setLayoutData(gd);
-		applyDialogFont(container);
-		return container;
-	}
-	
-	public int open() {
-		text.setText(oldName);
-		text.selectAll();
-		Button okButton = getButton(IDialogConstants.OK_ID);
-		
-		status = new Status(
-				IStatus.OK,
-				HelpUIPlugin.PLUGIN_ID,
-				IStatus.OK,
-				"", //$NON-NLS-1$
-				null);
-		updateStatus(status);
-		okButton.setEnabled(false);
-		return super.open();
-	}
-	
-	private void textChanged(String text) {
-		Button okButton = getButton(IDialogConstants.OK_ID);
-		for (int i=0; i<oldNames.size(); i++){
-			if((isCaseSensitive && text.equals(oldNames.get(i))) ||
-					(!isCaseSensitive && text.equalsIgnoreCase(oldNames.get(i).toString()))){
-				status =  new Status(
-						IStatus.ERROR,
-						HelpUIPlugin.PLUGIN_ID,
-						IStatus.ERROR,
-						Messages.RenameDialog_validationError, 
-						null);
-				updateStatus(status);
-				okButton.setEnabled(false);
-				break;
-			}
-			okButton.setEnabled(true);
-			status = new Status(
-				IStatus.OK,
-				HelpUIPlugin.PLUGIN_ID,
-				IStatus.OK,
-				"", //$NON-NLS-1$
-				null);
-			updateStatus(status);
-		}
-	}
-	
-	public String getNewName() {
-		return newName;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		newName = text.getText();
-		super.okPressed();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.dialogs.SelectionStatusDialog#computeResult()
-	 */
-	protected void computeResult() {
-	}
-    
-    public void setTitle(String 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
deleted file mode 100644
index 143ed21..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
+++ /dev/null
@@ -1,1705 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.text.Collator; // can't use ICU, public instance
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IContextProvider;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.IIndexEntry;
-import org.eclipse.help.IToc;
-import org.eclipse.help.ITopic;
-import org.eclipse.help.UAContentFilter;
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.base.IHelpBaseConstants;
-import org.eclipse.help.internal.protocols.HelpURLConnection;
-import org.eclipse.help.internal.search.federated.IndexerJob;
-import org.eclipse.help.search.ISearchEngine2;
-import org.eclipse.help.ui.internal.HelpUIPlugin;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.SubStatusLineManager;
-import org.eclipse.jface.action.SubToolBarManager;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.SubActionBars;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.activities.ActivityManagerEvent;
-import org.eclipse.ui.activities.IActivityManagerListener;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.ManagedForm;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-public class ReusableHelpPart implements IHelpUIConstants,
-		IActivityManagerListener {
-	public static final int ALL_TOPICS = 1 << 1;
-
-	public static final int CONTEXT_HELP = 1 << 2;
-
-	public static final int SEARCH = 1 << 3;
-
-	public static final int BOOKMARKS = 1 << 4;
-
-	public static final int INDEX = 1 << 5;
-
-	public static final Collator SHARED_COLLATOR = Collator.getInstance();
-
-	private static final String PROMPT_KEY = "askShowAll"; //$NON-NLS-1$
-
-	private static final int STATE_START = 1;
-
-	private static final int STATE_LT = 2;
-
-	private static final int STATE_LT_B = 3;
-
-	private static final int STATE_LT_BR = 4;
-
-	private RoleFilter roleFilter;
-
-	private UAFilter uaFilter;
-
-	private ManagedForm mform;
-
-	private int verticalSpacing = 15;
-
-	private int bmargin = 5;
-
-	private String defaultContextHelpText;
-
-	private ArrayList pages;
-
-	private Action backAction;
-
-	private Action nextAction;
-
-	private CopyAction copyAction;
-
-	private Action openInfoCenterAction;
-
-	private OpenHrefAction openAction;
-
-	private OpenHrefAction openInHelpAction;
-
-	private OpenHrefAction bookmarkAction;
-
-	private Action showAllAction;
-
-	private ReusableHelpPartHistory history;
-
-	private HelpPartPage currentPage;
-
-	private int style;
-
-	private IMemento memento;
-
-	private boolean showDocumentsInPlace = true;
-
-	private int numberOfInPlaceHits = 8;
-
-	private IRunnableContext runnableContext;
-
-	private IToolBarManager toolBarManager;
-
-	private IStatusLineManager statusLineManager;
-
-	private IActionBars actionBars;
-	
-	private EngineDescriptorManager engineManager;
-
-	private abstract class BusyRunAction extends Action {
-		public BusyRunAction(String name) {
-			super(name);
-		}
-
-		public void run() {
-			BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-				public void run() {
-					busyRun();
-				}
-			});
-		}
-
-		protected abstract void busyRun();
-	}
-
-	private abstract class OpenHrefAction extends BusyRunAction {
-		private Object target;
-
-		public OpenHrefAction(String name) {
-			super(name);
-		}
-
-		public void setTarget(Object target) {
-			this.target = target;
-		}
-
-		public Object getTarget() {
-			return target;
-		}
-	}
-
-	private class CopyAction extends Action implements FocusListener,
-			SelectionListener {
-		private FormText target;
-
-		public CopyAction() {
-			super("copy"); //$NON-NLS-1$
-		}
-
-		public void hook(final FormText text) {
-			text.addFocusListener(this);
-		}
-
-		public void unhook(FormText text) {
-			text.removeFocusListener(this);
-			if (target == text)
-				setTarget(null);
-		}
-
-		public void focusGained(FocusEvent e) {
-			FormText text = (FormText) e.widget;
-			text.addSelectionListener(this);
-			setTarget(text);
-		}
-
-		public void focusLost(FocusEvent e) {
-			FormText text = (FormText) e.widget;
-			text.removeSelectionListener(this);
-			setTarget(null);
-		}
-
-		public void setTarget(FormText target) {
-			this.target = target;
-			updateState();
-		}
-
-		private void updateState() {
-			setEnabled(target != null && target.canCopy());
-		}
-
-		public void run() {
-			if (target != null)
-				target.copy();
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			FormText text = (FormText) e.widget;
-			if (text == target) {
-				updateState();
-			}
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-		}
-	}
-
-	private static class PartRec {
-		String id;
-
-		boolean flexible;
-
-		boolean grabVertical;
-
-		IHelpPart part;
-
-		PartRec(String id, boolean flexible, boolean grabVertical) {
-			this.id = id;
-			this.flexible = flexible;
-			this.grabVertical = grabVertical;
-		}
-	}
-
-	private class HelpPartPage implements IHelpPartPage {
-		private String id;
-
-		private String iconId;
-
-		Action pageAction;
-
-		private int vspacing = verticalSpacing;
-
-		private int horizontalMargin = 0;
-
-		private String text;
-
-		private SubActionBars bars;
-
-		private IToolBarManager toolBarManager;
-
-		protected ArrayList partRecs;
-
-		private int nflexible;
-
-		private Control focusControl;
-
-		public HelpPartPage(String id, String text) {
-			this.id = id;
-			this.text = text;
-			partRecs = new ArrayList();
-			if (ReusableHelpPart.this.actionBars != null) {
-				bars = new SubActionBars(ReusableHelpPart.this.actionBars);
-				toolBarManager = bars.getToolBarManager();
-			} else
-				toolBarManager = new SubToolBarManager(
-						ReusableHelpPart.this.toolBarManager);
-		}
-
-		public HelpPartPage(String id, String text, String iconId) {
-			this(id, text);
-			this.iconId = iconId;
-		}
-
-		public void dispose() {
-			if (bars != null) {
-				bars.dispose();
-				bars = null;
-				toolBarManager = null;
-			} else
-				((SubToolBarManager) toolBarManager).disposeManager();
-			partRecs = null;
-		}
-
-		public void setVerticalSpacing(int value) {
-			this.vspacing = value;
-		}
-
-		public int getVerticalSpacing() {
-			return vspacing;
-		}
-
-		public void setHorizontalMargin(int value) {
-			this.horizontalMargin = value;
-		}
-
-		public int getHorizontalMargin() {
-			return horizontalMargin;
-		}
-
-		public IToolBarManager getToolBarManager() {
-			return toolBarManager;
-		}
-
-		public String getId() {
-			return id;
-		}
-
-		public String getText() {
-			return text;
-		}
-
-		public String getIconId() {
-			return iconId;
-		}
-
-		public void addPart(String id, boolean flexible) {
-			addPart(id, flexible, false);
-		}
-
-		public void addPart(String id, boolean flexible, boolean grabVertical) {
-			partRecs.add(new PartRec(id, flexible, grabVertical));
-			if (flexible)
-				nflexible++;
-		}
-
-		public PartRec[] getParts() {
-			return (PartRec[]) partRecs.toArray(new PartRec[partRecs.size()]);
-		}
-
-		public int getNumberOfFlexibleParts() {
-			return nflexible;
-		}
-
-		public boolean canOpen() {
-			for (int i = 0; i < partRecs.size(); i++) {
-				PartRec rec = (PartRec) partRecs.get(i);
-
-				if (rec.id.equals(IHelpUIConstants.HV_BROWSER)) {
-					// Try to create a browser and watch
-					// for 'no-handle' error - it means
-					// that the embedded browser is not
-					// available
-					try {
-						createRecPart(rec);
-						rec.part.setVisible(false);
-					} catch (SWTError error) {
-						// cannot create a browser
-						return false;
-					}
-				}
-			}
-			return true;
-		}
-
-		public void stop() {
-			for (int i = 0; i < partRecs.size(); i++) {
-				PartRec rec = (PartRec) partRecs.get(i);
-				if (rec.part!=null)
-					rec.part.stop();
-			}
-		}
-		
-		public void saveState(IMemento memento) {
-			for (int i = 0; i < partRecs.size(); i++) {
-				PartRec rec = (PartRec) partRecs.get(i);
-				if (rec.part!=null)
-					rec.part.saveState(memento);
-			}
-		}
-
-		public void toggleRoleFilter() {
-			for (int i = 0; i < partRecs.size(); i++) {
-				PartRec rec = (PartRec) partRecs.get(i);
-				if (rec.part != null)
-					rec.part.toggleRoleFilter();
-			}
-		}
-
-		public void refilter() {
-			for (int i = 0; i < partRecs.size(); i++) {
-				PartRec rec = (PartRec) partRecs.get(i);
-				if (rec.part != null)
-					rec.part.refilter();
-			}
-		}
-
-		public void setVisible(boolean visible) {
-			if (bars != null)
-				bars.clearGlobalActionHandlers();
-			ArrayList tabList = new ArrayList();
-			for (int i = 0; i < partRecs.size(); i++) {
-				PartRec rec = (PartRec) partRecs.get(i);
-				if (visible) {
-					createRecPart(rec);
-					hookGlobalAction(ActionFactory.PRINT.getId(), rec.part);
-					hookGlobalAction(ActionFactory.COPY.getId(), rec.part);
-					hookGlobalAction(ActionFactory.DELETE.getId(), rec.part);
-					tabList.add(rec.part.getControl());
-				}
-				rec.part.setVisible(visible);
-			}
-			Composite parent = mform.getForm().getBody();
-			parent.setTabList((Control[]) tabList.toArray(new Control[tabList
-					.size()]));
-
-			if (actionBars != null) {
-				actionBars.clearGlobalActionHandlers();
-				if (visible) {
-					Map handlers = bars.getGlobalActionHandlers();
-					if (handlers != null) {
-						Set keys = handlers.keySet();
-						for (Iterator iter = keys.iterator(); iter.hasNext();) {
-							String key = (String) iter.next();
-							actionBars.setGlobalActionHandler(key,
-									(IAction) handlers.get(key));
-						}
-					}
-				}
-				if (pageAction != null)
-					pageAction.setChecked(visible);
-			}
-			if (bars != null) {
-				if (visible)
-					bars.activate();
-				else
-					bars.deactivate();
-				bars.updateActionBars();
-			} else {
-				((SubToolBarManager) toolBarManager).setVisible(visible);
-				ReusableHelpPart.this.toolBarManager.update(true);
-				getControl().getParent().layout();
-			}
-		}
-
-		private void hookGlobalAction(String id, IHelpPart part) {
-			if (bars == null)
-				return;
-			IAction action = part.getGlobalAction(id);
-			if (action != null)
-				bars.setGlobalActionHandler(id, action);
-		}
-
-		private void createRecPart(PartRec rec) throws SWTError {
-			if (rec.part == null) {
-				rec.part = createPart(rec.id, toolBarManager);
-				rec.part.getControl().addListener(SWT.Activate, new Listener() {
-					public void handleEvent(Event e) {
-						focusControl = e.widget.getDisplay().getFocusControl();
-					}
-				});
-			}
-		}
-
-		public IHelpPart findPart(String id) {
-			for (int i = 0; i < partRecs.size(); i++) {
-				PartRec rec = (PartRec) partRecs.get(i);
-				if (rec.id.equals(id))
-					return rec.part;
-			}
-			return null;
-		}
-
-		public void setFocus() {
-			// set focus on the control that had
-			// focus when this page was active
-			if (focusControl != null && focusControl.isDisposed())
-				focusControl = null;
-			if (focusControl!=null && focusControl.setFocus())
-				return;
-			if (partRecs.size() == 0)
-				return;
-			PartRec rec = (PartRec) partRecs.get(0);
-			rec.part.setFocus();
-		}
-	}
-
-	class HelpPartLayout extends Layout implements ILayoutExtension {
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-		}
-
-		protected Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			if (currentPage == null)
-				return new Point(0, 0);
-			PartRec[] parts = currentPage.getParts();
-			int hmargin = currentPage.getHorizontalMargin();
-			int innerWhint = wHint != SWT.DEFAULT ? wHint - 2 * hmargin : wHint;
-			Point result = new Point(0, 0);
-			for (int i = 0; i < parts.length; i++) {
-				PartRec partRec = parts[i];
-				if (!partRec.flexible) {
-					Control c = partRec.part.getControl();
-					Point size = c.computeSize(innerWhint, SWT.DEFAULT,
-							flushCache);
-					result.x = Math.max(result.x, size.x);
-					result.y += size.y;
-				}
-				if (i < parts.length - 1)
-					result.y += currentPage.getVerticalSpacing();
-			}
-			result.x += hmargin * 2;
-			result.y += bmargin;
-			return result;
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			if (currentPage == null)
-				return;
-
-			Rectangle clientArea = composite.getClientArea();
-
-			PartRec[] parts = currentPage.getParts();
-			int hmargin = currentPage.getHorizontalMargin();
-			int nfixedParts = parts.length
-					- currentPage.getNumberOfFlexibleParts();
-			Point[] fixedSizes = new Point[nfixedParts];
-			int fixedHeight = 0;
-			int index = 0;
-			int innerWidth = clientArea.width - hmargin * 2;
-			for (int i = 0; i < parts.length; i++) {
-				PartRec partRec = parts[i];
-				if (!partRec.flexible) {
-					Control c = partRec.part.getControl();
-					Point size = c.computeSize(innerWidth, SWT.DEFAULT, false);
-					fixedSizes[index++] = size;
-					if (!partRec.grabVertical)
-						fixedHeight += size.y;
-				}
-				if (i < parts.length - 1)
-					fixedHeight += currentPage.getVerticalSpacing();
-			}
-			fixedHeight += bmargin;
-			int flexHeight = clientArea.height - fixedHeight;
-			int flexPortion = 0;
-			if (currentPage.getNumberOfFlexibleParts() > 0)
-				flexPortion = flexHeight
-						/ currentPage.getNumberOfFlexibleParts();
-
-			int usedFlexHeight = 0;
-			int y = 0;
-			index = 0;
-			int nflexParts = 0;
-			for (int i = 0; i < parts.length; i++) {
-				PartRec partRec = parts[i];
-				Control c = partRec.part.getControl();
-
-				if (partRec.flexible) {
-					int height;
-					if (++nflexParts == currentPage.getNumberOfFlexibleParts())
-						height = flexHeight - usedFlexHeight;
-					else {
-						height = flexPortion;
-						usedFlexHeight += height;
-					}
-					c.setBounds(0, y, clientArea.width, height);
-				} else {
-					Point fixedSize = fixedSizes[index++];
-					if (fixedSize.y < flexHeight && partRec.grabVertical)
-						c.setBounds(hmargin, y, innerWidth, flexHeight);
-					else
-						c.setBounds(hmargin, y, innerWidth, fixedSize.y);
-				}
-				if (i < parts.length - 1)
-					y += c.getSize().y + currentPage.getVerticalSpacing();
-			}
-		}
-	}
-
-	class RoleFilter extends ViewerFilter {
-		public boolean select(Viewer viewer, Object parentElement,
-				Object element) {
-			IHelpResource res = (IHelpResource) element;
-			String href = res.getHref();
-			if (href == null)
-				return true;
-			return HelpBasePlugin.getActivitySupport().isEnabled(href);
-		}
-	}
-	
-	class UAFilter extends ViewerFilter {
-		public boolean select(Viewer viewer, Object parentElement,
-				Object element) {
-			return !UAContentFilter.isFiltered(element);
-		}
-	}
-
-	public ReusableHelpPart(IRunnableContext runnableContext) {
-		this(runnableContext, getDefaultStyle());
-	}
-
-	public ReusableHelpPart(IRunnableContext runnableContext, int style) {
-		this.runnableContext = runnableContext;
-		history = new ReusableHelpPartHistory();
-		this.style = style;
-		ensureHelpIndexed();
-		PlatformUI.getWorkbench().getActivitySupport().getActivityManager()
-				.addActivityManagerListener(this);
-	}
-
-	private void ensureHelpIndexed() {
-		// make sure we have the index but
-		// don't schedule the indexer job if one is
-		// already running
-		Job[] jobs = Platform.getJobManager().find(IndexerJob.FAMILY);
-		if (jobs.length == 0) {
-			IndexerJob indexerJob = new IndexerJob();
-			indexerJob.schedule();
-		}
-	}
-	
-	/**
-	 * Adds the given page to this part.
-	 * 
-	 * @param page the page to add
-	 */
-	public void addPage(IHelpPartPage page) {
-		pages.add(page);		
-	}
-	
-	/**
-	 * Adds the given part to this one. The part can then be used inside
-	 * any page and referred to by id.
-	 * 
-	 * @param id the part's unique id
-	 * @param part the part to add
-	 */
-	public void addPart(String id, IHelpPart part) {
-		part.init(this, id, memento);
-		mform.addPart(part);
-	}
-	
-	/**
-	 * Creates a new page for this part.
-	 * 
-	 * @param id the page's unique id
-	 * @param text the page's heading, or null for none
-	 * @param iconId the page's icon
-	 * @return the newly created page
-	 */
-	public IHelpPartPage createPage(String id, String text, String iconId) {
-		return new HelpPartPage(id, text, iconId);
-	}
-	
-	private void definePages() {
-		pages = new ArrayList();
-		// federated search page
-		HelpPartPage page = new HelpPartPage(HV_FSEARCH_PAGE,
-				Messages.ReusableHelpPart_searchPage_name,
-				IHelpUIConstants.IMAGE_HELP_SEARCH);
-		page.setVerticalSpacing(0);
-		page.addPart(HV_FSEARCH, false);
-		page.addPart(HV_FSEARCH_RESULT, true);
-		page.addPart(HV_SEE_ALSO, false);
-		pages.add(page);
-
-		// all topics page
-		page = new HelpPartPage(HV_ALL_TOPICS_PAGE,
-				Messages.ReusableHelpPart_allTopicsPage_name,
-				IHelpUIConstants.IMAGE_ALL_TOPICS); 
-		page.setVerticalSpacing(0);
-		page.setHorizontalMargin(0);
-		page.addPart(HV_TOPIC_TREE, true);
-		page.addPart(HV_SEE_ALSO, false);
-		pages.add(page);
-
-		// bookmarks page
-		page = new HelpPartPage(HV_BOOKMARKS_PAGE,
-				Messages.ReusableHelpPart_bookmarksPage_name, 
-				IHelpUIConstants.IMAGE_BOOKMARKS); 
-		page.setVerticalSpacing(0);
-		page.setHorizontalMargin(0);
-		page.addPart(HV_BOOKMARKS_TREE, true);
-		page.addPart(HV_SEE_ALSO, false);
-		pages.add(page);
-		// browser page
-		page = new HelpPartPage(HV_BROWSER_PAGE, null);
-		page.setVerticalSpacing(0);
-		page.addPart(HV_BROWSER, true);
-		page.addPart(HV_SEE_ALSO, false);
-		pages.add(page);
-
-		// context help page
-		page = new HelpPartPage(HV_CONTEXT_HELP_PAGE,
-				Messages.ReusableHelpPart_contextHelpPage_name,
-				IHelpUIConstants.IMAGE_RELATED_TOPICS); 
-		// page.addPart(HV_CONTEXT_HELP, false);
-		// page.addPart(HV_SEARCH_RESULT, false, true);
-		page.setVerticalSpacing(0);
-		page.setHorizontalMargin(0);
-		page.addPart(HV_RELATED_TOPICS, true);
-		page.addPart(HV_SEE_ALSO, false);
-		pages.add(page);
-
-		// index page
-		page = new HelpPartPage(HV_INDEX_PAGE,
-				Messages.ReusableHelpPart_indexPage_name,
-				IHelpUIConstants.IMAGE_INDEX); 
-		page.setVerticalSpacing(0);
-		page.addPart(HV_INDEX_TYPEIN, false);
-		page.addPart(HV_INDEX, true);
-		page.addPart(HV_SEE_ALSO, false);
-		pages.add(page);
-	}
-
-	public void init(IActionBars bars, IToolBarManager toolBarManager,
-			IStatusLineManager statusLineManager, IMemento memento) {
-		this.memento = memento;
-		this.actionBars = bars;
-		this.toolBarManager = toolBarManager;
-		this.statusLineManager = statusLineManager;
-		definePages();
-		makeActions();
-	}
-
-	private void makeActions() {
-		backAction = new Action("back") { //$NON-NLS-1$
-			public void run() {
-				doBack();
-			}
-		};
-		backAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_BACK));
-		backAction.setDisabledImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_BACK_DISABLED));
-		backAction.setEnabled(false);
-		backAction.setText(Messages.ReusableHelpPart_back_label); 
-		backAction.setToolTipText(Messages.ReusableHelpPart_back_tooltip); 
-		backAction.setId("back"); //$NON-NLS-1$
-
-		nextAction = new Action("next") { //$NON-NLS-1$
-			public void run() {
-				doNext();
-			}
-		};
-		nextAction.setText(Messages.ReusableHelpPart_forward_label); 
-		nextAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_FORWARD));
-		nextAction.setDisabledImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_FORWARD_DISABLED));
-		nextAction.setEnabled(false);
-		nextAction.setToolTipText(Messages.ReusableHelpPart_forward_tooltip); 
-		nextAction.setId("next"); //$NON-NLS-1$
-		toolBarManager.add(backAction);
-		toolBarManager.add(nextAction);
-
-		openInfoCenterAction = new BusyRunAction("openInfoCenter") { //$NON-NLS-1$
-			protected void busyRun() {
-				PlatformUI.getWorkbench().getHelpSystem().displayHelp();
-			}
-		};
-		openInfoCenterAction
-				.setText(Messages.ReusableHelpPart_openInfoCenterAction_label); 
-		openAction = new OpenHrefAction("open") { //$NON-NLS-1$
-			protected void busyRun() {
-				doOpen(getTarget(), getShowDocumentsInPlace());
-			}
-		};
-		openAction.setText(Messages.ReusableHelpPart_openAction_label); 
-		openInHelpAction = new OpenHrefAction("") {//$NON-NLS-1$
-			protected void busyRun() {
-				doOpenInHelp(getTarget());
-			}
-		};
-		openInHelpAction
-				.setText(Messages.ReusableHelpPart_openInHelpContentsAction_label); 
-		copyAction = new CopyAction();
-		copyAction.setText(Messages.ReusableHelpPart_copyAction_label); 
-		bookmarkAction = new OpenHrefAction("bookmark") { //$NON-NLS-1$
-			protected void busyRun() {
-				doBookmark(getTarget());
-			}
-		};
-		bookmarkAction.setText(Messages.ReusableHelpPart_bookmarkAction_label); 
-		bookmarkAction.setImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_ADD_BOOKMARK));
-		if (actionBars != null && actionBars.getMenuManager() != null)
-			contributeToDropDownMenu(actionBars.getMenuManager());
-		roleFilter = new RoleFilter();
-		uaFilter = new UAFilter();
-		if (HelpBasePlugin.getActivitySupport().isUserCanToggleFiltering()) {
-			showAllAction = new Action() {
-				public void run() {
-					BusyIndicator.showWhile(getControl().getDisplay(),
-							new Runnable() {
-								public void run() {
-									toggleShowAll(showAllAction.isChecked());
-								}
-							});
-				}
-			};
-			showAllAction.setImageDescriptor(HelpUIResources
-					.getImageDescriptor(IHelpUIConstants.IMAGE_SHOW_ALL));
-			showAllAction
-					.setToolTipText(Messages.AllTopicsPart_showAll_tooltip); 
-			toolBarManager.insertBefore("back", showAllAction); //$NON-NLS-1$
-			toolBarManager.insertBefore("back", new Separator()); //$NON-NLS-1$
-			showAllAction.setChecked(!HelpBasePlugin.getActivitySupport()
-					.isFilteringEnabled());
-		}
-	}
-
-	ViewerFilter getRoleFilter() {
-		return roleFilter;
-	}
-
-	ViewerFilter getUAFilter() {
-		return uaFilter;
-	}
-
-	public void activityManagerChanged(ActivityManagerEvent activityManagerEvent) {
-		for (int i = 0; i < pages.size(); i++) {
-			HelpPartPage page = (HelpPartPage) pages.get(i);
-			page.refilter();
-		}
-	}
-
-	boolean isFilteredByRoles() {
-		return HelpBasePlugin.getActivitySupport().isFilteringEnabled();
-	}
-
-	private void doBack() {
-		String id = getCurrentPageId();
-		if (id.equals(IHelpUIConstants.HV_BROWSER_PAGE)) {
-			// stop the browser
-			BrowserPart part = (BrowserPart) findPart(IHelpUIConstants.HV_BROWSER);
-			part.stop();
-		}
-		HistoryEntry entry = history.prev();
-		if (entry != null)
-			executeHistoryEntry(entry);
-	}
-
-	private void doNext() {
-		HistoryEntry entry = history.next();
-		if (entry != null)
-			executeHistoryEntry(entry);
-	}
-
-	private void executeHistoryEntry(HistoryEntry entry) {
-		history.setBlocked(true);
-		if (entry.getType() == HistoryEntry.PAGE) {
-			showPage(entry.getTarget(), true);
-			mform.setInput(entry.getData());
-		} else if (entry.getType() == HistoryEntry.URL) {
-			String relativeUrl = (String) entry.getData();
-			showURL(relativeUrl != null ? relativeUrl : entry.getTarget(), true);
-		}
-	}
-
-	public void createControl(Composite parent, FormToolkit toolkit) {
-		ScrolledForm form = toolkit.createScrolledForm(parent);
-		form.getBody().setLayout(new HelpPartLayout());
-		mform = new ManagedForm(toolkit, form);
-		mform.getForm().setDelayedReflow(false);
-		MenuManager manager = new MenuManager();
-		IMenuListener listener = new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				contextMenuAboutToShow(manager);
-			}
-		};
-		manager.setRemoveAllWhenShown(true);
-		manager.addMenuListener(listener);
-		Menu contextMenu = manager.createContextMenu(form.getForm());
-		form.getForm().setMenu(contextMenu);
-	}
-
-	public HelpPartPage showPage(String id) {
-		if (currentPage != null && currentPage.getId().equals(id))
-			return currentPage;
-		HelpPartPage page = findPage(id);
-		if (page != null) {
-			boolean success = flipPages(currentPage, page);
-			return success ? page : null;
-		}
-		return null;
-	}
-
-	public HelpPartPage showPage(String id, boolean setFocus) {
-		HelpPartPage page = this.showPage(id);
-		if (page != null && setFocus)
-			page.setFocus();
-		return page;
-	}
-
-	public void startSearch(String phrase) {
-		showPage(IHelpUIConstants.HV_FSEARCH_PAGE, true);
-		SearchPart part = (SearchPart) findPart(IHelpUIConstants.HV_FSEARCH);
-		if (part != null && phrase != null)
-			part.startSearch(phrase);
-	}
-
-	public void showDynamicHelp(IWorkbenchPart wpart, Control c) {
-		showPage(IHelpUIConstants.HV_CONTEXT_HELP_PAGE, true);
-		RelatedTopicsPart part = (RelatedTopicsPart) findPart(IHelpUIConstants.HV_RELATED_TOPICS);
-		if (part != null) {
-			part.handleActivation(c, wpart);
-		}
-	}
-
-	private boolean flipPages(HelpPartPage oldPage, HelpPartPage newPage) {
-		if (newPage.canOpen() == false)
-			return false;
-		if (oldPage != null) {
-			oldPage.stop();
-			oldPage.setVisible(false);
-		}
-		mform.getForm().setText(newPage.getText());
-		newPage.setVisible(true);
-		toolBarManager.update(true);
-		currentPage = newPage;
-		if (mform.isStale())
-			mform.refresh();
-		mform.getForm().getBody().layout(true);
-		mform.reflow(true);
-		if (newPage.getId().equals(IHelpUIConstants.HV_BROWSER_PAGE) == false) {
-			if (!history.isBlocked()) {
-				history.addEntry(new HistoryEntry(HistoryEntry.PAGE, newPage
-						.getId(), null));
-			}
-			updateNavigation();
-		}
-		return true;
-	}
-
-	/*
-	 * void addPageHistoryEntry(String id, Object data) { if
-	 * (!history.isBlocked()) { history.addEntry(new
-	 * HistoryEntry(HistoryEntry.PAGE, id, data)); } updateNavigation(); }
-	 */
-	public HelpPartPage getCurrentPage() {
-		return currentPage;
-	}
-
-	public String getCurrentPageId() {
-		return currentPage != null ? currentPage.getId() : null;
-	}
-
-	void browserChanged(String url) {
-		if (!history.isBlocked()) {
-			try {
-				history.addEntry(new HistoryEntry(HistoryEntry.URL, url,
-						BaseHelpSystem.unresolve(new URL(url))));
-			} catch (MalformedURLException e) {
-				// TODO handle this
-			}
-		}
-		updateNavigation();
-	}
-
-	private void updateNavigation() {
-		backAction.setEnabled(history.hasPrev());
-		nextAction.setEnabled(history.hasNext());
-		history.setBlocked(false);
-	}
-
-	public boolean isMonitoringContextHelp() {
-		return currentPage != null
-				&& currentPage.getId().equals(HV_CONTEXT_HELP_PAGE);
-	}
-
-	public Control getControl() {
-		return mform.getForm();
-	}
-
-	public ManagedForm getForm() {
-		return mform;
-	}
-
-	public void reflow() {
-		mform.getForm().getBody().layout();
-		mform.reflow(true);
-	}
-
-	public void dispose() {
-		for (int i = 0; i < pages.size(); i++) {
-			HelpPartPage page = (HelpPartPage) pages.get(i);
-			page.dispose();
-		}
-		pages = null;
-		if (mform != null) {
-			mform.dispose();
-			mform = null;
-		}
-		PlatformUI.getWorkbench().getActivitySupport().getActivityManager()
-				.removeActivityManagerListener(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.intro.impl.parts.IStandbyContentPart#setFocus()
-	 */
-	public void setFocus() {
-		if (currentPage != null)
-			currentPage.setFocus();
-		else
-			mform.setFocus();
-	}
-
-	public void update(IWorkbenchPart part, Control control) {
-		mform.setInput(new ContextHelpProviderInput(null, null, control, part));
-	}
-
-	public void update(IContextProvider provider, IContext context, IWorkbenchPart part,
-			Control control) {
-		mform.setInput(new ContextHelpProviderInput(provider, context, control, part));
-	}
-
-	public void update(IContext context, IWorkbenchPart part, Control control) {
-		mform.setInput(new ContextHelpProviderInput(null, context, control, part));
-	}
-
-	private IHelpPart createPart(String id, IToolBarManager tbm) {
-		IHelpPart part = null;
-		Composite parent = mform.getForm().getBody();
-
-		part = findPart(id);
-		if (part != null)
-			return part;
-
-		if (id.equals(HV_TOPIC_TREE)) {
-			part = new AllTopicsPart(parent, mform.getToolkit(), tbm);
-		} else if (id.equals(HV_CONTEXT_HELP)) {
-			part = new ContextHelpPart(parent, mform.getToolkit());
-			((ContextHelpPart) part)
-					.setDefaultText(getDefaultContextHelpText());
-		} else if (id.equals(HV_RELATED_TOPICS)) {
-			part = new RelatedTopicsPart(parent, mform.getToolkit());
-			((RelatedTopicsPart) part)
-					.setDefaultText(getDefaultContextHelpText());
-		} else if (id.equals(HV_BROWSER)) {
-			part = new BrowserPart(parent, mform.getToolkit(), tbm);
-		} else if (id.equals(HV_SEARCH_RESULT)) {
-			part = new DynamicHelpPart(parent, mform.getToolkit());
-		} else if (id.equals(HV_FSEARCH_RESULT)) {
-			part = new SearchResultsPart(parent, mform.getToolkit(), tbm);
-		} else if (id.equals(HV_SEE_ALSO)) {
-			part = new SeeAlsoPart(parent, mform.getToolkit());
-		} else if (id.equals(HV_FSEARCH)) {
-			part = new SearchPart(parent, mform.getToolkit());
-		} else if (id.equals(HV_BOOKMARKS_TREE)) {
-			part = new BookmarksPart(parent, mform.getToolkit(), tbm);
-		} else if (id.equals(HV_INDEX)) {
-			part = new IndexPart(parent, mform.getToolkit(), tbm);
-		} else if (id.equals(HV_INDEX_TYPEIN)) {
-			part = new IndexTypeinPart(parent, mform.getToolkit(), tbm);
-		}
-		if (part != null) {
-			mform.addPart(part);			
-			part.init(this, id, memento);
-		}
-		return part;
-	}
-
-	/**
-	 * @return Returns the runnableContext.
-	 */
-	public IRunnableContext getRunnableContext() {
-		return runnableContext;
-	}
-
-	public boolean isInWorkbenchWindow() {
-		return runnableContext instanceof IWorkbenchWindow;
-	}
-
-	/**
-	 * @return Returns the defaultContextHelpText.
-	 */
-	public String getDefaultContextHelpText() {
-		return defaultContextHelpText;
-	}
-
-	/**
-	 * @param defaultContextHelpText
-	 *            The defaultContextHelpText to set.
-	 */
-	public void setDefaultContextHelpText(String defaultContextHelpText) {
-		this.defaultContextHelpText = defaultContextHelpText;
-	}
-
-	public void showURL(final String url) {
-		BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-			public void run() {
-				showURL(url, getShowDocumentsInPlace());
-			}
-		});
-	}
-
-	public void showURL(String url, boolean replace) {
-		if (url == null)
-			return;
-		if (url.startsWith("nw:")) { //$NON-NLS-1$
-			replace = false;
-			url = url.substring(3);
-		}
-		else if (url.startsWith("open:")) { //$NON-NLS-1$
-			int col = url.indexOf(':');
-			int qloc = url.indexOf('?');
-			String engineId = url.substring(col+1, qloc);
-			EngineDescriptor desc = getEngineManager().findEngine(engineId);
-			if (desc==null)
-				return;
-			HashMap args = new HashMap();
-			HelpURLConnection.parseQuery(url.substring(qloc+1), args);
-			((ISearchEngine2)desc.getEngine()).open((String)args.get("id")); //$NON-NLS-1$
-			return;
-		}
-		if (replace) {
-			if (openInternalBrowser(url))
-				return;
-		}
-		showExternalURL(url);
-	}
-
-	private boolean openInternalBrowser(String url) {
-		Preferences pref = HelpBasePlugin.getDefault().getPluginPreferences();
-		boolean openInEditor = pref
-				.getBoolean(IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR);
-		if (openInEditor)
-			return showInWorkbenchBrowser(url, true);
-		showPage(IHelpUIConstants.HV_BROWSER_PAGE);
-		BrowserPart bpart = (BrowserPart) findPart(IHelpUIConstants.HV_BROWSER);
-		if (bpart != null) {
-			bpart.showURL(BaseHelpSystem
-					.resolve(url, "/help/ntopic").toString()); //$NON-NLS-1$
-			return true;
-		}
-		return false;
-	}
-
-	private boolean showInWorkbenchBrowser(String url, boolean onlyInternal) {
-		IWorkbenchBrowserSupport support = PlatformUI.getWorkbench()
-				.getBrowserSupport();
-		if (!onlyInternal || support.isInternalWebBrowserAvailable()) {
-			try {
-				IWebBrowser browser = support
-						.createBrowser(
-								IWorkbenchBrowserSupport.AS_EDITOR
-										| IWorkbenchBrowserSupport.NAVIGATION_BAR
-										| IWorkbenchBrowserSupport.STATUS,
-								"org.eclipse.help.ui", Messages.ReusableHelpPart_internalBrowserTitle, url); //$NON-NLS-1$
-				browser.openURL(BaseHelpSystem.resolve(url, "/help/nftopic")); //$NON-NLS-1$
-				return true;
-			} catch (PartInitException e) {
-				HelpUIPlugin.logError(
-						Messages.ReusableHelpPart_internalWebBrowserError, e);
-			}
-		}
-		return false;
-	}
-
-	public void showExternalURL(String url) {
-		if (isHelpResource(url))
-			PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(url);
-		else {
-			try {
-				String aurl = BaseHelpSystem.resolve(url, true).toString();
-				if (aurl.endsWith("&noframes=true") || aurl.endsWith("?noframes=true")) //$NON-NLS-1$ //$NON-NLS-2$
-					aurl = aurl.substring(0, aurl.length() - 14);
-				showInWorkbenchBrowser(aurl, false);
-			} catch (Exception e) {
-				HelpUIPlugin.logError("Error opening browser", e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	public IHelpPart findPart(String id) {
-		if (mform == null)
-			return null;
-		IFormPart[] parts = mform.getParts();
-		for (int i = 0; i < parts.length; i++) {
-			IHelpPart part = (IHelpPart) parts[i];
-			if (part.getId().equals(id))
-				return part;
-		}
-		return null;
-	}
-
-	public boolean isHelpResource(String url) {
-		if (url == null || url.indexOf("://") == -1) //$NON-NLS-1$
-			return true;
-		return false;
-	}
-
-	private void contextMenuAboutToShow(IMenuManager manager) {
-		IFormPart[] parts = mform.getParts();
-		boolean hasContext = false;
-		Control focusControl = getControl().getDisplay().getFocusControl();
-		for (int i = 0; i < parts.length; i++) {
-			IHelpPart part = (IHelpPart) parts[i];
-			if (part.hasFocusControl(focusControl)) {
-				hasContext = part.fillContextMenu(manager);
-				break;
-			}
-		}
-		if (hasContext)
-			manager.add(new Separator());
-		manager.add(backAction);
-		manager.add(nextAction);
-		manager.add(new Separator());
-		manager.add(openInfoCenterAction);
-	}
-
-	private void contributeToDropDownMenu(IMenuManager manager) {
-		addPageAction(manager, IHelpUIConstants.HV_CONTEXT_HELP_PAGE);
-		addPageAction(manager, IHelpUIConstants.HV_ALL_TOPICS_PAGE);
-		if (HelpPlugin.getIndexManager().isIndexContributed()) {
-			addPageAction(manager, IHelpUIConstants.HV_INDEX_PAGE);
-		}
-		addPageAction(manager, IHelpUIConstants.HV_FSEARCH_PAGE);
-		addPageAction(manager, IHelpUIConstants.HV_BOOKMARKS_PAGE);
-	}
-
-	private void addPageAction(IMenuManager manager, final String pageId) {
-		// String cid = getCurrentPageId();
-		HelpPartPage page = findPage(pageId);
-		if (page == null)
-			return;
-		Action action = new Action(pageId, IAction.AS_CHECK_BOX) {
-			public void run() {
-				BusyIndicator.showWhile(mform.getForm().getDisplay(),
-						new Runnable() {
-							public void run() {
-								showPage(pageId);
-							}
-						});
-			}
-		};
-		action.setText(page.getText());
-		String iconId = page.getIconId();
-		if (iconId != null)
-			action.setImageDescriptor(HelpUIResources
-					.getImageDescriptor(iconId));
-		manager.add(action);
-		page.pageAction = action;
-	}
-
-	private HelpPartPage findPage(String id) {
-		for (int i = 0; i < pages.size(); i++) {
-			HelpPartPage page = (HelpPartPage) pages.get(i);
-			if (page.getId().equals(id)) {
-				return page;
-			}
-		}
-		return null;
-	}
-
-	boolean fillSelectionProviderMenu(ISelectionProvider provider,
-			IMenuManager manager, boolean addBookmarks) {
-		boolean value = fillOpenActions(provider, manager);
-		if (value && addBookmarks) {
-			manager.add(new Separator());
-			bookmarkAction.setTarget(provider);
-			manager.add(bookmarkAction);
-		}
-		return true;
-	}
-
-	private boolean fillOpenActions(Object target, IMenuManager manager) {
-		String href = getHref(target);
-		if (href != null && !href.startsWith("__")) { //$NON-NLS-1$
-			openAction.setTarget(target);
-			openInHelpAction.setTarget(target);
-			manager.add(openAction);
-			if (!href.startsWith("nw:")) //$NON-NLS-1$
-				manager.add(openInHelpAction);
-			return true;
-		}
-		return false;
-	}
-
-	void hookFormText(FormText text) {
-		copyAction.hook(text);
-	}
-
-	void unhookFormText(FormText text) {
-		copyAction.unhook(text);
-	}
-
-	boolean fillFormContextMenu(FormText text, IMenuManager manager) {
-		if (fillOpenActions(text, manager))
-			manager.add(new Separator());
-		manager.add(copyAction);
-		copyAction.setTarget(text);
-		if (text.getSelectedLinkHref() != null) {
-			manager.add(new Separator());
-			manager.add(bookmarkAction);
-			bookmarkAction.setTarget(text);
-		}
-		return true;
-	}
-
-	IAction getCopyAction() {
-		return copyAction;
-	}
-
-	private String getHref(Object target) {
-		if (target instanceof ISelectionProvider) {
-			ISelectionProvider provider = (ISelectionProvider) target;
-			IStructuredSelection ssel = (IStructuredSelection) provider
-					.getSelection();
-			Object obj = ssel.getFirstElement();
-			if (obj instanceof IToc)
-				return null;
-			if (obj instanceof IHelpResource) {
-				IHelpResource res = (IHelpResource) obj;
-				return res.getHref();
-			}
-			if (obj instanceof IIndexEntry) {
-				/*
-				 * if index entry has single topic
-				 * it represents the topic by itself
-				 */
-				IHelpResource[] topics = ((IIndexEntry) obj).getTopics();
-				if (topics.length == 1)
-					return topics[0].getHref();
-				return null;
-			}
-		} else if (target instanceof FormText) {
-			FormText text = (FormText) target;
-			Object href = text.getSelectedLinkHref();
-			if (href != null)
-				return href.toString();
-		}
-		return null;
-	}
-
-	private IHelpResource getResource(Object target) {
-		if (target instanceof ISelectionProvider) {
-			ISelectionProvider provider = (ISelectionProvider) target;
-			IStructuredSelection ssel = (IStructuredSelection) provider
-					.getSelection();
-			Object obj = ssel.getFirstElement();
-			if (obj instanceof ITopic) {
-				return (ITopic) obj;
-			} else if (obj instanceof IIndexEntry) {
-				/*
-				 * if index entry has single topic
-				 * it represents the topic by itself
-				 */
-				IIndexEntry entry = (IIndexEntry) obj;
-				IHelpResource[] topics = entry.getTopics();
-				if (topics.length == 1) {
-					final String href = topics[0].getHref();
-					final String label = entry.getKeyword();
-					return new IHelpResource() {
-						public String getHref() {
-							return href;
-						}
-
-						public String getLabel() {
-							return label;
-						}
-					};
-				}
-				return null;
-			} else if (obj instanceof IHelpResource) {
-				return (IHelpResource) obj;
-			}
-		} else if (target instanceof FormText) {
-			FormText text = (FormText) target;
-			final Object href = text.getSelectedLinkHref();
-			final String label = text.getSelectedLinkText();
-			if (href != null) {
-				return new IHelpResource() {
-					public String getHref() {
-						return href.toString();
-					}
-
-					public String getLabel() {
-						return label;
-					}
-				};
-			}
-		}
-		return null;
-	}
-
-	private void doBookmark(Object target) {
-		IHelpResource res = getResource(target);
-		if (res != null) {
-			BaseHelpSystem.getBookmarkManager().addBookmark(res.getHref(),
-					res.getLabel());
-		}
-	}
-
-	/*
-	 * private void doOpen(Object target) { String href = getHref(target); if
-	 * (href != null) showURL(href, getShowDocumentsInPlace()); }
-	 */
-
-	private void doOpen(Object target, boolean replace) {
-		String href = getHref(target);
-		if (href != null)
-			showURL(href, replace);
-	}
-
-	private void doOpenInHelp(Object target) {
-		String href = getHref(target);
-		if (href != null)
-			// WorkbenchHelp.displayHelpResource(href);
-			showURL(href, false);
-	}
-
-	/**
-	 * @return Returns the statusLineManager.
-	 */
-	public IStatusLineManager getStatusLineManager() {
-		return statusLineManager;
-	}
-
-	/**
-	 * @return Returns the showDocumentsInPlace.
-	 */
-	public boolean getShowDocumentsInPlace() {
-		return showDocumentsInPlace;
-	}
-
-	/**
-	 * @param showDocumentsInPlace
-	 *            The showDocumentsInPlace to set.
-	 */
-	public void setShowDocumentsInPlace(boolean showDocumentsInPlace) {
-		this.showDocumentsInPlace = showDocumentsInPlace;
-	}
-
-	/**
-	 * @return Returns the style.
-	 */
-	public int getStyle() {
-		return style;
-	}
-
-	public int getNumberOfInPlaceHits() {
-		return numberOfInPlaceHits;
-	}
-
-	public void setNumberOfInPlaceHits(int numberOfInPlaceHits) {
-		this.numberOfInPlaceHits = numberOfInPlaceHits;
-	}
-
-	void handleLinkEntered(HyperlinkEvent e) {
-		IStatusLineManager mng = getRoot(getStatusLineManager());
-		if (mng != null) {
-			String label = e.getLabel();
-			String href = (String) e.getHref();
-			if (href != null && href.startsWith("__")) //$NON-NLS-1$
-				href = null;
-			if (href != null) {
-				try {
-					href = URLDecoder.decode(href, "UTF-8"); //$NON-NLS-1$
-				} catch (UnsupportedEncodingException ex) {
-				}
-				href = href.replaceAll("&", "&&"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			if (label != null && href != null) {
-				String message = NLS.bind(Messages.ReusableHelpPart_status,
-						label, href);
-				mng.setMessage(message);
-			} else if (label != null)
-				mng.setMessage(label);
-			else
-				mng.setMessage(href);
-		}
-	}
-
-	private IStatusLineManager getRoot(IStatusLineManager mng) {
-		while (mng != null) {
-			if (mng instanceof SubStatusLineManager) {
-				SubStatusLineManager smng = (SubStatusLineManager) mng;
-				IContributionManager parent = smng.getParent();
-				if (parent == null)
-					return smng;
-				if (!(parent instanceof IStatusLineManager))
-					return smng;
-				mng = (IStatusLineManager) parent;
-			} else
-				break;
-		}
-		return mng;
-	}
-
-	void handleLinkExited(HyperlinkEvent e) {
-		IStatusLineManager mng = getRoot(getStatusLineManager());
-		if (mng != null)
-			mng.setMessage(null);
-	}
-
-	String escapeSpecialChars(String value) {
-		return escapeSpecialChars(value, false);
-	}
-
-	String escapeSpecialChars(String value, boolean leaveBold) {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < value.length(); i++) {
-			char c = value.charAt(i);
-
-			switch (c) {
-			case '&':
-				buf.append("&amp;"); //$NON-NLS-1$
-				break;
-			case '<':
-				if (leaveBold) {
-					int length = value.length();
-					if (i +  6 < length) {
-						String tag = value.substring(i, i+7);
-						if (tag.equalsIgnoreCase("</code>")) { //$NON-NLS-1$
-							buf.append("</span>"); //$NON-NLS-1$
-							i+= 6;
-							continue;
-						}
-					}
-					if (i +  5 < length) {
-						String tag = value.substring(i, i+6);
-						if (tag.equalsIgnoreCase("<code>")) { //$NON-NLS-1$
-							buf.append("<span font=\"code\">"); //$NON-NLS-1$
-							i+= 5;
-							continue;
-						}
-					}
-					if (i + 3 < length) {
-						String tag = value.substring(i, i + 4);
-						if (tag.equalsIgnoreCase("</b>")) { //$NON-NLS-1$
-							buf.append(tag);
-							i += 3;
-							continue;
-						}
-						if (tag.equalsIgnoreCase("<br>")) { //$NON-NLS-1$
-							buf.append("<br/>"); //$NON-NLS-1$
-							i+= 3;
-							continue;
-						}					
-					}
-					if (i + 2 < length) {
-						String tag = value.substring(i, i + 3);
-						if (tag.equalsIgnoreCase("<b>")) { //$NON-NLS-1$
-							buf.append(tag);
-							i += 2;
-							continue;
-						}
-					}
-				}
-				buf.append("&lt;"); //$NON-NLS-1$
-				break;
-			case '>':
-				buf.append("&gt;"); //$NON-NLS-1$
-				break;
-			case '\'':
-				buf.append("&apos;"); //$NON-NLS-1$
-				break;
-			case '\"':
-				buf.append("&quot;"); //$NON-NLS-1$
-				break;
-			case 160:
-				buf.append(" "); //$NON-NLS-1$
-				break;
-			default:
-				buf.append(c);
-				break;
-			}
-		}
-		return buf.toString();
-	}
-
-	private void toggleShowAll(boolean checked) {
-		if (checked) {
-			IPreferenceStore store = HelpUIPlugin.getDefault()
-					.getPreferenceStore();
-			String value = store.getString(PROMPT_KEY);
-			if (value.length() == 0) {
-				MessageDialogWithToggle dialog = MessageDialogWithToggle
-						.openOkCancelConfirm(null,
-								Messages.AskShowAll_dialogTitle,
-								getShowAllMessage(),
-								Messages.AskShowAll_toggleMessage, false,
-								store, PROMPT_KEY);
-				if (dialog.getReturnCode() != MessageDialogWithToggle.OK) {
-					showAllAction.setChecked(false);
-					return;
-				}
-			}
-		}
-		HelpBasePlugin.getActivitySupport().setFilteringEnabled(!checked);
-		for (int i = 0; i < pages.size(); i++) {
-			HelpPartPage page = (HelpPartPage) pages.get(i);
-			page.toggleRoleFilter();
-		}
-	}
-	
-	public void saveState(IMemento memento) {
-		for (int i = 0; i < pages.size(); i++) {
-			HelpPartPage page = (HelpPartPage) pages.get(i);
-			page.saveState(memento);
-		}
-	}
-
-	private String getShowAllMessage() {
-		String message = HelpBasePlugin.getActivitySupport()
-				.getShowAllMessage();
-		if (message == null)
-			return Messages.AskShowAll_message;
-		StringBuffer buff = new StringBuffer();
-		int state = STATE_START;
-
-		for (int i = 0; i < message.length(); i++) {
-			char c = message.charAt(i);
-			switch (state) {
-			case STATE_START:
-				if (c == '<')
-					state = STATE_LT;
-				else
-					buff.append(c);
-				break;
-			case STATE_LT:
-				if (c == 'b' || c == 'B')
-					state = STATE_LT_B;
-				break;
-			case STATE_LT_B:
-				if (c == 'r' || c == 'R')
-					state = STATE_LT_BR;
-				break;
-			case STATE_LT_BR:
-				if (c == '>') {
-					buff.append('\n');
-				}
-				state = STATE_START;
-				break;
-			default:
-				buff.append(c);
-			}
-		}
-		return buff.toString();
-	}
-	
-	EngineDescriptorManager getEngineManager() {
-		if (engineManager==null) {
-			engineManager = new EngineDescriptorManager();
-		}
-		return engineManager;
-	}
-
-	static public int getDefaultStyle() {
-		int style = ALL_TOPICS | CONTEXT_HELP | SEARCH | BOOKMARKS;
-
-		if (HelpPlugin.getIndexManager().isIndexContributed())
-			style |= INDEX;
-
-		return style; 
-	}
-}
-
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPartHistory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPartHistory.java
deleted file mode 100644
index 0c61273..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPartHistory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.LinkedList;
-
-public class ReusableHelpPartHistory {
-	private static final int CAPACITY = 50;
-	private LinkedList queue;
-	private int cursor = -1;
-	private boolean blocked;
-
-	public ReusableHelpPartHistory() {
-		queue = new LinkedList();
-	}
-
-	public void addEntry(HistoryEntry entry) {
-		if (cursor!= -1) {
-			// If we are adding a new entry while 
-			// the cursor is not at the end, discard
-			// all the entries after the cursor.
-			int extra = queue.size()-1 -cursor;
-			if (extra>0) {
-				for (int i=extra; i>0; i--) {
-					queue.removeLast();
-				}
-			}
-		}
-		queue.add(entry);
-		if (queue.size()>CAPACITY)
-			queue.removeFirst();
-		cursor = queue.size()-1;
-	}
-
-	public boolean hasNext() {
-		return cursor != -1 && cursor < queue.size()-1;
-	}
-
-	public boolean hasPrev() {
-		return cursor != -1 && cursor > 0;
-	}
-	
-	public HistoryEntry getNext() {
-		return hasNext()?(HistoryEntry)queue.get(cursor+1):null;
-	}
-	
-	public HistoryEntry getPrev() {
-		return hasPrev() ? (HistoryEntry)queue.get(cursor-1):null;
-	}
-
-	public HistoryEntry next() {
-		if (hasNext()) {
-			return (HistoryEntry)queue.get(++cursor);
-		}
-		return null;
-	}
-	public HistoryEntry prev() {
-		if (hasPrev()) {
-			return (HistoryEntry)queue.get(--cursor);
-		}
-		return null;
-	}
-	/**
-	 * @return Returns the blocked.
-	 */
-	public boolean isBlocked() {
-		return blocked;
-	}
-	/**
-	 * @param blocked The blocked to set.
-	 */
-	public void setBlocked(boolean blocked) {
-		this.blocked = blocked;
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceDialog.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceDialog.java
deleted file mode 100644
index e2bec2c..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceDialog.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.ArrayList;
-
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-public class ScopePreferenceDialog extends PreferenceDialog {
-	private EngineDescriptorManager descManager;
-	private ArrayList pendingOperations;
-	
-	class PendingOperation {
-		int action;
-		EngineDescriptor desc;
-		public PendingOperation(int action, EngineDescriptor desc) {
-			this.action = action;
-			this.desc = desc;
-		}
-	}
-	/**
-	 * The Add button id.
-	 */
-	private final static int NEW_ID = IDialogConstants.CLIENT_ID + 1;
-
-	/**
-	 * The Remove button id.
-	 */
-	private final static int DELETE_ID = IDialogConstants.CLIENT_ID + 2;
-	
-	public ScopePreferenceDialog(Shell parentShell, PreferenceManager manager, EngineDescriptorManager descManager, boolean editable) {
-		super(parentShell, manager);
-		this.descManager = descManager;
-	}
-
-	protected Control createTreeAreaContents(Composite parent) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		Composite container = new Composite(parent, SWT.NULL);
-		container.setLayout(layout);
-		Control treeControl = super.createTreeAreaContents(container);
-		GridData treeGd = (GridData)treeControl.getLayoutData();
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.horizontalSpan = 2;
-		treeControl.setLayoutData(gd);
-
-		Button lbutton = createButton(container, NEW_ID, Messages.ScopePreferenceDialog_new, false); 
-		gd = (GridData)lbutton.getLayoutData();
-		gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-		Button rbutton = createButton(container, DELETE_ID, Messages.ScopePreferenceDialog_delete, false); 
-		rbutton.setEnabled(false);
-		gd = (GridData)rbutton.getLayoutData();
-		gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-		layout.numColumns = 2;
-		container.setLayoutData(treeGd);
-		Point size = container.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		treeGd.widthHint = Math.max(treeGd.widthHint, size.x);
-		return container;
-	}
-	
-	protected TreeViewer createTreeViewer(Composite parent) {
-		TreeViewer viewer = super.createTreeViewer(parent);
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection ssel = (IStructuredSelection)event.getSelection();
-				Object obj = ssel.getFirstElement();
-				treeSelectionChanged(obj);
-			}
-		});
-		return viewer;
-	}
-	
-	protected void buttonPressed(int buttonId) {
-		switch (buttonId) {
-		case NEW_ID:
-			doNew();
-			break;
-		case DELETE_ID:
-			doDelete();
-			break;
-		default:
-			super.buttonPressed(buttonId);
-		}
-	}
-	
-	private void treeSelectionChanged(Object obj) {
-		boolean removable = false;
-		if (obj instanceof ScopePreferenceManager.EnginePreferenceNode) {
-			ScopePreferenceManager.EnginePreferenceNode node = (ScopePreferenceManager.EnginePreferenceNode)obj;
-			EngineDescriptor desc = node.getDescriptor();
-			removable = desc.isUserDefined();
-		}
-		getButton(DELETE_ID).setEnabled(removable);
-	}
-	
-	private void doNew() {
-		NewEngineWizard wizard = new NewEngineWizard(descManager.getEngineTypes());
-		WizardDialog dialog = new WizardDialog(getShell(), wizard);
-		dialog.create();
-		dialog.getShell().setSize(400, 500);
-		if (dialog.open()==WizardDialog.OK) {
-			EngineTypeDescriptor etdesc = wizard.getSelectedEngineType();
-			EngineDescriptor desc = new EngineDescriptor(descManager);
-			desc.setEngineType(etdesc);
-			desc.setUserDefined(true);
-			desc.setId(descManager.computeNewId(etdesc.getId()));
-			ScopePreferenceManager mng = (ScopePreferenceManager)getPreferenceManager();
-			IPreferenceNode node = mng.addNode(desc);
-			getTreeViewer().refresh();
-			getTreeViewer().setSelection(new StructuredSelection(node));
-			scheduleOperation(NEW_ID, desc);
-		}
-	}
-
-	private void doDelete() {
-		Object obj = ((IStructuredSelection)getTreeViewer().getSelection()).getFirstElement();
-		if (obj instanceof ScopePreferenceManager.EnginePreferenceNode) {
-			ScopePreferenceManager.EnginePreferenceNode node = (ScopePreferenceManager.EnginePreferenceNode)obj;
-			EngineDescriptor desc = node.getDescriptor();
-			//ScopePreferenceManager mng = (ScopePreferenceManager)getPreferenceManager();
-			getTreeViewer().remove(node);
-			scheduleOperation(DELETE_ID, desc);
-		}
-	}
-	
-	private void scheduleOperation(int action, EngineDescriptor desc) {
-		if (pendingOperations==null)
-			pendingOperations = new ArrayList();
-		pendingOperations.add(new PendingOperation(action, desc));
-	}
-	protected void okPressed() {
-		super.okPressed();
-		if (pendingOperations!=null) {
-			// process pending operations
-			for (int i=0; i<pendingOperations.size(); i++) {
-				PendingOperation op = (PendingOperation)pendingOperations.get(i);
-				if (op.action==NEW_ID)
-					descManager.add(op.desc);
-				else
-					descManager.remove(op.desc);
-			}
-			pendingOperations = null;
-		}
-		descManager.save();
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index b8e45dd..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopePreferenceManager.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.jface.preference.*;
-
-public class ScopePreferenceManager extends PreferenceManager implements IHelpUIConstants {
-	private ScopeSet set;	
-	class SubpagePreferenceNode extends PreferenceNode {
-		private IConfigurationElement config;
-	
-		public SubpagePreferenceNode(String id, String label,
-				IConfigurationElement config) {
-			super(id, label, null, null);
-			this.config = config;
-		}
-	    public void createPage() {
-	    	try {
-	    		Object obj = config.createExecutableExtension(IHelpUIConstants.ATT_CLASS);
-	    		IPreferencePage page = (IPreferencePage)obj;
-	    		setPage(page);
-	    		page.setTitle(getLabelText());
-	    	}
-	    	catch (CoreException e) {
-	    		// TODO handle this
-	    	}
-	    }
-	}
-	class EnginePreferenceNode extends PreferenceNode {
-		private EngineDescriptor desc;
-		
-		public EnginePreferenceNode(EngineDescriptor desc) {
-			super(desc.getId(), desc.getLabel(), desc.getImageDescriptor(), null);
-			this.desc = desc;
-		}
-		public EngineDescriptor getDescriptor() {
-			return desc;
-		}
-	    public void createPage() {
-	    	IPreferencePage page = desc.createRootPage(set.getName());
-	    	setPage(page);
-	    	page.setTitle(desc.getLabel());
-	    	page.setImageDescriptor(desc.getImageDescriptor());
-	    	page.setDescription(desc.getDescription());
-	    }
-	}
-	/**
-	 * 
-	 */
-	public ScopePreferenceManager(EngineDescriptorManager descManager, ScopeSet set) {
-		this.set = set;		
-		load(descManager.getDescriptors());
-	}
-
-	private void load(EngineDescriptor [] descriptors) {
-		for (int i=0; i<descriptors.length; i++) {
-			EngineDescriptor desc = descriptors[i];
-			addNode(desc);
-			IConfigurationElement [] pages = desc.getPages();
-			for (int j=0; j<pages.length; j++) {
-				String category = pages[i].getAttribute(ATT_CATEGORY);
-				addNode(category, pages[i].getAttribute(ATT_ID), 
-						pages[i].getAttribute(ATT_LABEL), 
-						pages[i]);
-			}
-		}
-	}
-	public IPreferenceNode addNode(EngineDescriptor desc) {
-		PreferenceNode node = new EnginePreferenceNode(desc);
-		addToRoot(node);
-		return node;
-	}
-	private IPreferenceNode addNode(String category, String id, String name, IConfigurationElement config) {
-		IPreferenceNode parent = find(category);
-		PreferenceNode node = new SubpagePreferenceNode(id, name, config);
-		if (parent!=null)
-			parent.add(node);
-		return node;
-	}	
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSet.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSet.java
deleted file mode 100644
index a6e8b0c..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSet.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.io.*;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.preference.*;
-
-/**
- * Federated search scope.
- */
-public class ScopeSet {
-	public static final String SCOPE_DIR_NAME = "scope_sets"; //$NON-NLS-1$
-	private static final String KEY_DEFAULT = "__DEFAULT__"; //$NON-NLS-1$
-	public static final String EXT = ".pref"; //$NON-NLS-1$
-	private String name;
-	private PreferenceStore preferenceStore;
-	private boolean needsSaving;
-	private int defaultSet = -1;
-	
-	public ScopeSet() {
-		this(Messages.ScopeSet_default);
-		defaultSet = 1;
-	}
-	
-	public ScopeSet(String name) {
-		this.needsSaving = true;
-		this.name = name;
-	}
-	
-	public boolean isEditable() {
-		return !isDefault();
-	}
-	
-	public boolean isDefault() {
-		if (defaultSet==1)
-			return true;
-		return getPreferenceStore().getBoolean(KEY_DEFAULT);
-	}
-	
-	public boolean isImplicit() {
-		return false;
-	}
-
-	public ScopeSet(ScopeSet set) {
-		this(set.getName()+"_new"); //$NON-NLS-1$
-		copyFrom(set);
-	}
-	
-	public void copyFrom(ScopeSet set) {
-		copy((PreferenceStore)set.getPreferenceStore());
-	}
-	
-	public void dispose() {
-		File file = new File(getFileName(name));
-		if (file.exists())
-			file.delete();
-	}
-
-	public IPreferenceStore getPreferenceStore() {
-		if (preferenceStore==null) {
-			preferenceStore = new PreferenceStore(getFileName(this.name));
-			try {
-				File file = new File(getFileName(this.name));
-				if (file.exists()) {
-					preferenceStore.load();
-				}
-			}
-			catch (IOException e) {
-				String message = Messages.bind(Messages.ScopeSet_errorLoading, name);
-				HelpUIPlugin.logError(message, e);
-			}
-		}
-		return preferenceStore;
-	}
-	
-	protected String encodeFileName(String name) {
-		return name;
-	}
-
-	private String getFileName(String name) {
-		IPath location = HelpUIPlugin.getDefault().getStateLocation();
-		location = location.append(SCOPE_DIR_NAME);
-		location = location.append(encodeFileName(name)+getExtension()); 
-		return location.toOSString();
-	}
-	
-	protected String getExtension() {
-		return EXT;
-	}
-
-	private void copy(PreferenceStore store) {
-		try {
-			File file = File.createTempFile("sset", null); //$NON-NLS-1$
-			FileOutputStream fos = new FileOutputStream(file);
-			store.save(fos, ""); //$NON-NLS-1$
-			fos.close();
-			FileInputStream fis = new FileInputStream(file);
-			getPreferenceStore();
-			preferenceStore.load(fis);
-			//when we clone the defult set, we should
-			//clear the default marker
-			preferenceStore.setValue(KEY_DEFAULT, false);
-			fis.close();
-		}
-		catch (IOException e) {
-		}
-	}
-	/**
-	 * @return Returns the name.
-	 */
-	public String getName() {
-		return name;
-	}
-	/**
-	 * @param name The name to set.
-	 */
-	public void setName(String name) {
-		String oldFileName = getFileName(this.name);
-		File oldFile = new File(oldFileName);
-		if (oldFile.exists()) {
-			// store under the old name already exists
-			if (preferenceStore==null) {
-				// just rename the file
-				oldFile.renameTo(new File(getFileName(name)));
-			}
-			else {
-				// remove the old file, set the new file name,
-				// then save to create the new file
-				oldFile.delete();
-				preferenceStore.setFilename(getFileName(name));
-				try {
-					preferenceStore.save();
-				}
-				catch (IOException e) {
-					String message = Messages.bind(Messages.ScopeSet_errorSaving, name);
-					HelpUIPlugin.logError(message, e);
-				}
-			}
-		}
-		this.name = name;
-	}
-
-	public void save() {
-		getPreferenceStore();
-		if (preferenceStore.needsSaving() || needsSaving) {
-			try {
-				if (defaultSet != -1)
-					preferenceStore.setValue(KEY_DEFAULT, defaultSet>0);
-				preferenceStore.save();
-				needsSaving = false;
-			}
-			catch (IOException e) {
-				String message = Messages.bind(Messages.ScopeSet_errorSaving, name);
-				HelpUIPlugin.logError(message, e);
-			}
-		}
-	}
-
-	public boolean getEngineEnabled(EngineDescriptor desc) {
-		IPreferenceStore store = getPreferenceStore();
-		String key = getMasterKey(desc.getId());
-		if (store.contains(key))
-			return store.getBoolean(key);
-		store.setValue(key, desc.isEnabled());
-		return desc.isEnabled();
-	}
-	public void setEngineEnabled(EngineDescriptor desc, boolean value) {
-		IPreferenceStore store = getPreferenceStore();
-		String key = getMasterKey(desc.getId());
-		store.setValue(key, value);
-	}
-	public static String getMasterKey(String id) {
-		return id + ".master"; //$NON-NLS-1$
-	}
-	public static String getLabelKey(String id) {
-		return id+".label"; //$NON-NLS-1$
-	}
-	public static String getDescKey(String id) {
-		return id+".desc"; //$NON-NLS-1$
-	}
-}
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
deleted file mode 100644
index abb8909..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetDialog.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.ArrayList;
-
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.ListDialog;
-
-/**
- * Scope dialog for federated search.
- */
-public class ScopeSetDialog extends ListDialog {
-	private ScopeSetManager manager;
-	private EngineDescriptorManager descManager;
-	private static final int NEW_ID = IDialogConstants.CLIENT_ID + 1;
-	private static final int EDIT_ID = IDialogConstants.CLIENT_ID + 2;
-	private static final int RENAME_ID = IDialogConstants.CLIENT_ID +3;
-	private static final int REMOVE_ID = IDialogConstants.CLIENT_ID + 4;
-	private Button editButton;
-	private Button renameButton;
-	private Button removeButton;
-	private ArrayList sets;
-	private ArrayList operations;
-	
-	private abstract class PendingOperation {
-		ScopeSet set;
-		public PendingOperation(ScopeSet set) {
-			this.set = set;
-		}
-		public abstract void commit();
-		public abstract void cancel();
-	}
-	
-	private class AddOperation extends PendingOperation {
-		public AddOperation(ScopeSet set) {
-			super(set);
-		}
-		public void commit() {
-			manager.add(set);
-		}
-		public void cancel() {
-			set.dispose();
-		}
-	}
-
-	private class RenameOperation extends PendingOperation {
-		private String newName;
-		public RenameOperation(ScopeSet set, String newName) {
-			super(set);
-			this.newName = newName;
-		}
-		public void commit() {
-			this.set.setName(newName);
-		}
-		public void cancel() {
-		}
-	}
-
-/*
-	private class EditOperation extends PendingOperation {
-		public EditOperation(ScopeSet set) {
-			super(set);
-		}
-		public void commit() {
-		}
-		public void cancel() {
-		}
-	}
-*/
-
-	private class RemoveOperation extends PendingOperation {
-		public RemoveOperation(ScopeSet set) {
-			super(set);
-		}
-		public void commit() {
-			manager.remove(set);
-		}
-		public void cancel() {
-		}
-	}
-	
-	private class ScopeContentProvider implements IStructuredContentProvider {
-		public Object[] getElements(Object inputElement) {
-			return sets.toArray();
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-	
-	private class ScopeLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			String name = findNewName((ScopeSet)obj);
-			if (name!=null)
-				return name;
-			return ((ScopeSet)obj).getName();
-		}
-		private String findNewName(ScopeSet set) {
-			PendingOperation op = findOperation(set, RenameOperation.class);
-			if (op!=null) {
-				RenameOperation rop = (RenameOperation)op;
-				return rop.newName;
-			}
-			return null;
-		}
-		public Image getImage(Object obj) {
-			return HelpUIResources.getImage(IHelpUIConstants.IMAGE_SCOPE_SET);
-		}
-	}
-
-	/**
-	 * @param parent
-	 */
-	public ScopeSetDialog(Shell parent, ScopeSetManager manager, EngineDescriptorManager descManager) {
-		super(parent);
-		this.manager = manager;
-		this.descManager = descManager;
-		this.sets = extractSets(manager.getScopeSets(false));
-		setContentProvider(new ScopeContentProvider());
-		setLabelProvider(new ScopeLabelProvider());
-		setInitialSelections(new Object[] { manager.getActiveSet() });
-	}
-	
-	private ArrayList extractSets(ScopeSet[] array) {
-		ArrayList list = new ArrayList();
-		for (int i=0; i<array.length; i++) {
-			list.add(array[i]);
-		}
-		return list;
-	}
-	
-    protected Control createDialogArea(Composite container) {
-    	Composite listContainer = (Composite)super.createDialogArea(container);
-    	createEditingButtons(listContainer);
-    	getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateButtons();
-			}
-		});
-    	return listContainer;
-    }
-    
-    private void createEditingButtons(Composite composite) {
-		Composite buttonComposite= new Composite(composite, SWT.RIGHT);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		buttonComposite.setLayout(layout);
-		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();
-    }
-	
-	public ScopeSet getActiveSet() {
-		Object [] result = getResult();
-		if (result!=null && result.length>0)
-			return (ScopeSet)result[0];
-		return null;
-	}
-	protected void okPressed() {
-    	if (operations!=null) {
-    		for (int i=0; i<operations.size(); i++) {
-    			PendingOperation operation = (PendingOperation)operations.get(i);
-    			operation.commit();
-    		}
-    		operations = null;
-    	}
-    	super.okPressed();
-    }
-	
-	protected void cancelPressed() {
-    	if (operations!=null) {
-    		for (int i=0; i<operations.size(); i++) {
-    			PendingOperation operation = (PendingOperation)operations.get(i);
-    			operation.cancel();
-    		}
-    		operations = null;
-    	}
-		super.cancelPressed();
-	}
-	
-	protected void buttonPressed(int buttonId) {
-		switch (buttonId) {
-		case NEW_ID:
-			doNew();
-			break;
-		case EDIT_ID:
-			doEdit();
-			break;
-		case RENAME_ID:
-			doRename();
-			break;
-		case REMOVE_ID:
-			doRemove();
-			break;
-		}
-		super.buttonPressed(buttonId);
-	}
-	
-	private void doNew() {
-		IStructuredSelection ssel = (IStructuredSelection)getTableViewer().getSelection();
-		ScopeSet set = (ScopeSet)ssel.getFirstElement();
-		ScopeSet newSet = new ScopeSet(set);
-		String name = getNewName(newSet.getName());
-		if (name!=null) {
-			newSet.setName(name);
-			scheduleOperation(new AddOperation(newSet));
-			sets.add(newSet);
-			getTableViewer().refresh();
-			updateButtons();
-		}
-	}
-
-	private void doEdit() {
-		IStructuredSelection ssel = (IStructuredSelection)getTableViewer().getSelection();
-		ScopeSet set = (ScopeSet)ssel.getFirstElement();
-		if (set!=null) {
-			PreferenceManager manager = new ScopePreferenceManager(descManager, set);
-			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()));
-			dialog.open();
-		}
-	}
-
-	private void doRename() {
-		IStructuredSelection ssel = (IStructuredSelection)getTableViewer().getSelection();
-		ScopeSet set = (ScopeSet)ssel.getFirstElement();
-		if (set!=null) {
-			RenameOperation rop = (RenameOperation)findOperation(set, RenameOperation.class);
-			String oldName = rop!=null?rop.newName:set.getName();
-			String newName = getNewName(oldName);
-			if (newName!=null) {
-				if (rop!=null)
-					rop.newName = newName;
-				else 
-					scheduleOperation(new RenameOperation(set, newName));
-				getTableViewer().update(set, null);
-				updateButtons();
-			}
-		}
-	}
-
-	private String getNewName(String oldName) {
-		RenameDialog dialog = new RenameDialog(getShell(), oldName);
-		for (int i=0; i<sets.size(); i++) {
-			ScopeSet set = (ScopeSet)sets.get(i);
-			dialog.addOldName(set.getName());
-		}
-		dialog.create();
-		dialog.getShell().setText(Messages.RenameDialog_wtitle); 
-		if (dialog.open()==RenameDialog.OK) {
-			return dialog.getNewName();
-		}
-		return null;
-	}
-	
-	private void doRemove() {
-		IStructuredSelection ssel = (IStructuredSelection)getTableViewer().getSelection();
-		ScopeSet set = (ScopeSet)ssel.getFirstElement();
-		if (set!=null) {
-			scheduleOperation(new RemoveOperation(set));
-			sets.remove(set);
-			getTableViewer().refresh();
-			updateButtons();
-		}
-	}
-	
-	private void scheduleOperation(PendingOperation op) {
-		if (operations==null)
-			operations = new ArrayList();
-		operations.add(op);
-	}
-	
-	private void updateButtons() {
-		IStructuredSelection ssel = (IStructuredSelection)getTableViewer().getSelection();
-		editButton.setEnabled(ssel.isEmpty()==false);
-		ScopeSet set = (ScopeSet)ssel.getFirstElement();
-		boolean editableSet = set!=null && set.isEditable() && !set.isImplicit();
-		removeButton.setEnabled(editableSet);
-		renameButton.setEnabled(editableSet);
-		Button okButton = getOkButton();
-		if (okButton!=null)
-			okButton.setEnabled(set!=null);
-	}
-	
-	private PendingOperation findOperation(ScopeSet set, Class type) {
-		if (operations!=null) {
-			for (int i=0; i<operations.size(); i++) {
-				PendingOperation op = (PendingOperation)operations.get(i);
-				if (op.getClass().equals(type)) {
-					if (op.set.equals(set))
-						return op;
-				}
-			}
-		}
-		return null;
-	}	
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetManager.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetManager.java
deleted file mode 100644
index c9224d0..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ScopeSetManager.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.io.*;
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.help.ui.internal.HelpUIPlugin;
-import org.eclipse.jface.dialogs.IDialogSettings;
-
-/**
- * Manages the scope for the federated search.
- */
-public class ScopeSetManager {
-	private ScopeSet activeSet;
-
-	private ScopeSet lastExplicitSet;
-
-	private static final String ACTIVE_SET = "activeScopeSet"; //$NON-NLS-1$
-
-	private ArrayList sets;
-
-	public ScopeSetManager() {
-		ensureLocation();
-		loadScopeSets();
-	}
-
-	public void add(ScopeSet set) {
-		sets.add(set);
-	}
-
-	public void remove(ScopeSet set) {
-		sets.remove(set);
-		set.dispose();
-	}
-
-	public void setActiveSet(ScopeSet set) {
-		if (this.activeSet != null) {
-			this.activeSet.save();
-		}
-		this.activeSet = set;
-		if (!activeSet.isImplicit())
-			lastExplicitSet = set;
-	}
-
-	public boolean restoreLastExplicitSet() {
-		if (activeSet != null && activeSet.isImplicit()
-				&& lastExplicitSet != null) {
-			setActiveSet(lastExplicitSet);
-			return true;
-		}
-		return false;
-	}
-
-	public static void ensureLocation() {
-		IPath location = HelpUIPlugin.getDefault().getStateLocation();
-		location = location.append(ScopeSet.SCOPE_DIR_NAME);
-		File dir = location.toFile();
-		if (dir.exists() == false)
-			dir.mkdir();
-	}
-
-	public void save() {
-		ensureLocation();
-		for (int i = 0; i < sets.size(); i++) {
-			ScopeSet set = (ScopeSet) sets.get(i);
-			set.save();
-		}
-		IDialogSettings settings = HelpUIPlugin.getDefault()
-				.getDialogSettings();
-		if (activeSet != null)
-			settings.put(ACTIVE_SET, activeSet.getName());
-	}
-
-	public ScopeSet[] getScopeSets(boolean implicit) {
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < sets.size(); i++) {
-			ScopeSet set = (ScopeSet) sets.get(i);
-			if (set.isImplicit() == implicit)
-				result.add(set);
-			if (!implicit && set.isImplicit() && activeSet==set)
-				result.add(set);
-		}
-		return (ScopeSet[]) result.toArray(new ScopeSet[result.size()]);
-	}
-
-	private void loadScopeSets() {
-		sets = new ArrayList();
-		IPath location = HelpUIPlugin.getDefault().getStateLocation();
-		location = location.append("scope_sets"); //$NON-NLS-1$
-		File dir = location.toFile();
-		ScopeSet defSet = null;
-		if (dir.exists() && dir.isDirectory()) {
-			File[] files = dir.listFiles(new FilenameFilter() {
-				public boolean accept(File dir, String name) {
-					return name.endsWith(ScopeSet.EXT)
-							|| name.endsWith(HistoryScopeSet.EXT); 
-				}
-			});
-			for (int i = 0; i < files.length; i++) {
-				File file = files[i];
-				String name = file.getName();
-				int loc = name.lastIndexOf(ScopeSet.EXT); 
-				if (loc != -1) {
-					ScopeSet set = new ScopeSet(name.substring(0, loc));
-					sets.add(set);
-					if (set.isDefault())
-						defSet = set;
-					continue;
-				}
-				loc = name.lastIndexOf(HistoryScopeSet.EXT); 
-				if (loc != -1) {
-					HistoryScopeSet set = new HistoryScopeSet(name.substring(0,
-							loc), null);
-					sets.add(set);
-				}
-			}
-		}
-		if (sets.size() == 1) {
-			activeSet = (ScopeSet) sets.get(0);
-		}
-		if (defSet == null)
-			sets.add(new ScopeSet());
-	}
-
-	/**
-	 * @return Returns the activeSet.
-	 */
-	public ScopeSet getActiveSet() {
-		if (activeSet == null) {
-			IDialogSettings settings = HelpUIPlugin.getDefault()
-					.getDialogSettings();
-			String name = settings.get(ACTIVE_SET);
-			activeSet = findSet(name);
-			if (!activeSet.isImplicit())
-				lastExplicitSet = activeSet;
-		}
-		return activeSet;
-	}
-
-	public ScopeSet findSet(String name) {
-		return findSet(name, false);
-	}
-
-	public HistoryScopeSet findSearchSet(String expression) {
-		for (int i = 0; i < sets.size(); i++) {
-			ScopeSet set = (ScopeSet) sets.get(i);
-			if (!set.isImplicit() || !(set instanceof HistoryScopeSet))
-				continue;
-			HistoryScopeSet sset = (HistoryScopeSet) set;
-			if (sset.getExpression().equals(expression))
-				return sset;
-		}
-		return null;
-	}
-
-	public ScopeSet findSet(String name, boolean implicit) {
-		ScopeSet defaultSet = null;
-		for (int i = 0; i < sets.size(); i++) {
-			ScopeSet set = (ScopeSet) sets.get(i);
-			if (name != null && set.isImplicit() == implicit) {
-				if (set.getName().equals(name))
-					return set;
-			} else if (set.isDefault())
-				defaultSet = set;
-		}
-		if (!implicit)
-			return defaultSet;
-		return null;
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 6c9c62e..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
+++ /dev/null
@@ -1,710 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Observable;
-import java.util.Observer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.search.federated.FederatedSearchEntry;
-import org.eclipse.help.internal.search.federated.FederatedSearchJob;
-import org.eclipse.help.search.ISearchEngineResult;
-import org.eclipse.help.search.ISearchEngineResultCollector;
-import org.eclipse.help.search.ISearchScope;
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class SearchPart extends AbstractFormPart implements IHelpPart, IHelpUIConstants {
-
-	private ReusableHelpPart parent;
-
-	protected static java.util.List previousSearchQueryData = new java.util.ArrayList(20);
-
-	private static final String HREF_TOGGLE = "__toggle__"; //$NON-NLS-1$
-
-	private static final String HREF_SEARCH_HELP = "/org.eclipse.platform.doc.user/tasks/tsearch.htm"; //$NON-NLS-1$
-
-	private static boolean SEARCH_HELP_AVAILABLE = false;
-
-	static {
-		InputStream is = HelpSystem.getHelpContent(HREF_SEARCH_HELP);
-		if (is != null) {
-			// don't leak the input stream
-			try {
-				is.close();
-				SEARCH_HELP_AVAILABLE = true;
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-	}
-
-	private String id;
-
-	private Composite container;
-
-	private Composite filteringGroup;
-	private FormText searchWordText;
-
-	private Chevron searchWordChevron;
-
-	private ComboPart searchWordCombo;
-
-	private Section scopeSection;
-
-	private Button goButton;
-
-	private Hyperlink scopeSetLink;
-
-	private Hyperlink advancedLink;
-
-	private Observer engineObserver;
-
-	private ScopeSetManager scopeSetManager;
-
-	private static final int COMBO_HISTORY_SIZE = 10;
-
-	private JobListener jobListener;
-
-	private boolean searchPending;
-
-	private class JobListener implements IJobChangeListener, Runnable {
-
-		private boolean searchInProgress = false;
-
-		public void aboutToRun(IJobChangeEvent event) {
-		}
-
-		public void awake(IJobChangeEvent event) {
-		}
-
-		public void done(IJobChangeEvent event) {
-			if (event.getJob().belongsTo(FederatedSearchJob.FAMILY)) {
-				Job[] searchJobs = Platform.getJobManager().find(FederatedSearchJob.FAMILY);
-				if (searchJobs.length == 0) {
-					// search finished
-					searchInProgress = false;
-					if (container.isDisposed())
-						return;
-					container.getDisplay().asyncExec(this);
-					SearchResultsPart results = (SearchResultsPart) parent
-							.findPart(IHelpUIConstants.HV_FSEARCH_RESULT);
-					results.completed();
-				}
-			}
-		}
-
-		public void running(IJobChangeEvent event) {
-		}
-
-		public void scheduled(IJobChangeEvent event) {
-			if (!searchInProgress && event.getJob().belongsTo(FederatedSearchJob.FAMILY)) {
-				searchInProgress = true;
-				container.getDisplay().asyncExec(this);
-			}
-		}
-
-		public void sleeping(IJobChangeEvent event) {
-		}
-
-		public void run() {
-			searchWordCombo.getControl().setEnabled(!searchInProgress);
-			if (!searchInProgress)
-				goButton.setEnabled(true);
-			if (searchInProgress)
-				goButton.setText(Messages.SearchPart_stop);
-			else
-				goButton.setText(Messages.SearchPart_go);
-			goButton.getParent().layout();
-		}
-	}
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public SearchPart(final Composite parent, FormToolkit toolkit) {
-		container = toolkit.createComposite(parent);
-		scopeSetManager = new ScopeSetManager();
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.numColumns = 2;
-		container.setLayout(layout);
-		// Search Expression
-		searchWordText = toolkit.createFormText(container, false);
-		searchWordChevron = new Chevron(searchWordText, SWT.NULL);
-		toolkit.adapt(searchWordChevron, true, true);
-		searchWordChevron.setHoverDecorationColor(toolkit.getHyperlinkGroup().getActiveForeground());
-		searchWordChevron.setDecorationColor(toolkit.getColors().getColor(FormColors.TB_TOGGLE));
-		searchWordText.setControl(HREF_TOGGLE, searchWordChevron);
-		searchWordText.addHyperlinkListener(new HyperlinkAdapter() {
-
-			public void linkActivated(HyperlinkEvent e) {
-				SearchPart.this.parent.showURL(HREF_SEARCH_HELP, true);
-			}
-		});
-		searchWordChevron.addHyperlinkListener(new HyperlinkAdapter() {
-
-			public void linkActivated(HyperlinkEvent e) {
-				parent.getDisplay().asyncExec(new Runnable() {
-
-					public void run() {
-						toggleSearchWordText();
-					}
-				});
-			}
-		});
-		searchWordText.setImage(IHelpUIConstants.IMAGE_HELP, HelpUIResources
-				.getImage(IHelpUIConstants.IMAGE_HELP));
-		updateSearchWordText();
-		TableWrapData td = new TableWrapData();
-		td.colspan = 2;
-		searchWordText.setLayoutData(td);
-		// Pattern combo
-		searchWordCombo = new ComboPart(container, toolkit, toolkit.getBorderStyle());
-		updateSearchCombo(null);
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		td.maxWidth = 100;
-		td.valign = TableWrapData.MIDDLE;
-		searchWordCombo.getControl().setLayoutData(td);
-		searchWordCombo.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				if (searchWordCombo.getSelectionIndex() < 0)
-					return;
-				searchFromHistory(searchWordCombo.getSelectionIndex());
-			}
-		});
-		goButton = toolkit.createButton(container, Messages.SearchPart_go, SWT.PUSH);
-		goButton.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				handleButtonPressed();
-			}
-		});
-		goButton.setEnabled(false);
-		searchWordCombo.addModifyListener(new ModifyListener() {
-
-			public void modifyText(ModifyEvent e) {
-				goButton.setEnabled(searchWordCombo.getText().length() > 0);
-			}
-		});
-		searchWordCombo.addKeyListener(new KeyAdapter() {
-
-			public void keyReleased(KeyEvent e) {
-				if (e.character == '\r') {
-					if (goButton.isEnabled())
-						doSearch(searchWordCombo.getText());
-				}
-			}
-		});
-		scopeSection = toolkit.createSection(container, Section.TWISTIE | Section.COMPACT
-				| Section.LEFT_TEXT_CLIENT_ALIGNMENT);
-		scopeSection.setText(Messages.limit_to);
-		td = new TableWrapData();
-		td.colspan = 2;
-		td.align = TableWrapData.FILL;
-		scopeSection.setLayoutData(td);
-		filteringGroup = toolkit.createComposite(scopeSection);
-		scopeSection.setClient(filteringGroup);
-		TableWrapLayout flayout = new TableWrapLayout();
-		flayout.numColumns = 2;
-		filteringGroup.setLayout(flayout);
-		createScopeSet(scopeSection, toolkit);
-		toolkit.paintBordersFor(filteringGroup);
-		toolkit.paintBordersFor(container);
-		jobListener = new JobListener();
-		Platform.getJobManager().addJobChangeListener(jobListener);
-	}
-
-	private void createAdvancedLink(Composite parent, FormToolkit toolkit) {
-		advancedLink = toolkit.createHyperlink(parent, Messages.FederatedSearchPart_advanced, SWT.NULL);
-		advancedLink.addHyperlinkListener(new HyperlinkAdapter() {
-
-			public void linkActivated(HyperlinkEvent e) {
-				doAdvanced();
-			}
-		});
-		TableWrapData td = new TableWrapData();
-		td.colspan = 2;
-		advancedLink.setLayoutData(td);
-	}
-
-	private void createScopeSet(Section section, FormToolkit toolkit) {
-		scopeSetLink = toolkit.createHyperlink(section, null, SWT.NULL);
-		scopeSetLink.addHyperlinkListener(new HyperlinkAdapter() {
-
-			public void linkActivated(HyperlinkEvent e) {
-				doChangeScopeSet();
-			}
-		});
-		scopeSetLink.setToolTipText(Messages.FederatedSearchPart_changeScopeSet);
-		section.setTextClient(scopeSetLink);
-		ScopeSet active = scopeSetManager.getActiveSet();
-		setActiveScopeSet(active);
-	}
-
-	private void toggleSearchWordText() {
-		updateSearchWordText();
-		SearchPart.this.parent.reflow();
-	}
-
-	private void updateSearchWordText() {
-		StringBuffer buff = new StringBuffer();
-		buff.append("<form>"); //$NON-NLS-1$
-		buff.append("<p>"); //$NON-NLS-1$
-		buff.append(Messages.expression);
-		if (searchWordChevron.isExpanded()) {
-			searchWordChevron.setToolTipText(Messages.SearchPart_collapse);
-			buff.append("<control href=\""); //$NON-NLS-1$
-			buff.append(HREF_TOGGLE);
-			buff.append("\"/>"); //$NON-NLS-1$
-			buff.append("</p><p>"); //$NON-NLS-1$
-			buff.append(Messages.expression_label);
-			// Only add the link if available
-			if (SEARCH_HELP_AVAILABLE) {
-				buff.append("</p><p>"); //$NON-NLS-1$
-				buff.append("<img href=\""); //$NON-NLS-1$
-				buff.append(IHelpUIConstants.IMAGE_HELP);
-				buff.append("\"/> "); //$NON-NLS-1$
-				buff.append("<a href=\""); //$NON-NLS-1$
-				buff.append(HREF_SEARCH_HELP);
-				buff.append("\">"); //$NON-NLS-1$
-				buff.append(Messages.SearchPart_learnMore);
-				buff.append("</a>"); //$NON-NLS-1$
-			}
-		} else {
-			searchWordChevron.setToolTipText(Messages.SearchPart_expand);
-			buff.append("<control href=\""); //$NON-NLS-1$
-			buff.append(HREF_TOGGLE);
-			buff.append("\"/>"); //$NON-NLS-1$
-		}
-		buff.append("</p>"); //$NON-NLS-1$
-		buff.append("</form>"); //$NON-NLS-1$
-		searchWordText.setText(buff.toString(), true, false);
-	}
-
-	private void setActiveScopeSet(ScopeSet set) {
-		scopeSetLink.setText(set.getName());
-		scopeSetManager.setActiveSet(set);
-		updateMasters(set);
-		scopeSection.layout();
-		if (parent != null)
-			parent.reflow();
-	}
-
-	private void updateMasters(ScopeSet set) {
-		Control[] children = ((Composite) scopeSection.getClient()).getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child instanceof Button) {
-				Button master = (Button) child;
-				Object data = master.getData();
-				if (data != null && data instanceof EngineDescriptor) {
-					EngineDescriptor ed = (EngineDescriptor) data;
-					master.setSelection(set.getEngineEnabled(ed));
-				}
-			}
-		}
-	}
-
-	private void loadEngines(final Composite container, final FormToolkit toolkit) {
-		EngineDescriptorManager descManager = parent.getEngineManager();
-		EngineDescriptor[] descriptors = descManager.getDescriptors();
-		for (int i = 0; i < descriptors.length; i++) {
-			EngineDescriptor desc = descriptors[i];
-			loadEngine(desc, container, toolkit);
-		}
-		engineObserver = new Observer() {
-
-			public void update(Observable o, Object arg) {
-				EngineDescriptorManager.DescriptorEvent event = (EngineDescriptorManager.DescriptorEvent) arg;
-				int kind = event.getKind();
-				EngineDescriptor desc = event.getDescriptor();
-				if (kind == IHelpUIConstants.ADD) {
-					advancedLink.dispose();
-					loadEngine(desc, container, toolkit);
-					createAdvancedLink(container, toolkit);
-					parent.reflow();
-				} else if (kind == IHelpUIConstants.REMOVE) {
-					removeEngine(desc);
-				} else {
-					updateEngine(desc);
-				}
-			}
-		};
-
-		descManager.addObserver(engineObserver);
-		updateMasters(scopeSetManager.getActiveSet());
-	}
-
-	private EngineDescriptor loadEngine(final EngineDescriptor edesc, Composite container, FormToolkit toolkit) {
-		Label ilabel = toolkit.createLabel(container, null);
-		ilabel.setImage(edesc.getIconImage());
-		ilabel.setData(edesc);
-		final Button master = toolkit.createButton(container, edesc.getLabel(), SWT.CHECK);
-		master.setData(edesc);
-		master.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				scopeSetManager.getActiveSet().setEngineEnabled(edesc, master.getSelection());
-			}
-		});
-		String desc = edesc.getDescription();
-		if (desc != null) {
-			Label spacer = toolkit.createLabel(container, null);
-			spacer.setData(edesc);
-			Label dlabel = toolkit.createLabel(container, desc, SWT.WRAP);
-			dlabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
-			dlabel.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-			dlabel.setMenu(container.getMenu());
-			dlabel.setData(edesc);
-		}
-		return edesc;
-	}
-
-	private void removeEngine(EngineDescriptor desc) {
-		boolean reflowNeeded = false;
-		Control[] children = ((Composite) scopeSection.getClient()).getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			EngineDescriptor ed = (EngineDescriptor) child.getData();
-			if (ed == desc) {
-				child.setMenu(null);
-				child.dispose();
-				reflowNeeded = true;
-			}
-		}
-		if (reflowNeeded)
-			parent.reflow();
-	}
-
-	private void updateEngine(EngineDescriptor desc) {
-		Control[] children = ((Composite) scopeSection.getClient()).getChildren();
-		boolean reflowNeeded = false;
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			EngineDescriptor ed = (EngineDescriptor) child.getData();
-			if (ed == desc) {
-				Button b = (Button) children[i + 1];
-				b.setText(desc.getLabel());
-				Label d = (Label) children[i + 3];
-				d.setText(desc.getDescription());
-				d.getParent().layout();
-				reflowNeeded = true;
-				break;
-			}
-		}
-		if (reflowNeeded)
-			parent.reflow();
-	}
-
-	public void startSearch(String text) {
-		searchWordCombo.setText(text);
-		doSearch(text);
-	}
-
-	private void storeSearchHistory(String expression) {
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95479
-		HistoryScopeSet sset = scopeSetManager.findSearchSet(expression);
-		if (sset == null) {
-			sset = new HistoryScopeSet(expression);
-			scopeSetManager.add(sset);
-		}
-		ScopeSet activeSet = scopeSetManager.getActiveSet();
-		sset.copyFrom(activeSet);
-		sset.save();
-		updateSearchCombo(sset);
-		searchWordCombo.setText(expression);
-	}
-
-	private void updateSearchCombo(HistoryScopeSet current) {
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95479
-		ScopeSet[] sets = scopeSetManager.getScopeSets(true);
-		ArrayList items = new ArrayList();
-		ArrayList toDelete = new ArrayList();
-		// if (current!=null)
-		// items.add(current.getExpression());
-		for (int i = sets.length - 1; i >= 0; i--) {
-			HistoryScopeSet sset = (HistoryScopeSet) sets[i];
-			if (current != null && sset == current)
-				continue;
-			if (sets.length - i > COMBO_HISTORY_SIZE)
-				toDelete.add(sset);
-			items.add(sset.getExpression());
-		}
-		for (int i = 0; i < toDelete.size(); i++) {
-			HistoryScopeSet sset = (HistoryScopeSet) toDelete.get(i);
-			scopeSetManager.remove(sset);
-		}
-		if (items.size() > 0)
-			searchWordCombo.setItems((String[]) items.toArray(new String[items.size()]));
-	}
-
-	private void searchFromHistory(int index) {
-		String expression = searchWordCombo.getSelection();
-		ScopeSet set = scopeSetManager.findSearchSet(expression);
-		if (set == null)
-			return;
-		setActiveScopeSet(set);
-		doSearch(expression, true);
-	}
-
-	private void handleButtonPressed() {
-		if (searchWordCombo.getControl().isEnabled())
-			doSearch(searchWordCombo.getText());
-		else {
-			goButton.setEnabled(false);
-			stop();
-		}
-	}
-
-	private void doSearch(String text) {
-		doSearch(text, false);
-	}
-
-	private void doSearch(String text, boolean fromHistory) {
-		ScopeSet set = scopeSetManager.getActiveSet();
-		if (!fromHistory && set instanceof HistoryScopeSet) {
-			String setExpression = ((HistoryScopeSet) set).getExpression();
-			if (setExpression.equals(text))
-				fromHistory = true;
-		}
-		if (!fromHistory) {
-			storeSearchHistory(text);
-			boolean switchedSet = scopeSetManager.restoreLastExplicitSet();
-			set = scopeSetManager.getActiveSet();
-			if (switchedSet)
-				setActiveScopeSet(set);
-		}
-		ArrayList entries = new ArrayList();
-		final SearchResultsPart results = (SearchResultsPart) parent
-				.findPart(IHelpUIConstants.HV_FSEARCH_RESULT);
-		ArrayList eds = new ArrayList();
-		EngineDescriptor[] engineDescriptors = parent.getEngineManager().getDescriptors();
-		for (int i = 0; i < engineDescriptors.length; i++) {
-			final EngineDescriptor ed = engineDescriptors[i];
-			if (set.getEngineEnabled(ed) && ed.getEngine() != null) {
-				ISearchScope scope = ed.createSearchScope(set.getPreferenceStore());
-				FederatedSearchEntry entry = new FederatedSearchEntry(ed.getId(), ed.getLabel(), scope, ed
-						.getEngine(), new ISearchEngineResultCollector() {
-
-					public void accept(ISearchEngineResult searchResult) {
-						results.add(ed, searchResult);
-					}
-
-					public void accept(ISearchEngineResult[] searchResults) {
-						results.add(ed, searchResults);
-					}
-
-					public void error(IStatus status) {
-						results.error(ed, status);
-					}
-				});
-				entries.add(entry);
-				eds.add(ed);
-			}
-		}
-		if (entries.size() == 0)
-			return;
-		FederatedSearchEntry[] array = (FederatedSearchEntry[]) entries
-				.toArray(new FederatedSearchEntry[entries.size()]);
-		if (scopeSection.isExpanded()) {
-			scopeSection.setExpanded(false);
-			parent.reflow();
-		}
-		results.clearResults();
-		results.startNewSearch(text, eds);
-		BaseHelpSystem.getSearchManager().search(text, array);
-	}
-
-	private void doAdvanced() {
-		ScopeSet set = scopeSetManager.getActiveSet();
-		PreferenceManager manager = new ScopePreferenceManager(parent.getEngineManager(), set);
-		PreferenceDialog dialog = new ScopePreferenceDialog(container.getShell(), manager, parent
-				.getEngineManager(), set.isEditable());
-		dialog.setPreferenceStore(set.getPreferenceStore());
-		dialog.create();
-		dialog.getShell().setText(NLS.bind(Messages.ScopePreferenceDialog_wtitle, set.getName()));
-		dialog.open();
-		updateMasters(set);
-	}
-
-	private void doChangeScopeSet() {
-		ScopeSetDialog dialog = new ScopeSetDialog(container.getShell(), scopeSetManager, parent
-				.getEngineManager());
-		dialog.setInput(scopeSetManager);
-		dialog.create();
-		dialog.getShell().setText(Messages.ScopeSetDialog_wtitle);
-		if (dialog.open() == ScopeSetDialog.OK) {
-			ScopeSet set = dialog.getActiveSet();
-			if (set != null)
-				setActiveScopeSet(set);
-		}
-	}
-
-	public void dispose() {
-		ScopeSet activeSet = scopeSetManager.getActiveSet();
-		if (activeSet != null)
-			activeSet.save();
-		if (engineObserver != null) {
-			parent.getEngineManager().deleteObserver(engineObserver);
-			engineObserver = null;
-		}
-		Platform.getJobManager().removeJobChangeListener(jobListener);
-		stop();
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#getControl()
-	 */
-	public Control getControl() {
-		return container;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#init(org.eclipse.help.ui.internal.views.NewReusableHelpPart)
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.parent = parent;
-		this.id = id;
-		loadEngines(filteringGroup, parent.getForm().getToolkit());
-		createAdvancedLink(filteringGroup, parent.getForm().getToolkit());
-		parent.hookFormText(searchWordText);
-		if (memento != null)
-			restorePart(memento);
-	}
-
-	private void restorePart(IMemento memento) {
-		String setName = memento.getString("activeSet"); //$NON-NLS-1$
-		if (setName != null) {
-			ScopeSet sset = scopeSetManager.findSet(setName);
-			if (sset != null)
-				scopeSetManager.setActiveSet(sset);
-		}
-		String expression = memento.getString("expression"); //$NON-NLS-1$
-		if (expression != null && expression.length() > 0) {
-			searchWordCombo.setText(expression);
-			searchPending = true;
-			markStale();
-		}
-	}
-
-	public void refresh() {
-		super.refresh();
-		if (searchPending) {
-			searchPending = false;
-			doSearch(searchWordCombo.getText());
-		}
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		getControl().setVisible(visible);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public boolean fillContextMenu(IMenuManager manager) {
-		return parent.fillFormContextMenu(searchWordText, manager);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#hasFocusControl(org.eclipse.swt.widgets.Control)
-	 */
-	public boolean hasFocusControl(Control control) {
-		return control == searchWordText || control == searchWordCombo.getControl()
-				|| scopeSection.getClient() == control;
-	}
-
-	public void setFocus() {
-		searchWordCombo.getControl().setFocus();
-	}
-
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.COPY.getId()))
-			return parent.getCopyAction();
-		return null;
-	}
-
-	public void stop() {
-		SearchResultsPart results = (SearchResultsPart) parent.findPart(IHelpUIConstants.HV_FSEARCH_RESULT);
-		results.canceling();
-		Platform.getJobManager().cancel(FederatedSearchJob.FAMILY);
-	}
-
-	public void toggleRoleFilter() {
-	}
-
-	public void refilter() {
-	}
-
-	public void saveState(IMemento memento) {
-		ScopeSet sset = scopeSetManager.getActiveSet();
-		if (sset != null)
-			memento.putString("activeSet", sset.getName()); //$NON-NLS-1$
-		memento.putString("expression", searchWordCombo.getText()); //$NON-NLS-1$
-	}
-}
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
deleted file mode 100644
index 9e4f300..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchResultsPart.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.help.search.ISearchEngineResult;
-import org.eclipse.help.ui.internal.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class SearchResultsPart extends AbstractFormPart implements IHelpPart {
-	private static final String S_DESCRIPTION_OFF = "no-description"; //$NON-NLS-1$
-	private static final String S_SHOW_CATEGORIES = "show-categories"; //$NON-NLS-1$
-	ReusableHelpPart parent;
-
-	private Composite separator;
-
-	private Composite container;
-
-	private ScrolledForm innerForm;
-
-	private String id;
-
-	//private Action removeAllAction;
-
-	private Action showCategoriesAction;
-
-	private Action showDescriptionAction;
-
-	private ArrayList results;
-
-	//private String phrase;
-
-	private FormToolkit innerToolkit;
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public SearchResultsPart(Composite parent, FormToolkit toolkit,
-			IToolBarManager tbm) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.verticalSpacing = 0;
-		innerToolkit = new FormToolkit(parent.getDisplay());
-		innerToolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-				toolkit.getHyperlinkGroup().getHyperlinkUnderlineMode());
-		container = innerToolkit.createComposite(parent);
-		container.setLayout(layout);
-		separator = innerToolkit.createCompositeSeparator(container);
-		separator.setVisible(false);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint = 1;
-		separator.setLayoutData(gd);
-		innerForm = innerToolkit.createScrolledForm(container);
-		innerForm.setDelayedReflow(true);
-		innerForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-		final ScrollBar scrollBar = innerForm.getVerticalBar();
-		scrollBar.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateSeparatorVisibility();
-			}
-		});
-		TableWrapLayout tlayout = new TableWrapLayout();
-		tlayout.topMargin = 0;
-		tlayout.bottomMargin = 0;
-		innerForm.getBody().setLayout(tlayout);
-		results = new ArrayList();
-		contributeToToolBar(tbm);
-	}
-	
-	void updateSeparatorVisibility() {
-		ScrollBar scrollBar = innerForm.getVerticalBar();
-		separator.setVisible(scrollBar.getSelection()>0);
-	}
-
-	private void contributeToToolBar(IToolBarManager tbm) {
-		/*
-		 * removeAllAction = new Action() { public void run() { clearResults(); } };
-		 * removeAllAction.setImageDescriptor(HelpUIResources
-		 * .getImageDescriptor(IHelpUIConstants.IMAGE_REMOVE_ALL));
-		 * removeAllAction.setToolTipText("Remove all hits");
-		 * removeAllAction.setId("removeAll"); tbm.insertBefore("back",
-		 * removeAllAction); tbm.insertAfter("removeAll", new Separator());
-		 */
-
-		IDialogSettings settings = HelpUIPlugin.getDefault().getDialogSettings();
-		boolean descOff = settings.getBoolean(S_DESCRIPTION_OFF);
-		boolean showCategories = settings.getBoolean(S_SHOW_CATEGORIES);
-		showCategoriesAction = new Action() {
-			public void run() {
-				updateResultSections();
-				HelpUIPlugin.getDefault().getDialogSettings().put(S_SHOW_CATEGORIES, showCategoriesAction.isChecked());
-			}
-		};
-		showCategoriesAction.setImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_SHOW_CATEGORIES));
-		showCategoriesAction.setChecked(showCategories);
-		showCategoriesAction.setToolTipText(Messages.SearchResultsPart_showCategoriesAction_tooltip); 
-		showCategoriesAction.setId("categories"); //$NON-NLS-1$
-		tbm.insertBefore("back", showCategoriesAction); //$NON-NLS-1$
-
-		showDescriptionAction = new Action() {
-			public void run() {
-				updateResultSections();
-				HelpUIPlugin.getDefault().getDialogSettings().put(S_DESCRIPTION_OFF, !showDescriptionAction.isChecked());
-			}
-		};
-		showDescriptionAction.setImageDescriptor(HelpUIResources
-				.getImageDescriptor(IHelpUIConstants.IMAGE_SHOW_DESC));
-		showDescriptionAction.setChecked(!descOff);
-		showDescriptionAction.setToolTipText(Messages.SearchResultsPart_showDescriptionAction_tooltip); 
-		showDescriptionAction.setId("description"); //$NON-NLS-1$
-		tbm.insertAfter("categories", showDescriptionAction); //$NON-NLS-1$
-		tbm.insertAfter("description", new Separator()); //$NON-NLS-1$
-	}
-
-	public void dispose() {
-		innerToolkit.dispose();
-		super.dispose();
-	}
-
-	private void updateResultSections() {
-		BusyIndicator.showWhile(container.getDisplay(), new Runnable() {
-			public void run() {
-				for (int i = 0; i < results.size(); i++) {
-					EngineResultSection section = (EngineResultSection) results
-							.get(i);
-					section.updateResults(false);
-				}
-				reflow();
-			}
-		});
-	}
-
-	boolean getShowCategories() {
-		return showCategoriesAction.isChecked();
-	}
-
-	boolean getShowDescription() {
-		return showDescriptionAction.isChecked();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#getControl()
-	 */
-	public Control getControl() {
-		return container;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#init(org.eclipse.help.ui.internal.views.NewReusableHelpPart)
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.parent = parent;
-		this.id = id;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		container.setVisible(visible);
-	}
-	
-	void clearResults() {
-		clearResultSections();
-		separator.setVisible(false);
-		reflow();
-	}
-
-	void clearResultSections() {
-		for (int i = 0; i < results.size(); i++) {
-			EngineResultSection section = (EngineResultSection) results.get(i);
-			section.dispose();
-		}
-		results.clear();
-	}
-
-	void startNewSearch(String phrase, ArrayList eds) {
-		//this.phrase = phrase;
-		//separator.setVisible(true);
-		// locate local help engine and add it first
-		EngineDescriptor localHelp = findLocalHelp(eds);
-		if (localHelp!=null)
-			add(localHelp);
-		// add engines other than local help
-		for (int i = 0; i < eds.size(); i++) {
-			EngineDescriptor ed = (EngineDescriptor) eds.get(i);
-			if (ed==localHelp)
-				continue;
-			add(ed);
-		}
-		reflow();
-	}
-	
-	private EngineDescriptor findLocalHelp(ArrayList eds) {
-		for (int i=0; i<eds.size(); i++) {
-			EngineDescriptor ed = (EngineDescriptor)eds.get(i);
-			if (ed.getEngineTypeId().equals(IHelpUIConstants.INTERNAL_HELP_ID))
-				return ed;
-		}
-		return null;
-	}
-	
-	void completed() {
-		for (int i = 0; i < results.size(); i++) {
-			EngineResultSection section = (EngineResultSection) results.get(i);
-			section.completed();
-		}
-	}
-	
-	void canceling() {
-		for (int i = 0; i < results.size(); i++) {
-			EngineResultSection section = (EngineResultSection) results.get(i);
-			section.canceling();
-		}
-	}
-
-	void doOpenLink(Object href) {
-		String url = (String) href;
-
-		if (url.startsWith("nw:")) { //$NON-NLS-1$
-			parent.showExternalURL(url.substring(3));
-		} else
-			parent.showURL(url);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public boolean fillContextMenu(IMenuManager manager) {
-		Control focusControl = container.getDisplay().getFocusControl();
-		if (focusControl != null && focusControl instanceof FormText) {
-			return parent.fillFormContextMenu((FormText) focusControl, manager);
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#hasFocusControl(org.eclipse.swt.widgets.Control)
-	 */
-	public boolean hasFocusControl(Control control) {
-		for (int i = 0; i < results.size(); i++) {
-			EngineResultSection er = (EngineResultSection) results.get(i);
-			if (er.hasControl(control))
-				return true;
-		}
-		return false;
-	}
-
-	public synchronized void add(EngineDescriptor ed, ISearchEngineResult match) {
-		EngineResultSection ers = findEngineResult(ed);
-		if (match != null)
-			ers.add(match);
-	}
-
-	public synchronized void add(EngineDescriptor ed,
-			ISearchEngineResult[] matches) {
-		EngineResultSection ers = findEngineResult(ed);
-		ers.add(matches);
-	}
-
-	public synchronized void error(EngineDescriptor ed, IStatus status) {
-		EngineResultSection ers = findEngineResult(ed);
-		ers.error(status);
-	}
-
-	private synchronized EngineResultSection findEngineResult(
-			EngineDescriptor ed) {
-		for (int i = 0; i < results.size(); i++) {
-			EngineResultSection er = (EngineResultSection) results.get(i);
-			if (er.matches(ed))
-				return er;
-		}
-		final EngineResultSection er = new EngineResultSection(this, ed);
-		Display display = parent.getForm().getToolkit().getColors()
-				.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				Control c = er.createControl(innerForm.getBody(), innerToolkit);
-				c.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-			}
-		});
-		results.add(er);
-		return er;
-	}
-
-	private void add(EngineDescriptor ed) {
-		final EngineResultSection er = new EngineResultSection(this, ed);
-		Control c = er.createControl(innerForm.getBody(), innerToolkit);
-		c.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		results.add(er);
-	}
-
-	void reflow() {
-		innerForm.reflow(true);
-		parent.reflow();
-	}
-
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-
-	void scrollToBeginning() {
-		innerForm.setOrigin(0, 0);
-	}
-
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.COPY.getId()))
-			return parent.getCopyAction();
-		return null;
-	}
-
-	FormToolkit getToolkit() {
-		return innerToolkit;
-	}
-	public void stop() {
-	}
-
-	public void toggleRoleFilter() {
-		updateResultSections();
-	}
-
-	public void refilter() {
-		updateResultSections();
-	}
-
-	public void saveState(IMemento memento) {
-		// TODO Auto-generated method stub
-		
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 54afe94..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SeeAlsoPart.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.ui.internal.HelpUIResources;
-import org.eclipse.help.ui.internal.IHelpUIConstants;
-import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-
-public class SeeAlsoPart extends AbstractFormPart implements IHelpPart {
-	private Composite container;
-	private Composite linkContainer;
-	private ReusableHelpPart helpPart;
-	private String id;
-
-	/**
-	 * @param parent
-	 * @param toolkit
-	 * @param style
-	 */
-	public SeeAlsoPart(Composite parent, FormToolkit toolkit) {
-		container = toolkit.createComposite(parent);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 0;
-		container.setLayout(layout);
-		Composite sep = toolkit.createCompositeSeparator(container);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.heightHint = 1;
-		sep.setLayoutData(gd);
-		
-		Composite innerContainer = toolkit.createComposite(container);
-		innerContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-		layout = new GridLayout();
-		layout.marginHeight = 0;
-		innerContainer.setLayout(layout);
-		Label label = toolkit.createLabel(innerContainer, Messages.SeeAlsoPart_goto);
-		label.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
-		linkContainer = toolkit.createComposite(innerContainer);
-		linkContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-		RowLayout rlayout = new RowLayout();
-		rlayout.marginBottom = 0;
-		rlayout.marginTop = 0;
-		rlayout.marginLeft = 0;
-		rlayout.marginRight = 0;
-		rlayout.justify = false;
-		rlayout.wrap = true;
-		linkContainer.setLayout(rlayout);
-	}
-	
-	private void updateLinks(String href) {
-		Control [] children = linkContainer.getChildren();
-		for (int i=0; i<children.length; i++) {
-			ImageHyperlink link = (ImageHyperlink)children[i];
-			RowData data = (RowData)link.getLayoutData();
-			data.exclude = link.getHref().equals(href);
-			link.setVisible(!data.exclude);
-		}
-		linkContainer.layout();
-		helpPart.reflow();
-	}
-
-	private void addLinks(final Composite container, FormToolkit toolkit) {
-		IHyperlinkListener listener = new HyperlinkAdapter() {
-			public void linkActivated(final HyperlinkEvent e) {
-				container.getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						SeeAlsoPart.this.helpPart.showPage((String) e.getHref(), true);
-					}
-				});
-			}
-		};
-		if ((helpPart.getStyle() & ReusableHelpPart.ALL_TOPICS) != 0)
-			addPageLink(container, toolkit, Messages.SeeAlsoPart_allTopics, IHelpUIConstants.HV_ALL_TOPICS_PAGE, 
-				IHelpUIConstants.IMAGE_ALL_TOPICS, listener);
-		if ((helpPart.getStyle() & ReusableHelpPart.SEARCH) != 0) {
-			addPageLink(container, toolkit, Messages.SeeAlsoPart_search, IHelpUIConstants.HV_FSEARCH_PAGE, 
-				IHelpUIConstants.IMAGE_HELP_SEARCH, listener);
-		}
-		if ((helpPart.getStyle() & ReusableHelpPart.CONTEXT_HELP) != 0) {
-			addPageLink(container, toolkit, Messages.SeeAlsoPart_contextHelp, 
-				IHelpUIConstants.HV_CONTEXT_HELP_PAGE,
-				IHelpUIConstants.IMAGE_RELATED_TOPICS, listener);
-		}
-		if ((helpPart.getStyle() & ReusableHelpPart.BOOKMARKS) != 0) {
-			addPageLink(container, toolkit, Messages.SeeAlsoPart_bookmarks, 
-				IHelpUIConstants.HV_BOOKMARKS_PAGE,
-				IHelpUIConstants.IMAGE_BOOKMARKS, listener);
-		}
-		if ((helpPart.getStyle() & ReusableHelpPart.INDEX) != 0) {
-			addPageLink(container, toolkit, Messages.SeeAlsoPart_index, 
-				IHelpUIConstants.HV_INDEX_PAGE,
-				IHelpUIConstants.IMAGE_INDEX, listener);
-		}
-	}
-
-	private void addPageLink(Composite container, FormToolkit toolkit, String text, String id,
-			String imgRef, IHyperlinkListener listener) {
-		String cid = helpPart.getCurrentPageId();
-		if (cid!=null && cid.equals(id))
-			return;
-		ImageHyperlink link = toolkit.createImageHyperlink(container, SWT.WRAP);
-		link.setImage(HelpUIResources.getImage(imgRef));
-		link.setText(text);
-		link.setHref(id);
-		link.addHyperlinkListener(listener);
-		RowData data = new RowData();
-		data.exclude = false;
-		link.setLayoutData(data);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#getControl()
-	 */
-	public Control getControl() {
-		return container;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#init(org.eclipse.help.ui.internal.views.NewReusableHelpPart)
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.helpPart = parent;
-		this.id = id;
-		addLinks(linkContainer, helpPart.getForm().getToolkit());
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		container.setVisible(visible);
-		if (visible)
-			markStale();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public boolean fillContextMenu(IMenuManager manager) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.ui.internal.views.IHelpPart#hasFocusControl(org.eclipse.swt.widgets.Control)
-	 */
-	public boolean hasFocusControl(Control control) {
-		return control.getParent() == linkContainer;
-	}
-
-	public IAction getGlobalAction(String id) {
-		if (id.equals(ActionFactory.COPY.getId()))
-			return helpPart.getCopyAction();
-		return null;
-	}
-	public void stop() {
-	}
-	public void refresh() {
-		if (linkContainer!=null && helpPart.getCurrentPageId()!=null)
-			updateLinks(helpPart.getCurrentPageId());
-		super.refresh();
-	}
-
-	public void toggleRoleFilter() {
-	}
-
-	public void refilter() {
-	}
-
-	public void saveState(IMemento memento) {
-	}	
-	
-	public void setFocus() {
-		if (linkContainer!=null)
-			linkContainer.setFocus();
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SorterByScore.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SorterByScore.java
deleted file mode 100644
index 359f768..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SorterByScore.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.ui.internal.views;
-
-import org.eclipse.help.internal.search.SearchHit;
-import org.eclipse.jface.viewers.*;
-
-public class SorterByScore extends ViewerSorter {
-	public SorterByScore() {
-		super(ReusableHelpPart.SHARED_COLLATOR);
-	}
-	/**
-	 * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,java.lang.Object,java.lang.Object)
-	 */
-	public int compare(Viewer viewer, Object e1, Object e2) {
-		try {
-			float rank1 = ((SearchHit) e1).getScore();
-			float rank2 = ((SearchHit) e2).getScore();
-			if (rank1 - rank2 > 0) {
-				return -1;
-			} else if (rank1 == rank2) {
-				return 0;
-			} else {
-				return 1;
-			}
-		} catch (Exception e) {
-		}
-		return super.compare(viewer, e1, e2);
-	}
-}
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/xhtml/UIContentFilterProcessor.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/xhtml/UIContentFilterProcessor.java
deleted file mode 100644
index 3bab426..0000000
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/xhtml/UIContentFilterProcessor.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-
-package org.eclipse.help.ui.internal.xhtml;
-
-import org.eclipse.help.internal.FilterableHelpElement;
-import org.eclipse.help.internal.FilterableUAElement;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.xhtml.UAContentFilterProcessor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.IActivityManager;
-import org.eclipse.ui.activities.IWorkbenchActivitySupport;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-
-/**
- * Handles content manipulation. Filters filter content in as opposed to filtering out.
- * 
- */
-public class UIContentFilterProcessor extends UAContentFilterProcessor {
-
-	/**
-	 * Overrides to add category and activity filtering.
-	 *  
-	 * @see org.eclipse.help.internal.xhtml.UAContentFilterProcessor#isFilteredIn(java.lang.String, java.lang.String)
-	 */
-	public boolean isFilteredIn(String filter, String value, boolean isPositive) {
-		boolean filtered_in = false;
-		if (filter.equals("category")) { //$NON-NLS-1$
-			filtered_in = filterByCategory(value);
-		} else if (filter.equals("activity")) { //$NON-NLS-1$
-			filtered_in = filterByActivity(value);
-		} else
-			return super.isFilteredIn(filter, value, isPositive);
-
-		return isPositive ? filtered_in : !filtered_in;
-	}
-
-	/**
-	 * Overrides to turn off filtering when it's specifically a help element
-	 * and the user has requested to show all content.
-	 * 
-	 * @see org.eclipse.help.internal.xhtml.UAContentFilterProcessor#isFilteredIn(org.eclipse.help.internal.FilterableUAElement)
-	 */
-	public boolean isFilteredIn(FilterableUAElement element) {
-		// don't filter help elements if user requested show all content
-		if (element instanceof FilterableHelpElement && !HelpBasePlugin.getActivitySupport().isFilteringEnabled()) {
-			return true;
-		}
-		return super.isFilteredIn(element);
-	}
-
-	/**
-	 * evaluates Role (aka category) filter.
-	 */
-	private static boolean filterByCategory(String categoryId) {
-		IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();
-		IActivityManager activityManager = workbenchActivitySupport.getActivityManager();
-		if (!activityManager.getCategory(categoryId).isDefined())
-			return false;
-
-		boolean categoryIsEnabled = WorkbenchActivityHelper.isEnabled(activityManager, categoryId);
-		if (categoryIsEnabled)
-			return true;
-		return false;
-	}
-
-
-	/**
-	 * evaluates Activity filter.
-	 */
-	private static boolean filterByActivity(String activityId) {
-		IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();
-		IActivityManager activityManager = workbenchActivitySupport.getActivityManager();
-		if (!activityManager.getActivity(activityId).isDefined())
-			return false;
-
-		boolean activityIsEnabled = activityManager.getActivity(activityId).isEnabled();
-		if (activityIsEnabled)
-			return true;
-		return false;
-	}
-
-
-
-}
diff --git a/org.eclipse.help.webapp/.classpath b/org.eclipse.help.webapp/.classpath
deleted file mode 100644
index 465feb2..0000000
--- a/org.eclipse.help.webapp/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" output="WEB-INF/classes" path="src_servlets"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.help.webapp/.cvsignore b/org.eclipse.help.webapp/.cvsignore
deleted file mode 100644
index 592c6ec..0000000
--- a/org.eclipse.help.webapp/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-bin
-org.eclipse.help.webapp_*
-webapp.jar.bin.log
-temp.folder
-jsp.jar
-webapp.jar
-webappsrc.zip
diff --git a/org.eclipse.help.webapp/.options b/org.eclipse.help.webapp/.options
deleted file mode 100644
index 8490686..0000000
--- a/org.eclipse.help.webapp/.options
+++ /dev/null
@@ -1,2 +0,0 @@
-org.eclipse.help.webapp/debug = true
-org.eclipse.help.webapp/debug/workingsets = false
diff --git a/org.eclipse.help.webapp/.project b/org.eclipse.help.webapp/.project
deleted file mode 100644
index e8e323a..0000000
--- a/org.eclipse.help.webapp/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.help.webapp</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.help.webapp/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.help.webapp/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 357d1d5..0000000
--- a/org.eclipse.help.webapp/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,49 +0,0 @@
-#Wed Dec 07 17:04:39 EST 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/org.eclipse.help.webapp/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.help.webapp/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e6ee03b..0000000
--- a/org.eclipse.help.webapp/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon May 16 16:30:23 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/org.eclipse.help.webapp/META-INF/MANIFEST.MF b/org.eclipse.help.webapp/META-INF/MANIFEST.MF
deleted file mode 100644
index b49b3be..0000000
--- a/org.eclipse.help.webapp/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %help_webapp_plugin_name
-Bundle-SymbolicName: org.eclipse.help.webapp; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-ClassPath: webapp.jar
-Bundle-Activator: org.eclipse.help.internal.webapp.HelpWebappPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.help.base;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)"
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.help.internal.webapp;x-friends:="org.eclipse.ua.tests"
diff --git a/org.eclipse.help.webapp/WEB-INF/.cvsignore b/org.eclipse.help.webapp/WEB-INF/.cvsignore
deleted file mode 100644
index 90b07e9..0000000
--- a/org.eclipse.help.webapp/WEB-INF/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-classes
diff --git a/org.eclipse.help.webapp/WEB-INF/lib/.cvsignore b/org.eclipse.help.webapp/WEB-INF/lib/.cvsignore
deleted file mode 100644
index 3adad49..0000000
--- a/org.eclipse.help.webapp/WEB-INF/lib/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-jsp.jar
-servlets.jar
-servletssrc.zip
diff --git a/org.eclipse.help.webapp/WEB-INF/web.xml b/org.eclipse.help.webapp/WEB-INF/web.xml
deleted file mode 100644
index 23d3476..0000000
--- a/org.eclipse.help.webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-
-<!DOCTYPE web-app
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
-    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
-
-<web-app>
-
-    <servlet>
-        <servlet-name>control</servlet-name>
-        <servlet-class>org.eclipse.help.internal.webapp.servlet.ControlServlet</servlet-class>
-    </servlet>
-    
-    <servlet>
-        <servlet-name>content</servlet-name>
-        <servlet-class>org.eclipse.help.internal.webapp.servlet.ContentServlet</servlet-class>
-    </servlet>
-    
-    <servlet>
-        <servlet-name>livehelp</servlet-name>
-        <servlet-class>org.eclipse.help.internal.webapp.servlet.LiveHelpServlet</servlet-class>
-    </servlet>
-  
-    <servlet>
-        <servlet-name>toc</servlet-name>
-        <servlet-class>org.eclipse.help.internal.webapp.servlet.TocServlet</servlet-class>
-    </servlet>
-    
-    <servlet>
-        <servlet-name>index</servlet-name>
-        <servlet-class>org.eclipse.help.internal.webapp.servlet.IndexServlet</servlet-class>
-    </servlet>
-
-    <servlet>
-        <servlet-name>search</servlet-name>
-        <servlet-class>org.eclipse.help.internal.webapp.servlet.SearchServlet</servlet-class>
-    </servlet>
-    
-    <servlet>
-        <servlet-name>context</servlet-name>
-        <servlet-class>org.eclipse.help.internal.webapp.servlet.ContextServlet</servlet-class>
-    </servlet>
-          
-<!-- placeholder for JSPs web.xml -->
-
-    <servlet-mapping>
-        <servlet-name>control</servlet-name>
-        <url-pattern>/control.html</url-pattern>
-    </servlet-mapping>
-    
-    <servlet-mapping>
-        <servlet-name>content</servlet-name>
-        <url-pattern>/content/*</url-pattern>
-    </servlet-mapping>
-    
-    <servlet-mapping>
-        <servlet-name>content</servlet-name>
-        <url-pattern>/topic/*</url-pattern>
-    </servlet-mapping>
-
-    <servlet-mapping>
-        <servlet-name>content</servlet-name>
-        <url-pattern>/nftopic/*</url-pattern>
-    </servlet-mapping>
-    
-    <servlet-mapping>
-        <servlet-name>content</servlet-name>
-        <url-pattern>/ntopic/*</url-pattern>
-    </servlet-mapping>
-    
-    <servlet-mapping>
-        <servlet-name>livehelp</servlet-name>
-        <url-pattern>/livehelp/*</url-pattern>
-    </servlet-mapping>
- 
-    <servlet-mapping>
-        <servlet-name>toc</servlet-name>
-        <url-pattern>/toc/*</url-pattern>
-    </servlet-mapping>
-       
-    <servlet-mapping>
-        <servlet-name>index</servlet-name>
-        <url-pattern>/index/*</url-pattern>
-    </servlet-mapping>
-    
-    <servlet-mapping>
-        <servlet-name>search</servlet-name>
-        <url-pattern>/search/*</url-pattern>
-    </servlet-mapping>
-    
-    <servlet-mapping>
-        <servlet-name>context</servlet-name>
-        <url-pattern>/context/*</url-pattern>
-    </servlet-mapping>
-    
-	<welcome-file-list>
-		<welcome-file>index.html</welcome-file>
-		<welcome-file>index.htm</welcome-file>
-		<welcome-file>index.jsp</welcome-file>
-	</welcome-file-list>
-
-<!-- Uncomment to enable secure access to the InfoCenter. Update the role-name as appropriate.
-	<security-constraint>
-		<web-resource-collection>
-			<web-resource-name>helproot</web-resource-name>
-			<description></description>
-			<url-pattern>/*</url-pattern>
-			<http-method>
-			GET</http-method>
-			<http-method>
-			PUT</http-method>
-		</web-resource-collection>
-		<auth-constraint>
-			<description></description>
-			<role-name>tomcat</role-name>
-		</auth-constraint>
-        <user-data-constraint>
-            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-        </user-data-constraint>
-	</security-constraint>
-	<login-config>
-		<auth-method>BASIC</auth-method>
-	</login-config>
-	<security-role>
-		<description></description>
-		<role-name>tomcat</role-name>
-	</security-role>
--->
-</web-app>
-
diff --git a/org.eclipse.help.webapp/about.html b/org.eclipse.help.webapp/about.html
deleted file mode 100644
index e336131..0000000
--- a/org.eclipse.help.webapp/about.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/advanced.jsp b/org.eclipse.help.webapp/advanced/advanced.jsp
deleted file mode 100644
index ea3f0e6..0000000
--- a/org.eclipse.help.webapp/advanced/advanced.jsp
+++ /dev/null
@@ -1,235 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	SearchData data = new SearchData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-
-<html>
-<head>
-<title><%=ServletResources.getString("Advanced", request)%></title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-<style type="text/css">
-
-/* need this one for Mozilla */
-HTML { 
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
- }
- 
-BODY {
-	font: <%=prefs.getViewFont()%>;
-	background:<%=prefs.getToolbarBackground()%>;
-	border:1px solid ThreeDShadow;
-	padding:0px;
-	margin:0px;
-}
-
-TABLE {
-	font:<%=prefs.getViewFont()%>;
-	background:<%=prefs.getToolbarBackground()%>;
-}
-
-TD, TR {
-	margin:0px;
-	padding:0px;
-	border:0px;
-}
-
-FORM {
-	margin:0px;
-	padding:0px;
-	border:0px;
-	height:100%;
-}
-
-
-#searchTable {
-	background:transparent; 
-	margin:10px 0px 20px 0px;
-}
-
-#searchWord {
-	border:1px solid ThreeDShadow;
-	width:100%;
-	font:icon;
-}
-
-#booksContainer {
-	background:<%=prefs.getViewBackground()%>;
-	border:1px solid ThreeDShadow;
-	margin:0px 10px;
-	overflow:auto;
-}
-
-.book {
-	margin:0xp;
-	border:0px;
-	padding:0px;
-}
-
-.button {
-	font:<%=prefs.getViewFont()%>;
-}
-
-<%
-if (data.isMozilla()) {
-%>
-input[type="checkbox"] {
-	border:2px solid ThreeDShadow; 
-	margin:0xp; 
-	padding:0px;	
-	height:12px;
-	width:12px;
-}
-<%
-}
-%>
-</style>
-
-<script language="JavaScript">
-
-function doAdvancedSearch()
-{
-	try
-	{
-		var form = document.forms["searchForm"];
-		var searchWord = form.searchWord.value;
-		var maxHits = form.maxHits.value;
-		if (!searchWord || searchWord == "")
-			return;
-	
-		var scope = "";
-		var buttons = document.getElementsByTagName("INPUT");
-		for (var i=0; i<buttons.length; i++)
-		{
-			if (buttons[i].type != "checkbox") continue;
-			if (buttons[i].checked == false) continue;
-			scope += "&scope="+encodeURIComponent(buttons[i].name);
-		}
-		
-		// persist selection
-		window.opener.saveSelectedBooks(getSelectedBooks());
-		
-		window.opener.document.forms["searchForm"].searchWord.value = searchWord;
-		var query = "searchWord="+encodeURIComponent(searchWord)+"&scopedSearch=true&maxHits="+maxHits + scope;
-		window.opener.doSearch(query);
-		window.opener.focus();
-		window.close();
-	} catch(ex) {}
-}
-
-function restoreSelectedBooks()
-{
-	var selectedBooks = window.opener.selectedBooks;
-	var inputs = document.body.getElementsByTagName("INPUT");
-	for (var i=0; i<inputs.length; i++) {
-		if (inputs[i].type == "checkbox" && isSelected(inputs[i].name, selectedBooks))
-			inputs[i].checked = true;
-	}
-}
-
-
-function getSelectedBooks()
-{
-	var selectedBooks = new Array();
-	var inputs = document.body.getElementsByTagName("INPUT");
-	for (var i=0; i<inputs.length; i++) {
-		if (inputs[i].type == "checkbox"  && inputs[i].checked)
-			selectedBooks[selectedBooks.length] = inputs[i].name;
-	}
-	return selectedBooks;
-}
-
-function isSelected(book, selectedBooks)
-{
-	// the first time select all
-	if (!selectedBooks)
-		return true;
-		
-	for (var i=0; i<selectedBooks.length; i++)
-		if (book == selectedBooks[i])
-			return true;
-	return false;
-}
-
-function onloadHandler()
-{
-	// select the books from previous run, or all otherwise
-	restoreSelectedBooks();
-}
-
-</script>
-
-</head>
-
-<body dir="<%=direction%>" onload="onloadHandler()">
-
-<form name="searchForm" onsubmit="doAdvancedSearch()">
-<div style="overflow:auto;height:250px;">
-	<table id="searchTable" width="100%" cellspacing=0 cellpading=0 border=0 align=center >
-		<tr><td style="padding:0px 10px;"><label for="searchWord"><%=ServletResources.getString("SearchExpression", request)%></label>
-		</td></tr>
-		<tr><td style="padding:0px 10px;"><input type="text" id="searchWord" name="searchWord" value="<%=UrlUtil.htmlEncode(data.getSearchWord())%>" maxlength=256 alt='<%=ServletResources.getString("SearchExpression", request)%>' title='<%=ServletResources.getString("SearchExpression", request)%>'>
-          	  	<input type="hidden" name="maxHits" value="500" >
-        </td></tr>
-        <tr><td style="padding:0px 10px;"><%=ServletResources.getString("expression_label", request)%>
-        </td></tr>
-    </table>
-  
-  	<table id="filterTable" width="100%" cellspacing=0 cellpading=0 border=0 align=center  style="background:transparent;">
-		<tr><td><div id="selectBook" style="margin-<%=isRTL?"right":"left"%>:10px;"><%=ServletResources.getString("Select", request)%></div>
-		</td></tr>
-		<tr><td>
-			<div id="booksContainer">
-<% 
-TocData tocData = new TocData(application, request, response);
-for (int i=0; i<tocData.getTocCount(); i++)
-{
-	String label = tocData.getTocLabel(i);
-%>
-				<div class="book"><input class="checkbox" type="checkbox" name='<%=tocData.getTocHref(i)%>' id="checkbox<%=i%>" alt="<%=label%>"><label for="checkbox<%=i%>"><%=label%></label></div>
-<%
-}		
-%>
-			</div>
-		</td></tr>
-	</table>
-</div>
-<div style="height:50px;">
-	<table valign="bottom" align="<%=isRTL?"left":"right"%>">
-		<tr id="buttonsTable" valign="bottom"><td valign="bottom" align="<%=isRTL?"left":"right"%>">
-  			<table cellspacing=10 cellpading=0 border=0 align=<%=isRTL?"left":"right"%>  style="background:transparent;">
-				<tr>
-					<td>
-						<input id="searchButton" class='button'  type="button" onclick="doAdvancedSearch()" value='<%=ServletResources.getString("Search", request)%>'  id="go" alt='<%=ServletResources.getString("Search", request)%>' title='<%=ServletResources.getString("Search", request)%>'>
-					</td>
-					<td>
-					  	<input class='button' type="button" onclick="window.close()"  type="button"  value='<%=ServletResources.getString("Cancel", request)%>'  id="cancel" alt='<%=ServletResources.getString("Cancel", request)%>' title='<%=ServletResources.getString("Cancel", request)%>'>
-					</td>
-				</tr>
-  			</table>
-		</td></tr>
-	</table>
-</div>
- </form>
-
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/askShowAll.jsp b/org.eclipse.help.webapp/advanced/askShowAll.jsp
deleted file mode 100644
index 1d9272a..0000000
--- a/org.eclipse.help.webapp/advanced/askShowAll.jsp
+++ /dev/null
@@ -1,20 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<jsp:include page="confirm.jsp">
-	<jsp:param name="title"		value="confirmShowAllTitle"/>
-	<jsp:param name="header"	value="askShowAllQuestion"/>
-	<jsp:param name="message"	value="askShowAllExplanation"/>
-	<jsp:param name="confirmCallback"	value="<%=\"yesShowAll()\"%>"/>
-	<jsp:param name="initialFocus"	value="cancel"/>
-	<jsp:param name="buttons"	value="yesno"/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/banner.html b/org.eclipse.help.webapp/advanced/banner.html
deleted file mode 100644
index 7d2a87d..0000000
--- a/org.eclipse.help.webapp/advanced/banner.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!------------------------------------------------------------------------------
- ! Copyright (c) 2000, 2004 IBM Corporation and others.
- ! All rights reserved. This program and the accompanying materials 
- ! are made available under the terms of the Eclipse Public License v1.0
- ! which accompanies this distribution, and is available at
- ! http://www.eclipse.org/legal/epl-v10.html
- ! 
- ! Contributors:
- !     IBM Corporation - initial API and implementation
- ------------------------------------------------------------------------------->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-
-<title>Banner</title>
-     
-<style type="text/css">
-/* need this one for Mozilla */
-HTML { 
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
- }
-
-BODY {
-	background-color:#7168D1;
-	text:white;
-	height:60px;
-}
-
-TABLE {
-	margin:0;
-	border:0;
-	padding:0;
-	height:100%;
-}
-
-</style>
-
-
-</head>
-
-<body marginwidth="0" marginheight="0">
-
-	<table align="left" cellspacing="0" cellpadding="0" border="0">
-		<tr>
-			<td align=left valign="center"><img src="images/help_banner.jpg" alt="Eclipse icon" title="Eclipse icon">
-			</td>
-		</tr>
-	</table>
-
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/bookmarksToolbar.jsp b/org.eclipse.help.webapp/advanced/bookmarksToolbar.jsp
deleted file mode 100644
index fb103b5..0000000
--- a/org.eclipse.help.webapp/advanced/bookmarksToolbar.jsp
+++ /dev/null
@@ -1,35 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="script" value="navActions.js"/>
-	<jsp:param name="view" value="bookmarks"/>
-
-	<jsp:param name="name"     value="deleteBookmark"/>
-	<jsp:param name="tooltip"  value='deleteBookmark'/>
-	<jsp:param name="image"    value="bookmark_rem.gif"/>
-	<jsp:param name="action"   value="removeBookmark"/>
-	<jsp:param name="state"    value='off'/>
-
-	<jsp:param name="name"     value="deleteAllBookmarks"/>
-	<jsp:param name="tooltip"  value='deleteAllBookmarks'/>
-	<jsp:param name="image"    value="bookmark_remall.gif"/>
-	<jsp:param name="action"   value="removeAllBookmarks"/>
-	<jsp:param name="state"    value='off'/>
-
-	<jsp:param name="name"     value="synchnav"/>
-	<jsp:param name="tooltip"  value='SynchNav'/>
-	<jsp:param name="image"    value="synch_nav.gif"/>
-	<jsp:param name="action"   value="resynchNav"/>
-	<jsp:param name="state"    value='off'/>
-</jsp:include>
diff --git a/org.eclipse.help.webapp/advanced/bookmarksView.jsp b/org.eclipse.help.webapp/advanced/bookmarksView.jsp
deleted file mode 100644
index 9e90733..0000000
--- a/org.eclipse.help.webapp/advanced/bookmarksView.jsp
+++ /dev/null
@@ -1,149 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	BookmarksData data = new BookmarksData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-<title><%=ServletResources.getString("Bookmarks", request)%></title>
-
-<style type="text/css">
-<%@ include file="list.css"%>
-</style>
-
-<base target="ContentViewFrame">
-
-<script language="JavaScript" src="list.js"></script>
-
-<script language="JavaScript">		
-
-/**
- * Removes bookmark 
- */
-function removeBookmark() 
-{
-	if (!active) 
-		return false;
-		
-	var bookmark = active;
-	active = null;
-	
-	// Note: bookmark is an anchor "a"
-	var url = bookmark.href;
-	var i = url.indexOf("/topic/");
-	if (i >=0 )
-		url = url.substring(i+6);
-	// remove any query string
-	i = url.indexOf("?");
-	if (i >= 0)
-		url = url.substring(0, i);
-		
-	var title = bookmark.title;
-	if (title == null || title == "")
-		title = url;
-			
-	window.location.replace("bookmarksView.jsp?operation=remove&bookmark="+encodeURIComponent(url)+"&title="+encodeURIComponent(title));
-	return true;
-}
-
-/**
- * Removes all bookmarks
- */
-function removeAllBookmarks() 
-{
-	hidePopupMenu();
-	if(!confirm("<%=ServletResources.getString("confirmDeleteAllBookmarks",request)%>"))
-		return true;
-	window.location.replace("bookmarksView.jsp?operation=removeAll");
-	return true;
-}
-
-/**
- * If the Del key was pressed, remove the bookmark
- */
-function bookmarkKeyDownHandler(e) {
-	var key;
-	
-	if (isIE) {
-		key = window.event.keyCode;
-	} else if (isMozilla) {
-		key = e.keyCode;
-	}
-
-	// Check if this is the Delete key (code 46)
-	if (key != 46)
-		return true;
-		
-	if (isMozilla)
-		e.cancelBubble = true;
-	else if (isIE)
-		window.event.cancelBubble = true;
-  	
-  	return removeBookmark();
-}
-</script>
-
-</head>
-
-
-<body dir="<%=direction%>">
- 
-<%
-if(data.getBookmarks().length == 0) {
-	out.write(ServletResources.getString("addBookmark", request));
-} else {
-%>
-<table id='list'  cellspacing='0' >
-
-<%
-	Topic[] bookmarks = data.getBookmarks();
-	for (int i=0; i<bookmarks.length; i++) 
-	{
-%>
-
-<tr class='list' id='r<%=i%>'>
-	<td align='<%=isRTL?"right":"left"%>' class='label' nowrap>
-		<a id='a<%=i%>' 
-		   href='<%=bookmarks[i].getHref()%>' 
-		   onmouseover="showStatus(event);return true;"
-		   onmouseout="clearStatus();return true;"
-		   onclick='parent.parent.parent.setContentToolbarTitle(" ")' 
-		   oncontextmenu="contextMenuHandler(event);return false;"
-		   onkeydown="bookmarkKeyDownHandler(event);"
-		   title="<%=UrlUtil.htmlEncode(bookmarks[i].getLabel())%>">
-		   <img src="<%=prefs.getImagesDirectory()%>/topic.gif" alt=""><%=UrlUtil.htmlEncode(bookmarks[i].getLabel())%></a>
-	</td>
-</tr>
-
-<%
-	}
-%>
-
-</table>
-<div id="menu">
-	<div class="unselectedMenuItem" onmouseover="this.className='selectedMenuItem'" onmouseout="this.className='unselectedMenuItem'" onclick="removeBookmark()" ><nobr><%=ServletResources.getString("RemoveBookmark",request)%></nobr></div>
-	<div class="unselectedMenuItem" onmouseover="this.className='selectedMenuItem'" onmouseout="this.className='unselectedMenuItem'" onclick="removeAllBookmarks()" ><nobr><%=ServletResources.getString("RemoveAllBookmarks",request)%></nobr></div>
-</div>
-
-<%
-}
-%>
-
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/confirm.jsp b/org.eclipse.help.webapp/advanced/confirm.jsp
deleted file mode 100644
index 5bdb3f1..0000000
--- a/org.eclipse.help.webapp/advanced/confirm.jsp
+++ /dev/null
@@ -1,150 +0,0 @@
-<%--
- Copyright (c) 2000, 2006 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	RequestData data = new RequestData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-	String okText="";
-	String cancelText="";
-	if("yesno".equalsIgnoreCase(request.getParameter("buttons"))){
-		okText=ServletResources.getString("yes", request);
-		cancelText=ServletResources.getString("no", request);
-	}else{
-		okText=ServletResources.getString("OK", request);
-		cancelText=ServletResources.getString("Cancel", request);
-	}
-%>
-
-
-<html>
-<head>
-<title><%=ServletResources.getString(request.getParameter("title"), request)%></title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-
-<style type="text/css">
-<%@ include file="list.css"%>
-</style>
-
-<style type="text/css">
-HTML, BODY {
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
-}
-
-BODY {
-	background-color: <%=prefs.getToolbarBackground()%>;
-}
-
-TABLE {
-	width:auto;
-}
-
-TD, TR{
-	margin:0px;
-	padding:0px;
-	border:0px;
-}
-
-BUTTON {
-	font:<%=prefs.getViewFont()%>;
-}
-
-</style>
-
-<script language="JavaScript">
-
-function onloadHandler() {
-<%
-if(!data.isMozilla() || "1.3".compareTo(data.getMozillaVersion()) <=0){
-// buttons are not resized immediately on mozilla before 1.3
-%>
-	sizeButtons();
-<%}%>
-	document.getElementById("<%=request.getParameter("initialFocus")%>").focus();
-}
-
-function sizeButtons() {
-	var minWidth=60;
-
-	if(document.getElementById("ok").offsetWidth < minWidth){
-		document.getElementById("ok").style.width = minWidth+"px";
-	}
-	if(document.getElementById("cancel").offsetWidth < minWidth){
-		document.getElementById("cancel").style.width = minWidth+"px";
-	}
-}
-
-function confirmed(){
-	try{
-<% if ("true".equalsIgnoreCase(request.getParameter("dontaskagain")) ){ %>
-		if(document.getElementById("dontask").checked){
-			window.opener.<%=request.getParameter("dontaskagainCallback")%>;
-		}
-<% } %>
-		window.opener.<%=request.getParameter("confirmCallback")%>;
-	} catch(e) {}
- 	window.close();
-	return false;
-}
-
-</script>
-
-</head>
-
-<body dir="<%=direction%>" onload="onloadHandler()">
-<form onsubmit="confirmed();return false;">
-<div style="overflow:auto;height:160px;width:100%;">
-	<div style="padding:10px;">
-	<span style="font-weight:bold;"><%=ServletResources.getString(request.getParameter("header"), request)%></span>
-	<br><br>
-	<%=ServletResources.getConfirmShowAllExplanation(request)%>
-	</div>
-</div>
-<% if ("true".equalsIgnoreCase(request.getParameter("dontaskagain")) ){ %>
-<div style="height:30px;">
-	<div style="padding-left:10px;padding-right:10px;">
-	<input class='check'
-			type="checkbox" 
-			id='dontask' 
-			name='dontask'>
-			<label for="dontask"
-				accesskey="<%=ServletResources.getAccessKey("dontask", request)%>">
-				<%=ServletResources.getLabel("dontask", request)%>
-			</label>
-	</div>				
-</div>
-<% } %>
-<div style="height:50px;">
-	<table valign="bottom" align="<%=isRTL?"left":"right"%>" style="background:<%=prefs.getToolbarBackground()%>">
-		<tr id="buttonsTable" valign="bottom"><td valign="bottom" align="<%=isRTL?"left":"right"%>">
-  			<table cellspacing=10 cellpading=0 border=0 style="background:transparent;">
-				<tr>
-					<td>
-						<button type="submit" id="ok"><%=okText%></button>
-					</td>
-					<td>
-					  	<button type="reset" onclick="window.close()" id="cancel"><%=cancelText%></button>
-					</td>
-				</tr>
-  			</table>
-		</td></tr>
-	</table>
-</div>
-</form>
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/confirmShowAll.jsp b/org.eclipse.help.webapp/advanced/confirmShowAll.jsp
deleted file mode 100644
index 00fa2b8..0000000
--- a/org.eclipse.help.webapp/advanced/confirmShowAll.jsp
+++ /dev/null
@@ -1,21 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<jsp:include page="confirm.jsp">
-	<jsp:param name="title"		value="confirmShowAllTitle"/>
-	<jsp:param name="header"	value="confirmShowAllQuestion"/>
-	<jsp:param name="message"	value="confirmShowAllExplanation"/>
-	<jsp:param name="dontaskagain"	value="true"/>
-	<jsp:param name="dontaskagainCallback"	value="<%=\"dontAskAgain()\"%>"/>
-	<jsp:param name="confirmCallback"	value="<%=\"showAll()\"%>"/>
-	<jsp:param name="initialFocus"	value="ok"/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/content.jsp b/org.eclipse.help.webapp/advanced/content.jsp
deleted file mode 100644
index 7343ce3..0000000
--- a/org.eclipse.help.webapp/advanced/content.jsp
+++ /dev/null
@@ -1,70 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="fheader.jsp"%>
-
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=ServletResources.getString("Help", request)%></title>
-
-<style type="text/css">
-<% 
-if (data.isMozilla()) {
-%>
-HTML {
-	background:<%=prefs.getToolbarBackground()%>;
-	border-<%=isRTL?"left":"right"%>:1px solid ThreeDShadow;
-}
-<% 
-} else {
-%>
-FRAMESET {
-	border-top:1px solid ThreeDShadow;
-	border-left:1px solid ThreeDShadow;
-	border-right:1px solid ThreeDShadow;
-	border-bottom:1px solid ThreeDShadow;
-}
-<%
-}
-%>
-</style>
-
-<script language="JavaScript">
-
-function onloadHandler(e)
-{
-<% if (data.isIE() || data.isMozilla() && "1.2.1".compareTo(data.getMozillaVersion()) <=0){
-%>	var h=window.ContentToolbarFrame.document.getElementById("titleText").offsetHeight; <%-- default 13 --%>
-	if(h<=19){
-		return; <%-- no need to resize up to 19px --%>
-	}
-	document.getElementById("contentFrameset").setAttribute("rows", (11+h)+",*"); <%-- default 24 --%>
-	window.ContentToolbarFrame.document.getElementById("titleTextTableDiv").style.height=(9+h)+"px"; <%-- default 22 --%>
-<%}%>
-}
-</script>
-
-</head>
-
-
-<frameset id="contentFrameset" onload="onloadHandler()" rows="24,*" frameborder="0" framespacing="0" border=0 spacing=0>
-	<frame name="ContentToolbarFrame" title="<%=ServletResources.getString("topicViewToolbar", request)%>" src='<%="contentToolbar.jsp"+data.getQuery()%>'  marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize=0>
-	<frame ACCESSKEY="K" name="ContentViewFrame" title="<%=ServletResources.getString("topicView", request)%>" src='<%=data.getContentURL()%>'  marginwidth="10"<%=(data.isIE() && "6.0".compareTo(data.getIEVersion()) <=0)?"scrolling=\"yes\"":""%> marginheight="0" frameborder="0" >
-</frameset>
-
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/contentActions.js b/org.eclipse.help.webapp/advanced/contentActions.js
deleted file mode 100644
index b817b2c..0000000
--- a/org.eclipse.help.webapp/advanced/contentActions.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
- 
-var isMozilla = navigator.userAgent.indexOf('Mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-
-var navVisible = true;
-	
-function goBack(button) {
-	parent.history.back();
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function goForward(button) {
-	parent.history.forward();
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-
-function bookmarkPage(button)
-{
-	// Currently we pick up the url from the content page.
-	// If the page is from outside the help domain, a script
-	// exception is thrown. We need to catch it and ignore it.
-	try
-	{
-		// use the url from plugin id only
-		var url = parent.ContentViewFrame.location.href;
-		var i = url.indexOf("/topic/");
-		if (i >=0 )
-			url = url.substring(i+6);
-		// remove any query string
-		i = url.indexOf("?");
-		if (i >= 0)
-			url = url.substring(0, i);
-			
-		var title = parent.ContentViewFrame.document.title;
-		if (title == null || title == "")
-			title = url;
-
-		/********** HARD CODED VIEW NAME *************/
-		parent.parent.NavFrame.ViewsFrame.bookmarks.bookmarksViewFrame.location.replace("bookmarksView.jsp?operation=add&bookmark="+encodeURIComponent(url)+"&title="+encodeURIComponent(title));
-	}catch (e) {}
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function bookmarkInfocenterPage(button)
-{
-	// Currently we pick up the url from the content page.
-	// If the page is from outside the help domain, a script
-	// exception is thrown. We need to catch it and ignore it.
-	try
-	{
-		// use the url from plugin id only
-		var url = parent.ContentViewFrame.location.href;
-		var i = url.indexOf("/topic/");
-		if (i >=0 )
-			url = url.substring(i+6);
-		// remove any query string
-		i = url.indexOf("?");
-		if (i >= 0)
-			url = url.substring(0, i);
-			
-		var title = parent.ContentViewFrame.document.title;
-		if (title == null || title == "")
-			title = url;
-
-		/********** HARD CODED VIEW NAME *************/
-		window.external.AddFavorite(parent.ContentViewFrame.location.href,title);
-	}catch (e) {}
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function resynch(button)
-{
-	try {
-		var topic = parent.ContentViewFrame.window.location.href;
-		// remove the query, if any
-		var i = topic.indexOf('?');
-		if (i != -1)
-			topic = topic.substring(0, i);
-		parent.parent.NavFrame.displayTocFor(topic);
-	} catch(e) {}
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function printContent(button)
-{
-	try {
-		parent.ContentViewFrame.focus();
-		parent.ContentViewFrame.print();
-	} catch(e) {}
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function setTitle(label)
-{
-	if( label == null) label = "";
-	var title = document.getElementById("titleText");
-	if(title !=null){
-		var text = title.lastChild;
-		text.nodeValue = " "+label;
-	}
-}
-
diff --git a/org.eclipse.help.webapp/advanced/contentToolbar.jsp b/org.eclipse.help.webapp/advanced/contentToolbar.jsp
deleted file mode 100644
index ab6ec12..0000000
--- a/org.eclipse.help.webapp/advanced/contentToolbar.jsp
+++ /dev/null
@@ -1,69 +0,0 @@
-<%--
- Copyright (c) 2000, 2005 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	RequestData data = new RequestData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-	String forwardImage, backImage;
-	if(isRTL) {
-		forwardImage = "back.gif";
-		backImage = "forward.gif";
-	} else {
-		forwardImage = "forward.gif";
-		backImage = "back.gif";
-	}
-	boolean isBookmarkAction = prefs.isBookmarksView() 
-		|| prefs.isBookmarksAction() && data.isIE() && !data.isOpera(); // for infocenter, add to favorites supported on IE
-	String bookmarkButtonState = isBookmarkAction?"off":"hidden";
-	String bookmarkAction = RequestData.MODE_INFOCENTER==data.getMode()?"bookmarkInfocenterPage":"bookmarkPage";
-%>
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="script" value="contentActions.js"/>
-	<jsp:param name="toolbar" value="content"/>
-	
-	<jsp:param name="name"     value="back"/>
-	<jsp:param name="tooltip"  value='back_tip'/>
-	<jsp:param name="image"    value='<%=backImage%>'/>
-	<jsp:param name="action"   value="goBack"/>
-	<jsp:param name="state"    value='off'/>
-	
-	<jsp:param name="name"     value="forward"/>
-	<jsp:param name="tooltip"  value='forward_tip'/>
-	<jsp:param name="image"    value='<%=forwardImage%>'/>
-	<jsp:param name="action"   value="goForward"/>
-	<jsp:param name="state"    value='off'/>
-	
-	<jsp:param name="name"     value=""/>
-	<jsp:param name="tooltip"  value=""/>
-	<jsp:param name="image"    value=""/>
-	<jsp:param name="action"   value=""/>
-	<jsp:param name="state"    value='off'/>
-	
-	<jsp:param name="name"     value="synch"/>
-	<jsp:param name="tooltip"  value='Synch'/>
-	<jsp:param name="image"    value="synch_toc_nav.gif"/>
-	<jsp:param name="action"   value="resynch"/>
-	<jsp:param name="state"    value='off'/>
-	
-	<jsp:param name="name"     value="add_bkmrk"/>
-	<jsp:param name="tooltip"  value='BookmarkPage'/>
-	<jsp:param name="image"    value="add_bkmrk.gif"/>
-	<jsp:param name="action"   value="<%=bookmarkAction%>"/>
-	<jsp:param name="state"    value='<%=bookmarkButtonState%>'/>
-
-	<jsp:param name="name"     value="print"/>
-	<jsp:param name="tooltip"  value='Print'/>
-	<jsp:param name="image"    value="print_edit.gif"/>
-	<jsp:param name="action"   value="printContent"/>
-	<jsp:param name="state"    value='off'/>
-
-</jsp:include>
diff --git a/org.eclipse.help.webapp/advanced/err.jsp b/org.eclipse.help.webapp/advanced/err.jsp
deleted file mode 100644
index 4da5a43..0000000
--- a/org.eclipse.help.webapp/advanced/err.jsp
+++ /dev/null
@@ -1,40 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ page import="org.eclipse.help.internal.webapp.data.*" contentType="text/html; charset=UTF-8"%>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title> Error </title>
-</head>
-<%
-String  direction = "ltr";
-try{
-	if(UrlUtil.isRTL(request, response)){
-		direction = "rtl";
-	}
-}catch(Exception e){
-}
-%>
-
-<body dir="<%=direction%>">
-
-	<%@ page isErrorPage="true" %>
-	
-	There was an error in your action:
-	<p>
-	<%= exception.toString() %>
-	</p>
-	
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/fheader.jsp b/org.eclipse.help.webapp/advanced/fheader.jsp
deleted file mode 100644
index c869f62..0000000
--- a/org.eclipse.help.webapp/advanced/fheader.jsp
+++ /dev/null
@@ -1,32 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%><%@
-page import="org.eclipse.help.internal.webapp.data.*"  contentType="text/html; charset=UTF-8"
-%><% 
-request.setCharacterEncoding("UTF-8");
-boolean isRTL = UrlUtil.isRTL(request, response);
-String  direction = isRTL?"rtl":"ltr";
-if (new RequestData(application,request, response).isMozilla()) {
-%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<% 
-} else {
-%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<%
-}
-%><!------------------------------------------------------------------------------
- ! Copyright (c) 2000, 2004 IBM Corporation and others.
- ! All rights reserved. This program and the accompanying materials 
- ! are made available under the terms of the Eclipse Public License v1.0
- ! which accompanies this distribution, and is available at
- ! http://www.eclipse.org/legal/epl-v10.html
- ! 
- ! Contributors:
- !     IBM Corporation - initial API and implementation
- ------------------------------------------------------------------------------->
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/header.jsp b/org.eclipse.help.webapp/advanced/header.jsp
deleted file mode 100644
index 0be0af3..0000000
--- a/org.eclipse.help.webapp/advanced/header.jsp
+++ /dev/null
@@ -1,32 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%><%@
-page import="org.eclipse.help.internal.webapp.data.*"  contentType="text/html; charset=UTF-8"
-%><% 
-request.setCharacterEncoding("UTF-8");
-boolean isRTL = UrlUtil.isRTL(request, response);
-String  direction = isRTL?"rtl":"ltr";
-if (new RequestData(application,request, response).isMozilla()) {
-%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<% 
-} else {
-%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<%
-}
-%><!------------------------------------------------------------------------------
- ! Copyright (c) 2000, 2004 IBM Corporation and others.
- ! All rights reserved. This program and the accompanying materials 
- ! are made available under the terms of the Eclipse Public License v1.0
- ! which accompanies this distribution, and is available at
- ! http://www.eclipse.org/legal/epl-v10.html
- ! 
- ! Contributors:
- !     IBM Corporation - initial API and implementation
- ------------------------------------------------------------------------------->
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/help.jsp b/org.eclipse.help.webapp/advanced/help.jsp
deleted file mode 100644
index 3090d20..0000000
--- a/org.eclipse.help.webapp/advanced/help.jsp
+++ /dev/null
@@ -1,150 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="fheader.jsp"%>
-
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=ServletResources.getString("Help", request)%></title>
-
-<style type="text/css">
-
-HTML {
-	background:<%=prefs.getToolbarBackground()%>;
-<%
-if (data.isMozilla()){
-%>
-	padding:<%=isRTL?"0px 4px 2px 4px":"0px 4px 2px 4px"%>;
-<%
-}
-%>
-}
-
-</style>
-
-<script language="JavaScript">
-<%-- map of maximize listener functions indexed by name --%>
-var maximizeListeners=new Object();
-function registerMaximizeListener(name, listener){
-	maximizeListeners[name]=listener;
-}
-function notifyMaximizeListeners(maximizedNotRestored){
-	for(i in maximizeListeners){
-		try{
-			maximizeListeners[i](maximizedNotRestored);
-		}catch(exc){}
-	}
-}
-<%-- vars to keep track of frame sizes before max/restore --%>
-var leftCols = "<%=isRTL?"70.5%":"29.5%"%>";
-var rightCols = "<%=isRTL?"29.5%":"70.5%"%>";
-<%--
-param title "" for content frame
---%>
-function toggleFrame(title)
-{
-	var frameset = document.getElementById("helpFrameset"); 
-	var navFrameSize = frameset.getAttribute("cols");
-	var comma = navFrameSize.indexOf(',');
-	var left = navFrameSize.substring(0,comma);
-	var right = navFrameSize.substring(comma+1);
-
-	if (left == "*" || right == "*") {
-		// restore frames
-		frameset.frameSpacing="3";
-		frameset.setAttribute("border", "6");
-		frameset.setAttribute("cols", leftCols+","+rightCols);
-		notifyMaximizeListeners(false);
-	} else {
-		// the "cols" attribute is not always accurate, especially after resizing.
-		// offsetWidth is also not accurate, so we do a combination of both and 
-		// should get a reasonable behavior
-<%
-if(isRTL) {
-%>
-		var leftSize = ContentFrame.document.body.offsetWidth;
-		var rightSize = NavFrame.document.body.offsetWidth;
-<%
-} else {
-%>
-		var leftSize = NavFrame.document.body.offsetWidth;
-		var rightSize = ContentFrame.document.body.offsetWidth;
-<%
-}
-%>
-		
-		leftCols = leftSize * 100 / (leftSize + rightSize);
-		rightCols = 100 - leftCols;
-
-		// maximize the frame.
-		//leftCols = left;
-		//rightCols = right;
-		// Assumption: the content toolbar does not have a default title.
-<%
-if(isRTL) {
-%>
-		if (title != "") // this is the right side for right-to-left rendering
-			frameset.setAttribute("cols", "*,100%");
-		else // this is the content toolbar
-			frameset.setAttribute("cols", "100%,*");
-<%
-} else {
-%>
-		if (title != "") // this is the left side for left-to-right rendering
-			frameset.setAttribute("cols", "100%,*");
-		else // this is the content toolbar
-			frameset.setAttribute("cols", "*,100%");
-<%
-}
-%>	
-		frameset.frameSpacing="0";
-		frameset.setAttribute("border", "1");
-		notifyMaximizeListeners(true);
-	}
-}
-</script>
-</head>
-
-<frameset
-<% 
-if (data.isIE()) {
-%> 
-	style="border-top: 0px solid <%=prefs.getToolbarBackground()%>;"
-	style="border-right: 4px solid <%=prefs.getToolbarBackground()%>;"
-	style="border-bottom: 4px solid <%=prefs.getToolbarBackground()%>;"
-	style="border-left: 4px solid <%=prefs.getToolbarBackground()%>;"
-<%
-}
-%> 
-    id="helpFrameset" cols="<%=isRTL?"70.5%,29.5%":"29.5%,70.5%"%>" framespacing="3" border="6"  frameborder="1"   scrolling="no">
-<%
-if (isRTL) {
-%>
-   	<frame name="ContentFrame" title="<%=ServletResources.getString("ignore", "ContentFrame", request)%>" class="content" src='<%="content.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="0" resize=yes>
-   	<frame class="nav" name="NavFrame" title="<%=ServletResources.getString("ignore", "NavFrame", request)%>" src='<%="nav.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="1" resize=yes>
-<%
-} else {
-%>
-   	<frame class="nav" name="NavFrame" title="<%=ServletResources.getString("ignore", "NavFrame", request)%>" src='<%="nav.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="1" resize=yes>
-   	<frame name="ContentFrame" title="<%=ServletResources.getString("ignore", "ContentFrame", request)%>" class="content" src='<%="content.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="0" resize=yes>
-<%
-}
-%>
-</frameset>
-
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/highlight.js b/org.eclipse.help.webapp/advanced/highlight.js
deleted file mode 100644
index 25f63b9..0000000
--- a/org.eclipse.help.webapp/advanced/highlight.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-var isSafari = (navigator.userAgent.indexOf('Safari/') != -1)
-			|| (navigator.userAgent.indexOf('AppleWebKit/') != -1);
-var highlighted=false;
-var startTime;
-var MAX_DURATION=3000;
-onload=highlight;
-document.onreadystatechange=highlight;
-function highlight(){
-	if(highlighted){
-		return;
-	}
-	highlighted=true;
-	if (!document.body) return;
-	if(document.body.innerHTML.length < 50000){
-		for(i=0; i<keywords.length; i++){
-			word=keywords[i].toLowerCase();
-			highlightWordInNode(word, document.body);
-		}
-	}else{
-		startTime=new Date().getTime();
-		for(i=0; i<keywords.length; i++){
-			word=keywords[i].toLowerCase();
-			highlightWordInNodeTimed(word, document.body);
-			if(new Date().getTime()>startTime+MAX_DURATION) return;
-		}
-	}
-}
-function highlightWordInNode(aWord, aNode){
-    if (aNode.nodeType == 1){
-    	var children = aNode.childNodes;
-    	for(var i=0; i < children.length; i++) {
-    		highlightWordInNode(aWord, children[i]);
-    	}
-    }
-    else if(aNode.nodeType==3){
-    	highlightWordInText(aWord, aNode);
-	}
-
-}
-function highlightWordInNodeTimed(aWord, aNode){
-    if (aNode.nodeType == 1){
-    	var children = aNode.childNodes;
-    	for(var i=0; i < children.length; i++) {
-    		highlightWordInNodeTimed(aWord, children[i]);
-			if(new Date().getTime()>startTime+MAX_DURATION) return;
-    	}
-    }
-    else if(aNode.nodeType==3){
-    	highlightWordInText(aWord, aNode);
-	}
-
-}
-function highlightWordInText(aWord, textNode){
-	allText=new String(textNode.data);
-	allTextLowerCase=allText.toLowerCase();
-	index=allTextLowerCase.indexOf(aWord);
-	if(index>=0){
-		// create a node to replace the textNode so we end up
-		// not changing number of children of textNode.parent
-		replacementNode=document.createElement("span");
-		textNode.parentNode.insertBefore(replacementNode, textNode);
-		while(index>=0){
-			before=allText.substring(0,index);
-			newBefore=document.createTextNode(before);
-			replacementNode.appendChild(newBefore);
-			spanNode=document.createElement("span");
-			if(isSafari){
-				spanNode.style.color="#000000";
-				spanNode.style.background="#B5D5FF";
-			}else{
-				spanNode.style.background="Highlight";
-				spanNode.style.color="HighlightText";
-			}
-			replacementNode.appendChild(spanNode);
-			boldText=document.createTextNode(allText.substring(index,index+aWord.length));
-			spanNode.appendChild(boldText);
-			allText=allText.substring(index+aWord.length);
-			allTextLowerCase=allText.toLowerCase();
-			index=allTextLowerCase.indexOf(aWord);
-		}
-		newAfter=document.createTextNode(allText);
-		replacementNode.appendChild(newAfter);
-		textNode.parentNode.removeChild(textNode);
-	}
-}
diff --git a/org.eclipse.help.webapp/advanced/images/add_bkmrk.gif b/org.eclipse.help.webapp/advanced/images/add_bkmrk.gif
deleted file mode 100644
index 5b092dd..0000000
--- a/org.eclipse.help.webapp/advanced/images/add_bkmrk.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/back.gif b/org.eclipse.help.webapp/advanced/images/back.gif
deleted file mode 100644
index 2972ff5..0000000
--- a/org.eclipse.help.webapp/advanced/images/back.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/bookmark_rem.gif b/org.eclipse.help.webapp/advanced/images/bookmark_rem.gif
deleted file mode 100644
index 38fefb8..0000000
--- a/org.eclipse.help.webapp/advanced/images/bookmark_rem.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/bookmark_remall.gif b/org.eclipse.help.webapp/advanced/images/bookmark_remall.gif
deleted file mode 100644
index 5c6035d..0000000
--- a/org.eclipse.help.webapp/advanced/images/bookmark_remall.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/container_obj.gif b/org.eclipse.help.webapp/advanced/images/container_obj.gif
deleted file mode 100644
index 391cfdb..0000000
--- a/org.eclipse.help.webapp/advanced/images/container_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/d_topic.gif b/org.eclipse.help.webapp/advanced/images/d_topic.gif
deleted file mode 100644
index 400a9c8..0000000
--- a/org.eclipse.help.webapp/advanced/images/d_topic.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_add_bkmrk.gif b/org.eclipse.help.webapp/advanced/images/e_add_bkmrk.gif
deleted file mode 100644
index 611844c..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_add_bkmrk.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_back.gif b/org.eclipse.help.webapp/advanced/images/e_back.gif
deleted file mode 100644
index 4fb4150..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_back.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_bookmark_rem.gif b/org.eclipse.help.webapp/advanced/images/e_bookmark_rem.gif
deleted file mode 100644
index 00bc855..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_bookmark_rem.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_bookmark_remall.gif b/org.eclipse.help.webapp/advanced/images/e_bookmark_remall.gif
deleted file mode 100644
index 0a18db8..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_bookmark_remall.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_bookmarks_view.gif b/org.eclipse.help.webapp/advanced/images/e_bookmarks_view.gif
deleted file mode 100644
index 8eefad3..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_bookmarks_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_contents_view.gif b/org.eclipse.help.webapp/advanced/images/e_contents_view.gif
deleted file mode 100644
index 9e665d5..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_contents_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_forward.gif b/org.eclipse.help.webapp/advanced/images/e_forward.gif
deleted file mode 100644
index e2f8c3e..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_forward.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_index_view.gif b/org.eclipse.help.webapp/advanced/images/e_index_view.gif
deleted file mode 100644
index 6645b64..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_index_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_links_view.gif b/org.eclipse.help.webapp/advanced/images/e_links_view.gif
deleted file mode 100644
index d0b5c15..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_links_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_maximize.gif b/org.eclipse.help.webapp/advanced/images/e_maximize.gif
deleted file mode 100644
index 55af28e..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_maximize.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_print_edit.gif b/org.eclipse.help.webapp/advanced/images/e_print_edit.gif
deleted file mode 100644
index 04cb84b..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_print_edit.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_restore.gif b/org.eclipse.help.webapp/advanced/images/e_restore.gif
deleted file mode 100644
index 55cc251..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_restore.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_search_results_view.gif b/org.eclipse.help.webapp/advanced/images/e_search_results_view.gif
deleted file mode 100644
index fed3e49..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_search_results_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_show_all.gif b/org.eclipse.help.webapp/advanced/images/e_show_all.gif
deleted file mode 100644
index e8ff460..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_show_all.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_synch_nav.gif b/org.eclipse.help.webapp/advanced/images/e_synch_nav.gif
deleted file mode 100644
index 9f6c9b1..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_synch_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/e_synch_toc_nav.gif b/org.eclipse.help.webapp/advanced/images/e_synch_toc_nav.gif
deleted file mode 100644
index 4353fd5..0000000
--- a/org.eclipse.help.webapp/advanced/images/e_synch_toc_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/forward.gif b/org.eclipse.help.webapp/advanced/images/forward.gif
deleted file mode 100644
index 319fe8d..0000000
--- a/org.eclipse.help.webapp/advanced/images/forward.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/help_banner.jpg b/org.eclipse.help.webapp/advanced/images/help_banner.jpg
deleted file mode 100644
index 9dc73f9..0000000
--- a/org.eclipse.help.webapp/advanced/images/help_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/index_view.gif b/org.eclipse.help.webapp/advanced/images/index_view.gif
deleted file mode 100644
index c370f85..0000000
--- a/org.eclipse.help.webapp/advanced/images/index_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/maximize.gif b/org.eclipse.help.webapp/advanced/images/maximize.gif
deleted file mode 100644
index 55af28e..0000000
--- a/org.eclipse.help.webapp/advanced/images/maximize.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/minus.gif b/org.eclipse.help.webapp/advanced/images/minus.gif
deleted file mode 100644
index 90d1d34..0000000
--- a/org.eclipse.help.webapp/advanced/images/minus.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/plus.gif b/org.eclipse.help.webapp/advanced/images/plus.gif
deleted file mode 100644
index 014671f..0000000
--- a/org.eclipse.help.webapp/advanced/images/plus.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/print_edit.gif b/org.eclipse.help.webapp/advanced/images/print_edit.gif
deleted file mode 100644
index 4d2722f..0000000
--- a/org.eclipse.help.webapp/advanced/images/print_edit.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/restore.gif b/org.eclipse.help.webapp/advanced/images/restore.gif
deleted file mode 100644
index 55cc251..0000000
--- a/org.eclipse.help.webapp/advanced/images/restore.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/show_all.gif b/org.eclipse.help.webapp/advanced/images/show_all.gif
deleted file mode 100644
index 4d45f23..0000000
--- a/org.eclipse.help.webapp/advanced/images/show_all.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/synch_nav.gif b/org.eclipse.help.webapp/advanced/images/synch_nav.gif
deleted file mode 100644
index aaf12e9..0000000
--- a/org.eclipse.help.webapp/advanced/images/synch_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/synch_toc_nav.gif b/org.eclipse.help.webapp/advanced/images/synch_toc_nav.gif
deleted file mode 100644
index b986e49..0000000
--- a/org.eclipse.help.webapp/advanced/images/synch_toc_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/toc_closed.gif b/org.eclipse.help.webapp/advanced/images/toc_closed.gif
deleted file mode 100644
index 5edd28c..0000000
--- a/org.eclipse.help.webapp/advanced/images/toc_closed.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/toc_open.gif b/org.eclipse.help.webapp/advanced/images/toc_open.gif
deleted file mode 100644
index 520c1a8..0000000
--- a/org.eclipse.help.webapp/advanced/images/toc_open.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/images/topic.gif b/org.eclipse.help.webapp/advanced/images/topic.gif
deleted file mode 100644
index fbd1394..0000000
--- a/org.eclipse.help.webapp/advanced/images/topic.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/advanced/index.jsp b/org.eclipse.help.webapp/advanced/index.jsp
deleted file mode 100644
index 9bf393c..0000000
--- a/org.eclipse.help.webapp/advanced/index.jsp
+++ /dev/null
@@ -1,77 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="fheader.jsp"%>
-
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	// Initiate test for persisted cookies
-	if(data.getMode() == LayoutData.MODE_INFOCENTER){
-		Cookie cookieTest=new Cookie("cookiesEnabled", "yes");
-		cookieTest.setMaxAge(365*24*60*60);
-		response.addCookie(cookieTest);
-	}
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<noscript>
-<meta HTTP-EQUIV="REFRESH" CONTENT="0;URL=index.jsp?noscript=1">
-</noscript>
-<title><%=data.getWindowTitle()%></title>
-<jsp:include page="livehelp_js.jsp"/>
-
-<style type="text/css">
-FRAMESET {
-	border: 0px;
-}
-</style>
-
-<script language="JavaScript">
-
-function onloadHandler(e)
-{
-<% if (data.isIE() || data.isMozilla() && "1.2.1".compareTo(data.getMozillaVersion()) <=0){
-%>	var h=window.SearchFrame.document.getElementById("searchLabel").offsetHeight; <%-- default 13 --%>
-	if(h<=19){
-		return; <%-- no need to resize up to 19px --%>
-	}
-	document.getElementById("indexFrameset").setAttribute("rows", <%="0".equals(data.getBannerHeight())?"":"\""+data.getBannerHeight()+",\"+"%>(11+h)+",*"); <%-- default 24 --%>
-<%}%>
-<%
-if (data.isMozilla()){
-// restore mozilla from minimized
-%>
-	window.focus();
-<%
-}
-%>
-	window.frames["SearchFrame"].document.getElementById("searchWord").focus();
-}
-
-</script>
-</head>
-
-<frameset id="indexFrameset" onload="onloadHandler()" rows="<%="0".equals(data.getBannerHeight())?"":data.getBannerHeight()+","%>24,*"  frameborder="0" framespacing="0" border=0 spacing=0>
-<%
-	if(!("0".equals(data.getBannerHeight()))){
-%>
-	<frame name="BannerFrame" title="<%=ServletResources.getString("Banner", request)%>" src='<%=data.getBannerURL()%>'  tabIndex="3" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize=0>
-<%
-	}
-%>
-	<frame name="SearchFrame" title="<%=ServletResources.getString("helpToolbarFrame", request)%>" src='<%="advanced/search.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize=0>
-	<frame name="HelpFrame" title="<%=ServletResources.getString("ignore", "HelpFrame", request)%>" src='<%="advanced/help.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="0" >
-</frameset>
-
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/indexList.css b/org.eclipse.help.webapp/advanced/indexList.css
deleted file mode 100644
index 09f16a0..0000000
--- a/org.eclipse.help.webapp/advanced/indexList.css
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
-
-BODY {
-	background-color:<%=prefs.getViewBackground()%>;
-	font:<%=prefs.getViewFont()%>;
-	margin:0;
-	padding:0;
-	border:0;
-	cursor:default;
-}
-
-UL {
-	border-width:0; 
-	margin-<%=isRTL?"right":"left"%>:20px;
-}
-
-#root {
-	margin-top:5px;
-	margin-<%=isRTL?"right":"left"%>:5px;
-}
-  
-UL.expanded {
-	display:block;
-}
-
-UL.collapsed {
-	display:none;
-}
-
-LI {
-	margin:0;
-	list-style-image:none;
-	list-style-type:none;
-	white-space: nowrap;
-}
-
-IMG {
-	border:0;
-	margin:0;
-	padding:0;
-	margin-<%=isRTL?"left":"right"%>:4px;
-}
-
-A {
-	text-decoration:none;
-	padding-<%=isRTL?"left":"right"%>:2px;
-	/* this works in ie5.5, but not in ie5.0  */
-	white-space:nowrap;
-}
-
-A:link, A:visited {
-	color:blue;
-}
-
-A:hover {
-	text-decoration:underline; 
-}
-
-A.active {
-	background:Highlight;
-	width:100%;
-}
-
-A.nolink {
-	text-decoration:none; 
-}
-
-A.nolink:link, A.nolink:visited {
-	color:black;
-}
-
-A.nolink:hover {
-	text-decoration:none; 
-}
-
-<%if (data.isMozilla()) {%>
-UL {
-	margin-<%=isRTL?"right":"left"%>:-20px;
-}
-
-#root {
-	margin-<%=isRTL?"right":"left"%>:-35px; 
-	margin-top:5px;
-}
-<%}%>
-
-.h {
-	visibility:hidden;
-}
diff --git a/org.eclipse.help.webapp/advanced/indexList.js b/org.eclipse.help.webapp/advanced/indexList.js
deleted file mode 100644
index 2c598cc..0000000
--- a/org.eclipse.help.webapp/advanced/indexList.js
+++ /dev/null
@@ -1,546 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
- 
-var isMozilla = parent.isMozilla;
-var isIE = parent.isIE;
-
-var oldActive;
-var oldActiveClass = "";
-
-/**
- * Returns the target node of an event
- */
-function getTarget(e) {
-	var target;
-  	if (isMozilla)
-  		target = e.target;
-  	else if (isIE)
-   		target = window.event.srcElement;
-
-	return target;
-}
-
-/**
- * Returns the next tree node "down" from current one
- */
-function getNextDown(node) {
-	var a = getAnchorNode(node);
-	if (!a) return null;
-
-	// Try visible child first
-	var li = a.parentNode;
-	var ul = getChildNode(li, "UL");
-	if (ul) {
-		if (ul.className == "expanded") {
-			return getDescendantNode(ul, "A");
-		} else {
-			var ulNext = getNextSibling(ul);
-			if (ulNext && ulNext.nodeType == 1 && ulNext.tagName == "UL") {
-				return getDescendantNode(ulNext, "A");
-			}
-		}
-	}
-
-	// Try next sibling in current UL
-	var li_sib = getNextSibling(li);
-	if (li_sib != null) {
-		return getDescendantNode(li_sib, "A");
-	}
-
-	// Try child from next UL
-	var ulNext = getNextSibling(li.parentNode);
-	if (ulNext && ulNext.nodeType == 1 && ulNext.tagName == "UL") {
-		return getDescendantNode(ulNext, "A");
-	}
-
-	// Try looking to parent's sibling
-	while (li_sib == null) {
-		var ul = li.parentNode;
-		li = ul.parentNode;
-		if (li.tagName != "LI") // reached the top, nothing else to do
-			return null;
-
-		li_sib = getNextSibling(li);
-	}
-
-	// found the next down sibling
-	return getDescendantNode(li_sib, "A");
-}
-
-/**
- * Returns the next tree node "up" from current one
- */
-function getNextUp(node) {
-	var a = getAnchorNode(node);
-	if (!a) return null;
-
-	// Get previous sibling first
-	var li = a.parentNode;
-	var li_sib = getPrevSibling(li);
-	if (li_sib != null) {
-		// try to get the deepest node that preceeds this current node
-		var candidate = getDescendantNode(li_sib, "A");
-		var nextDown = getNextDown(candidate);
-		while (nextDown != null && nextDown != node) {
-			candidate = nextDown;
-			nextDown = getNextDown(nextDown);
-		}
-		return getDescendantNode(candidate, "A");
-	} else {
-		// look into previous UL
-		var ulPrev = getPrevSibling(li.parentNode);
-		if (ulPrev && ulPrev.nodeType == 1 && ulPrev.tagName == "UL" && ulPrev.className == "expanded") {
-			var li = getChildNode(ulPrev, "LI");
-			var candidate = getDescendantNode(li, "A");
-			var nextDown = getNextDown(candidate);
-			while (nextDown != null && nextDown != node) {
-				candidate = nextDown;
-				nextDown = getNextDown(nextDown);
-			}
-			return getDescendantNode(candidate, "A");
-		} else {
-			// get the parent
-			var li = li.parentNode.parentNode;
-			if (li && li.tagName == "LI")
-				return getDescendantNode(li, "A");
-			else
-				return null;
-		}
-	}
-}
-
-/**
- * Returns the next sibling element
- */
-function getNextSibling(node) {
-	var sib = node.nextSibling;
-	while (sib && (sib.nodeType == 3 || sib.tagName == "SCRIPT")) // text or script node
-		sib = sib.nextSibling;
-	return sib;
-}
-
-/**
- * Returns the next sibling element
- */
-function getPrevSibling(node) {
-	var sib = node.previousSibling;
-	while (sib && (sib.nodeType == 3 || sib.tagName == "SCRIPT")) // text or script node
-		sib = sib.previousSibling;
-	return sib;
-}
-
-
-/**
- * Returns the child node with specified tag
- */
-function getChildNode(parent, childTag) {
-	var list = parent.childNodes;
-	if (list == null) return null;
-	for (var i = 0; i < list.length; i++)
-		if (list.item(i).tagName == childTag)
-			return list.item(i);
-	return null;
-}
-
-/**
- * Returns the descendat node with specified tag (depth-first searches)
- */
-function getDescendantNode(parent, childTag) {	
-	if (parent == null) return null;
-
-	if (parent.tagName == childTag)
-		return parent;
-
-	var list = parent.childNodes;
-	if (list == null) return null;
-	for (var i = 0; i < list.length; i++) {
-		var child = list.item(i);
-		if (child.tagName == childTag)
-			return child;
-
-		child = getDescendantNode(child, childTag);
-		if (child != null)
-			return child;
-	}
-	return null;
-}
-
-/**
- * Returns the anchor of this click
- * NOTE: MOZILLA BUG WITH A:focus and A:active styles
- */
-function getAnchorNode(node) {
-	if (node == null) return null;
-
-	if (node.nodeType == 3)  //"Node.TEXT_NODE")
-		return node.parentNode;
-	else if (node.tagName == "A")
-		return node;
-	else if (node.tagName == "IMG")
-		return getChildNode(node.parentNode, "A");
-	return null;
-}
-
-/**
- * Returns true when the node is the plus or minus icon
- */
-function isPlusMinus(node) {
-	return (node.nodeType != 3 && node.tagName == "IMG" && (node.className == "expanded" || node.className == "collapsed"));
-}
-
-/**
- * Returns the plus/minus icon for this tree node
- */
-function getPlusMinus(node) {
-	if (isPlusMinus(node))
-		return node;
-	else if (node.nodeType == 3)  //"Node.TEXT_NODE")
-		return getChildNode(node.parentNode.parentNode, "IMG");
-	else if (node.tagName == "IMG")
-		return getChildNode(node.parentNode.parentNode, "IMG");
-	else if (node.tagName == "A")
-		return getChildNode(node.parentNode, "IMG");
-
-	return null;
-}
-
-/**
- * Collapses a tree rooted at the specified element
- */
-function collapse(node) {
-	node.className = "collapsed";
-	node.src = plus.src;
-	node.alt = altExpandTopicTitles;
-	// set the UL as well
-	var ul = getChildNode(node.parentNode, "UL");
-	if (ul != null) ul.className = "collapsed";
-}
-
-/**
- * Expands a tree rooted at the specified element
- */
-function expand(node) {
-	node.className = "expanded";
-	node.src = minus.src;
-	node.alt = altCollapseTopicTitles;
-	// set the UL as well
-	var ul = getChildNode(node.parentNode, "UL");
-	if (ul != null) {
-		ul.className = "expanded";
-		if (ul.id.length > 0) {
-			if (!frames.dynLoadFrame) {
-				return;
-			}
-			var ix = window.location.href.indexOf('?');
-			if (ix < 0) {
-				return;
-			}
-			var query = window.location.href.substr(ix);
-			frames.dynLoadFrame.location = "tocFragment.jsp" + query + "&path=" + ul.id;
-		}
-	}
-}
-
-/**
- * Returns true when this is an expanded tree node
- */
-function isExpanded(node) {
-	return node.className == "expanded";
-}
-
-/**
- * Returns true when this is a collapsed tree node
- */
-function isCollapsed(node) {
-	return  node.className == "collapsed";
-}
-
-/**
- * Highlights link
- */
-function highlightTopic(topic) {
-	if (isMozilla) {
-		// try-catch is a workaround for the getSelection() problem
-		// reported for Safari 2.0.3
-		try {
-			window.getSelection().removeAllRanges();
-		} catch (e) {}
-	}
-
-	var a = getAnchorNode(topic);
-	if (a != null) {
-		// TO DO:
-		// parent.parent.parent.parent.setContentToolbarTitle(tocTitle);
-		if (oldActive)
-			oldActive.className = oldActiveClass;
-
-		oldActive = a;
-		oldActiveClass = a.className;
-		a.className += " active";
-
-		// it looks like the onclick event is not handled in mozilla
-		// *** TO DO: handle failed synchronization, do not select in that case
-		if (isMozilla && a.onclick)
-			a.onclick()
-		//if (isIE)
-		//	a.hideFocus = "true";
-	}
-}
-
-/**
- * Selects a topic in the tree: expand tree and highlight it
- * returns true if success
- */
-function selectTopicById(id) {
-	var topic = document.getElementById(id);
-	if (topic) {
-		highlightTopic(topic);
-		scrollToViewTop(topic);
-		return true;
-	}
-	return false;
-}
-/**
- * Returns the horizontal offset on which the page should be scrolled to show the node.
- * Returns 0 if the node is already visible.
- */
-function getVerticalScroll(node) {
-	var nodeTop = node.offsetTop;
-	var nodeBottom = nodeTop + node.offsetHeight;
-	var pageTop = 0;
-	var pageBottom = 0;
-
-	if (isIE) {
-		pageTop = document.body.scrollTop;
-		pageBottom = pageTop + document.body.clientHeight;
-	} else if (isMozilla) {
-		pageTop = window.pageYOffset;
-		pageBottom = pageTop + window.innerHeight - node.offsetHeight;
-	}
-
-	var scroll = 0;
-	if (nodeTop >= pageTop) {
-		if (nodeBottom <= pageBottom)
-			scroll = 0; // already in view
-		else
-			scroll = nodeBottom - pageBottom;
-	} else {
-		scroll = nodeTop - pageTop;
-	}
-
-	return scroll;
-}
-
-
-/**
- * Scrolls the page to show the specified element
- */
-function scrollIntoView(node) {
-	var scroll = getVerticalScroll(node);
-	if (scroll != 0)
-		window.scrollBy(0, scroll);
-}
-
-/**
- * Scrolls the page so the node gets to the first line
- */
-function scrollToViewTop(node) {
-	window.scrollTo(0, node.offsetTop);
-}
-
-/*
- * Currently called on IE only
- */
-function focusHandler(e)
-{
-	/*if (isMozilla)
-		return;
-	*/
-		
-	try{
-		if (oldActive){
-			// only focus when the element is visible
-			var scroll = getVerticalScroll(oldActive);
-			if (scroll == 0)
-				oldActive.focus();
-		}		
-	}
-	catch(e){}
-}
-
-
-/**
- * display topic label in the status line on mouse over topic
- */
-function mouseMoveHandler(e) {
-	var overNode = getTarget(e);
-	if (!overNode) return;
-
-	overNode = getAnchorNode(overNode);
-	if (overNode == null) {
-		window.status = "";
-		return;
-	}
-
-	if (isMozilla)
-		e.cancelBubble = false;
-
-	if (overNode.title == "") {
-		if (overNode.innerText)
-			overNode.title = overNode.innerText;
-		else if (overNode.text)
-			overNode.title = overNode.text;
-	}
-	window.status = overNode.title;
-}
-
-/**
- * handler for expanding / collapsing topic tree
- */
-function mouseClickHandler(e) {
-	var clickedNode = getTarget(e);
-	if (!clickedNode) return;
-
-	var plus_minus = getPlusMinus(clickedNode);
-	if (plus_minus != null) {
-		if (isCollapsed(plus_minus)) 
-			expand(plus_minus);
-		else if (isPlusMinus(clickedNode) && isExpanded(plus_minus))
-			// collapse only if click on minus image
-			collapse(plus_minus);
-	}
-
-	var anchorNode = getAnchorNode(clickedNode);
-	if (anchorNode) {
-		highlightTopic(anchorNode);
-		parent.setTypeinValue(anchorNode);
-	}
-
-	if (isMozilla)
-		e.cancelBubble = true;
-	else if (isIE)
-		window.event.cancelBubble = true;
-}
-
-/**
- * Handler for key down (arrows)
- */
-function keyDownHandler(e) {
-	var key;
-
-	if (isIE) {
-		key = window.event.keyCode;
-	} else if (isMozilla) {
-		key = e.keyCode;
-	}
-
-	if (key <37 || key > 40)
-		return true;
-
-	if (isMozilla)
-		e.cancelBubble = true;
-	else if (isIE)
-		window.event.cancelBubble = true;
-
-	if (key == 39) { // Right arrow, expand
-		var clickedNode = getTarget(e);
-		if (!clickedNode) return;
-		if (isIE) {
-			if (clickedNode.id != null) {
-				if (clickedNode.id.charAt(0) == 'b') {
-					if (clickedNode.name != "opened") {
-						loadTOC(clickedNode.name);
-						return true;
-					}
-				}
-			}
-		}
-
-		var plus_minus = getPlusMinus(clickedNode);
-		if (plus_minus != null)
-		{
-			if (isCollapsed(plus_minus))
-				expand(plus_minus);
-
-			highlightTopic(plus_minus);
-			scrollIntoView(clickedNode);
-		}
-	} else if (key == 37) { // Left arrow,collapse
-		var clickedNode = getTarget(e);
-		if (!clickedNode) return;
-
-		if (clickedNode.id != null){
-			if (clickedNode.id.charAt(0) == 'b'){
-				if(clickedNode.name == "opened"){
-					loadTOC(" ");
-					return true;
-				} else {
-					return true;
-				}
-			}
-		}
-
-		var plus_minus = getPlusMinus(clickedNode);
-		if (plus_minus != null) {
-			if (isExpanded(plus_minus))
-				collapse(plus_minus);
-
-			highlightTopic(plus_minus);
-			scrollIntoView(clickedNode);
-		}
-	} else if (key == 40 ) { // down arrow
-		var clickedNode = getTarget(e);
-		if (!clickedNode) return;
-
-		var next = getNextDown(clickedNode);
-		if (next) {
-			highlightTopic(next);
-			parent.setTypeinValue(next);
-			next.focus();
-		}
-
-	} else if (key == 38) { // up arrow
-		var clickedNode = getTarget(e);
-		if (!clickedNode) return;
-
-		var next = getNextUp(clickedNode);
-		if (next) {
-			highlightTopic(next);
-			parent.setTypeinValue(next);
-			next.focus();
-		}
-	}
-
-
-	return true;
-}
-
-/**
- * IndexListFrame onload handler
- */
-function onloadHandler() {
-	parent.listFrame = window;
-
-	var node = document.getElementsByTagName("A").item(0);
-	highlightTopic(node);
-	scrollToViewTop(node);
-
-	if (isMozilla) {
-		document.addEventListener('click', mouseClickHandler, true);
-		document.addEventListener('mousemove', mouseMoveHandler, true);
-		document.addEventListener('keydown', keyDownHandler, true);
-	} else if (isIE) {
-		document.onclick = mouseClickHandler;
-		document.onmousemove = mouseMoveHandler;
-		document.onkeydown = keyDownHandler;
-		//window.onfocus = focusHandler;
-	}
-}
diff --git a/org.eclipse.help.webapp/advanced/indexList.jsp b/org.eclipse.help.webapp/advanced/indexList.jsp
deleted file mode 100644
index 03460e0..0000000
--- a/org.eclipse.help.webapp/advanced/indexList.jsp
+++ /dev/null
@@ -1,50 +0,0 @@
-<%--
- Copyright (c) 2005 Intel Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     Intel Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<%
-	IndexData data = new IndexData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("IndexListTitle", request)%></title>
-
-<style type="text/css">
-<%@ include file="indexList.css"%>
-</style>  
-    
-<base target="ContentViewFrame">
-
-<script language="JavaScript">
-var ids = [<%data.generateIds(out);%>];
-minus = new Image();
-minus.src = "<%=prefs.getImagesDirectory()%>" + "/minus.gif";
-plus = new Image();
-plus.src = "<%=prefs.getImagesDirectory()%>" + "/plus.gif";
-altExpandTopicTitles = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("expandTopicTitles", request))%>";
-altCollapseTopicTitles = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("collapseTopicTitles", request))%>";
-usePlusMinus = <%=prefs.isIndexPlusMinus()%>;
-</script>
-<script language="JavaScript" src="indexList.js"></script>
-
-</head>
-<body dir="<%=direction%>" onload="onloadHandler()">
-	<ul dir="<%=direction%>" id="root" class="expanded">
-<%
-		data.generateIndex(out);
-%>
-	</ul>
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/indexToolbar.jsp b/org.eclipse.help.webapp/advanced/indexToolbar.jsp
deleted file mode 100644
index 7bb14a1..0000000
--- a/org.eclipse.help.webapp/advanced/indexToolbar.jsp
+++ /dev/null
@@ -1,29 +0,0 @@
-<%--
- Copyright (c) 2005 Intel Corporation.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     Intel Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="script" value="navActions.js"/>
-	<jsp:param name="view" value="index"/>
-
-	<jsp:param name="name"     value="show_all"/>
-	<jsp:param name="tooltip"  value='show_all'/>
-	<jsp:param name="image"    value="show_all.gif"/>
-	<jsp:param name="action"   value="toggleShowAll"/>
-	<jsp:param name="state"    value="<%=(new ActivitiesData(application, request, response)).getButtonState()%>"/>
-
-	<jsp:param name="name"     value="synchnav"/>
-	<jsp:param name="tooltip"  value='SynchNav'/>
-	<jsp:param name="image"    value="synch_nav.gif"/>
-	<jsp:param name="action"   value="resynchNav"/>
-	<jsp:param name="state"    value='off'/>
-</jsp:include>
diff --git a/org.eclipse.help.webapp/advanced/indexTypein.css b/org.eclipse.help.webapp/advanced/indexTypein.css
deleted file mode 100644
index 5d12032..0000000
--- a/org.eclipse.help.webapp/advanced/indexTypein.css
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
-
-BODY {
-	background-color:<%=prefs.getViewBackground()%>;
-	font:<%=prefs.getViewFont()%>;
-	margin-top:5px;
-	margin-<%=isRTL?"right":"left"%>:5px;
-	padding:0;
-	border:0;
-}
-
-TABLE, TR, TD, P {
-	margin:0;
-	padding:0;
-	border:0;
-}
-
-TABLE {
-	font:<%=prefs.getViewFont()%>;
-	width:100%;
-}
-
-TR {
-	height:21px;
-}
-
-INPUT {
-	font:<%=prefs.getViewFont()%>;
-	margin:0;
-	padding:0;
-	border:1px solid ThreeDShadow;
-}
-
-#instruction {
-	white-space:nowrap;
-}
-
-#typein {
-	width:100%;
-}
-
-#button {
-	background:ThreeDShadow;
-	color:Window;
-	font-weight:bold;
-	margin-left:1px;
-}
-
-<%
-	if (data.isIE()) {
-%>
-#go {
-	padding-<%=isRTL?"right":"left"%>:1px;
-}
-<%
-	}
-%>
diff --git a/org.eclipse.help.webapp/advanced/indexTypein.js b/org.eclipse.help.webapp/advanced/indexTypein.js
deleted file mode 100644
index c72c19a..0000000
--- a/org.eclipse.help.webapp/advanced/indexTypein.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
- 
-var isMozilla = parent.isMozilla;
-var isIE = parent.isIE;
-
-var typein;
-var currentId;
-
-function compare(keyword, pattern) {
-	var kI = 0, pI = 0;
-	var kCh, pCh;
-
-	while (kI < keyword.length && pI < pattern.length) {
-		kCh = keyword.charAt(kI).toLowerCase();
-		pCh = pattern.charAt(pI).toLowerCase();
-		if (kCh > pCh) {
-			return 1;
-		} else if (kCh < pCh) {
-			return -1;
-		}
-		kI++;
-		pI++;
-	}
-	if (keyword.length >= pattern.length) {
-		return 0;
-	} else {
-		return -1;
-	}
-}
-
-function searchPattern(pattern) {
-    if (!parent.listFrame) return null;
-
-	var from = 0;
-	var to = parent.listFrame.ids.length;
-	var i;
-	var res;
-
-	while (to > from) {
-		i = Math.floor((to + from) / 2);
-		res = compare(parent.listFrame.ids[i], pattern);
-		if (res == 0) {
-			while (i > 0) {
-				res = compare(parent.listFrame.ids[--i], pattern);
-				if (res != 0) {
-					i++;
-					break;
-				}
-			}
-			return parent.listFrame.ids[i];
-		} else if (res < 0) {
-			from = i + 1;
-		} else {
-			to = i;
-		}
-	}
-
-	return null;
-}
-
-function keyDownHandler(e) {
-	var key;
-
-	if (isIE) {
-		key = window.event.keyCode;
-	} else if (isMozilla) {
-		key = e.keyCode;
-	}
-
-	if (key != 13 && key != 38 && key != 40)
-		return true;
-
-	if (isMozilla)
-		e.cancelBubble = true;
-	else if (isIE)
-		window.event.cancelBubble = true;
-
-	if (key == 13) { // enter
-		// display topic corresponded to selected list item
-		parent.setTypeinValue(parent.getSelection());
-		parent.doDisplay();
-	} if (key == 38) { // up arrow
-		parent.selectNextUp();
-	} else if (key == 40) { // down arrow
-		parent.selectNextDown();
-	}
-
-	return false;
-}
-
-/**
-  * Select the corresponding item in the index list on typein value change.
-  * Check is performed periodically in short interval.
-  */
-function intervalHandler() {
-	if (typein.value != typein.previous) {
-		// typein value has been changed
-		typein.previous = typein.value;
-		var id = searchPattern(typein.value);
-		if (id && id != currentId) {
-			// the value has became to fit to other item
-			if (parent.selectTopicById(id)) {
-				currentId = id;
-			}
-		}
-	}
-}
-
-/**
- * IndexTypeinFrame onload handler
- */
-function onloadHandler() {
-	parent.typeinFrame = window;
-
-	typein = document.getElementById("typein");
-
-	typein.value = "";
-	typein.previous = "";
-
-	currentId = "";
-
-	if (isMozilla) {
-		document.addEventListener("keydown", keyDownHandler, true);
-	} else if (isIE) {
-		document.onkeydown = keyDownHandler;
-	}
-
-	setInterval("intervalHandler()", 200);
-}
diff --git a/org.eclipse.help.webapp/advanced/indexTypein.jsp b/org.eclipse.help.webapp/advanced/indexTypein.jsp
deleted file mode 100644
index 1fe010b..0000000
--- a/org.eclipse.help.webapp/advanced/indexTypein.jsp
+++ /dev/null
@@ -1,49 +0,0 @@
-<%--
- Copyright (c) 2005 Intel Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     Intel Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<%
-	RequestData data = new RequestData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("IndexTypeinTitle", request)%></title>
-
-<style type="text/css">
-<%@ include file="indexTypein.css"%>
-</style>
-
-<script language="JavaScript" src="indexTypein.js"></script>
-
-</head>
-
-<body dir="<%=direction%>" onload="onloadHandler()">
-
-<table>
-<%if (prefs.isIndexInstruction()) {%>
-	<tr>
-		<td colspan="2"><p id="instruction"><%=ServletResources.getString("IndexTypeinInstructions", request)%></p></td>
-	</tr>
-<%}%>
-	<tr>
-		<td width="100%"><input type="text" id="typein"></td>
-	<%if (prefs.isIndexButton()) {%>
-		<td><input type="button" id="button" value="<%=ServletResources.getString("IndexTypeinButton", request)%>" onclick="this.blur();parent.doDisplay()"></td>
-	<%}%>
-	</tr>
-</table>
-
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/indexView.js b/org.eclipse.help.webapp/advanced/indexView.js
deleted file mode 100644
index 173e3ae..0000000
--- a/org.eclipse.help.webapp/advanced/indexView.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
- 
-var isMozilla = navigator.userAgent.indexOf("Mozilla") != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-var isIE = navigator.userAgent.indexOf("MSIE") != -1;
-
-/**
- * Global references to IndexTypein and IndexList child frames.
- * Are intialized by the child frames on theirs load.
- */
-var typeinFrame;
-var listFrame;
-
-/**
- * Selects a topic in the index list
- */
-function selectTopicById(id) {
-	if (!listFrame) return false;
-
-	return listFrame.selectTopicById(id);
-}
-
-/**
- * Selects the next index list node "up" from current one
- */
-function selectNextUp() {
-	if (!listFrame) return false;
-
-	var next = listFrame.getNextUp(listFrame.oldActive);
-	if (next) {
-		listFrame.highlightTopic(next);
-		listFrame.scrollIntoView(next);
-		setTypeinValue(next);
-	}
-}
-
-/**
- * Selects the next index list node "down" from current one
- */
-function selectNextDown() {
-	if (!listFrame) return false;
-
-	var next = listFrame.getNextDown(listFrame.oldActive);
-	if (next) {
-		listFrame.highlightTopic(next);
-		listFrame.scrollIntoView(next);
-		setTypeinValue(next);
-	}
-}
-
-/**
- * Returns selected list item
- */
-function getSelection() {
-	if (!listFrame) return null;
-
-	return listFrame.oldActive;
-}
-
-/**
- * Set value of the typein input field.
- * The value can be anchor's id or anchor's text.
- */
-function setTypeinValue(anchor) {
-	if (!typeinFrame) return;
-
-	if (!anchor) return;
-
-	var value = anchor.getAttribute("id");
-	if (value) {
-		typeinFrame.currentId = value;
-	} else {
-		typeinFrame.currentId = "";
-		if (isIE)
-			value = anchor.innerText;
-		else if (isMozilla)
-			value = anchor.lastChild.nodeValue;
-		if (!value)
-			value = "";
-	}
-	typeinFrame.typein.value = value;
-	typeinFrame.typein.previous = value;
-}
-
-/**
- * Open current selected item in the content frame
- */
-function doDisplay() {
-	if (!listFrame) return;
-	if (!listFrame.oldActive) return;
-
-	parent.parent.parent.parent.ContentFrame.ContentViewFrame.location.replace(listFrame.oldActive);
-}
diff --git a/org.eclipse.help.webapp/advanced/indexView.jsp b/org.eclipse.help.webapp/advanced/indexView.jsp
deleted file mode 100644
index 9885857..0000000
--- a/org.eclipse.help.webapp/advanced/indexView.jsp
+++ /dev/null
@@ -1,38 +0,0 @@
-<%--
- Copyright (c) 2005 Intel Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     Intel Corporation - initial API and implementation
---%>
-<%@ include file="fheader.jsp"%>
-
-<%
-	RequestData data = new RequestData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("IndexViewTitle", request)%></title>
-
-<script language="JavaScript" src="indexView.js"></script>
-</head>
-
-<frameset id="indexViewFrameset"
-<%if (prefs.isIndexInstruction()){%>
-		rows="52,*"
-<%} else {%>
-		rows="32,*"
-<%}%>
-		frameborder="0" framespacing="0" border="0">
-	<frame name="IndexTypeinFrame" src="indexTypein.jsp" title='<%=ServletResources.getString("IndexTypeinTitle", request)%>' frameborder="0" marginheiht="0" marginwidth="0" noresize scrolling="no">
-	<frame name="IndexListFrame" src="indexList.jsp" title='<%=ServletResources.getString("IndexListTitle", request)%>' frameborder="0" marginheiht="0" marginwidth="0">
-</frameset>
-
-</html>
diff --git a/org.eclipse.help.webapp/advanced/linksToolbar.jsp b/org.eclipse.help.webapp/advanced/linksToolbar.jsp
deleted file mode 100644
index 616dcbf..0000000
--- a/org.eclipse.help.webapp/advanced/linksToolbar.jsp
+++ /dev/null
@@ -1,23 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="script" value="navActions.js"/>
-	<jsp:param name="view" value="links"/>
-
-	<jsp:param name="name"     value="synchnav"/>
-	<jsp:param name="tooltip"  value='SynchNav'/>
-	<jsp:param name="image"    value="synch_nav.gif"/>
-	<jsp:param name="action"   value="resynchNav"/>
-	<jsp:param name="state"    value='off'/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/linksView.jsp b/org.eclipse.help.webapp/advanced/linksView.jsp
deleted file mode 100644
index 7610a5c..0000000
--- a/org.eclipse.help.webapp/advanced/linksView.jsp
+++ /dev/null
@@ -1,82 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 	
-	LinksData data = new LinksData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-<title><%=ServletResources.getString("Links", request)%></title>
-
-<style type="text/css">
-<%@ include file="list.css"%>
-</style>
-
-<base target="ContentViewFrame">
-<script language="JavaScript" src="list.js"></script>
-
-</head>
-
-
-<body dir="<%=direction%>">
- 
-<%
-if(!data.isLinksRequest()) {
-	out.write(ServletResources.getString("pressF1", request));
-} else if (data.getLinksCount() == 0){
-	out.write(ServletResources.getString("Nothing_found", null));
-} else {
-%>
-
-<table id='list'  cellspacing='0' >
-
-<%
-	for (int topic = 0; topic < data.getLinksCount(); topic++) 
-	{
-%>
-
-<tr class='list' id='r<%=topic%>'>
-	<td align='<%=isRTL?"right":"left"%>' class='label' nowrap>
-		<a id='a<%=topic%>' 
-		   href='<%=data.getTopicHref(topic)%>' 
-		   onmouseover="showStatus(event);return true;"
-		   onmouseout="clearStatus();return true;"
-		   onclick='parent.parent.parent.setContentToolbarTitle(this.title)'
-		   title="<%=data.getTopicTocLabel(topic)%>">
-		   <img src="<%=prefs.getImagesDirectory()%>/topic.gif" alt=""><%=data.getTopicLabel(topic)%></a>
-	</td>
-</tr>
-
-<%
-	}
-%>
-
-</table>
-
-<%
-
-}
-
-%>
-
-<script language="JavaScript">
-	selectTopicById('<%=data.getSelectedTopicId()%>');
-</script>
-
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/list.css b/org.eclipse.help.webapp/advanced/list.css
deleted file mode 100644
index ffee504..0000000
--- a/org.eclipse.help.webapp/advanced/list.css
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-BODY {
-	background-color: <%=prefs.getViewBackground()%>;
-	color:WindowText;
-	font: <%=prefs.getViewFont()%>;
-	margin-top:5px;
-	margin-<%=isRTL?"right":"left"%>:5px;
-	padding:0;
-	border:0;
-	cursor:default;
-}
-
-A {
-	text-decoration:none; 
-	color:WindowText; 
-	padding:0px;
-	white-space: nowrap;
-}
-
-A:hover {
-	text-decoration:underline; 
-}
-
-IMG {
-	border:0px;
-	margin:0px;
-	padding:0px;
-	margin-<%=isRTL?"left":"right"%>:4px;
-}
-
-TABLE {
-	background-color: <%=prefs.getViewBackground()%>;
-	font: <%=prefs.getViewFont()%>;
-	width:100%;
-}
-
-.list {
-	background-color: <%=prefs.getViewBackground()%>;
-	padding:2px;
-}
-
-.sectiontitle {
-	background-color: <%=prefs.getToolbarBackground()%>;
-	font-weight:bold;
-	margin-top:7px;
-}
-     
-.active { 
-	background:Highlight;
-	color:HighlightText;
-	width:100%;
-	height:100%;
-}
-
-.label {
-	margin-<%=isRTL?"right":"left"%>:4px;
-}
-
-#menu {
-	position:absolute;
-	display:none;
-	background:<%=prefs.getToolbarBackground()%>;
-	border:2px outset;
-	padding:2px 0px;
-}
-
-.selectedMenuItem {
-	background:Highlight;
-	color:HighlightText;
-	padding-left:10px;
-	padding-right:10px;
-}
-
-.unselectedMenuItem {
-	background:<%=prefs.getToolbarBackground()%>;
-	color:WindowText;
-	padding-left:10px;
-	padding-right:10px;
-}
-
-.score {
-	padding-<%=isRTL?"left":"right"%>:5px;
-}
-
- 
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/list.js b/org.eclipse.help.webapp/advanced/list.js
deleted file mode 100644
index 8188885..0000000
--- a/org.eclipse.help.webapp/advanced/list.js
+++ /dev/null
@@ -1,427 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
- 
-// Common scripts for IE and Mozilla.
-
-var isMozilla = navigator.userAgent.indexOf('Mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-var isSafari = navigator.userAgent.indexOf('Safari') != -1;
-
-// selected node
-var active;
-var oldActive;
-
-/**
- * Returns the target node of an event
- */
-function getTarget(e) {
-	var target;
-  	if (isMozilla)
-  		target = e.target;
-  	else if (isIE)
-   		target = window.event.srcElement;
-
-	return target;
-}
-
-
-/**
- * Returns the row of this click
- */
-function getTRNode(node) {
-  if (node.nodeType == 3)  //"Node.TEXT_NODE") 
-	return node.parentNode.parentNode.parentNode;
-  else if (node.tagName == "A")
-  	return node.parentNode.parentNode;
-  else if (node.tagName == "TD") 
-    return node.parentNode;
-  else if (node.tagName == "TR") 
-    return node;
-  else if (node.tagName == "IMG")
-  	return node.parentNode.parentNode.parentNode;
-  else
-  	return null;
-}
-
-/**
- * Returns the anchor node in this row
- */
-function getAnchorNode(tr)
-{
-	var id = tr.id.substring(1);
-	return document.getElementById("a"+id);
-}
-
-
-/**
- * Return next item in the list
- */
-function getNextDown(node)
-{
-	var tr = getTRNode(node);
-	if (tr == null) return null;
-	
-	var id = tr.id.substring(1);
-	var next = 1 + eval(id);
-	return document.getElementById("a"+next);
-}
-
-/**
- * Return previous item in the list
- */
-function getNextUp(node)
-{
-	var tr = getTRNode(node);
-	if (tr == null) return null;
-	
-	var id = tr.id.substring(1);
-	var next = eval(id) - 1;
-	if (next >= 0)
-		return document.getElementById("a"+next);
-	else
-		return null;
-}
-
-
-/**
- * Highlights link. Returns true if highlights.
- */
-function highlightTopic(topic)
-{
-  	if (!topic || (topic.tagName != "A" && topic.parentNode.tagName != "A"))
-		return false;
-	
-  	var tr = getTRNode(topic); 
-  	if (tr != null)
-  	{
-  	   	if (oldActive && oldActive != tr) {
-    		oldActive.className="list";
-    		var oldA = getAnchorNode(oldActive);
-    		if (oldA) oldA.className = "";
-  	   	}
-    
-		oldActive = tr;		
-  		tr.className = "active";
-  		var a = getAnchorNode(tr);
-  		if (a)
-  		{
-  			a.className = "active";
-  			// set toolbar title
-  			if (a.onclick)
-  				a.onclick();
-  			//if (isIE)
-  			//	a.hideFocus = "true";
-   		}
-   		active = a;
-   		return true;
-  	}
-  	return false;
-}
-
-/**
- * Selects a topic in the tree: expand tree and highlight it
- */
-function selectTopic(topic) 
-{
-	if (!topic || topic == "") return;
-	
-	var links = document.getElementsByTagName("a");
-
-	for (var i=0; i<links.length; i++)
-	{
-		// take into account the extra ?toc=.. or &toc=
-		if (links[i].href.indexOf(topic+"?toc=") == 0 ||
-			links[i].href.indexOf(topic+"&toc=") == 0 ||
-			links[i].href.indexOf(topic+"/?toc=") == 0)
-		{
-			highlightTopic(links[i]);
-			scrollIntoView(links[i]);
-			links[i].scrollIntoView(true);
-			return true;
-		}
-	}
-	return false;
-}
-
-/**
- * Selects a topic in the list
- */
-function selectTopicById(id)
-{
-	var topic = document.getElementById(id);
-	if (topic)
-	{
-		highlightTopic(topic);
-		scrollIntoView(topic);
-		return true;
-	}
-	return false;
-}
-
-
-/**
- * Scrolls the page to show the specified element
- */
-function scrollIntoView(node)
-{
-	var scroll = getVerticalScroll(node);
-	if (scroll != 0)
-		window.scrollBy(0, scroll);
-}
-
-/**
- * Scrolls the page to show the specified element
- */
-function getVerticalScroll(node)
-{
-	// Use the parent element for getting the offsetTop, as it appears
-	// that tables get their own layout measurements.
-
-	//var nodeTop = node.offsetTop;
-	var nodeTop = node.parentNode.offsetTop;
-		
-	//var nodeBottom = nodeTop + node.offsetHeight;
-	var nodeBottom = nodeTop + node.parentNode.offsetHeight;
-	
-	var pageTop = 0;
-	var pageBottom = 0;
-		
-	if (isIE)
-	{
-		pageTop = document.body.scrollTop; 
-		pageBottom = pageTop + document.body.clientHeight;
-	
-	} 
-	else if (isMozilla)
-	{
-		pageTop = window.pageYOffset;
-		pageBottom = pageTop + window.innerHeight - node.offsetHeight;
-	}
-	
-	var scroll = 0;
-	if (nodeTop >= pageTop )
-	{
-		if (nodeBottom <= pageBottom)
-			scroll = 0; // already in view
-		else
-			scroll = nodeBottom - pageBottom/2;
-	}
-	else
-	{
-		scroll = nodeTop - pageTop;
-	}
-	
-	return scroll;
-}
-
-function hidePopupMenu() {
-	// hide popup if open
-	var menu = document.getElementById("menu");
-	if (!menu)
-		return;
-	if (menu.style.display == "block")
-		menu.style.display = "none";
-}
-
-var popupMenuTarget;
-
-function showPopupMenu(e) {
-	// show the menu
-	var x = e.clientX;
-	var y = e.clientY;
-
-	e.cancelBubble = true;
-
-	var menu = document.getElementById("menu");
-	if (!menu) 
-		return;	
-	menu.style.left = (x+1)+"px";
-	menu.style.top = (y+1)+"px";
-	menu.style.display = "block";
-	if (isMozilla)
-		popupMenuTarget = e.target;
-}
-
-/**
- * display topic label in the status line on mouse over topic
- */
-function showStatus(e) {
-	try {
-		var overNode;
-		if (isMozilla)
-			overNode = e.target;
-		else if (isIE)
-			overNode = window.event.srcElement;
-		else
-			return true;
-
-		overNode = getTRNode(overNode);
-		if (overNode == null) {
-			window.status = "";
-			return true;
-		}
-
-		if (isMozilla)
-			e.cancelBubble = false;
-
-		var a = getAnchorNode(overNode);
-		var statusText = "";
-		if (isIE)
-			statusText = a.innerText;
-		else if (isMozilla)
-			statusText = a.lastChild.nodeValue;
-			
-		if (statusText != a.title)
-			statusText += " - " + a.title;
-			
-		window.status = statusText;
-	} catch (e) {
-	}
-
-	return true;
-}
-
-function clearStatus() {
-	window.status="";
-}
-
-/**
- * Popup a menu on right click over a bookmark.
- * This handler assumes the list.js script has been loaded.
- */
-function contextMenuHandler(e)
-{
-	// hide popup if open
-	hidePopupMenu();
-
-	if (isIE)
-		e = window.event;
-		
-  	var clickedNode;
-  	if (isMozilla)
-  		clickedNode = e.target;
-  	else if (isIE)
-   		clickedNode = e.srcElement;
-
-  	if (!clickedNode)
-  		return true;
-  	
-  	// call the click handler to select node
-  	mouseClickHandler(e);
-  	
-  	if(clickedNode.tagName == "A")
-  		active = clickedNode;
-  	else if (clickedNode.parentNode.tagName == "A")
-  		active = clickedNode.parentNode;
-  	else
-  		return true;
-	
-	showPopupMenu(e);
-	
-	return false;
-}
-
-/**
- * handler for clicking on a node
- */
-function mouseClickHandler(e) {
-
-	if (!isMozilla || e && e.target && e.target != popupMenuTarget)
-		hidePopupMenu();
-		
-  	var clickedNode;
- 	if (isMozilla)
-  		clickedNode = e.target;
-  	else if (isIE)
-   		clickedNode = window.event.srcElement;
-  	else 
-  		return true;
-  	
-  	highlightTopic(clickedNode);
-}
-
-
-function focusHandler(e)
-{
-	if (oldActive){
-		try{
-			oldActive.focus();
-		} catch (e) {
-		}
-	}
-}
-
-/**
- * Handler for key down (arrows)
- */
-function keyDownHandler(e)
-{
-	var key;
-
-	if (isIE) {
-		key = window.event.keyCode;
-	} else if (isMozilla) {
-		key = e.keyCode;
-	}
-
-	if (key <37 || key > 40)
-		return true;
-		
-	if (isMozilla)
-  		e.cancelBubble = true;
-  	else if (isIE)
-  		window.event.cancelBubble = true;
-  		
-  	if (key == 40 ) { // down arrow
-  		var clickedNode = getTarget(e);
-  		if (!clickedNode) return;
-
-		var next = getNextDown(clickedNode);
-		highlightTopic(next);
-		if (next)
-			next.focus();
-		else
-			return true;
-
-  	} else if (key == 38 ) { // up arrow
-  		var clickedNode = getTarget(e);
-  		if (!clickedNode) return;
-
-		var next = getNextUp(clickedNode);
-		highlightTopic(next);
-		if (next)
-			next.focus();
-		else
-			return true;
-  	} else
-  		return true;
-  				
-  	return false;
-}
-
-
-// listen for events
-if (isMozilla) {
-  document.addEventListener('click', mouseClickHandler, true);
-  document.addEventListener('keydown', keyDownHandler, true);
-  //document.addEventListener("focus", focusHandler, true);
-	if (isSafari) {
-		// workaround for lack of good system colors in Safari
-		document.write('<style type="text/css">');
-		document.write('.active {background:#B5D5FF;color:#000000;}');
-		document.write('</style>');
-	}
-}
-else if (isIE){
-  document.onclick = mouseClickHandler;
-  document.onkeydown = keyDownHandler;
-  window.onfocus = focusHandler;
-}
diff --git a/org.eclipse.help.webapp/advanced/livehelp_js.jsp b/org.eclipse.help.webapp/advanced/livehelp_js.jsp
deleted file mode 100644
index 240d052..0000000
--- a/org.eclipse.help.webapp/advanced/livehelp_js.jsp
+++ /dev/null
@@ -1,70 +0,0 @@
-<%--
- Copyright (c) 2000, 2005 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ page import="org.eclipse.help.internal.webapp.data.*" errorPage="/advanced/err.jsp" contentType="text/html; charset=UTF-8"%>
-<%
-	request.setCharacterEncoding("UTF-8");
-%>
-<script language="JavaScript">
-function liveActionInternal(topHelpWindow, pluginId, className, argument)
-{
-<%
-	RequestData data = new RequestData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-	if(data.getMode() == RequestData.MODE_INFOCENTER){
-%>
-	alert("<%=UrlUtil.JavaScriptEncode(ServletResources.getString("noLiveHelpInInfocenter", request))%>");
-	return;
-<%
-	}else if(!prefs.isActiveHelp()){
-%>
-	alert("<%=UrlUtil.JavaScriptEncode(ServletResources.getString("noLiveHelp", request))%>");
-	return;
-<%
-	}else {
-%>
-	// construct the proper url for communicating with the server	
-	var url= window.location.href;
-	
-	var i = url.indexOf("?");
-	if(i>0)
-		url=url.substring(0, i);
-	
-	i = url.indexOf("/topic/");
-	if(i < 0)
-		i = url.lastIndexOf("/");
-
-	url=url.substring(0, i+1);
-	var encodedArg=encodeURIComponent(argument);
-	url=url+"livehelp/?pluginID="+pluginId+"&class="+className+"&arg="+encodedArg+"&nocaching="+Math.random();
-
-	// we need to find the toolbar frame.
-	// to do: cleanup this, including the location of the hidden livehelp frame.	
-	var toolbarFrame = topHelpWindow.HelpFrame.ContentFrame.ContentToolbarFrame;
-	if (!toolbarFrame){
-		window.location=url;
-		return;
-	}
-
-	if(toolbarFrame.liveHelpFrame){
-		toolbarFrame.liveHelpFrame.location=url;
-	}
-<%
-	}
-%>
-}
-function showTopicInContentsInternal(topHelpWindow, topic) {
-	try{
-		topHelpWindow.HelpFrame.NavFrame.displayTocFor(topic);
-	}catch(e){
-	}
-}
-
-</script>
diff --git a/org.eclipse.help.webapp/advanced/nav.jsp b/org.eclipse.help.webapp/advanced/nav.jsp
deleted file mode 100644
index b90a2bd..0000000
--- a/org.eclipse.help.webapp/advanced/nav.jsp
+++ /dev/null
@@ -1,149 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="fheader.jsp"%>
-
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=ServletResources.getString("Help", request)%></title>
-
-<style type="text/css">
-<% 
-if (data.isMozilla()) {
-%>
-HTML {
-	border-<%=isRTL?"right":"left"%>:1px solid ThreeDShadow;
-	background:<%=prefs.getToolbarBackground()%>;
-}
-<% 
-} else {
-%>
-FRAMESET {
-	border-top:1px solid ThreeDShadow;
-	border-left:1px solid ThreeDShadow;
-	border-right:1px solid ThreeDShadow;
-}
-<%
-}
-%>
-</style>
-
-<script language="JavaScript">
-var isMozilla = navigator.userAgent.indexOf('Mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-var isMozilla10 = isMozilla && navigator.userAgent.indexOf('rv:1') != -1;
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-
-/**
- * Views can call this to set the title on the content toolbar
- */
-function setContentToolbarTitle(title)
-{
-	if(parent.ContentFrame.ContentToolbarFrame && parent.ContentFrame.ContentToolbarFrame.setTitle ){
-		parent.ContentFrame.ContentToolbarFrame.setTitle(title);
-	}
-}
-
-/**
- * Shows specified view. Called from actions that switch the view
- */
-function showView(view)
-{
-	// Note: assumes the same id shared by tabs and iframes
-	ViewsFrame.showView(view);
-	TabsFrame.showTab(view);
-}
-
-var temp;
-var tempActiveId;
-var tempView = "";
-
-/**
- * Shows the TOC frame, loads appropriate TOC, and selects the topic
- */
-function displayTocFor(topic)
-{
-	tempView = ViewsFrame.lastView;
-	
-	/******** HARD CODED VIEW NAME *********/
-	showView("toc");
-	
-	var tocView = ViewsFrame.toc.tocViewFrame;
-
-	if (tocView.selectTopic && tocView.selectTopic(topic))
-		return;
-	else {
-		// save the current navigation, so we can retrieve it when synch does not work
-		saveNavigation();
-
-		var advIndex=window.location.href.indexOf("/advanced/nav.jsp");
-		if(advIndex < 0)
-			return;
-		var tocURL = window.location.href.substr(0, advIndex) + "/advanced/tocView.jsp";
-		tocView.location.replace(tocURL + "?topic="+topic+"&synch=yes");			
-	}
-}
-
-function saveNavigation()
-{
-	/**** HARD CODED VIEW NAME *********/
-	var tocView = ViewsFrame.toc.tocViewFrame;
-	
-	if (tocView.oldActive) {
-		tempActiveId = tocView.oldActive.id;
-		tocView.oldActive.className = tocView.oldActiveClass;
-		tocView.oldActive = null;
-	}
-		
-	if (isIE)
-		temp = tocView.document.body.innerHTML;
-	else if (isMozilla)
-		temp = tocView.document.documentElement.innerHTML;
-}
-
-function restoreNavigation(errorMessage)
-{	
-	// switch to saved view
-	showView(tempView);
-
-	/**** HARD CODED VIEW NAME *********/	
-	var tocView = ViewsFrame.toc.tocViewFrame;
-
-	if (temp && (isIE || isMozilla10)) {
-		// Restore old navigation
-		if (isIE) {
-			tocView.document.body.innerHTML = temp;
-		} else if (isMozilla10) {
-			tocView.document.documentElement.innerHTML = temp;
-		}
-		if (tempActiveId){
-			tocView.selectTopicById(tempActiveId);
-		}
-	} else {
-		// fail back case
-		tocView.location.replace("tocView.jsp");
-	}
-	window.status=errorMessage;	
-}
-</script>
-</head>
-
-<frameset onload="showView('<%=data.getVisibleView()%>')" id="navFrameset" rows="*,21"  framespacing="0" border="0"  frameborder="0" scrolling="no">
-   <frame name="ViewsFrame" title="<%=ServletResources.getString("ignore", "ViewsFrame", request)%>" src='<%="views.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="0" resize=yes>
-   <frame name="TabsFrame" title="<%=ServletResources.getString("TabsFrame", request)%>" src='<%="tabs.jsp"+data.getQuery()%>' marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
-</frameset>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/navActions.js b/org.eclipse.help.webapp/advanced/navActions.js
deleted file mode 100644
index 45bbab5..0000000
--- a/org.eclipse.help.webapp/advanced/navActions.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-
-function resynchNav(button)
-{
-	try {
-		parent.parent.parent.parent.ContentFrame.ContentToolbarFrame.resynch(button);
-	} catch(e){
-	}
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function toggleShowAll(button){
-	window.parent.parent.toggleShowAll();
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function removeBookmark(button){
-	try {
-		parent.bookmarksViewFrame.removeBookmark();
-	} catch(e){
-	}
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-
-function removeAllBookmarks(button){
-	try {
-		parent.bookmarksViewFrame.removeAllBookmarks();
-	} catch(e){
-	}
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/search.jsp b/org.eclipse.help.webapp/advanced/search.jsp
deleted file mode 100644
index 90eed43..0000000
--- a/org.eclipse.help.webapp/advanced/search.jsp
+++ /dev/null
@@ -1,29 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ page import="org.eclipse.help.internal.webapp.data.*" errorPage="/advanced/err.jsp" contentType="text/html; charset=UTF-8"%>
-<%
-	request.setCharacterEncoding("UTF-8");
-	boolean cookiesEnabled = false;
-	Cookie[] cookies = request.getCookies();
-	if (cookies != null) {
-		for (int i = 0; i < cookies.length; i++) {
-			if ("cookiesEnabled".equals(cookies[i].getName()) && "yes".equals(cookies[i].getValue())) {
-				cookiesEnabled = true;
-				break;
-			}
-		}
-	}
-	if(cookiesEnabled || (new RequestData(application, request, response)).getMode() != RequestData.MODE_INFOCENTER){
-		request.getRequestDispatcher("/advanced/searchScoped.jsp").forward(request, response);
-	}else{
-		request.getRequestDispatcher("/advanced/searchSimple.jsp").forward(request, response);
-	}
-%>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/searchList.css b/org.eclipse.help.webapp/advanced/searchList.css
deleted file mode 100644
index b50a5d0..0000000
--- a/org.eclipse.help.webapp/advanced/searchList.css
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-BODY {
-	background-color: <%=prefs.getViewBackground()%>;
-	color:WindowText;
-	font: <%=prefs.getViewFont()%>;
-	margin-top:5px;
-	margin-<%=isRTL?"right":"left"%>:5px;
-	padding:0;
-	border:0;
-	cursor:default;
-}
-
-A {
-	text-decoration:none; 
-	padding:0px;
-}
-
-A:hover {
-	text-decoration:underline; 
-}
-
-IMG {
-	border:0px;
-	margin:0px;
-	padding:0px;
-	margin-<%=isRTL?"left":"right"%>:4px;
-}
-
-TABLE {
-	background-color: <%=prefs.getViewBackground()%>;
-	font: <%=prefs.getViewFont()%>;
-	width:100%;
-}
-
-.list {
-	background-color: <%=prefs.getViewBackground()%>;
-	padding:2px;
-}
-
-.sectiontitle {
-	background-color: <%=prefs.getToolbarBackground()%>;
-	font-weight:bold;
-	margin-top:7px;
-}
-     
-.active { 
-	background:Highlight;
-	color:HighlightText;
-	width:100%;
-	height:100%;
-}
-
-.label {
-	margin-<%=isRTL?"right":"left"%>:4px;
-}
-
-#menu {
-	position:absolute;
-	display:none;
-	background:<%=prefs.getToolbarBackground()%>;
-	border:2px outset;
-	padding:2px 0px;
-}
-
-.selectedMenuItem {
-	background:Highlight;
-	color:HighlightText;
-	padding-left:10px;
-	padding-right:10px;
-}
-
-.unselectedMenuItem {
-	background:<%=prefs.getToolbarBackground()%>;
-	color:WindowText;
-	padding-left:10px;
-	padding-right:10px;
-}
-
-.score {
-	padding-<%=isRTL?"left":"right"%>:5px;
-}
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/searchScoped.jsp b/org.eclipse.help.webapp/advanced/searchScoped.jsp
deleted file mode 100644
index f85a944..0000000
--- a/org.eclipse.help.webapp/advanced/searchScoped.jsp
+++ /dev/null
@@ -1,247 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	SearchData data = new SearchData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-
-<title><%=ServletResources.getString("Search", request)%></title>
-     
-<style type="text/css">
-/* need this one for Mozilla */
-HTML { 
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
- }
-
-BODY {
-	background:<%=prefs.getToolbarBackground()%>;
-	border:0px;
-	text:white;
-	height:100%;
-}
-
-TABLE {
-	font: <%=prefs.getToolbarFont()%>;
-	background:<%=prefs.getToolbarBackground()%>;
-	margin: 0px;
-	padding: 0px;
-	height:100%;
-}
-
-FORM {
-	background:<%=prefs.getToolbarBackground()%>;
-	height:100%;
-	margin:0px;
-}
-
-INPUT {
-	font: <%=prefs.getToolbarFont()%>;
-	margin:0px;
-	padding:0px;
-}
-
-A {
-	color:WindowText;
-	text-decoration:none;
-}
-
-#searchTD {
-	padding-<%=isRTL?"right":"left"%>:7px;
-	padding-<%=isRTL?"left":"right"%>:4px;
-}
-
-#searchWord {
-	padding-left:4px;
-	padding-right:4px;
-	border:1px solid ThreeDShadow;
-}
-
-#searchLabel {
-	color:WindowText;
-}
-
-#go {
-	background:ThreeDShadow;
-	color:Window;
-	font-weight:bold;
-	border:1px solid ThreeDShadow;
-	margin-left:1px;
-}
-
-#scopeLabel {
-	text-decoration:underline; 
-	color:#0066FF; 
-	cursor:hand;
-	padding-left:15px;   /* This should be the same for both RTL and LTR. */
-}
-
-#scope { 
-	text-align:<%=isRTL?"left":"right"%>;
-	margin-<%=isRTL?"right":"left"%>:5px;
-	border:0px;
-	color:WindowText;
-	text-decoration:none;
-}
-
-<%
-	if (data.isIE()) {
-%>
-#go {
-	padding-<%=isRTL?"right":"left"%>:1px;
-}
-<%
-	}
-%>
-</style>
-
-<script language="JavaScript">
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-var isMozilla = navigator.userAgent.toLowerCase().indexOf('mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-
-var advancedDialog;
-var w = 300;
-var h = 300;
-
-function openAdvanced()
-{
-	var scope = document.getElementById("scope").firstChild;
-	var workingSet = "";
-	if (scope != null)
-	 	workingSet = document.getElementById("scope").firstChild.nodeValue;
-	 	
-<%
-if (data.isIE()){
-%>
-	var l = top.screenLeft + (top.document.body.clientWidth - w) / 2;
-	var t = top.screenTop + (top.document.body.clientHeight - h) / 2;
-<%
-} else {
-%>
-	var l = top.screenX + (top.innerWidth - w) / 2;
-	var t = top.screenY + (top.innerHeight - h) / 2;
-<%
-}
-%>
-	// move the dialog just a bit higher than the middle
-	if (t-50 > 0) t = t-50;
-	
-	window.location="javascript://needModal";
-	advancedDialog = window.open("workingSetManager.jsp?workingSet="+encodeURIComponent(workingSet), "advancedDialog", "resizeable=no,height="+h+",width="+w+",left="+l+",top="+t );
-	advancedDialog.focus(); 
-}
-
-function closeAdvanced()
-{
-	try {
-		if (advancedDialog)
-			advancedDialog.close();
-	}
-	catch(e) {}
-}
-
-/**
- * This function can be called from this page or from
- * the advanced search page. When called from the advanced
- * search page, a query is passed.
- */
-function doSearch(query)
-{
-	var workingSet = document.getElementById("scope").firstChild.nodeValue;
-
-	if (!query || query == "")
-	{
-		var form = document.forms["searchForm"];
-		var searchWord = form.searchWord.value;
-		var maxHits = form.maxHits.value;
-		if (!searchWord || searchWord == "")
-			return;
-		query ="searchWord="+encodeURIComponent(searchWord)+"&maxHits="+maxHits;
-		if (workingSet != '<%=ServletResources.getString("All", request)%>')
-			query = query +"&scope="+encodeURIComponent(workingSet);
-	}
-		
-	/******** HARD CODED VIEW NAME *********/
-	// do some tests to ensure the results are available
-	if (parent.HelpFrame && 
-		parent.HelpFrame.NavFrame && 
-		parent.HelpFrame.NavFrame.showView &&
-		parent.HelpFrame.NavFrame.ViewsFrame && 
-		parent.HelpFrame.NavFrame.ViewsFrame.search && 
-		parent.HelpFrame.NavFrame.ViewsFrame.search.searchViewFrame) 
-	{
-		parent.HelpFrame.NavFrame.showView("search");
-		var searchView = parent.HelpFrame.NavFrame.ViewsFrame.search.searchViewFrame;
-		searchView.location.replace("searchView.jsp?"+query);
-	}
-}
-
-function fixHeights()
-{
-	if (!isIE) return;
-	
-	var h = document.getElementById("searchWord").offsetHeight;
-	document.getElementById("go").style.height = h;
-}
-
-function onloadHandler(e)
-{
-	var form = document.forms["searchForm"];
-	form.searchWord.value = '<%=UrlUtil.JavaScriptEncode(data.getSearchWord())%>';
-	fixHeights();
-}
-
-</script>
-
-</head>
-
-<body dir="<%=direction%>" onload="onloadHandler()"  onunload="closeAdvanced()">
-
-	<form  name="searchForm"   onsubmit="doSearch()">
-		<table id="searchTable" align="<%=isRTL?"right":"left"%>" valign="middle" cellspacing="0" cellpadding="0" border="0">
-			<tr nowrap  valign="middle">
-				<td <%=isRTL?"nowrap":""%> id="searchTD">
-					<label id="searchLabel" for="searchWord" accesskey="<%=ServletResources.getAccessKey("Search", request)%>">
-					&nbsp;<%=ServletResources.getLabel("Search", request)%>:
-					</label>
-				</td>
-				<td>
-					<input type="text" id="searchWord" name="searchWord" value='' size="24" maxlength="256" alt='<%=ServletResources.getString("SearchExpression", request)%>' title='<%=ServletResources.getString("SearchExpression", request)%>'>
-				</td>
-				<td >
-					&nbsp;<input type="button" onclick="this.blur();doSearch()" value='<%=ServletResources.getString("GO", request)%>' id="go" alt='<%=ServletResources.getString("GO", request)%>' title='<%=ServletResources.getString("GO", request)%>'>
-					<input type="hidden" name="maxHits" value="500" >
-				</td>
-				<td nowrap>
-					<a id="scopeLabel" href="javascript:openAdvanced();" title='<%=ServletResources.getString("ScopeTooltip", request)%>' alt='<%=ServletResources.getString("ScopeTooltip", request)%>' onmouseover="window.status='<%=ServletResources.getString("ScopeTooltip", request)%>'; return true;" onmouseout="window.status='';"><%=ServletResources.getLabel("Scope", request)%>:</a>
-				</td>
-				<td nowrap>
-					<input type="hidden" name="workingSet" value='<%=data.getScope()%>'>
-					<div id="scope" ><%=data.getScope()%></div>
-				</td>
-			</tr>
-
-		</table>
-	</form>		
-
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/searchSimple.jsp b/org.eclipse.help.webapp/advanced/searchSimple.jsp
deleted file mode 100644
index 8d96364..0000000
--- a/org.eclipse.help.webapp/advanced/searchSimple.jsp
+++ /dev/null
@@ -1,225 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	SearchData data = new SearchData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-
-<title><%=ServletResources.getString("Search", request)%></title>
-     
-<style type="text/css">
-/* need this one for Mozilla */
-HTML { 
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
- }
-
-BODY {
-	background:<%=prefs.getToolbarBackground()%>;
-	border:0px;
-	text:white;
-	height:100%;
-}
-
-TABLE {
-	font: <%=prefs.getToolbarFont()%>;
-	background:<%=prefs.getToolbarBackground()%>;
-	margin: 0px;
-	padding: 0px;
-	height:100%;
-}
-
-FORM {
-	background:<%=prefs.getToolbarBackground()%>;
-	height:100%;
-	margin:0px;
-}
-
-INPUT {
-	font: <%=prefs.getToolbarFont()%>;
-	margin:0px;
-	padding:0px;
-}
-
-
-#searchTable {
-	padding-<%=isRTL?"right":"left"%>:5;
-}
-
-#searchWord {	
-	padding-left:4px;
-	padding-right:4px;
-	border:1px solid ThreeDShadow;
-}
-
-#go {
-	background:ThreeDShadow;
-	color:Window;
-	font-weight:bold;
-	border:1px solid ThreeDShadow;
-}
-
-
-#advanced {
-	text-decoration:underline; 
-	text-align:<%=isRTL?"left":"right"%>;
-	color:#0066FF; 
-	cursor:hand;
-	margin-<%=isRTL?"right":"left"%>:4px;
-	border:0px;
-}
-
-<%
-	if (data.isIE()) {
-%>
-#go {
-	padding-<%=isRTL?"right":"left"%>:1px;
-}
-<%
-	}
-%>
-</style>
-
-<script language="JavaScript">
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-var isMozilla = navigator.userAgent.toLowerCase().indexOf('mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-
-<%
-	String[] selectedBooks = data.getSelectedTocs();
-%>
-// create list of books initilize selectedBooks variable used by advances search
-var selectedBooks = new Array(<%=selectedBooks.length%>);
-<%
-for (int i=0; i<selectedBooks.length; i++) 
-{
-%>
-	selectedBooks[<%=i%>] = "<%=UrlUtil.JavaScriptEncode(selectedBooks[i])%>";
-<%
-}
-%>
-
-var advancedDialog;
-var w = 400;
-var h = 300;
-
-function saveSelectedBooks(books)
-{
-	selectedBooks = new Array(books.length);
-	for (var i=0; i<selectedBooks.length; i++){
-		selectedBooks[i] = new String(books[i]);
-	}
-}
-
-function openAdvanced()
-{
-	window.location="javascript://needModal";
-	advancedDialog = window.open("advanced.jsp?searchWord="+encodeURIComponent(document.getElementById("searchWord").value), "advancedDialog", "resizeable=no,height="+h+",width="+w );
-	advancedDialog.focus(); 
-}
-
-function closeAdvanced()
-{
-	try {
-		if (advancedDialog)
-			advancedDialog.close();
-	}
-	catch(e) {}
-}
-
-/**
- * This function can be called from this page or from
- * the advanced search page. When called from the advanced
- * search page, a query is passed.
- */
-function doSearch(query)
-{
-	if (!query || query == "")
-	{
-		var form = document.forms["searchForm"];
-		var searchWord = form.searchWord.value;
-		var maxHits = form.maxHits.value;
-		if (!searchWord || searchWord == "")
-			return;
-		query ="searchWord="+encodeURIComponent(searchWord)+"&maxHits="+maxHits;
-	}
-		
-	/******** HARD CODED VIEW NAME *********/
-	// do some tests to ensure the results are available
-	if (parent.HelpFrame && 
-		parent.HelpFrame.NavFrame && 
-		parent.HelpFrame.NavFrame.showView &&
-		parent.HelpFrame.NavFrame.ViewsFrame && 
-		parent.HelpFrame.NavFrame.ViewsFrame.search && 
-		parent.HelpFrame.NavFrame.ViewsFrame.search.searchViewFrame) 
-	{
-		parent.HelpFrame.NavFrame.showView("search");
-		var searchView = parent.HelpFrame.NavFrame.ViewsFrame.search.searchViewFrame;
-		searchView.location.replace("searchView.jsp?"+query);
-	}
-}
-
-function fixHeights()
-{
-	if (!isIE) return;
-	
-	var h = document.getElementById("searchWord").offsetHeight;
-	document.getElementById("go").style.height = h;
-}
-
-function onloadHandler(e)
-{
-	var form = document.forms["searchForm"];
-	form.searchWord.value = '<%=UrlUtil.JavaScriptEncode(data.getSearchWord())%>';
-	fixHeights();
-}
-
-</script>
-
-</head>
-
-<body dir="<%=direction%>" onload="onloadHandler()"  onunload="closeAdvanced()">
-
-	<form  name="searchForm"   onsubmit="doSearch()">
-		<table id="searchTable" align="<%=isRTL?"right":"left"%>" valign="middle" cellspacing="0" cellpadding="0" border="0">
-			<tr nowrap  valign="middle">
-				<td <%=isRTL?"nowrap":""%>>
-					<label id="searchLabel" for="searchWord" accesskey="<%=ServletResources.getAccessKey("Search", request)%>">
-					&nbsp;<%=ServletResources.getLabel("Search", request)%>:
-					</label>
-				</td>
-				<td>
-					<input type="text" id="searchWord" name="searchWord" value='' size="20" maxlength="256" alt='<%=ServletResources.getString("SearchExpression", request)%>' title='<%=ServletResources.getString("SearchExpression", request)%>'>
-				</td>
-				<td >
-					&nbsp;<input type="button" onclick="this.blur();doSearch()" value='<%=ServletResources.getString("GO", request)%>' id="go" alt='<%=ServletResources.getString("GO", request)%>' title='<%=ServletResources.getString("GO", request)%>'>
-					<input type="hidden" name="maxHits" value="500" >
-				</td>
-				<td nowrap>
-					<a id="advanced" href="javascript:openAdvanced();" alt='<%=ServletResources.getString("Advanced", request)%>' title='<%=ServletResources.getString("Advanced", request)%>' onmouseover="window.status='<%=ServletResources.getString("Advanced", request)%>'; return true;" onmouseout="window.status='';"><%=ServletResources.getString("Advanced", request)%></a>&nbsp;
-				</td>
-			</tr>
-
-		</table>
-	</form>		
-
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/searchToolbar.jsp b/org.eclipse.help.webapp/advanced/searchToolbar.jsp
deleted file mode 100644
index 71975e3..0000000
--- a/org.eclipse.help.webapp/advanced/searchToolbar.jsp
+++ /dev/null
@@ -1,29 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="script" value="navActions.js"/>
-	<jsp:param name="view" value="search"/>
-
-	<jsp:param name="name"     value="show_all"/>
-	<jsp:param name="tooltip"  value='show_all'/>
-	<jsp:param name="image"    value="show_all.gif"/>
-	<jsp:param name="action"   value="toggleShowAll"/>
-	<jsp:param name="state"    value="<%=(new ActivitiesData(application, request, response)).getButtonState()%>"/>
-
-	<jsp:param name="name"     value="synchnav"/>
-	<jsp:param name="tooltip"  value='SynchNav'/>
-	<jsp:param name="image"    value="synch_nav.gif"/>
-	<jsp:param name="action"   value="resynchNav"/>
-	<jsp:param name="state"    value='off'/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/searchView.jsp b/org.eclipse.help.webapp/advanced/searchView.jsp
deleted file mode 100644
index 8fd2b50..0000000
--- a/org.eclipse.help.webapp/advanced/searchView.jsp
+++ /dev/null
@@ -1,164 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	SearchData data = new SearchData(application, request, response);
-	// After each search we preserve the scope (working set), if any
-	// this need to be at the beginning, otherwise cookie is not written
-	if (data.isSearchRequest())
-		data.saveScope();
-
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-<title><%=ServletResources.getString("SearchResults", request)%></title>
-
-<style type="text/css">
-<%@ include file="searchList.css"%>
-</style>
-
-
-<base target="ContentViewFrame">
-<script language="JavaScript" src="list.js"></script>
-<script language="JavaScript">		
-
-function refresh() 
-{ 
-	window.location.replace("searchView.jsp?<%=request.getQueryString()%>");
-}
-</script>
-
-
-</head>
-
-<body dir="<%=direction%>">
-
-<%
-if (!data.isSearchRequest()) {
-	out.write(ServletResources.getString("doSearch", request));
-} else if (data.getQueryExceptionMessage()!=null) {
-	out.write(data.getQueryExceptionMessage());
-} else if (data.isProgressRequest()) {
-%>
-
-<CENTER>
-<TABLE BORDER='0'>
-	<TR><TD><%=ServletResources.getString("Indexing", request)%></TD></TR>
-	<TR><TD ALIGN='<%=isRTL?"RIGHT":"LEFT"%>'>
-		<DIV STYLE='width:100px;height:16px;border:1px solid ThreeDShadow;'>
-			<DIV ID='divProgress' STYLE='width:<%=data.getIndexedPercentage()%>px;height:100%;background-color:Highlight'></DIV>
-		</DIV>
-	</TD></TR>
-	<TR><TD><%=data.getIndexedPercentage()%>% <%=ServletResources.getString("complete", request)%></TD></TR>
-	<TR><TD><br><%=ServletResources.getString("IndexingPleaseWait", request)%></TD></TR>
-</TABLE>
-</CENTER>
-<script language='JavaScript'>
-setTimeout('refresh()', 2000);
-</script>
-</body>
-</html>
-
-<%
-	return;
-} else if (data.getResultsCount() == 0){
-	out.write(ServletResources.getString("Nothing_found", request));
-} else {
-%>
-
-<table id='list'  cellspacing='0' >
-
-<%
-	for (int topic = 0; topic < data.getResultsCount(); topic++)
-	{
-		if(data.isActivityFiltering() && !data.isEnabled(topic)){
-			continue;
-		}
-%>
-
-<tr class='list' id='r<%=topic%>'>
-	<td class='score' align='<%=isRTL?"left":"right"%>'>
-
-<%
-		boolean isPotentialHit = data.isPotentialHit(topic);
-		if (isPotentialHit) {
-%>
-
-
-	<img src="<%=prefs.getImagesDirectory()%>/d_topic.gif" alt=""/>
-
-<%
-		}
-		else {
-%>
-
-	<img src="<%=prefs.getImagesDirectory()%>/topic.gif" alt=""/>
-
-<%
-		}
-%>
-
-	</td>
-	<td align='<%=isRTL?"right":"left"%>'>
-		<a class='link' id='a<%=topic%>' 
-		   href="<%=data.getTopicHref(topic)%>" 
-		   onmouseover="showStatus(event);return true;"
-		   onmouseout="clearStatus();return true;"
-		   onclick='parent.parent.parent.setContentToolbarTitle(this.title)' 
-		   title="<%=data.getTopicTocLabel(topic)%>">
-
-<%
-		String label = null;
-		if (isPotentialHit) {
-            label = ServletResources.getString("PotentialHit", data.getTopicLabel(topic), request);
-        }
-        else {
-            label = data.getTopicLabel(topic);
-        }
-%>
-
-        <%=label%></a>
-	</td>
-</tr>
-
-<%
-		String desc = data.getTopicDescription(topic);
-		if (desc!=null) {
-%>
-<tr class='description' id='d<%=topic%>'>
-	<td class='score'>
-	</td>
-	<td align='<%=isRTL?"right":"left"%>' class='label'>
-		<%=desc%>
-	</td>
-<%
-		}
-	}
-%>
-</table>
-
-<%
-}
-%>
-
-<script language="JavaScript">
-	selectTopicById('<%=data.getSelectedTopicId()%>');
-</script>
-
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/tabs.jsp b/org.eclipse.help.webapp/advanced/tabs.jsp
deleted file mode 100644
index 8592b38..0000000
--- a/org.eclipse.help.webapp/advanced/tabs.jsp
+++ /dev/null
@@ -1,296 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-	View[] views = data.getViews();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("Tabs", request)%></title>
-    
-<style type="text/css">
-
-
-BODY {
-	margin:0px;
-	padding:0px;
-	background:<%=prefs.getToolbarBackground()%>;
-	height:100%;
-<% 
-if (data.isMozilla()){
-%>
-	height:21px;
-<%
-}
-%>
-}
-
-/* tabs at the bottom */
-.tab {
-	font-size:5px;<%-- needed to verticaly center icon image --%>
-	margin:0px;
-	padding:0px;
-	border-top:1px solid ThreeDShadow;
-	border-bottom:1px solid <%=data.isMozilla()?prefs.getToolbarBackground():"ThreeDShadow"%>;
-	cursor:default;
-}
-
-.pressed {
-	font-size:5px;<%-- needed to verticaly center icon image (on IE--%>
-	margin:0px;
-	padding:0px;
-	cursor:default;
-	background-color:<%=prefs.getViewBackground()%>;
-	border-top:1px solid <%=prefs.getViewBackground()%>;
-	border-bottom:1px solid ThreeDShadow;
-}
-
-.separator {
-	height:100%;
-	background-color:ThreeDShadow;
-	border-bottom:1px solid <%=prefs.getToolbarBackground()%>;
-}
-
-.separator_pressed {
-	height:100%;
-	background-color:ThreeDShadow;
-	border-top:1px solid <%=prefs.getViewBackground()%>;
-	border-bottom:1px solid <%=prefs.getToolbarBackground()%>;
-}
-
-A {
-	text-decoration:none;
-	vertical-align:middle;
-	height:16px;
-	width:16px;
-<% 
-if (data.isIE()){
-%>
-	writing-mode:tb-rl; <%-- needed to verticaly center icon image on IE--%>
-<%
-} else {
-%>
-	display:block;<%-- needed to verticaly center icon image (remove extra pixels below) on Mozilla--%>
-<%
-}
-%>
-}
-
-IMG {
-	border:0px;
-	margin:0px;
-	padding:0px;
-	height:16px;
-	width:16px;
-}
-
-</style>
- 
-<script language="JavaScript">
-
-var isMozilla = navigator.userAgent.indexOf('Mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-var linksArray = new Array ("linktoc", "linksearch", "linklinks", "linkbookmarks");
-
-if (isMozilla) {
-  document.addEventListener('keydown', keyDownHandler, true);
-}
-else if (isIE){
-  document.onkeydown = keyDownHandler;
-}
-
-/**
- * Returns the target node of an event
- */
-function getTarget(e) {
-	var target;
-  	if (isMozilla)
-  		target = e.target;
-  	else if (isIE)
-   		target = window.event.srcElement;
-
-	return target;
-}
-
-<%
-for (int i=0; i<views.length; i++) {
-%>
-	var <%=views[i].getName()%> = new Image();
-	<%=views[i].getName()%>.src = "<%=views[i].getOnImage()%>";
-<%
-}
-%>
-
-var lastTab = "";
-/* 
- * Switch tabs.
- */ 
-function showTab(tab)
-{ 	
-	if (tab == lastTab) 
-		return;
-	
-	lastTab = tab;
-	
- 	// show the appropriate pressed tab
-  	var buttons = document.body.getElementsByTagName("TD");
-  	for (var i=0; i<buttons.length; i++)
-  	{
-  		if (buttons[i].id == tab) { 
-			buttons[i].className = "pressed";
-			if (i > 0) 
-				buttons[i-1].className = "separator_pressed";
-			if (i<buttons.length-1) 
-				buttons[i+1].className = "separator_pressed";
-		} else if (buttons[i].className == "pressed") {
-			buttons[i].className = "tab";
-			if (i > 0) 
-				if (i > 1 && buttons[i-2].id == tab) 
-					buttons[i-1].className = "separator_pressed";
-				else
-					buttons[i-1].className = "separator";
-			if (i<buttons.length-1) 
-				if (i<buttons.length-2 && buttons[i+2].id == tab) 
-					buttons[i+1].className = "separator_pressed";
-				else
-					buttons[i+1].className = "separator";
-		}
- 	 }
-}
-
-/**
- * Handler for key down (arrows)
- */
-function keyDownHandler(e)
-{
-	var key;
-
-	if (isIE) {
-		key = window.event.keyCode;
-	} else if (isMozilla) {
-		key = e.keyCode;
-	}
-		
-	if (key <37 || key > 39) 
-		return true;
-	
-  	var clickedNode = getTarget(e);
-  	if (!clickedNode) return true;
-
-	var linkId="";
-	if (clickedNode.tagName == 'A')
-		linkId=clickedNode.id;
-	else if(clickedNode.tagName == 'TD')
-		linkId="link"+clickedNode.id;
-
-	if (isMozilla)
-  		e.cancelBubble = true;
-  	else if (isIE)
-  		window.event.cancelBubble = true;
-  	if (key == 38 ) { // up arrow
-		if(linkId.length>4){
-			parent.showView(linkId.substring(4, linkId.length));
-			clickedNode.blur();
-			parent.frames.ViewsFrame.focus();
-		}
-  	} else if (key == 39) { // Right arrow, expand
-  		var nextLink=getNextLink(linkId);
-		if(nextLink!=null){
-			document.getElementById(nextLink).focus();
-		}
-  	} else if (key == 37) { // Left arrow,collapse
-   		var previousLink=getPreviousLink(linkId);
-		if(previousLink!=null){
-			document.getElementById(previousLink).focus();
-		}
- 	}
-  	 			
-  	return false;
-}
-
-function getNextLink(currentLink){
-	for(i=0; i<linksArray.length; i++){
-		if(currentLink==linksArray[i]){
-			if((i+1)<linksArray.length)
-				return linksArray[i+1];
-		}
-	}
-	return linksArray[0];
-}
-
-function getPreviousLink(currentLink){
-	for(i=0; i<linksArray.length; i++){
-		if(currentLink==linksArray[i]){
-			if(i>0)
-				 return linksArray[i-1];
-		}
-	}
-	return linksArray[linksArray.length-1];
-}
-
-</script>
-
-</head>
-   
-<body dir="<%=direction%>">
-
-  <table cellspacing="0" cellpadding="0" border="0" width="100%" height="100%" valign="middle">
-   <tr>
-
-<%
-	for (int i=0; i<views.length; i++) 
-	{
-		String title = ServletResources.getString(views[i].getName(), request);
-		if (i != 0) {
-%>
-	<td width="1px" class="separator"><div style="width:1px;height:1px;display:block;"></div></td>
-	<%-- div inside separator cell fixes top separator pixel that was not white on IE, or first separator not displayed when frame width happens to be even number of pixels --%>
-<%
-		}
-%>
-	<td  title="<%=title%>" 
-	     align="center"  
-	     valign="middle"
-	     class="tab" 
-	     id="<%=views[i].getName()%>" 
-	     onclick="parent.showView('<%=views[i].getName()%>')" 
-	     onmouseover="window.status='<%=title%>';return true;" 
-	     onmouseout="window.status='';">
-	     <a  href='javascript:parent.showView("<%=views[i].getName()%>");' 
-	         onclick='this.blur();return false;' 
-	         onmouseover="window.status='<%=title%>';return true;" 
-	         onmouseout="window.status='';"
-	         id="link<%=views[i].getName()%>"
-	         <%=views[i].getKey()==View.NO_SHORTCUT?"":"ACCESSKEY=\""+views[i].getKey()+"\""%>>
-	         <img alt="<%=title%>" 
-	              title="<%=title%>" 
-	              src="<%=views[i].getOnImage()%>"
-	              id="img<%=views[i].getName()%>"
-	              height="16"
-	         >
-	     </a>
-	</td>
-<%
-	}
-%>
- 
-   </tr>
-   </table>
-
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/toc.js b/org.eclipse.help.webapp/advanced/toc.js
deleted file mode 100644
index c6660ef..0000000
--- a/org.eclipse.help.webapp/advanced/toc.js
+++ /dev/null
@@ -1,607 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
- 
-// Common scripts for IE and Mozilla.
-
-var isMozilla = navigator.userAgent.indexOf('Mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
-var isIE = navigator.userAgent.indexOf('MSIE') != -1;
-
-var oldActive;
-var oldActiveClass = "";
-
-
-// Preload images
-// **********************************************************
-// Note: code moved into the jsp, for dynamic image preferences
-
-/**
- * Returns the target node of an event
- */
-function getTarget(e) {
-	var target;
-  	if (isMozilla)
-  		target = e.target;
-  	else if (isIE)
-   		target = window.event.srcElement;
-
-	return target;
-}
-
-/**
- * Returns the next tree node "down" from current one
- */
-function getNextDown(node)
-{
-	var a = getAnchorNode(node);
-	if (!a) return null;
-		
-	// Try visible child first
-	var li = a.parentNode;
-	var ul = getChildNode(li, "UL");
-	if (ul && ul.className == "expanded")
-		return getDescendantNode(ul, "A");
-	
-	// Try next sibling
-	var li_sib = getNextSibling(li);
-	if (li_sib != null)
-		return getDescendantNode(li_sib, "A");
-		
-	// Try looking to parent's sibling
-	while(li_sib == null) {
-		var ul = li.parentNode;
-		li = ul.parentNode;
-		if (li.tagName != "LI") // reached the top, nothing else to do
-			return null;
-			
-		li_sib = getNextSibling(li);		
-	}
-		
-	// found the next down sibling
-	return getDescendantNode(li_sib, "A");		
-}
-
-/**
- * Returns the next tree node "down" from current one
- */
-function getNextUp(node)
-{
-	var a = getAnchorNode(node);
-	if (!a) return null;
-		
-	// Get previous sibling first
-	var li = a.parentNode;
-	var li_sib = getPrevSibling(li);
-	if (li_sib != null) {
-		// try to get the deepest node that preceeds this current node
-		var candidate = getDescendantNode(li_sib, "A");
-		var nextDown = getNextDown(candidate);
-		while(nextDown != null && nextDown != node){
-			candidate = nextDown;
-			nextDown = getNextDown(nextDown);
-		}
-		return getDescendantNode(candidate, "A");	;
-	} else {
-		// get the parent
-		var li = li.parentNode.parentNode;
-		if (li && li.tagName == "LI")
-			return getDescendantNode(li, "A");
-		else
-			return null;
-	}
-}
-
-/**
- * Returns the next sibling element
- */
-function getNextSibling(node) 
-{
-	var sib = node.nextSibling;
-	while (sib && (sib.nodeType == 3 || sib.tagName=="SCRIPT")) // text or script node
-		sib = sib.nextSibling;
-	return sib;
-}
-
-/**
- * Returns the next sibling element
- */
-function getPrevSibling(node) 
-{
-	var sib = node.previousSibling;
-	while (sib && (sib.nodeType == 3 || sib.tagName=="SCRIPT")) // text or script node
-		sib = sib.previousSibling;
-	return sib;
-}
-
-
-/**
- * Returns the child node with specified tag
- */
-function getChildNode(parent, childTag)
-{
-	var list = parent.childNodes;
-	if (list == null) return null;
-	for (var i=0; i<list.length; i++)
-		if (list.item(i).tagName == childTag)
-			return list.item(i);
-	return null;
-}
-
-/**
- * Returns the descendat node with specified tag (depth-first searches)
- */
-function getDescendantNode(parent, childTag)
-{	
-	if (parent == null) return null;
-	
-	if (parent.tagName == childTag)
-		return parent;
-		
-	var list = parent.childNodes;
-	if (list == null) return null;
-	for (var i=0; i<list.length; i++) {
-		var child = list.item(i);
-		if(child.tagName == childTag)
-			return child;
-		
-		child = getDescendantNode(child, childTag);
-		if (child != null)
-			return child;
-	}
-	return null;
-}
-
-
-/**
- * Returns the anchor of this click
- * NOTE: MOZILLA BUG WITH A:focus and A:active styles
- */
-function getAnchorNode(node) {
-  if (node == null) return null;
-   
-  if (node.nodeType == 3)  //"Node.TEXT_NODE") 
-	return node.parentNode;
-  else if (node.tagName == "A") 
-    return node;
-  else if (node.tagName == "IMG")
-  	return getChildNode(node.parentNode, "A");
-  return null;
-}
-
-/**
- * Returns the plus/minus icon for this tree node
- */
-function getPlusMinus(node)
-{
-	if (isPlusMinus(node))
-		return node;
-  	else if (node.nodeType == 3)  //"Node.TEXT_NODE") 
-		return getChildNode(node.parentNode.parentNode, "IMG");
-	else if (node.tagName == "IMG")
-    	return getChildNode(node.parentNode.parentNode, "IMG");
-  	else if (node.tagName == "A") 
-    	return getChildNode(node.parentNode, "IMG");
-
- 	return null;
-}
-
-
-/**
- * Returns true when the node is the plus or minus icon
- */
-function isPlusMinus(node)
-{
-	return (node.nodeType != 3 && node.tagName == "IMG" && (node.className == "expanded" || node.className == "collapsed"));
-}
-
-/**
- * Collapses a tree rooted at the specified element
- */
-function collapse(node) {
-  node.className = "collapsed";
-  node.src = plus.src;
-  node.alt = altTopicClosed;
-  // set the UL as well
-  var ul = getChildNode(node.parentNode, "UL");
-  if (ul != null) ul.className = "collapsed";
-}
-
-/**
- * Expands a tree rooted at the specified element
- */
-function expand(node) {
-  	node.className = "expanded";
-  	node.src = minus.src;
-    node.alt = altTopicOpen;
-  	// set the UL as well
-  	var ul = getChildNode(node.parentNode, "UL");
-  	if (ul != null){
-  		ul.className = "expanded";
-  		if (ul.id.length > 0){
-  			if (!frames.dynLoadFrame) {
-  				return;
-  			}
-  			var ix = window.location.href.indexOf('?');
-  			if (ix < 0) {
-  				return;
-  			}
-  			var query = window.location.href.substr(ix);
-  			frames.dynLoadFrame.location = "tocFragment.jsp" + query + "&path=" + ul.id;
-  		}
-  	}
-}
-
-/**
- * Expands the nodes from root to the specified node
- */
-function expandPathTo(node, inclusive)
-{
-	// when the node is a link, get the plus/minus image
-	if (node.tagName == "A") 
-	{
-		var img = getChildNode(node.parentNode, "IMG")
-		if (img == null) return;
-		expandPathTo(img, inclusive);
-		return;
-	}
-	
-	if (inclusive && isCollapsed(node))
-		expand(node);
-		
-	var li = node.parentNode;
-	if (li == null) return;
-	var ul = li.parentNode;
-	if (ul == null) return;
-	li = ul.parentNode;
-	if (li == null) return;
-	var img = getChildNode(li, "IMG");
-	if (img == null) return;
-		
-	expandPathTo(img, true);
-}
-
-/**
- * Returns true when this is an expanded tree node
- */
-function isExpanded(node) {
-  return node.className == "expanded";
-}
-
-/**
- * Returns true when this is a collapsed tree node
- */
-function isCollapsed(node) {
-  return  node.className == "collapsed";
-}
-
-/**
- * Highlights link
- */
-function highlightTopic(topic)
-{
-	if (isMozilla)
-		window.getSelection().removeAllRanges();
-
-  	var a = getAnchorNode(topic); 
-  	if (a != null)
-  	{
-  	  	parent.parent.parent.setContentToolbarTitle(tocTitle);
-  	  	if (oldActive) 
-  	  		oldActive.className = oldActiveClass;
-
-  		oldActive = a;
-  		oldActiveClass = a.className;
-  		a.className = "active";
-  		// it looks like the onclick event is not handled in mozilla
-  		// *** TO DO: handle failed synchronization, do not select in that case
-  		if (isMozilla && a.onclick) 
-  			a.onclick()
-  		//if (isIE)
-  		//	a.hideFocus = "true";
-  	}
-}
-
-/**
- * Selects a topic in the tree: expand tree and highlight it
- * returns true if success
- */
-function selectTopic(topic)
-{
-	if (!topic)
-		return false;
-		
-	// remove the query, if any
-	var i = topic.indexOf('?');
-	if (i != -1)
-		topic = topic.substring(0, i);
-
-	var links = document.getElementsByTagName("a");
-
-	for (var i=0; i<links.length; i++)
-	{
-		if (topic == links[i].href)
-		{
-			expandPathTo(links[i], false);
-			highlightTopic(links[i]);
-			scrollIntoView(links[i]);
-			return true;
-		}
-	}
-	return false;
-}
-
-/**
- * Selects a topic in the tree: expand tree and highlight it
- * returns true if success
- */
-function selectTopicById(id)
-{
-	var topic = document.getElementById(id);
-	if (topic)
-	{
-		expandPathTo(topic, false);
-		highlightTopic(topic);
-		scrollIntoView(topic);
-		return true;
-	}
-	return false;
-}
-
-/**
- * Scrolls the page to show the specified element
- */
-function scrollIntoView(node)
-{
-	var scroll = getVerticalScroll(node);
-	if (scroll != 0)
-		window.scrollBy(0, scroll);
-}
-
-/**
- * Scrolls the page to show the specified element
- */
-function getVerticalScroll(node)
-{
-	var nodeTop = node.offsetTop;
-	var nodeBottom = nodeTop + node.offsetHeight;
-	var pageTop = 0;
-	var pageBottom = 0;
-	
-	if (isIE)
-	{
-		pageTop = document.body.scrollTop; 
-		pageBottom = pageTop + document.body.clientHeight;
-	
-	} 
-	else if (isMozilla)
-	{
-		pageTop = window.pageYOffset;
-		pageBottom = pageTop + window.innerHeight - node.offsetHeight;
-	}
-	
-	var scroll = 0;
-	if (nodeTop >= pageTop )
-	{
-		if (nodeBottom <= pageBottom)
-			scroll = 0; // already in view
-		else
-			scroll = nodeBottom - pageBottom;
-	}
-	else
-	{
-		scroll = nodeTop - pageTop;
-	}
-	
-	return scroll;
-}
-
-/*
- * Currently called on IE only
- */
-function focusHandler(e)
-{
-	/*if (isMozilla)
-		return;
-	*/
-		
-	try{
-		if (oldActive){
-			// only focus when the element is visible
-			var scroll = getVerticalScroll(oldActive);
-			if (scroll == 0)
-				oldActive.focus();
-		}		
-	}
-	catch(e){}
-}
-
-
-/**
- * display topic label in the status line on mouse over topic
- */
-function mouseMoveHandler(e) {
-	var overNode = getTarget(e);
- 	if (!overNode) return;
-  	
-	overNode = getAnchorNode(overNode);
-	  if (overNode == null){
-	   window.status = "";
-	   return;
-	  }
- 
-	if (isMozilla)
-		e.cancelBubble = false;
-  	 
-	if (overNode.title == "") {
-		if (overNode.innerText)
-			overNode.title = overNode.innerText;
-		else if (overNode.text)
-			overNode.title = overNode.text;
-	}
-	window.status = overNode.title;
-}
-
-/**
- * handler for expanding / collapsing topic tree
- */
-function mouseClickHandler(e) {
-
-  	var clickedNode = getTarget(e);
-
-  	if (isPlusMinus(clickedNode) )
-  	{	
-    	if (isCollapsed(clickedNode)) 
-   			expand(clickedNode);
-  		else if (isExpanded(clickedNode)) 
-  	  		collapse(clickedNode);
-  	}
-  	else
-  	{
-  		var plus_minus = getPlusMinus(clickedNode);
-  		if (plus_minus != null)
-  			highlightTopic(plus_minus);
-  	}
-  	
-  	if (isMozilla)
-  		e.cancelBubble = true;
-  	else if (isIE)
-  		window.event.cancelBubble = true;
-}
-
-/**
- * handler for expanding / collapsing topic tree
- */
-function mouseDblClickHandler(e) {
-
-  	var clickedNode = getTarget(e);
-  	if (!clickedNode) return;
-
-  	var plus_minus = getPlusMinus(clickedNode);
-  	if (plus_minus != null)
-  	{	
-    	if (isCollapsed(plus_minus)) 
-   			expand(plus_minus);
-  		else if (isExpanded(plus_minus)) 
-  	  		collapse(plus_minus);
-  	  		  		  
-  		highlightTopic(plus_minus);
-  	}
-  
-  	if (isMozilla)
-  		e.cancelBubble = true;
-  	else if (isIE)
-  		window.event.cancelBubble = true;
-}
-
-/**
- * Handler for key down (arrows)
- */
-function keyDownHandler(e)
-{
-	var key;
-
-	if (isIE) {
-		key = window.event.keyCode;
-	} else if (isMozilla) {
-		key = e.keyCode;
-	}
-		
-	if (key <37 || key > 40) 
-		return true;
-	
-	if (isMozilla)
-  		e.cancelBubble = true;
-  	else if (isIE)
-  		window.event.cancelBubble = true;
-  		
-  	if (key == 39) { // Right arrow, expand
-		var clickedNode = getTarget(e);
-  		if (!clickedNode) return;
-  		if (isIE){
-			if(clickedNode.id!=null){
-				if(clickedNode.id.charAt(0)=='b'){
-					if(clickedNode.name!="opened"){
-						loadTOC(clickedNode.name);
-						return true;
-					}
-				}
-			}
-		}
-
-  		var plus_minus = getPlusMinus(clickedNode);
-  		if (plus_minus != null)
-  		{	
-    		if (isCollapsed(plus_minus)) 
-   				expand(plus_minus);
-  			
-  			highlightTopic(plus_minus);
-  			scrollIntoView(clickedNode);
-  		}
-  	} else if (key == 37) { // Left arrow,collapse
-		var clickedNode = getTarget(e);
-  		if (!clickedNode) return;
-  		
-  		if(clickedNode.id!=null){
-  			if(clickedNode.id.charAt(0)=='b'){
-				if(clickedNode.name=="opened"){
-					loadTOC(" ");
-					return true;
-				}
-				else{ 	
-					return true;
-				}
-			}
-			
-		}
-
-  		var plus_minus = getPlusMinus(clickedNode);
-  		if (plus_minus != null)
-  		{	
-    		if (isExpanded(plus_minus)) 
-   				collapse(plus_minus);
-  			
-  			highlightTopic(plus_minus);
-  			scrollIntoView(clickedNode);
-  		}
-  	} else if (key == 40 ) { // down arrow
-  		var clickedNode = getTarget(e);
-  		if (!clickedNode) return;
-
-		var next = getNextDown(clickedNode);
-		if (next)
-			next.focus();
-
-  	} else if (key == 38 ) { // up arrow
-  		var clickedNode = getTarget(e);
-  		if (!clickedNode) return;
-
-		var next = getNextUp(clickedNode);
-		if (next)
-			next.focus();
-  	}
-  	
-  	 			
-  	return true;
-}
-
-if (isMozilla) {
-  document.addEventListener('click', mouseClickHandler, true);
-  document.addEventListener('dblclick', mouseDblClickHandler, true);
-  document.addEventListener('mousemove', mouseMoveHandler, true);
-  document.addEventListener('keydown', keyDownHandler, true);
-}
-else if (isIE){
-  document.onclick = mouseClickHandler;
-  document.ondblclick = mouseDblClickHandler;
-  document.onmousemove = mouseMoveHandler;
-  document.onkeydown = keyDownHandler;
-  //window.onfocus = focusHandler;
-}
-
diff --git a/org.eclipse.help.webapp/advanced/tocFragment.jsp b/org.eclipse.help.webapp/advanced/tocFragment.jsp
deleted file mode 100644
index fe38db0..0000000
--- a/org.eclipse.help.webapp/advanced/tocFragment.jsp
+++ /dev/null
@@ -1,54 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	TocData data = new TocData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=ServletResources.getString("partialContent", request)%></title>
-<script language="JavaScript">
-plus = new Image();
-plus.src = "<%=prefs.getImagesDirectory()%>"+"/plus.gif";
-folder_img = new Image();
-folder_img.src = "<%=prefs.getImagesDirectory()%>"+"/container_obj.gif";
-topic_img = new Image();
-topic_img.src = "<%=prefs.getImagesDirectory()%>"+"/topic.gif";
-
-function onloadHandler()
-{
-	var fragment = null;
-	for (var i=0; i < document.body.childNodes.length; i++)
-		if (document.body.childNodes[i].nodeName == "UL"){
-			fragment = document.body.childNodes[i];
-			break;
-		}
-	if(fragment == null) return;
-	var path = fragment.id;
-	var oldFragment = window.parent.document.getElementById(path);
-	oldFragment.innerHTML = fragment.innerHTML;
-	oldFragment.id = "";
-}
-</script>
-</head>
-<body dir="<%=direction%>" onload="onloadHandler()">
-<%
-		int toc=data.getSelectedToc();
-		// Only generate the selected toc
-		if (toc != -1 && data.getTocHref(data.getSelectedToc()).equals(data.getTocHref(toc)))
-		{
-			data.generateToc(toc, out);
-		}
-%>
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/advanced/tocToolbar.jsp b/org.eclipse.help.webapp/advanced/tocToolbar.jsp
deleted file mode 100644
index 9c72e7a..0000000
--- a/org.eclipse.help.webapp/advanced/tocToolbar.jsp
+++ /dev/null
@@ -1,28 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="script" value="navActions.js"/>
-	<jsp:param name="view" value="toc"/>
-
-	<jsp:param name="name"     value="show_all"/>
-	<jsp:param name="tooltip"  value='show_all'/>
-	<jsp:param name="image"    value="show_all.gif"/>
-	<jsp:param name="action"   value="toggleShowAll"/>
-	<jsp:param name="state"    value="<%=(new ActivitiesData(application, request, response)).getButtonState()%>"/>
-
-	<jsp:param name="name"     value="synchnav"/>
-	<jsp:param name="tooltip"  value='SynchNav'/>
-	<jsp:param name="image"    value="synch_nav.gif"/>
-	<jsp:param name="action"   value="resynchNav"/>
-	<jsp:param name="state"    value="off"/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/tocView.jsp b/org.eclipse.help.webapp/advanced/tocView.jsp
deleted file mode 100644
index 4676b03..0000000
--- a/org.eclipse.help.webapp/advanced/tocView.jsp
+++ /dev/null
@@ -1,218 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	TocData data = new TocData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("Content", request)%></title>
-
-<style type="text/css">
-<%@ include file="tree.css"%>
-</style>  
-    
-<base target="ContentViewFrame">
-<script language="JavaScript">
-
-// Preload images
-minus = new Image();
-minus.src = "<%=prefs.getImagesDirectory()%>"+"/minus.gif";
-plus = new Image();
-plus.src = "<%=prefs.getImagesDirectory()%>"+"/plus.gif";
-toc_open_img = new Image();
-toc_open_img.src = "<%=prefs.getImagesDirectory()%>"+"/toc_open.gif";
-toc_closed_img = new Image();
-toc_closed_img.src = "<%=prefs.getImagesDirectory()%>"+"/toc_closed.gif";
-folder_img = new Image();
-folder_img.src = "<%=prefs.getImagesDirectory()%>"+"/container_obj.gif";
-topic_img = new Image();
-topic_img.src = "<%=prefs.getImagesDirectory()%>"+"/topic.gif";
-altTopicClosed = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("topicClosed", request))%>";
-altTopicOpen = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("topicOpen", request))%>";
-</script>
-
-<script language="JavaScript" src="toc.js"></script>
-<script language="JavaScript"> 
- 
-/**
- * Loads the specified table of contents
- */		
-function loadTOC(tocHref)
-{
-	// navigate to this toc, if not already loaded
-	if (window.location.href.indexOf("tocView.jsp?toc="+tocHref) != -1)
-		return;
-	window.location.replace("tocView.jsp?toc="+tocHref);
-}
-
-var tocTitle = "";
-var tocId = "";
-	
-function onloadHandler()
-{
-<%
-	if (data.getSelectedToc() != -1)
-	{
-%>
-	tocTitle = '<%=UrlUtil.JavaScriptEncode(data.getTocLabel(data.getSelectedToc()))%>';
-	var tocTopic = "<%=data.getTocDescriptionTopic(data.getSelectedToc())%>";
-	
-	// set title on the content toolbar
-	parent.parent.parent.setContentToolbarTitle(tocTitle);
-		
-	var topicSelected=false;
-	// select specified topic, or else the book
-	var topic = "<%=data.getSelectedTopic()%>";
-	if (topic != "about:blank" && topic != tocTopic) {
-		if (topic.indexOf(window.location.protocol) != 0 && topic.length > 2) {
-			// remove the .. from topic
-			topic = topic.substring(2);
-			// remove advanced/tocView.jsp from path to obtain contextPath
-			var contextPath = window.location.pathname;
-			var slash = contextPath.lastIndexOf('/');
-			if(slash > 0) {
-				slash = contextPath.lastIndexOf('/', slash-1);
-				if(slash >= 0) {
-					contextPath = contextPath.substr(0, slash);
-					topic = window.location.protocol + "//" +window.location.host + contextPath + topic;
-				}
-			}			
-		}
-		topicSelected = selectTopic(topic);
-	} else {
-		topicSelected = selectTopicById(tocId);
-	}
-<%
-	// if topic failed to be selected, but we know it exist in some book,
-	// offer to turn on "show all"
-	
-	// do not offer to show all just after it was manually turned off
-	if (null==request.getParameter("showAll")) {
-%>
-	if(!topicSelected){
-		if(parent.parent.activityFiltering){
-			askShowAll();
-		}
-	}
-<%
-	}
-%>
-<%
-	} else if ("yes".equals(request.getParameter("synch"))) {
-%>
-	var message='<%=UrlUtil.JavaScriptEncode(ServletResources.getString("CannotSync", request))%>';
-	// when we don't find the specified toc, we just restore navigation
-	parent.parent.parent.restoreNavigation(message);
-<%
-	}
-%>
-	focusHandler("e");
-}
-
-var askShowAllDialog;
-var w = 470;
-var h = 270;
-
-function askShowAll(){
-<%
-if (data.isIE()){
-%>
-	var l = top.screenLeft + (top.document.body.clientWidth - w) / 2;
-	var t = top.screenTop + (top.document.body.clientHeight - h) / 2;
-<%
-} else {
-%>
-	var l = top.screenX + (top.innerWidth - w) / 2;
-	var t = top.screenY + (top.innerHeight - h) / 2;
-<%
-}
-%>
-	// move the dialog just a bit higher than the middle
-	if (t-50 > 0) t = t-50;
-	
-	window.location="javascript://needModal";
-	askShowAllDialog = window.open("askShowAll.jsp", "askShowAllDialog", "resizeable=no,height="+h+",width="+w+",left="+l+",top="+t );
-	askShowAllDialog.focus(); 
-}
-
-function yesShowAll(){
-	window.parent.parent.showAll();
-}
-
-function closeAskShowAllDialog(){
-	try {
-		if (askShowAllDialog){
-			askShowAllDialog.close();
-		}
-	}
-	catch(e) {}
-}
-
-function onunloadHandler() {
-	closeAskShowAllDialog();
-<%
-// for large books, we want to avoid a long unload time
-if (data.isIE()){
-%>
-	document.body.innerHTML = "";
-<%
-}
-%>
-}
-
-</script>
-</head>
-
-
-<body dir="<%=direction%>" onload="onloadHandler()" onunload="onunloadHandler()">
-	<ul dir="<%=direction%>" class='expanded' id='root'>
-<%
-	for (int toc=0; toc<data.getTocCount(); toc++) {
-		boolean isSelected =data.getSelectedToc() != -1 &&
-					   data.getTocHref(data.getSelectedToc()).equals(data.getTocHref(toc));
-		if(!data.isEnabled(toc)){
-			// do not show
-			continue;
-		}
-		if(isSelected) {
-%>
-		<li>
-		<img src="<%=prefs.getImagesDirectory()%>/toc_open.gif" alt="<%=ServletResources.getString("bookOpen", request)%>"><a id="b<%=toc%>" name="opened" style="font-weight: bold;" href="<%=data.getTocDescriptionTopic(toc)%>" onclick=''><%=data.getTocLabel(toc)%></a>
-<%
-			// Only generate the selected toc
-			data.generateToc(toc, out);
-			// keep track of the selected toc id
-%>
-			<script language="JavaScript">tocId="b"+<%=toc%></script>
-<%
-		} else {
-%>
-		<li>
-		<img src="<%=prefs.getImagesDirectory()%>/toc_closed.gif" alt="<%=ServletResources.getString("bookClosed", request)%>"><a id="b<%=toc%>" name="<%=data.getTocHref(toc)%>" style="font-weight: bold;" href="<%=data.getTocDescriptionTopic(toc)%>" onclick='loadTOC("<%=data.getTocHref(toc)%>")'><%=data.getTocLabel(toc)%></a>
-<%
-		}
-%>
-		</li>	
-<%
-	}
-%>		
-	</ul>
-   <iframe name="dynLoadFrame" title="<%=ServletResources.getString("ignore", "dynLoadFrame", request)%>" style="visibility:hidden" tabindex="-1" frameborder="no" width="0" height="0" scrolling="no">
-    </iframe>
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/toolbar.jsp b/org.eclipse.help.webapp/advanced/toolbar.jsp
deleted file mode 100644
index dc215af..0000000
--- a/org.eclipse.help.webapp/advanced/toolbar.jsp
+++ /dev/null
@@ -1,328 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	ToolbarData data = new ToolbarData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("Toolbar", request)%></title>
- 
-<style type="text/css">
-
-/* need this one for Mozilla */
-HTML { 
-	margin:0px;
-	padding:0px;
-}
- 
-BODY {
-	background:<%=prefs.getToolbarBackground()%>;
-}
-
-#titleText {
-	font-weight:bold;
-	color:WindowText;
-}
- 
-.buttonOn a { 
-	display:block;
-	margin-left:2px;
-	margin-right:2px;
-	width:<%=data.isMozilla()?18:20%>px;
-	height:<%=data.isMozilla()?18:20%>px;
-	border:1px solid Highlight;
-	writing-mode:tb-rl;
-	vertical-align:middle;
-	background: <%=prefs.getViewBackground()%>;
-}
-
-.button a { 
-	display:block;
-	margin-left:2px;
-	margin-right:2px;
-	width:<%=data.isMozilla()?18:20%>px;
-	height:<%=data.isMozilla()?18:20%>px;
-	border:1px solid <%=prefs.getToolbarBackground()%>;
-	writing-mode:tb-rl;
-	vertical-align:middle;
-}
-
-.button a:hover { 
-	border-top:1px solid ButtonHighlight; 
-	border-<%=isRTL?"right":"left"%>:1px solid ButtonHighlight; 
-	border-<%=isRTL?"left":"right"%>:1px solid ButtonShadow; 
-	border-bottom:1px solid ButtonShadow;
-}
-
-<% if (data.isIE() || data.isMozilla() && "1.2.1".compareTo(data.getMozillaVersion()) <=0){
-// maximize (last) button should not jump
-%>
-#b<%=data.getButtons().length-1%>:hover{
-	border:1px solid <%=prefs.getToolbarBackground()%>;
-}
-<%}%>
-
-.separator {
-	background-color: ThreeDShadow;
-	height:100%;
-	width: 1px;
-	border-top:2px solid <%=prefs.getToolbarBackground()%>;
-	border-bottom:2px solid <%=prefs.getToolbarBackground()%>;
-	border-left:3px solid <%=prefs.getToolbarBackground()%>;
-	border-right:3px solid <%=prefs.getToolbarBackground()%>;
-	
-}
-
-#container {
-	border-bottom:1px solid ThreeDShadow;
-<%
-if (data.isIE()) {
-%> 
-<%
-}else if (data.isMozilla()){
-%>
-	border-top:1px solid ThreeDShadow;
-	height:24px;
-<%
-}
-%>
-}
-
-<%
-// workaround for adding right border on mozilla (ugly..)
-if (data.isMozilla() && "content".equals(request.getParameter("toolbar"))) { 
-%>
-
-/* need this one for Mozilla */
-HTML { 
-	margin:0px;
-	padding:0px;
-}
-<%
-}
-%>
-
-</style>
-
-<script language="JavaScript">
-
-var bRestore = false;
-// Preload images
-<%
-ToolbarButton[] buttons = data.getButtons();
-for (int i=0; i<buttons.length; i++) {
-	if (!buttons[i].isSeparator()) {
-%>
-	var <%=buttons[i].getName()%> = new Image();
-	<%=buttons[i].getName()%>.src = "<%=buttons[i].getOnImage()%>";
-<%
-	}
-}
-%>
-
-function setTitle(label)
-{
-	if( label == null) label = "";
-	var title = document.getElementById("titleText");
-	if (title == null) return;
-	var text = title.lastChild;
-	if (text == null) return;
-	text.nodeValue = label;
-}
-
-<% if (data.isIE()
-	|| data.isMozilla() && "1.2.1".compareTo(data.getMozillaVersion()) <=0
-	|| (data.isSafari() && "120".compareTo(data.getSafariVersion()) <= 0) ){
-%>
-function registerMaximizedChangedListener(){
-	// get to the frameset
-	var p = parent;
-	while (p && !p.registerMaximizeListener)
-		p = p.parent;
-	
-	if (p!= null){
-		p.registerMaximizeListener('<%=data.getName()%>Toolbar', maximizedChanged);
-	}
-}
-registerMaximizedChangedListener();
-
-/**
- * Handler for double click: maximize/restore this view
- * Note: Mozilla browsers prior to 1.2.1 do not support programmatic frame resizing well.
- */
-function mouseDblClickHandler(e) {
-	// ignore double click on buttons
-	var target=<%=data.isIE()?"window.event.srcElement":"e.target"%>;
-	if (target.tagName && (target.tagName == "A" || target.tagName == "IMG"))
-		return;
-	toggleFrame();
-	return false;
-}		
-function restore_maximize(button)
-{
-	toggleFrame();
-	if (isIE && button && document.getElementById(button)){
-		document.getElementById(button).blur();
-	}
-}
-function toggleFrame(){
-	// get to the frameset
-	var p = parent;
-	while (p && !p.toggleFrame)
-		p = p.parent;
-	
-	if (p!= null){
-		p.toggleFrame('<%=data.getTitle()%>');
-	}
-	document.selection.clear;	
-}
-
-function maximizedChanged(maximizedNotRestored){
-	if(maximizedNotRestored){
-		document.getElementById("maximize_restore").src="<%=data.getRestoreImage()%>";
-		document.getElementById("maximize_restore").setAttribute("title", "<%=data.getRestoreTooltip()%>");
-		document.getElementById("maximize_restore").setAttribute("alt", "<%=data.getRestoreTooltip()%>");
-		bRestore = true;
-	}else{
-		document.getElementById("maximize_restore").src="<%=data.getMaximizeImage()%>";
-		document.getElementById("maximize_restore").setAttribute("title", "<%=data.getMaximizeTooltip()%>");
-		document.getElementById("maximize_restore").setAttribute("alt", "<%=data.getMaximizeTooltip()%>");
-		bRestore = false;
-	}
-}
-
-<%=( data.isIE() || data.isSafari() )?
-	"document.ondblclick = mouseDblClickHandler;"
-:
-	"document.addEventListener('dblclick', mouseDblClickHandler, true);"%>
-<%}%>
-
-function setButtonState(buttonName, pressed) {
-	if(!document.getElementById("tdb_"+buttonName))
-		return;
-	if(pressed){
-		document.getElementById("tdb_"+buttonName).className="buttonOn";
-	}else{
-		document.getElementById("tdb_"+buttonName).className="button";
-	}
-}
-
-function setWindowStatus(buttonName){
-	<%
-	for (int i=0; i<buttons.length; i++) {
-		String name = buttons[i].getName();%>
-		if (buttonName == "<%=name%>"){
-			if (buttonName == "maximize_restore"){
-				if (bRestore){
-					window.status = "<%=data.getRestoreTooltip()%>";
-				}else{
-					window.status = "<%=data.getMaximizeTooltip()%>";
-				}
-			}else{
-				window.status = "<%=buttons[i].getTooltip()%>";
-			}
-		}
-	<%	
-	}
-	%>
-}
-</script>
-
-<%
-if (data.getScript() != null) {
-%>
-<script language="JavaScript" src="<%=data.getScript()%>"></script>
-<%
-}
-%>
-
-</head>
- 
-<%
-if(buttons.length > 0){
-%>
-	<body dir="<%=direction%>">
-<%
-}else{
-%>
-	<body dir="<%=direction%>" tabIndex="-1">
-<%
-}
-%>
-
-<table id="container" width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" style='padding-<%=isRTL?"right":"left"%>:<%=data.isIE()?"5px":"8px"%>;'>
-
-	<tr>
-		<td nowrap style="font: <%=prefs.getToolbarFont()%>" valign="middle">
-			<div id="titleTextTableDiv" style="overflow:hidden; height:22px;"><table><tr><td nowrap style="font:<%=prefs.getToolbarFont()%>"><div id="titleText" >&nbsp;<%=data.getTitle()%></div></td></tr></table>
-			</div>
-		
-		
-		<div style="position:absolute; top:1px; <%=isRTL?"left":"right"%>:0px;">
-		<table width="100%" border="0" cellspacing="1" cellpadding="0" height="100%">
-			<tr>
-				<td align="<%=isRTL?"left":"right"%>">
-					<table align="<%=isRTL?"left":"right"%>" border="0" cellspacing="0" cellpadding="0" height="100%" style="background:<%=prefs.getToolbarBackground()%>">
-					<tr>
-<%
-	for (int i=0; i<buttons.length; i++) {
-		if (buttons[i].isSeparator()) {
-%>
-						<td align="middle" class="separator" valign="middle">
-						</td>
-<%
-		} else {
-%>
-						<td align="middle" id="tdb_<%=buttons[i].getName()%>" class="<%=buttons[i].isOn()?"buttonOn":"button"%>" height=18>
-							<a href="javascript:<%=buttons[i].getAction()%>('b<%=i%>');" 
-							   onmouseover="javascript:setWindowStatus('<%=buttons[i].getName()%>');return true;" 
-							   onmouseout="window.status='';"
-							   id="b<%=i%>">
-							   <img src="<%=buttons[i].getOnImage()%>" 
-									alt='<%=buttons[i].getTooltip()%>' 
-									title='<%=buttons[i].getTooltip()%>' 
-									border="0"
-									id="<%=buttons[i].getName()%>">
-							</a>
-						</td>
-<%
-		}
-	}
-%>				
-					</tr>
-					</table>
-				</td>
-			</tr>
-		</table> 
-		</div>
-		</td>
-	</tr>
-</table>
-
-<%// special case for content toolbar - internally used live help frame
-if ("content".equals(request.getParameter("toolbar"))) {
-%>
-    <iframe name="liveHelpFrame" title="<%=ServletResources.getString("ignore", "liveHelpFrame", request)%>" style="visibility:hidden" tabindex="-1" frameborder="no" width="0" height="0" scrolling="no">
-    </iframe>
-<%
-}
-%>
-
-</body>     
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/tree.css b/org.eclipse.help.webapp/advanced/tree.css
deleted file mode 100644
index 7d48c4d..0000000
--- a/org.eclipse.help.webapp/advanced/tree.css
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-BODY {
-	background-color: <%=prefs.getViewBackground()%>;
-	font: <%=prefs.getViewFont()%>;
-	margin:0;
-	padding:0;
-	border:0;
-}
-
-UL { 
-	border-width:0; 
-	margin-<%=isRTL?"right":"left"%>:20px; 
-}
-
-#root {
-	margin-top:5px;
-	margin-<%=isRTL?"right":"left"%>:5px;
-}
-  
-UL.expanded {
-	display:block; 
-}
-
-UL.collapsed { 
-	display: none;
-}
-
-LI { 
-	margin-top:3px; 
-	list-style-image:none;
-	list-style-type:none;
-		white-space: nowrap;
-}
-
-IMG {
-	border:0px;
-	margin:0px;
-	padding:0px;
-	margin-<%=isRTL?"left":"right"%>:4px;
-}
-
-
-A {
-	text-decoration:none; 
-	color:WindowText;
-	padding-<%=isRTL?"left":"right"%>:2px;
-	/* this works in ie5.5, but not in ie5.0  */
-	white-space: nowrap;
-}
-
-A:hover{
-	text-decoration:underline; 
-}
-
-A.active{ 
-	background:Highlight;
-	color:HighlightText;
-	width:100%;
-}
-
-A.active:hover{
-	text-decoration:underline; 
-	background:Highlight;
-	color:HighlightText;
-	width:100%;
-}
-
-<% 
-if (data.isMozilla()){
-%>
-UL { 
-	margin-<%=isRTL?"right":"left"%>:-20px;
-} 
-#root{ 
-	margin-<%=isRTL?"right":"left"%>:-35px; 
-	margin-top:5px;
-} 
- 
-<%
-}
-%>
-
-.h {
-	visibility:hidden;
-}
- 
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/advanced/view.jsp b/org.eclipse.help.webapp/advanced/view.jsp
deleted file mode 100644
index fc842d1..0000000
--- a/org.eclipse.help.webapp/advanced/view.jsp
+++ /dev/null
@@ -1,49 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="fheader.jsp"%>
-
-<% 
-	new ActivitiesData(application, request, response); // here it can turn filtering on or off
-	LayoutData data = new LayoutData(application,request, response);
-	View view = data.getCurrentView();
-	if (view == null) return;
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=ServletResources.getString(view.getName(), request)%></title>
-
-<script language="JavaScript">
-
-function onloadHandler(e)
-{
-<% if (data.isIE() || data.isMozilla() && "1.2.1".compareTo(data.getMozillaVersion()) <=0){
-%>	var h=window.<%=view.getName()%>ToolbarFrame.document.getElementById("titleText").offsetHeight; <%-- default 13 --%>
-	if(h<=19){
-		return; <%-- no need to resize up to 19px --%>
-	}
-	document.getElementById("viewFrameset").setAttribute("rows", (11+h)+",*"); <%-- default 24 --%>
-	window.<%=view.getName()%>ToolbarFrame.document.getElementById("titleTextTableDiv").style.height=(9+h)+"px"; <%-- default 22 --%>
-<%}%>
-}
-</script>
-
-</head>
-
-<frameset id="viewFrameset" onload="onloadHandler()" rows="24,*" frameborder="0" framespacing="0" border=0  >
-	<frame id="toolbar" name="<%=view.getName()%>ToolbarFrame" title="<%=ServletResources.getString(view.getName()+"ViewToolbar", request)%>" src='<%=view.getURL()+view.getName()+"Toolbar.jsp"%>'  marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize=0>
-	<frame name='<%=view.getName()%>ViewFrame' title="<%=ServletResources.getString(view.getName()+"View", request)%>" src='<%=view.getURL()+view.getName()+"View.jsp?"+request.getQueryString()%>'  marginwidth="10" marginheight="0" frameborder="0" >
-</frameset>
-
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/views.jsp b/org.eclipse.help.webapp/advanced/views.jsp
deleted file mode 100644
index f9c3b17..0000000
--- a/org.eclipse.help.webapp/advanced/views.jsp
+++ /dev/null
@@ -1,221 +0,0 @@
-<%--
- Copyright (c) 2000, 2006 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-	View[] views = data.getViews();
-%>	
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-
-<title><%=ServletResources.getString("Views", request)%></title>
-
-<style type="text/css">
-
-/* need this one for Mozilla */
-HTML { 
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
- }
-
-BODY {
-	margin:0px;
-	padding:0px;
-	/* Mozilla does not like width:100%, so we set height only */
-	height:100%;
-}
-
-IFRAME {
-	width:100%;
-	height:100%;
-}
-
-.hidden {
-	visibility:hidden;
-	width:0;
-	height:0;
-}
-
-.visible {
-	visibility:visible;
-	width:100%;
-	height:100%;
-}
-
-</style>
-
-<script language="Javascript">
-
-var lastView = "";
-/**
- * Switches to specified view
- */
-function showView(view)
-{ 	
-	if (view == lastView) 
-		return;
-		
-	lastView = view;
-       	
-	// show appropriate frame
- 	var iframes = parent.ViewsFrame.document.body.getElementsByTagName("IFRAME");
- 	for (var i=0; i<iframes.length; i++)
- 	{			
-  		if (iframes[i].id != view){
-   			iframes[i].className = "hidden";
-   			iframes[i].style.visibility="hidden";
-  		}else{
-   			iframes[i].className = "visible";
-   			iframes[i].style.visibility="visible";
-   		}
- 	}
-}
-
-var activityFiltering = <%=(new ActivitiesData(application, request, response)).isActivityFiltering()?"true":"false"%>;
-var displayShowAllConfirmation = <%=prefs.isDontConfirmShowAll()?"false":"true"%>;
-var regExp=/&(showAll|synch)=(on|off|yes|no)/gi;
-function toggleShowAll(){
-	if(activityFiltering){
-		if( displayShowAllConfirmation ){
-			confirmShowAll();
-		}else{
-			showAll();
-		}
-	} else {
-		dontShowAll();
-	}
-}
-
-function dontAskAgain(){
-	displayShowAllConfirmation = false;
-}
-function showAll(){
-	var displayConfirmParam;
-	if(displayShowAllConfirmation){
-		displayConfirmParam="";
-	}else{
-		displayConfirmParam="&showconfirm=false";
-	}
-	activityFiltering=false;
-	try{
-		window.frames.toc.tocToolbarFrame.setButtonState("show_all", true);
-	}catch(ex) {}
-	try{
-		window.frames.index.indexToolbarFrame.setButtonState("show_all", true);
-	}catch(ex) {}
-	try{
-		window.frames.search.searchToolbarFrame.setButtonState("show_all", true);
-	}catch(ex) {}
-	try{
-		window.frames.toc.tocViewFrame.location.replace(window.frames.toc.tocViewFrame.location.href.replace(regExp, "")+"&showAll=on"+displayConfirmParam);
-	}catch(ex) {}
-	try{
-		window.frames.index.indexViewFrame.location.replace(window.frames.index.indexViewFrame.location.href.replace(regExp, "")+"&showAll=on"+displayConfirmParam);
-	}catch(ex) {}
-	try{
-		window.frames.search.searchViewFrame.location.replace(window.frames.search.searchViewFrame.location.href.replace(regExp, "")+"&showAll=on");
-	}catch(ex) {}
-}
-
-function dontShowAll(){
-	activityFiltering=true;
-	try{
-		window.frames.toc.tocToolbarFrame.setButtonState("show_all", false);
-	}catch(ex) {}
-	try{
-		window.frames.index.indexToolbarFrame.setButtonState("show_all", false);
-	}catch(ex) {}
-	try{
-		window.frames.search.searchToolbarFrame.setButtonState("show_all", false);
-	}catch(ex) {}
-	try{
-		window.frames.toc.tocViewFrame.location.replace(window.frames.toc.tocViewFrame.location.href.replace(regExp, "")+"&showAll=off");
-	}catch(ex) {}
-	try{
-		window.frames.index.indexViewFrame.location.replace(window.frames.index.indexViewFrame.location.href.replace(regExp, "")+"&showAll=off");
-	}catch(ex) {}
-	try{
-		window.frames.search.searchViewFrame.location.replace(window.frames.search.searchViewFrame.location.href.replace(regExp, "")+"&showAll=off");
-	}catch(ex) {}
-}
-
-var confirmShowAllDialog;
-var w = 470;
-var h = 240;
-
-function confirmShowAll()
-{
-<%
-if (data.isIE()){
-%>
-	var l = top.screenLeft + (top.document.body.clientWidth - w) / 2;
-	var t = top.screenTop + (top.document.body.clientHeight - h) / 2;
-<%
-} else {
-%>
-	var l = top.screenX + (top.innerWidth - w) / 2;
-	var t = top.screenY + (top.innerHeight - h) / 2;
-<%
-}
-%>
-	// move the dialog just a bit higher than the middle
-	if (t-50 > 0) t = t-50;
-	
-	window.location="javascript://needModal";
-	confirmShowAllDialog = window.open("confirmShowAll.jsp", "confirmShowAllDialog", "resizeable=no,height="+h+",width="+w+",left="+l+",top="+t );
-	confirmShowAllDialog.focus(); 
-}
-
-function closeConfirmShowAllDialog(){
-	try {
-		if (confirmShowAllDialog){
-			confirmShowAllDialog.close();
-		}
-	}
-	catch(e) {}
-}
-
-</script>
-
-</head>
-   
-<body dir="<%=direction%>" tabIndex="-1" onunload="closeConfirmShowAllDialog()">
-<%
-	for (int i=0; i<views.length; i++) 
-	{
-		// normally we would hide the views first, but mozilla needs all iframes to be visible to load 
-		// other frames
-		String className =  data.getVisibleView().equals(views[i].getName()) || data.isMozilla() ? "visible" : "hidden";
-%>
- 	<iframe frameborder="0" 
- 		    class="<%=className%>"  
- 		    name="<%=views[i].getName()%>"
- 		    title="<%=ServletResources.getString("ignore", views[i].getName(), request)%>"
- 		    id="<%=views[i].getName()%>" 
- 		    src='<%="view.jsp?view="+views[i].getName()+(request.getQueryString()==null?"":("&"+request.getQueryString()))%>'>
- 	</iframe> 
-<%
-	}
-%>	
-
- <iframe frameborder="0" style="visibility:hidden" tabindex="-1" name="temp" id="temp" title="<%=ServletResources.getString("ignore", "temp", request)%>"></iframe>
- 
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/workingSet.jsp b/org.eclipse.help.webapp/advanced/workingSet.jsp
deleted file mode 100644
index 2fdc77d..0000000
--- a/org.eclipse.help.webapp/advanced/workingSet.jsp
+++ /dev/null
@@ -1,430 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	WorkingSetData data = new WorkingSetData(application, request, response);
-	TocData tocData = new TocData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-
-<html>
-<head>
-<title><%=ServletResources.getString(data.isEditMode()?"EditWorkingSet":"NewWorkingSet", request)%></title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-<style type="text/css">
-
-/* need this one for Mozilla */
-HTML, BODY {
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
-}
- 
-BODY {
-	font: <%=prefs.getViewFont()%>;
-	background:<%=prefs.getToolbarBackground()%>;
-	color: WindowText;
-}
-
-TABLE {
-	font:<%=prefs.getViewFont()%>;
-	background:<%=prefs.getToolbarBackground()%>;
-}
-
-TD, TR {
-	margin:0px;
-	padding:0px;
-	border:0px;
-}
-
-
-#workingSet {
-	width:100%;
-	font:<%=prefs.getViewFont()%>;
-}
-
-#booksContainer {
-	background:Window;
-	color:WindowText;
-	border:	2px inset ThreeDHighlight;
-	margin:10px;
-	margin-top:2px;
-	padding-<%=isRTL?"right":"left"%>:5px;
-	overflow:auto;
-	height:350px;
-<%if (data.isIE()) {%>
-	width:100%;
-<%}%>
-}
-
-.book {
-	margin:0xp;
-	border:0px;
-	padding:0px;
-	white-space: nowrap;
-}
-
-.topic {
-	margin-<%=isRTL?"right":"left"%>:30px;
-	border:0px;
-	padding:0px;
-	white-space: nowrap;
-}
-
-BUTTON {
-	font:<%=prefs.getViewFont()%>;
-}
-
-.expanded {
-	display:block;
-}
-
-.collapsed {
-	display:none;
-}
-
-.grayed {
-	background-color: <%=prefs.getToolbarBackground()%>;
-}
-
-<%
-if (data.isMozilla()) {
-%>
-input[type="checkbox"] {
-	border:2px solid WindowText; 
-	margin:0xp; 
-	padding:0px;	
-	height:12px;
-	width:12px;
-}
-
-.grayed {
-	background: <%=prefs.getToolbarBackground()%>;
-}
-<%
-}
-%>
-</style>
-
-<script language="JavaScript">
-
-// Preload images
-var minus = new Image();
-minus.src = "<%=prefs.getImagesDirectory()%>"+"/minus.gif";
-var plus = new Image();
-plus.src = "<%=prefs.getImagesDirectory()%>"+"/plus.gif";
-
-var oldName = '<%=data.isEditMode()?data.getWorkingSetName():""%>';
-var altBookClosed = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("bookClosed", request))%>";
-var altBookOpen = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("bookOpen", request))%>";
-
-function onloadHandler() {
-<%if(!data.isMozilla() || "1.3".compareTo(data.getMozillaVersion()) <=0){
-// buttons are not resized immediately on mozilla before 1.3
-%>
-	sizeButtons();
-<%}%>
-	document.getElementById("workingSet").focus();
-	enableOK();
-<%-- event handlers that call enableOK() are not invoked properly on Japanese --%>
-	setInterval("enableOK()", 250);
-
-}
-
-function sizeButtons() {
-	var minWidth=60;
-
-	if(document.getElementById("ok").offsetWidth < minWidth){
-		document.getElementById("ok").style.width = minWidth+"px";
-	}
-	if(document.getElementById("cancel").offsetWidth < minWidth){
-		document.getElementById("cancel").style.width = minWidth+"px";
-	}
-}
-
-function doSubmit()
-{
-	try
-	{
-		var workingSet = document.getElementById("workingSet").value;
-		if (!workingSet || workingSet == "")
-			return false;
-	
-		var hrefs = getSelectedResources();
-		if (!hrefs || hrefs == "")
-			return false;
-
-		var query = "operation="+'<%=data.getOperation()%>'+"&workingSet="+encodeURIComponent(workingSet)+ hrefs+"&oldName="+encodeURIComponent(oldName);
-		window.opener.location.replace("workingSetManager.jsp?"+query);
-		window.opener.focus();
-		window.close();
-	} catch(ex) {alert("Error..." + ex.message)}
-}
-
-function getSelectedResources() {
-	var hrefs = "";
-	var inputs = document.getElementsByTagName("INPUT");
-	for (var i=0; i<inputs.length; i++)
-	{
-		if (inputs[i].type != "checkbox") continue;
-		if (inputs[i].checked == false) continue;
-		if (getGrayed(inputs[i])) continue;
-		if (isToc(inputs[i].name)) {
-			hrefs += "&hrefs="+encodeURIComponent(inputs[i].name);
-		} else if (!isParentTocSelected(inputs[i].name)) {
-			hrefs += "&hrefs="+encodeURIComponent(inputs[i].name);
-		}
-	}
-	return hrefs;
-}
-
-// Assumption: last character of a toc reference cannot be underscore _
-function isToc(name) {
-	return name.charAt(name.length-1) != "_";
-}
-
-function isParentTocSelected(name) {
-	var parentCheckbox = getParentCheckbox(name);
-	return (parentCheckbox.checked && !getGrayed(parentCheckbox));
-}
-
-function getParentCheckbox(name) {
-	var parentId = name.substring(0, name.lastIndexOf("_", name.length-2));
-	return document.getElementById(parentId);
-}
-
-function collapseOrExpand(nodeId) {
-	var node = document.getElementById("div"+nodeId);
-	var img = document.getElementById("img"+nodeId);
-	if (!node || !img) return;
-	if (node.className == "expanded") {
-		node.className = "collapsed";
-		img.src = plus.src;
-		img.alt = altBookClosed;
-	} else {
-		node.className = "expanded";
-		img.src = minus.src;
-		img.alt = altBookOpen;
-	}
-}
-
-function collapse(nodeId) {
-	var node = document.getElementById("div"+nodeId);
-	var img = document.getElementById("img"+nodeId);
-	if (!node || !img) return;
-	node.className = "collapsed";
-	img.src = plus.src;
-	img.alt = altBookClosed;
-}
-
-function expand(nodeId) {
-	var node = document.getElementById("div"+nodeId);
-	var img = document.getElementById("img"+nodeId);
-	if (!node || !img) return;
-	node.className = "expanded";
-	img.src = minus.src;
-	img.alt = altBookOpen;
-}
-
-function getParent(child) {
-	var id = child.name;
-	var parentId = id.substring(0, id.lastIndexOf("_", id.length-2));
-	return document.getElementById(parentId);
-}
-
-function updateParentState(checkbox,parentDiv) {
-
-	if (checkbox == null)
-		return;
-
-	var baseChildState = checkbox.checked;
-	var parent = getParent(checkbox);
-	if (parent == null)
-		return;
-
-	var allSameState = true;
-	var children = document.getElementById(parentDiv).getElementsByTagName("INPUT");
-	for (var i = children.length - 1; i >= 0; i--) {
-		if (children[i].checked != baseChildState ) {
-			allSameState = false;
-			break;
-		}
-	}
-
-	setGrayed(parent, !allSameState);
-	parent.checked = !allSameState || baseChildState;
-}
-
-function setSubtreeChecked(checkbox, parentDiv) {
-	var state = checkbox.checked;
-	var children = document.getElementById(parentDiv).getElementsByTagName("INPUT");
-	for (var i = children.length - 1; i >= 0; i--) {
-		var element = children[i];
-		if (state) {
-			element.checked = true;
-		} else {
-			element.checked = false;
-		}
-	}
-	setGrayed(checkbox, false);
-}
-
-function setGrayed(node, enableGray) {
-	if (enableGray)
-		node.className = "grayed";
-	else
-		node.className = "checkbox";
-}
-
-function getGrayed(node) {
-	return node.className == "grayed";
-}
-
-function isExpanded(nodeId) {
-	var node = document.getElementById("div"+nodeId);
-	if (node == null) return false;
-	return node.className == "expanded";
-}
-
-function isCollapsed(nodeId) {
-	var node = document.getElementById("div"+nodeId);
-	if (node == null) return false;
-	return node.className == "collapsed";
-}
-
-/**
- * Handler for key down (arrows)
- */
-function keyDownHandler(folderId, key, target)
-{
-	if (key != 37 && key != 39) 
-		return true;
-
- 	if (key == 39) { // Right arrow, expand
-		if (isCollapsed(folderId))
-			expand(folderId);
-		target.focus();
-  	} else if (key == 37) { // Left arrow,collapse
-		if (isExpanded(folderId))
-			collapse(folderId);
-		var parentCheckbox = getParentCheckbox(target.name);
-		if (parentCheckbox != null)
-			parentCheckbox.focus();	
-		else
-			target.focus();
-  	} 
-  			
-  	return false;
-}
-
-function enableOK() {
-	var value = document.getElementById("workingSet").value;
-	if (!value || value.length == 0 || value.charAt(0) == " ")
-		document.getElementById("ok").disabled = true;
-	else
-		document.getElementById("ok").disabled = false;
-}
-
-</script>
-
-</head>
-
-<body dir="<%=direction%>" onload="onloadHandler()">
-<form onsubmit="doSubmit();return false;">
-	<table id="wsTable" width="100%" cellspacing=0 cellpading=0 border=0 align=center >
-		<tr><td style="padding:5px 10px 0px 10px;"><label for="workingSet" accesskey="<%=ServletResources.getAccessKey("WorkingSetName", request)%>"><%=ServletResources.getLabel("WorkingSetName", request)%>:</label>
-		</td></tr>
-		<tr><td style="padding:0px 10px;"><input type="text" id="workingSet" name="workingSet" value='<%=data.isEditMode()?data.getWorkingSetName():""%>' maxlength=256 alt='<%=ServletResources.getString("WorkingSetName", request)%>' title='<%=ServletResources.getString("WorkingSetName", request)%>' onkeyup="enableOK();return true;">
-        </td></tr>
-         <tr><td><div id="selectBook" style="padding-top:5px; margin-<%=isRTL?"right":"left"%>:10px;"><%=ServletResources.getString("WorkingSetContent", request)%>:</div>
-		</td></tr>
-    </table>
-    
-<div id="booksContainer" style="background:<%=prefs.getViewBackground()%>;">
-
-<% 
-for (int i=0; i<data.getTocCount(); i++)
-{
-	if(!tocData.isEnabled(i)){
-		// do not show
-		continue;
-	}
-	String label = data.getTocLabel(i);
-	short state = data.getTocState(i);
-	String checked = state == WorkingSetData.STATE_CHECKED || state == WorkingSetData.STATE_GRAYED ? "checked" : "";
-	String className = state == WorkingSetData.STATE_GRAYED ? "grayed" : "checkbox";
-%>
-				<div class="book" id='<%="id"+i%>' >
-					<img id='<%="img"+i%>' alt="<%=ServletResources.getString("bookClosed", request)%>" src="<%=prefs.getImagesDirectory()%>/plus.gif" onclick="collapseOrExpand('<%=i%>')">
-					<input 	class='<%=className%>' 
-							type="checkbox" 
-							id='<%=data.getTocHref(i)%>' 
-							name='<%=data.getTocHref(i)%>' 
-							alt="<%=label%>" <%=checked%> 
-						  	onkeydown="keyDownHandler(<%=i%>, event.keyCode, this)"
-							onclick="setSubtreeChecked(this, '<%="div"+i%>')">
-							<label for="<%=data.getTocHref(i)%>"><%=label%></label>
-					<div id='<%="div"+i%>' class="collapsed">
-<%
-	for (int topic=0; topic<data.getTopicCount(i); topic++)
-	{
-		String topicLabel = data.getTopicLabel(i, topic);
-		String topicChecked = (state == WorkingSetData.STATE_CHECKED) || 
-							  (state == WorkingSetData.STATE_GRAYED && data.getTopicState(i,topic) == WorkingSetData.STATE_CHECKED) 
-							  ? "checked" : "";
-%>
-						<div class="topic" id='<%="id"+i+"_"+topic%>'>
-							<input 	class="checkbox" 
-									type="checkbox" 
-									id='<%=data.getTocHref(i)+"_"+topic+"_"%>' 
-									name='<%=data.getTocHref(i)+"_"+topic+"_"%>' 
-									alt="<%=topicLabel%>" <%=topicChecked%> 
-									onkeydown="keyDownHandler(<%=i%>, event.keyCode, this)"
-									onclick="updateParentState(this, '<%="div"+i%>')">
-									<label for="<%=data.getTocHref(i)+"_"+topic+"_"%>"><%=topicLabel%></label>
-						</div>
-<%
-	}
-%>
-					</div>
-				</div>
-<%
-}		
-%>
-
-</div>
-<div style="height:50px;">
-	<table valign="bottom" align="<%=isRTL?"left":"right"%>">
-		<tr id="buttonsTable" valign="bottom"><td valign="bottom" align="<%=isRTL?"left":"right"%>">
-  			<table cellspacing=10 cellpading=0 border=0 style="background:transparent;">
-				<tr>
-					<td>
-						<button type="submit" id="ok"><%=ServletResources.getString("OK", request)%></button>
-					</td>
-					<td>
-					  	<button type="reset" onclick="window.close()" id="cancel"><%=ServletResources.getString("Cancel", request)%></button>
-					</td>
-				</tr>
-  			</table>
-		</td></tr>
-	</table>
-</div>
-</form>
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/advanced/workingSetManager.jsp b/org.eclipse.help.webapp/advanced/workingSetManager.jsp
deleted file mode 100644
index cf6ecbc..0000000
--- a/org.eclipse.help.webapp/advanced/workingSetManager.jsp
+++ /dev/null
@@ -1,321 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-<% 
-	WorkingSetManagerData data = new WorkingSetManagerData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-	String dataSaveError = data.getSaveError();
-%>
-
-
-<html>
-<head>
-<title><%=ServletResources.getString("SelectWorkingSet", request)%></title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-
-<style type="text/css">
-<%@ include file="list.css"%>
-</style>
-
-<style type="text/css">
-HTML, BODY {
-	width:100%;
-	height:100%;
-	margin:0px;
-	padding:0px;
-	border:0px;
-}
-
-BODY {
-	background-color: <%=prefs.getToolbarBackground()%>;
-	color:WindowText; 	
-}
-
-TABLE {
-	width:auto;
-}
-
-TD, TR {
-	margin:0px;
-	padding:0px;
-	border:0px;
-}
-TD.radio {
-	white-space: nowrap;
-}
-
-BUTTON {
-	font:<%=prefs.getViewFont()%>;
-}
-
-#workingSetContainer {
-	background:Window;
-	color:WindowText; 
-	border: 2px inset ThreeDHighlight;
-	margin:0px 5px;
-	padding:5px;
-	overflow:auto;
-}
-
-</style>
-
-<script language="JavaScript" src="list.js"></script>
-<script language="JavaScript">
-
-function highlightHandler()
-{
-	document.getElementById('selectws').checked = true;
-	enableButtons();
-}
-
-// register handler
-_highlightHandler = highlightHandler;
-
-function onloadHandler() {
-<%if(dataSaveError != null){%>
-	alert("<%=dataSaveError%>");
-	window.location="workingSetManager.jsp"
-<%}
-if(!data.isMozilla() || "1.3".compareTo(data.getMozillaVersion()) <=0){
-// buttons are not resized immediately on mozilla before 1.3
-%>
-	sizeButtons();
-<%}%>
-	enableButtons();
-	document.getElementById("alldocs").focus();
-}
-
-function sizeButtons() {
-	var minWidth=60;
-
-	if(document.getElementById("ok").offsetWidth < minWidth){
-		document.getElementById("ok").style.width = minWidth+"px";
-	}
-	if(document.getElementById("cancel").offsetWidth < minWidth){
-		document.getElementById("cancel").style.width = minWidth+"px";
-	}
-	if(document.getElementById("edit").offsetWidth < minWidth){
-		document.getElementById("edit").style.width = minWidth+"px";
-	}
-	if(document.getElementById("remove").offsetWidth < minWidth){
-		document.getElementById("remove").style.width = minWidth+"px";
-	}
-	if(document.getElementById("new").offsetWidth < minWidth){
-		document.getElementById("new").style.width = minWidth+"px";
-	}
-}
-
-function enableButtons() {
-	if (document.getElementById('selectws').checked){
-		document.getElementById("edit").disabled = (active == null);
-		document.getElementById("remove").disabled = (active == null);
-		document.getElementById("ok").disabled = (active == null);	
-	} else {
-		document.getElementById("edit").disabled = true;
-		document.getElementById("remove").disabled = true;
-		document.getElementById("ok").disabled = false;
-	}
-}
-
-function getWorkingSet()
-{
-	if (active != null && document.getElementById("selectws").checked)
-		return active.title;
-	else
-		return "";
-}
-
-
-function selectWorkingSet() {
-	var workingSet = getWorkingSet();
-
-	var search = window.opener.location.search;
-	if (search && search.length > 0) {
-		var i = search.indexOf("workingSet=");
-		if (i >= 0)
-			search = search.substring(0, i);
-		else
-			search += "&";
-	} else {
-		search = "?";
-	}
-
-	search += "workingSet=" + encodeURIComponent(workingSet);
-	var searchWord = window.opener.document.forms["searchForm"].searchWord.value;
-	if (searchWord)
-		search += "&searchWord="+encodeURIComponent(searchWord);
-		
-	window.opener.location.replace(
-		window.opener.location.protocol +
-		"//" +
-		window.opener.location.host + 
-		window.opener.location.pathname +
-		search);
-
- 	window.close();
-	return false;
-}
-
-function removeWorkingSet() {
-	window.location.replace("workingSetManager.jsp?operation=remove&workingSet="+encodeURIComponent(getWorkingSet()));
-}
-
-var workingSetDialog;
-var w = 300;
-var h = 500;
-
-function newWorkingSet() { 	
-	<%
-	if (data.isIE()){
-	%>
-		var l = top.screenLeft + (top.document.body.clientWidth - w) / 2;
-		var t = top.screenTop + (top.document.body.clientHeight - h) / 2;
-	<%
-	} else {
-	%>
-		var l = top.screenX + (top.innerWidth - w) / 2;
-		var t = top.screenY + (top.innerHeight - h) / 2;
-	<%
-	}
-	%>
-	// move the dialog just a bit higher than the middle
-	if (t-50 > 0) t = t-50;
-	window.location="javascript://needModal";
-	workingSetDialog = window.open("workingSet.jsp?operation=add&workingSet="+encodeURIComponent(getWorkingSet()), "workingSetDialog", "resizeable=no,height="+h+",width="+w +",left="+l+",top="+t);
-	workingSetDialog.focus(); 
-}
-
-function editWorkingSet() {
-	 	
-	<%
-	if (data.isIE()){
-	%>
-		var l = top.screenLeft + (top.document.body.clientWidth - w) / 2;
-		var t = top.screenTop + (top.document.body.clientHeight - h) / 2;
-	<%
-	} else {
-	%>
-		var l = top.screenX + (top.innerWidth - w) / 2;
-		var t = top.screenY + (top.innerHeight - h) / 2;
-	<%
-	}
-	%>
-	// move the dialog just a bit higher than the middle
-	if (t-50 > 0) t = t-50;
-		
-	window.location="javascript://needModal";
-	workingSetDialog = window.open("workingSet.jsp?operation=edit&workingSet="+encodeURIComponent(getWorkingSet()), "workingSetDialog", "resizeable=no,height="+h+",width="+w+",left="+l+",top="+t );
-	workingSetDialog.focus(); 
-}
-
-function closeWorkingSetDialog()
-{
-	try {
-		if (workingSetDialog)
-			workingSetDialog.close();
-	}
-	catch(e) {}
-}
-
-</script>
-
-</head>
-
-<body dir="<%=direction%>" onload="onloadHandler()" onunload="closeWorkingSetDialog()">
-<form onsubmit="selectWorkingSet();return false;">
-<div style="overflow:auto;height:250px;width:100%;">
-  	<table id="filterTable" cellspacing=0 cellpading=0 border=0 align=center  style="background:<%=prefs.getToolbarBackground()%>; font:<%=prefs.getToolbarFont()%>;margin-top:5px;width:100%;">
-		<tr><td class="radio">
-			<input id="alldocs" type="radio" name="workingSet" onclick="enableButtons()"><label for="alldocs" accesskey="<%=ServletResources.getAccessKey("selectAll", request)%>"><%=ServletResources.getLabel("selectAll", request)%></label>
-		</td></tr>
-		<tr><td class="radio">
-			<input id="selectws" type="radio" name="workingSet"  onclick="enableButtons()"><label for="selectws" accesskey="<%=ServletResources.getAccessKey("selectWorkingSet", request)%>"><%=ServletResources.getLabel("selectWorkingSet", request)%>:</label>	
-		</td></tr>
-		<tr><td>
-			<div id="workingSetContainer" style="overflow:auto; height:140px; background:<%=prefs.getViewBackground()%>;">
-
-<table id='list'  cellspacing='0' style="width:100%;">
-<% 
-String[] wsets = data.getWorkingSets();
-String workingSetId = "";
-for (int i=0; i<wsets.length; i++)
-{
-	if (data.isCurrentWorkingSet(i))
-		workingSetId = "a" + i;
-%>
-<tr class='list' id='r<%=i%>' style="width:100%;">
-	<td align='<%=isRTL?"right":"left"%>' class='label' nowrap style="width:100%; padding-left:5px;">
-		<a id='a<%=i%>' 
-		   href='#' 
-		   onclick="active=this;highlightHandler()"
-   		   ondblclick="selectWorkingSet()"
-		   title="<%=wsets[i]%>">
-		   <%=wsets[i]%>
-		 </a>
-	</td>
-</tr>
-
-<%
-}		
-%>
-
-</table>
-			</div>
-		</td></tr>
-		<tr id="actionsTable" valign="bottom"><td>
-  			<table cellspacing=10 cellpading=0 border=0 style="background:transparent;">
-				<tr>
-					<td>
-						<button type="button" onclick="newWorkingSet()" id="new" accesskey="<%=ServletResources.getAccessKey("NewWorkingSetButton", request)%>"><%=ServletResources.getLabel("NewWorkingSetButton", request)%>...</button>
-					</td>
-					<td>
-					  	<button type="button"  onclick="editWorkingSet()" id="edit" disabled='<%=data.getWorkingSet() == null ?"true":"false"%>' accesskey="<%=ServletResources.getAccessKey("EditWorkingSetButton", request)%>"><%=ServletResources.getLabel("EditWorkingSetButton", request)%>...</button>
-					</td>
-					<td>
-					  	<button type="button"  onclick="removeWorkingSet()" id="remove" disabled='<%=data.getWorkingSet() == null ?"true":"false"%>' accesskey="<%=ServletResources.getAccessKey("RemoveWorkingSetButton", request)%>"><%=ServletResources.getLabel("RemoveWorkingSetButton", request)%></button>
-					</td>
-				</tr>
-  			</table>
-		</td></tr>
-	</table>
-</div>
-<div style="height:50px;">
-	<table valign="bottom" align="<%=isRTL?"left":"right"%>" style="background:<%=prefs.getToolbarBackground()%>">
-		<tr id="buttonsTable" valign="bottom"><td valign="bottom" align="<%=isRTL?"left":"right"%>">
-  			<table cellspacing=10 cellpading=0 border=0 style="background:transparent;">
-				<tr>
-					<td>
-						<button type="submit" id="ok"><%=ServletResources.getString("OK", request)%></button>
-					</td>
-					<td>
-					  	<button type="reset" onclick="window.close()" id="cancel"><%=ServletResources.getString("Cancel", request)%></button>
-					</td>
-				</tr>
-  			</table>
-		</td></tr>
-	</table>
-</div>
-</form>
-<script language="JavaScript">
-	var selected = selectTopicById('<%=workingSetId%>');
-	if (!selected)
-		document.getElementById("alldocs").checked = true;
-	else
-		document.getElementById("selectws").checked = true;
-		
-</script>
-
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/basic/advanced.inc b/org.eclipse.help.webapp/basic/advanced.inc
deleted file mode 100644
index bcbddd6..0000000
--- a/org.eclipse.help.webapp/basic/advanced.inc
+++ /dev/null
@@ -1,68 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<form action="searchView.jsp" method="get" accept-charset="UTF-8" target="_self">
-
-	<table border="0" cellpadding="0" cellspacing="0">
-		<tr>
-			<td>
-				<label for="searchWord"><%=ServletResources.getString("SearchExpression", request)%></label>
-			</td>
-		</tr>
-		<tr>
-			<td nowrap>
-				<input type="text" name="searchWord" id="searchWord" value='<%=data.getSearchWord()%>' maxlength=256 alt='<%=ServletResources.getString("SearchExpression", request)%>' title='<%=ServletResources.getString("SearchExpression", request)%>'>
-          	  	<input type="hidden" name="maxHits" value="500" >
-          	  	<input type="hidden" name="scopedSearch" value="true" >
-				<input type="submit" value='<%=ServletResources.getString("GO", request)%>' alt='<%=ServletResources.getString("GO", request)%>' title='<%=ServletResources.getString("GO", request)%>'>
-        	</td>
-        </tr>
-        <tr>
-        	<td>
-        		<%=ServletResources.getString("expression_label", request)%>
-        	</td>
-        </tr>
-		<tr>
-			<td>
-				<hr>
-			</td>
-		</tr>
-    	<tr>
-  			<td>
-  				<b>
-				<%=ServletResources.getString("Select", request)%>
-				</b>
-			</td>
-		</tr>
-  				
-<% 
-TocData tocData = new TocData(application, request, response);
-for (int toc=0; toc<tocData.getTocCount(); toc++)
-{
-		//if(!tocData.isEnabled(toc)){
-			// do not show
-		//	continue;
-		//}
-	String label = tocData.getTocLabel(toc);
-	String checked="checked=\"yes\" ";
-	if( data.isSearchRequest() && !data.isTocSelected(toc) ){
-		checked="";
-	}
-%>
-  		<tr>
-  			<td nowrap>
-				<input type="checkbox" name='scope' id="checkbox<%=toc%>" value='<%=tocData.getTocHref(toc)%>' <%=checked%> alt="<%=label%>"><label for="checkbox<%=toc%>"><%=label%></label>
-			</td>
-		</tr>
-<%
-}		
-%>
-	</table>
- </form>
diff --git a/org.eclipse.help.webapp/basic/err.jsp b/org.eclipse.help.webapp/basic/err.jsp
deleted file mode 100644
index 196be27..0000000
--- a/org.eclipse.help.webapp/basic/err.jsp
+++ /dev/null
@@ -1,40 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ page import="org.eclipse.help.internal.webapp.data.*" contentType="text/html; charset=UTF-8"%>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title> Error </title>
-</head>
-<%
-String  direction = "ltr";
-try{
-	if(UrlUtil.isRTL(request, response)){
-		direction = "rtl";
-	}
-}catch(Exception e){
-}
-%>
-
-<body dir="<%=direction%>">
-
-	<%@ page isErrorPage="true" %>
-	
-	There was an error in your action:
-	<p>
-	<%= exception.toString() %>
-	</P>
-	
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/header.jsp b/org.eclipse.help.webapp/basic/header.jsp
deleted file mode 100644
index 6a6ca76..0000000
--- a/org.eclipse.help.webapp/basic/header.jsp
+++ /dev/null
@@ -1,30 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ page import="org.eclipse.help.internal.webapp.data.*" errorPage="/advanced/err.jsp" contentType="text/html; charset=UTF-8"%>
-
-<% 
-	request.setCharacterEncoding("UTF-8");
-	boolean isRTL = UrlUtil.isRTL(request, response);
-	String  direction = isRTL?"rtl":"ltr";
-%>
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!------------------------------------------------------------------------------
- ! Copyright (c) 2000, 2004 IBM Corporation and others.
- ! All rights reserved. This program and the accompanying materials 
- ! are made available under the terms of the Eclipse Public License v1.0
- ! which accompanies this distribution, and is available at
- ! http://www.eclipse.org/legal/epl-v10.html
- ! 
- ! Contributors:
- !     IBM Corporation - initial API and implementation
- ------------------------------------------------------------------------------->
-
diff --git a/org.eclipse.help.webapp/basic/help.jsp b/org.eclipse.help.webapp/basic/help.jsp
deleted file mode 100644
index aa539c8..0000000
--- a/org.eclipse.help.webapp/basic/help.jsp
+++ /dev/null
@@ -1,41 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=ServletResources.getString("Help", request)%></title>
-
-</head>
-
-<frameset cols="<%=isRTL?"*,300":"300,*"%>">
-<%
-if (isRTL) {
-%>
-	<frame name="ContentViewFrame" title="<%=ServletResources.getString("aView", ServletResources.getString("topic", request), request)%>" src='<%=data.getContentURL()%>' marginwidth="5" marginheight="5">
-	<frame name="ViewsFrame" title="<%=ServletResources.getString("ignore", "ViewsFrame", request)%>" src='<%="view.jsp?view="+data.getVisibleView()+"&"+request.getQueryString()%>' marginwidth="0" marginheight="0" scrolling="no">
-<%
-} else {
-%>
-	<frame name="ViewsFrame" title="<%=ServletResources.getString("ignore", "ViewsFrame", request)%>" src='<%="view.jsp?view="+data.getVisibleView()+"&"+request.getQueryString()%>' marginwidth="0" marginheight="0" scrolling="no">
-	<frame name="ContentViewFrame" title="<%=ServletResources.getString("aView", ServletResources.getString("topic", request), request)%>" src='<%=data.getContentURL()%>' marginwidth="5" marginheight="5">
-<%
-}
-%>
-</frameset>
-
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/images/bookmark_obj.gif b/org.eclipse.help.webapp/basic/images/bookmark_obj.gif
deleted file mode 100644
index 0665a4d..0000000
--- a/org.eclipse.help.webapp/basic/images/bookmark_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/bookmarks_view.gif b/org.eclipse.help.webapp/basic/images/bookmarks_view.gif
deleted file mode 100644
index 8eefad3..0000000
--- a/org.eclipse.help.webapp/basic/images/bookmarks_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/container_obj.gif b/org.eclipse.help.webapp/basic/images/container_obj.gif
deleted file mode 100644
index 391cfdb..0000000
--- a/org.eclipse.help.webapp/basic/images/container_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/e_contents_view.gif b/org.eclipse.help.webapp/basic/images/e_contents_view.gif
deleted file mode 100644
index 9e665d5..0000000
--- a/org.eclipse.help.webapp/basic/images/e_contents_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/e_index_view.gif b/org.eclipse.help.webapp/basic/images/e_index_view.gif
deleted file mode 100644
index 6645b64..0000000
--- a/org.eclipse.help.webapp/basic/images/e_index_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/e_links_view.gif b/org.eclipse.help.webapp/basic/images/e_links_view.gif
deleted file mode 100644
index d0b5c15..0000000
--- a/org.eclipse.help.webapp/basic/images/e_links_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/e_search_results_view.gif b/org.eclipse.help.webapp/basic/images/e_search_results_view.gif
deleted file mode 100644
index 111d5d1..0000000
--- a/org.eclipse.help.webapp/basic/images/e_search_results_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/e_synch_toc_nav.gif b/org.eclipse.help.webapp/basic/images/e_synch_toc_nav.gif
deleted file mode 100644
index 4353fd5..0000000
--- a/org.eclipse.help.webapp/basic/images/e_synch_toc_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/synch_toc_nav.gif b/org.eclipse.help.webapp/basic/images/synch_toc_nav.gif
deleted file mode 100644
index b986e49..0000000
--- a/org.eclipse.help.webapp/basic/images/synch_toc_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/toc_closed.gif b/org.eclipse.help.webapp/basic/images/toc_closed.gif
deleted file mode 100644
index 5edd28c..0000000
--- a/org.eclipse.help.webapp/basic/images/toc_closed.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/toc_open.gif b/org.eclipse.help.webapp/basic/images/toc_open.gif
deleted file mode 100644
index 520c1a8..0000000
--- a/org.eclipse.help.webapp/basic/images/toc_open.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/images/topic.gif b/org.eclipse.help.webapp/basic/images/topic.gif
deleted file mode 100644
index fbd1394..0000000
--- a/org.eclipse.help.webapp/basic/images/topic.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.help.webapp/basic/index.jsp b/org.eclipse.help.webapp/basic/index.jsp
deleted file mode 100644
index c405813..0000000
--- a/org.eclipse.help.webapp/basic/index.jsp
+++ /dev/null
@@ -1,37 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=data.getWindowTitle()%></title>
-<jsp:include page="livehelp_js.jsp"/>
-</head>
-
-<frameset rows="<%="0".equals(data.getBannerHeight())?"":data.getBannerHeight()+","%>45,*">
-<%
-	if(!("0".equals(data.getBannerHeight()))){
-%>
-	<frame name="BannerFrame" title="<%=ServletResources.getString("Banner", request)%>" src='<%=data.getBannerURL()%>'  marginwidth="0" marginheight="0" scrolling="no" frameborder="no" noresize>
-<%
-	}
-%>
-	<frame name="TabsFrame" title="<%=ServletResources.getString("helpToolbarFrame", request)%>" src='<%="basic/tabs.jsp"+data.getQuery()%>' marginwidth="5" marginheight="5" scrolling="no">
-	<frame name="HelpFrame" title="<%=ServletResources.getString("ignore", "HelpFrame", request)%>" src='<%="basic/help.jsp"+data.getQuery()%>' frameborder="no" marginwidth="0" marginheight="0" scrolling="no">
-</frameset>
-
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/indexToolbar.jsp b/org.eclipse.help.webapp/basic/indexToolbar.jsp
deleted file mode 100644
index 3d6112c..0000000
--- a/org.eclipse.help.webapp/basic/indexToolbar.jsp
+++ /dev/null
@@ -1,16 +0,0 @@
-<%--
- Copyright (c) 2006 Intel Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="view" value="index"/>
-</jsp:include>
diff --git a/org.eclipse.help.webapp/basic/indexView.jsp b/org.eclipse.help.webapp/basic/indexView.jsp
deleted file mode 100644
index a7f8afc..0000000
--- a/org.eclipse.help.webapp/basic/indexView.jsp
+++ /dev/null
@@ -1,37 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	IndexData data = new IndexData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("Content", request)%></title>
-
-<base target="ContentViewFrame">
-</head>
-
-
-<body dir="<%=direction%>" bgcolor="<%=prefs.getBasicViewBackground()%>">
-
-<table border="0" cellpadding="0" cellspacing="0">
-<%
-		data.generateBasicIndex(out);
-%>
-</table>
-
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/linksToolbar.jsp b/org.eclipse.help.webapp/basic/linksToolbar.jsp
deleted file mode 100644
index f0e6386..0000000
--- a/org.eclipse.help.webapp/basic/linksToolbar.jsp
+++ /dev/null
@@ -1,16 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="view" value="links"/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/basic/linksView.jsp b/org.eclipse.help.webapp/basic/linksView.jsp
deleted file mode 100644
index b12d4b0..0000000
--- a/org.eclipse.help.webapp/basic/linksView.jsp
+++ /dev/null
@@ -1,67 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 	
-	LinksData data = new LinksData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-<title><%=ServletResources.getString("Links", request)%></title>
-
-<base target="ContentViewFrame">
-</head>
-
-
-<body dir="<%=direction%>" bgcolor="<%=prefs.getBasicViewBackground()%>">
- 
-<%
-if(!data.isLinksRequest()) {
-	out.write(ServletResources.getString("pressF1", request));
-} else if (data.getLinksCount() == 0){
-	out.write(ServletResources.getString("Nothing_found", null));
-} else {
-%>
-
-<table border="0" cellpadding="0" cellspacing="0">
-
-<%
-	for (int link = 0; link < data.getLinksCount(); link++) 
-	{
-%>
-
-<tr>
-	<td align='<%=isRTL?"right":"left"%>' nowrap>
-		<a href='<%=data.getTopicHref(link)%>'>
-		   <img src="<%=prefs.getImagesDirectory()%>/topic.gif"  alt="" border=0>
-		   <%=data.getTopicLabel(link)%>
-		 </a>
-	</td>
-</tr>
-
-<%
-	}
-%>
-
-</table>
-
-<%
-
-}
-
-%>
-</body>
-</html>
diff --git a/org.eclipse.help.webapp/basic/livehelp_js.jsp b/org.eclipse.help.webapp/basic/livehelp_js.jsp
deleted file mode 100644
index 2143fcc..0000000
--- a/org.eclipse.help.webapp/basic/livehelp_js.jsp
+++ /dev/null
@@ -1,63 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ page import="org.eclipse.help.internal.webapp.data.*" errorPage="/basic/err.jsp" contentType="text/html; charset=UTF-8"%>
-<%
-	request.setCharacterEncoding("UTF-8");
-%>
-<script language="JavaScript">
-function liveActionInternal(topHelpWindow, pluginId, className, argument)
-{
-<%
-	RequestData data = new RequestData(application,request, response);
-	if(data.getMode() == RequestData.MODE_INFOCENTER){
-%>
-	alert("<%=UrlUtil.JavaScriptEncode(ServletResources.getString("noLiveHelpInInfocenter", request))%>");
-	return;
-<%
-	}else{
-%>
-	// construct the proper url for communicating with the server
-	var url= window.location.href;
-
-	var i = url.indexOf("?");
-	if(i>0)
-		url=url.substring(0, i);
-	
-	i = url.indexOf("/topic/");
-	if(i < 0)
-		i = url.lastIndexOf("/");
-
-	url=url.substring(0, i+1);
-	var encodedArg;
-	if(window.encodeURIComponent){
-		encodedArg=encodeURIComponent(argument);
-	}else{
-		encodedArg=escape(argument);
-	}
-	url=url+"livehelp/?pluginID="+pluginId+"&class="+className+"&arg="+encodedArg+"&nocaching="+Math.random();
-
-	var tabsFrame = topHelpWindow.TabsFrame;
-	if (!tabsFrame){
-		return;
-	}
-	if(tabsFrame.liveHelpFrame){
-		tabsFrame.liveHelpFrame.location=url;
-	} else if(tabsFrame.document && tabsFrame.document.liveHelpFrame){
-		tabsFrame.document.liveHelpFrame.src=url;
-	}
-<%
-	}
-%>
-}
-function showTopicInContentsInternal(topHelpWindow, topic) {
-}
-
-</script>
diff --git a/org.eclipse.help.webapp/basic/searchToolbar.jsp b/org.eclipse.help.webapp/basic/searchToolbar.jsp
deleted file mode 100644
index 827ebf4..0000000
--- a/org.eclipse.help.webapp/basic/searchToolbar.jsp
+++ /dev/null
@@ -1,16 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="view" value="search"/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/basic/searchView.jsp b/org.eclipse.help.webapp/basic/searchView.jsp
deleted file mode 100644
index 8c1f72c..0000000
--- a/org.eclipse.help.webapp/basic/searchView.jsp
+++ /dev/null
@@ -1,104 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	SearchData data = new SearchData(application, request, response);
-	WebappPreferences prefs = data.getPrefs();
-	LayoutData ldata = new LayoutData(application,request, response);
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Pragma" content="no-cache">
-<meta http-equiv="Expires" content="-1">
-
-<%
-if (data.isProgressRequest()) {
-%>
- <meta HTTP-EQUIV="REFRESH" CONTENT="2;URL=<%="searchView.jsp?"+request.getQueryString()%>">
-<%
-}
-%>
-
-<title><%=ServletResources.getString("SearchResults", request)%></title>
-<base target="ContentViewFrame">
-</head>
-
-<body dir="<%=direction%>" bgcolor="<%=prefs.getBasicViewBackground()%>">
-<%
-if (data.isProgressRequest()) {
-%>
-<table border="0" cellpadding="0" cellspacing="0">
-	<tr>
-		<td>
-			<%=ServletResources.getString("Indexing", request)%>
-		</td>
-	</tr>
-	<tr>
-		<td>
-			<%=data.getIndexedPercentage()%>% <%=ServletResources.getString("complete", request)%>
-		</td>
-	</tr>
-	<tr>
-		<td>
-			<br>
-			<%=ServletResources.getString("IndexingPleaseWait", request)%>
-		</td>
-	</tr>
-</table>
-</body>
-</html>
-
-<%
-	return;
-} else {
-%>
-	<%@ include file="advanced.inc"%>
-<%
- 	if (data.isSearchRequest()) {
-		if (data.getResultsCount() == 0){
-			out.write(ServletResources.getString("Nothing_found", request));
-		} else {	
-%>
-
-<table border="0" cellpadding="0" cellspacing="0">
-<%
-			//boolean disabledSearchResults = false;
-			for (int topic = 0; topic < data.getResultsCount(); topic++){
-			//	if(!data.isEnabled(topic)){
-			//		continue;
-			//	}
-%>
-<tr>
-	<td align='<%=isRTL?"left":"right"%>'><img src="<%=prefs.getImagesDirectory()%>/topic.gif" alt=""/></td>
-	<td align='<%=isRTL?"right":"left"%>' nowrap>
-		&nbsp;
-		<a <%=("a"+topic).equals(data.getSelectedTopicId())?" name=\"selectedItem\" ":""%>
-			href='<%=data.getTopicHref(topic)%>' 
-			title="<%=data.getTopicTocLabel(topic)%>">
-			<%=data.getTopicLabel(topic)%>
-		</a>
-	</td>
-</tr>
-<%
-			}
-%>	
-</table>
-<%
-	   	}
-	}
-}
-
-%>
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/tabs.jsp b/org.eclipse.help.webapp/basic/tabs.jsp
deleted file mode 100644
index a6f364c..0000000
--- a/org.eclipse.help.webapp/basic/tabs.jsp
+++ /dev/null
@@ -1,100 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-	View[] views = data.getViews();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("Tabs", request)%></title>
-    
-<base target="ViewsFrame">
-<SCRIPT TYPE="text/javascript">
-<!--
-function resynch()
-{
-		var topic = parent.HelpFrame.ContentViewFrame.window.location.href;
-		// remove the query, if any
-		var i = topic.indexOf('?');
-		if (i != -1)
-			topic = topic.substring(0, i);
-		// remove the fragment, if any
-		var i = topic.indexOf('#');
-		if (i != -1)
-			topic = topic.substring(0, i);
-		parent.HelpFrame.ViewsFrame.location="view.jsp?view=toc&topic="+topic;
-}
-//-->
-</SCRIPT>
-</head>
-   
-<body dir="<%=direction%>" bgcolor="<%=prefs.getBasicToolbarBackground()%>" link="#0000FF" vlink="#0000FF" alink="#0000FF">
-	<table align="<%=isRTL?"right":"left"%>" border="0" cellpadding="0" cellspacing="0">
-	<tr>
-
-<%
-	for (int i=0; i<views.length; i++) 
-	{
-		// do not show booksmarks view
-		if("bookmarks".equals(views[i].getName())){
-			continue;
-		}
-		
-		// search view is not called "advanced view"
-		String title = ServletResources.getString(views[i].getName(), request);
-		if("search".equals(views[i].getName())){
-			title=ServletResources.getString("Search", request);
-		}
-		
-		String viewHref="view.jsp?view="+views[i].getName();
-		// always pass query string to "links view"
-		if("links".equals(views[i].getName())){
-			viewHref=viewHref+(request.getQueryString()!=null?"&"+request.getQueryString():"");
-		}
-		
-%>
-		<td nowrap>
-		<b>
-		<a  href='<%=viewHref%>' > 
-	         <img alt="<%=title%>" 
-	              title="<%=title%>" 
-	              src="<%=views[i].getOnImage()%>" border=0>
-	         
-	     <%=title%>
-	     </a>
-	     &nbsp;
-		</b>
-	     </td>
-<%
-	}
-%>
-	</tr>
-	</table>
-
-<SCRIPT TYPE="text/javascript">
-<!--
-document.write("<table align=\"<%=isRTL?"left":"right"%>\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td nowrap><b><a  href='javascript:parent.parent.TabsFrame.resynch();' >"); 
-document.write("<img alt=\"\" title=\"<%=ServletResources.getString("Synch", request)%>\" src=\"images/e_synch_toc_nav.gif\" border=0> ");
-document.write("<%=ServletResources.getString("shortSynch", request)%></a>&nbsp;</b></td></tr></table>");
-//-->
-</SCRIPT>
-
-	<iframe name="liveHelpFrame" title="<%=ServletResources.getString("ignore", "liveHelpFrame", request)%>" frameborder="no" width="0" height="0" scrolling="no">
-	<layer name="liveHelpFrame" frameborder="no" width="0" height="0" scrolling="no"></layer>
-	</iframe>
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/tocToolbar.jsp b/org.eclipse.help.webapp/basic/tocToolbar.jsp
deleted file mode 100644
index af65696..0000000
--- a/org.eclipse.help.webapp/basic/tocToolbar.jsp
+++ /dev/null
@@ -1,16 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-
-
-<jsp:include page="toolbar.jsp">
-	<jsp:param name="view" value="toc"/>
-</jsp:include>
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/basic/tocView.jsp b/org.eclipse.help.webapp/basic/tocView.jsp
deleted file mode 100644
index caa2dd0..0000000
--- a/org.eclipse.help.webapp/basic/tocView.jsp
+++ /dev/null
@@ -1,79 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	TocData data = new TocData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("Content", request)%></title>
-
-<base target="ContentViewFrame">
-</head>
-
-
-<body dir="<%=direction%>" bgcolor="<%=prefs.getBasicViewBackground()%>">
-<table border="0" cellpadding="0" cellspacing="0">
-<%
-	for (int toc=0; toc<data.getTocCount(); toc++) {
-		boolean isSelected =data.getSelectedToc() != -1 &&
-					   data.getTocHref(data.getSelectedToc()).equals(data.getTocHref(toc));
-		//if(!data.isEnabled(toc) && !isSelected){
-			// do not show
-		//	continue;
-		//}
-		String icon = isSelected ?
-						prefs.getImagesDirectory()+"/toc_open.gif" :
-						prefs.getImagesDirectory()+"/toc_closed.gif";
-		String alt = isSelected ?
-						ServletResources.getString("bookOpen", request) :
-						ServletResources.getString("bookClosed", request) ;
-%>
-	<tr>
-		<td align='<%=isRTL?"right":"left"%>' nowrap>
-<%
-		if(isSelected){
-%>
-			<b><img src="<%=icon%>" alt="<%=alt%>"><a href="<%=data.getTocDescriptionTopic(toc)%>" target="ContentViewFrame">&nbsp;<%=data.getTocLabel(toc)%></a></b>
-<%
-		}else{
-%>
-			<b><img src="<%=icon%>" alt="<%=alt%>"><a href="<%="tocView.jsp?toc="+data.getTocHref(toc)%>" target='_self'>&nbsp;<%=data.getTocLabel(toc)%></a></b>
-<%
-		}
-%>
-		</td>
-	</tr>
-<%
-		// Only generate the selected toc
-		if (isSelected) {
-%>		
-	<tr>
-		<td align='<%=isRTL?"right":"left"%>' nowrap>
-			<ul>
-<%
-			data.generateBasicToc(toc, out);
-%>		
-			</ul>
-		</td>
-	</tr>
-<%
-		}
-	}
-%>		
-</table>
-</body>
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/toolbar.jsp b/org.eclipse.help.webapp/basic/toolbar.jsp
deleted file mode 100644
index b05d615..0000000
--- a/org.eclipse.help.webapp/basic/toolbar.jsp
+++ /dev/null
@@ -1,39 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	ToolbarData data = new ToolbarData(application,request, response);
-	WebappPreferences prefs = data.getPrefs();
-%>
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title><%=ServletResources.getString("Toolbar", request)%></title>
-</head>
- 
-<body dir="<%=direction%>" bgcolor="<%=prefs.getBasicToolbarBackground()%>">
-<%
-	String title=data.getTitle();
-	// search view is not called "advanced view"
-	if("search".equals(request.getParameter("view"))){
-		title=ServletResources.getString("Search", request);
-	}
-%>
-	<b>
-	<%=title%>
-	</b>
-
-</body>     
-</html>
-
diff --git a/org.eclipse.help.webapp/basic/view.jsp b/org.eclipse.help.webapp/basic/view.jsp
deleted file mode 100644
index 77562e9..0000000
--- a/org.eclipse.help.webapp/basic/view.jsp
+++ /dev/null
@@ -1,31 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ include file="header.jsp"%>
-<% 
-	LayoutData data = new LayoutData(application,request, response);
-	View view = data.getCurrentView();
-	if (view == null) return;
-%>
-
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=ServletResources.getString(view.getName(), request)%></title>
-</head>
-
-<frameset  rows="30,*" >
-	<frame name="<%=view.getName()%>ToolbarFrame" title="<%=ServletResources.getString(view.getName()+"ViewToolbar", request)%>" src='<%=view.getURL()+view.getName()+"Toolbar.jsp"%>' frameborder="no" marginwidth="5" marginheight="3" scrolling="no">
-	<frame name='<%=view.getName()%>ViewFrame' title="<%=ServletResources.getString(view.getName()+"View", request)%>" src='<%=view.getURL()+view.getName()+"View.jsp?"+request.getQueryString()%>#selectedItem' frameborder="no" marginwidth="5" marginheight="5">
-</frameset>
-
-</html>
-
diff --git a/org.eclipse.help.webapp/build.properties b/org.eclipse.help.webapp/build.properties
deleted file mode 100644
index 57bb0bb..0000000
--- a/org.eclipse.help.webapp/build.properties
+++ /dev/null
@@ -1,37 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-custom=true
-
-# properties for building a plugin; create project source folder - temp.folder/jsp.jar.src source before using pde to generate skeleton script
-source.webapp.jar=src/
-source.WEB-INF/lib/servlets.jar=src_servlets/
-source.WEB-INF/lib/jsp.jar=${temp.folder}/jsp.jar.src/
-src.includes=about.html
-bin.includes=META-INF/,advanced/,basic/,WEB-INF/,*.html,*.jar,*.jsp,plugin.properties,plugin.xml,.options
-bin.excludes=WEB-INF/classes/
-jars.compile.order=webapp.jar,WEB-INF/lib/servlets.jar,WEB-INF/lib/jsp.jar
-jars.extra.classpath=../org.eclipse.osgi/bin,\
-                     ../org.eclipse.osgi,\
-                     ../org.eclipse.osgi/@dot,\
-                     ../org.eclipse.core.runtime/bin,\
-                     ../org.eclipse.core.runtime,\
-                     ../org.eclipse.core.runtime/@dot,\
-                     ../org.eclipse.help/bin,\
-                     ../org.eclipse.help,\
-                     ../org.eclipse.help/@dot,\
-                     ../org.eclipse.help.base/bin,\
-                     ../org.eclipse.help.base,\
-                     ../org.eclipse.help.base/@dot,\
-                     ../org.eclipse.help.appserver/bin,\
-                     ../org.eclipse.help.appserver,\
-                     ../org.eclipse.help.appserver/@dot,\
-                     ../org.eclipse.tomcat/servlet.jar,\
-                     ../org.eclipse.tomcat/jasper-runtime.jar
diff --git a/org.eclipse.help.webapp/build.xml b/org.eclipse.help.webapp/build.xml
deleted file mode 100644
index 6838a5f..0000000
--- a/org.eclipse.help.webapp/build.xml
+++ /dev/null
@@ -1,351 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.help.webapp" default="build.jars" basedir=".">
-
-	<property name="basews" value="${ws}"/>
-	<property name="baseos" value="${os}"/>
-	<property name="basearch" value="${arch}"/>
-	<property name="basenl" value="${nl}"/>
-
-	<!-- Compiler settings. -->
-	<property name="javacFailOnError" value="false"/>
-	<property name="javacDebugInfo" value="on"/>
-	<property name="javacVerbose" value="false"/>
-	<property name="javacSource" value="1.3"/>
-	<property name="javacTarget" value="1.2"/>
-	<property name="compilerArg" value=""/>
-	<property name="logExtension" value=".log"/> 
-
-	<path id="path_bootclasspath">
-		<fileset dir="${java.home}/lib">
-			<include name="*.jar"/>
-		</fileset>
-	</path>
-	<property name="bootclasspath" refid="path_bootclasspath"/>
-	
-	<property name="fragment" value="org.eclipse.help.webapp"/>
-	<property name="version.suffix" value="3.2.0"/>
-	<property name="full.name" value="${fragment}_${version.suffix}"/>
-
-	<target name="init" depends="properties">
-		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
-			<isset property="buildTempFolder"/>
-		</condition>
-		<property name="pluginTemp" value="${basedir}"/>
-		<condition property="build.result.folder" value="${pluginTemp}/org.eclipse.help.webapp">
-			<isset property="buildTempFolder"/>
-		</condition>
-		<property name="build.result.folder" value="${basedir}"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-
-	</target>
-
-	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.help.webapp for an update site.">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<zip destfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false" whenempty="skip" update="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="webapp.jar" depends="init" unless="webapp.jar" description="Create jar: webapp.jar.">
-		<delete dir="${temp.folder}/webapp.jar.bin"/>
-		<mkdir dir="${temp.folder}/webapp.jar.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/webapp.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}"		>
-			<compilerarg line="${compilerArg}"/>
-			<classpath>
-				<pathelement path="../org.eclipse.help.base/bin"/>
-				<pathelement path="../org.eclipse.help.base/@dot"/>
-				<pathelement path="../org.apache.lucene/bin"/>
-				<pathelement path="../org.apache.lucene/lucene-1.4.3.jar"/>
-				<pathelement path="../org.apache.lucene/parser.jar"/>
-				<pathelement path="../org.eclipse.help/bin"/>
-				<pathelement path="../org.eclipse.help/@dot"/>
-				<pathelement path="../org.eclipse.core.runtime"/>
-				<pathelement path="../org.eclipse.core.runtime/@dot"/>
-				<pathelement path="../org.eclipse.equinox.common"/>
-				<pathelement path="../org.eclipse.equinox.common/@dot"/>
-				<pathelement path="../org.eclipse.equinox.preferences"/>
-				<pathelement path="../org.eclipse.equinox.preferences/@dot"/>	
-				<pathelement path="../org.eclipse.osgi"/>
-				<pathelement path="../org.eclipse.osgi/@dot"/>
-				<pathelement path="../org.eclipse.help.appserver/bin"/>
-				<pathelement path="../org.eclipse.help.appserver/@dot"/>
-				<pathelement path="../org.eclipse.osgi/bin"/>
-				<pathelement path="../org.eclipse.core.runtime/bin"/>
-				<pathelement path="../org.eclipse.help"/>
-				<pathelement path="../org.eclipse.help.base"/>
-				<pathelement path="../org.eclipse.help.appserver"/>
-				<pathelement path="../org.eclipse.tomcat/servlet.jar"/>
-				<pathelement path="../org.eclipse.tomcat/jasper-runtime.jar"/>
-			</classpath>
-			<src path="src/"			/>
-			<compilerarg line="-log ${temp.folder}/webapp.jar.bin${logExtension}" compiler="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
-			</javac>
-		<!-- Copy necessary resources -->
-		<copy todir="${temp.folder}/webapp.jar.bin" failonerror="true">
-			<fileset dir="src/" excludes="**/*.java, **/package.htm*"			/>
-		</copy>
-<!-- custom begin -->
-		<copy file="${temp.folder}/webapp.jar.bin/org/eclipse/help/internal/webapp/WebappResources.properties" tofile="${temp.folder}/webapp.jar.bin/org/eclipse/help/internal/webapp/WebappResources_en.properties" />
-<!-- custom end -->
-		<mkdir dir="${build.result.folder}"/>
-		<jar destfile="${build.result.folder}/webapp.jar" basedir="${temp.folder}/webapp.jar.bin"/>
-		<delete dir="${temp.folder}/webapp.jar.bin"/>
-	</target>
-
-	<target name="webappsrc.zip" depends="init" unless="webappsrc.zip">
-		<mkdir dir="${build.result.folder}"/>
-		<zip destfile="${build.result.folder}/webappsrc.zip" filesonly="false" whenempty="skip" update="false">
-			<fileset dir="src/" includes="**/*.java"			/>
-		</zip>
-	</target>
-
-	<target name="WEB-INF/lib/servlets.jar" depends="init" unless="WEB-INF/lib/servlets.jar" description="Create jar: WEB-INF/lib/servlets.jar.">
-		<delete dir="${temp.folder}/WEB-INF/lib/servlets.jar.bin"/>
-		<mkdir dir="${temp.folder}/WEB-INF/lib/servlets.jar.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/WEB-INF/lib/servlets.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}"		>
-			<compilerarg line="${compilerArg}"/>
-			<classpath>
-				<pathelement path="../org.eclipse.help.base/bin"/>
-				<pathelement path="../org.eclipse.help.base/@dot"/>
-				<pathelement path="../org.apache.lucene/bin"/>
-				<pathelement path="../org.apache.lucene/lucene-1.4.3.jar"/>
-				<pathelement path="../org.apache.lucene/parser.jar"/>
-				<pathelement path="../org.eclipse.help/bin"/>
-				<pathelement path="../org.eclipse.help/@dot"/>
-				<pathelement path="../org.eclipse.core.runtime"/>
-				<pathelement path="../org.eclipse.core.runtime/@dot"/>
-				<pathelement path="../org.eclipse.equinox.common"/>
-				<pathelement path="../org.eclipse.equinox.common/@dot"/>
-				<pathelement path="../org.eclipse.equinox.preferences"/>
-				<pathelement path="../org.eclipse.equinox.preferences/@dot"/>	
-				<pathelement path="../org.eclipse.osgi"/>
-				<pathelement path="../org.eclipse.osgi/@dot"/>
-				<pathelement path="../org.eclipse.help.appserver/bin"/>
-				<pathelement path="../org.eclipse.help.appserver/@dot"/>
-				<pathelement path="${build.result.folder}/bin"/>
-				<pathelement path="${build.result.folder}/WEB-INF/classes"/>
-				<pathelement path="${build.result.folder}/webapp.jar"/>
-				<pathelement path="../org.eclipse.osgi/bin"/>
-				<pathelement path="../org.eclipse.core.runtime/bin"/>
-				<pathelement path="../org.eclipse.help"/>
-				<pathelement path="../org.eclipse.help.base"/>
-				<pathelement path="../org.eclipse.help.appserver"/>
-				<pathelement path="../org.eclipse.tomcat/servlet.jar"/>
-				<pathelement path="../org.eclipse.tomcat/jasper-runtime.jar"/>
-			</classpath>
-			<src path="src_servlets/"			/>
-			<compilerarg line="-log ${temp.folder}/WEB-INF/lib/servlets.jar.bin${logExtension}" compiler="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
-			</javac>
-		<!-- Copy necessary resources -->
-		<copy todir="${temp.folder}/WEB-INF/lib/servlets.jar.bin" failonerror="true">
-			<fileset dir="src_servlets/" excludes="**/*.java, **/package.htm*"			/>
-		</copy>
-		<mkdir dir="${build.result.folder}/WEB-INF/lib"/>
-		<jar destfile="${build.result.folder}/WEB-INF/lib/servlets.jar" basedir="${temp.folder}/WEB-INF/lib/servlets.jar.bin"/>
-		<delete dir="${temp.folder}/WEB-INF/lib/servlets.jar.bin"/>
-	</target>
-
-	<target name="WEB-INF/lib/servletssrc.zip" depends="init" unless="WEB-INF/lib/servletssrc.zip">
-		<mkdir dir="${build.result.folder}/WEB-INF/lib"/>
-		<zip destfile="${build.result.folder}/WEB-INF/lib/servletssrc.zip" filesonly="false" whenempty="skip" update="false">
-			<fileset dir="src_servlets/" includes="**/*.java"			/>
-		</zip>
-	</target>
-
-	<target name="WEB-INF/lib/jsp.jar" depends="init" unless="WEB-INF/lib/jsp.jar" description="Create jar: WEB-INF/lib/jsp.jar.">
-		<delete dir="${temp.folder}/WEB-INF/lib/jsp.jar.bin"/>
-		<mkdir dir="${temp.folder}/WEB-INF/lib/jsp.jar.bin"/>
-<!-- custom begin -->
-		<!-- generate java code from JSPs -->
-		<path id="jasper.classpath" > 
-			<pathelement location="../org.apache.ant/lib/ant.jar"/>
-			<pathelement location="../org.apache.ant/lib/optional.jar"/>
-			<pathelement location="../org.eclipse.tomcat/jasper-compiler.jar" />
-			<pathelement location="../org.eclipse.tomcat/jasper-runtime.jar" />
-			<pathelement location="../org.eclipse.tomcat/servlet.jar" />
-			<pathelement location="../org.eclipse.tomcat/tomcat_util.jar" />  
-		</path>
-		<delete dir="${temp.folder}/jsp.jar.src"/>
-  		<mkdir dir="${temp.folder}/jsp.jar.src"/>
-		<java
-			classname="org.apache.jasper.JspC"
-			fork="true"
-			failonerror="false"
-			classpathref="jasper.classpath"
-			output="${temp.folder}/WEB-INF/lib/jsp.jar.bin${logExtension}">
-			<arg value="-v3" />
-			<arg value="-d" /><arg value="${temp.folder}/jsp.jar.src" />
-			<arg value="-die" />
-			<arg value="-p" /><arg value="org.eclipse.help.internal.webapp.jsp"/>
-			<arg value="-webinc" /><arg value="${temp.folder}/jsp.jar.src/web.xml.fragment" />
-			<arg value="-webapp" /><arg value="${basedir}" />
-		</java>
-<!-- custom end -->	
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/WEB-INF/lib/jsp.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}"		>
-			<compilerarg line="${compilerArg}"/>
-			<classpath>
-				<pathelement path="../org.eclipse.help.base/bin"/>
-				<pathelement path="../org.eclipse.help.base/@dot"/>
-				<pathelement path="../org.apache.lucene/bin"/>
-				<pathelement path="../org.apache.lucene/lucene-1.4.3.jar"/>
-				<pathelement path="../org.apache.lucene/parser.jar"/>
-				<pathelement path="../org.eclipse.help/bin"/>
-				<pathelement path="../org.eclipse.help/@dot"/>
-				<pathelement path="../org.eclipse.core.runtime"/>
-				<pathelement path="../org.eclipse.core.runtime/@dot"/>
-				<pathelement path="../org.eclipse.equinox.common"/>
-				<pathelement path="../org.eclipse.equinox.common/@dot"/>
-				<pathelement path="../org.eclipse.equinox.preferences"/>
-				<pathelement path="../org.eclipse.equinox.preferences/@dot"/>	
-				<pathelement path="../org.eclipse.osgi"/>
-				<pathelement path="../org.eclipse.osgi/@dot"/>
-				<pathelement path="../org.eclipse.help.appserver/bin"/>
-				<pathelement path="../org.eclipse.help.appserver/@dot"/>
-				<pathelement path="${build.result.folder}/bin"/>
-				<pathelement path="${build.result.folder}/WEB-INF/classes"/>
-				<pathelement path="${build.result.folder}/webapp.jar"/>
-				<pathelement path="${build.result.folder}/WEB-INF/lib/servlets.jar"/>
-				<pathelement path="../org.eclipse.osgi/bin"/>
-				<pathelement path="../org.eclipse.core.runtime/bin"/>
-				<pathelement path="../org.eclipse.help"/>
-				<pathelement path="../org.eclipse.help.base"/>
-				<pathelement path="../org.eclipse.help.appserver"/>
-				<pathelement path="../org.eclipse.tomcat/servlet.jar"/>
-				<pathelement path="../org.eclipse.tomcat/jasper-runtime.jar"/>
-			</classpath>
-			<src path="${temp.folder}/jsp.jar.src/"			/>
-			<compilerarg line="-log ${temp.folder}/WEB-INF/lib/jsp.jar.bin${logExtension}" compiler="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
-<!-- custom begin -->
-			<compilerarg value="-warn:-serial" />
-<!-- custom end -->	
-			</javac>
-		<!-- Copy necessary resources -->
-		<copy todir="${temp.folder}/WEB-INF/lib/jsp.jar.bin" failonerror="true">
-			<fileset dir="${temp.folder}/jsp.jar.src/" excludes="**/*.java, **/package.htm*"			/>
-		</copy>
-		<mkdir dir="${build.result.folder}/WEB-INF/lib"/>
-		<jar destfile="${build.result.folder}/WEB-INF/lib/jsp.jar" basedir="${temp.folder}/WEB-INF/lib/jsp.jar.bin"/>
-		<delete dir="${temp.folder}/WEB-INF/lib/jsp.jar.bin"/>
-	</target>
-
-	<target name="WEB-INF/lib/jspsrc.zip" depends="init" unless="WEB-INF/lib/jspsrc.zip">
-		<mkdir dir="${build.result.folder}/WEB-INF/lib"/>
-	</target>
-
-	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.help.webapp.">
-		<available property="webapp.jar" file="${build.result.folder}/webapp.jar"/>
-		<antcall target="webapp.jar"/>
-		<available property="WEB-INF/lib/servlets.jar" file="${build.result.folder}/WEB-INF/lib/servlets.jar"/>
-		<antcall target="WEB-INF/lib/servlets.jar"/>
-		<available property="WEB-INF/lib/jsp.jar" file="${build.result.folder}/WEB-INF/lib/jsp.jar"/>
-		<antcall target="WEB-INF/lib/jsp.jar"/>
-	</target>
-
-	<target name="build.sources" depends="init">
-		<available property="webappsrc.zip" file="${build.result.folder}/webappsrc.zip"/>
-		<antcall target="webappsrc.zip"/>
-		<available property="WEB-INF/lib/servletssrc.zip" file="${build.result.folder}/WEB-INF/lib/servletssrc.zip"/>
-		<antcall target="WEB-INF/lib/servletssrc.zip"/>
-<!-- custom begin -->
-<!--
-		<available property="WEB-INF/lib/jspsrc.zip" file="${build.result.folder}/WEB-INF/lib/jspsrc.zip"/>
-		<antcall target="WEB-INF/lib/jspsrc.zip"/>
--->
-<!-- custom end -->
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<copy todir="${destination.temp.folder}/${full.name}" failonerror="true">
-			<fileset dir="${build.result.folder}" includes="webapp.jar,WEB-INF/lib/servlets.jar,WEB-INF/lib/jsp.jar" excludes="WEB-INF/classes/"			/>
-		</copy>
-		<copy todir="${destination.temp.folder}/${full.name}" failonerror="true">
-			<fileset dir="${basedir}" includes="META-INF/,advanced/,basic/,WEB-INF/,*.html,*.jar,*.jsp,plugin.properties,plugin.xml,.options" excludes="WEB-INF/classes/"			/>
-		</copy>
-<!-- custom begin -->
-		<loadfile
-			property="web.xml.fragment"
-			srcFile="${temp.folder}/jsp.jar.src/web.xml.fragment"/>
-		<replace
-			file="${destination.temp.folder}/${full.name}/WEB-INF/web.xml"
-			token="&lt;!-- placeholder for JSPs web.xml --&gt;"
-			value="${web.xml.fragment}"
-			encoding="ISO-8859-1" />
-		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}"/>
-<!-- custom end -->
-	</target>
-
-	<target name="build.zips" depends="init">
-	</target>
-
-	<target name="gather.sources" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/${full.name}/WEB-INF/lib"/>
-		<copy file="${build.result.folder}/WEB-INF/lib/servletssrc.zip" todir="${destination.temp.folder}/${full.name}/WEB-INF/lib" failonerror="false"/>
-<!-- custom begin -->
-<!--
-		<copy file="${build.result.folder}/WEB-INF/lib/jspsrc.zip" todir="${destination.temp.folder}/${full.name}/WEB-INF/lib" failonerror="false"/>
--->
-<!-- custom end -->
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<copy file="${build.result.folder}/webappsrc.zip" todir="${destination.temp.folder}/${full.name}" failonerror="false"/>
-		<copy todir="${destination.temp.folder}/${full.name}" failonerror="false">
-			<fileset dir="${basedir}" includes="about.html"			/>
-		</copy>
-	</target>
-
-	<target name="gather.logs" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/${full.name}/WEB-INF/lib"/>
-		<copy file="${temp.folder}/WEB-INF/lib/servlets.jar.bin${logExtension}" todir="${destination.temp.folder}/${full.name}/WEB-INF/lib" failonerror="false"/>
-		<copy file="${temp.folder}/WEB-INF/lib/jsp.jar.bin${logExtension}" todir="${destination.temp.folder}/${full.name}/WEB-INF/lib" failonerror="false"/>
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<copy file="${temp.folder}/webapp.jar.bin${logExtension}" todir="${destination.temp.folder}/${full.name}" failonerror="false"/>
-	</target>
-
-	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.help.webapp of all the zips, jars and logs created.">
-		<delete file="${build.result.folder}/WEB-INF/lib/servlets.jar"/>
-		<delete file="${build.result.folder}/WEB-INF/lib/servletssrc.zip"/>
-		<delete file="${build.result.folder}/WEB-INF/lib/jsp.jar"/>
-		<delete file="${build.result.folder}/WEB-INF/lib/jspsrc.zip"/>
-		<delete file="${build.result.folder}/webapp.jar"/>
-		<delete file="${build.result.folder}/webappsrc.zip"/>
-		<delete file="${plugin.destination}/${full.name}.jar"/>
-		<delete file="${plugin.destination}/${full.name}.zip"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
-		<eclipse.convertPath fileSystemPath="d:/runtime-workspacePDE/org.eclipse.help.webapp" property="resourcePath"/>
-		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
-	</target>
-
-	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.help.webapp.">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="build.sources"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<antcall target="gather.sources">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<delete>
-			<fileset dir="${temp.folder}" includes="**/*.bin${logExtension}"			/>
-		</delete>
-		<zip destfile="${plugin.destination}/${full.name}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-</project>
diff --git a/org.eclipse.help.webapp/index.jsp b/org.eclipse.help.webapp/index.jsp
deleted file mode 100644
index e71d829..0000000
--- a/org.eclipse.help.webapp/index.jsp
+++ /dev/null
@@ -1,41 +0,0 @@
-<%--
- Copyright (c) 2000, 2004 IBM Corporation and others.
- All rights reserved. This program and the accompanying materials 
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
- 
- Contributors:
-     IBM Corporation - initial API and implementation
---%>
-<%@ page import="org.eclipse.help.internal.webapp.data.*" errorPage="/advanced/err.jsp" contentType="text/html; charset=UTF-8"%>
-<%
-	request.setCharacterEncoding("UTF-8");
-
-	if (request.getParameter("noscript") != null) {
-		request.getRequestDispatcher("/basic/index.jsp").forward(request, response);
-		return;
-	}
-
-	RequestData data = new RequestData(application,request, response);
-	if(data.isBot()){
-		TocData tData = new TocData(application,request, response);
-		LayoutData lData = new LayoutData(application,request, response);
-%>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title><%=lData.getWindowTitle()%></title>
-</head>
-<body>
-<% tData.generateLinks(out); %>
-</body>
-</html>	
-<%
-	}else if(data.isAdvancedUI()){
-		request.getRequestDispatcher("/advanced/index.jsp").forward(request, response);
-	}else{
-		request.getRequestDispatcher("/basic/index.jsp").forward(request, response);
-	}
-%>
diff --git a/org.eclipse.help.webapp/plugin.properties b/org.eclipse.help.webapp/plugin.properties
deleted file mode 100644
index 524ea6b..0000000
--- a/org.eclipse.help.webapp/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-help_webapp_plugin_name = Help System Webapp
-providerName=Eclipse.org
-
-
diff --git a/org.eclipse.help.webapp/plugin.xml b/org.eclipse.help.webapp/plugin.xml
deleted file mode 100644
index 41fd612..0000000
--- a/org.eclipse.help.webapp/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.help.base.webapp">
-      <webapp
-            default="true">
-      </webapp>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/HelpWebappPlugin.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/HelpWebappPlugin.java
deleted file mode 100644
index 8812a95..0000000
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/HelpWebappPlugin.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp;
-
-import org.eclipse.core.runtime.*;
-import org.osgi.framework.*;
-
-/**
- * Welp web application plug-in.
- */
-public class HelpWebappPlugin extends Plugin {
-	public final static String PLUGIN_ID = "org.eclipse.help.webapp"; //$NON-NLS-1$
-
-	// debug options
-	public static boolean DEBUG = false;
-
-	public static boolean DEBUG_WORKINGSETS = false;
-
-	protected static HelpWebappPlugin plugin;
-
-	//private static BundleContext bundleContext;
-
-	/**
-	 * Logs an Error message with an exception.
-	 */
-	public static synchronized void logError(String message, Throwable ex) {
-		if (message == null)
-			message = ""; //$NON-NLS-1$
-		Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK,
-				message, ex);
-		HelpWebappPlugin.getDefault().getLog().log(errorStatus);
-	}
-
-	/**
-	 * Logs a Warning message with an exception. Note that the message should
-	 * already be localized to proper locale. ie: WebappResources.getString()
-	 * should already have been called
-	 */
-	public static synchronized void logWarning(String message) {
-		if (HelpWebappPlugin.DEBUG) {
-			if (message == null)
-				message = ""; //$NON-NLS-1$
-			Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID,
-					IStatus.OK, message, null);
-			HelpWebappPlugin.getDefault().getLog().log(warningStatus);
-		}
-	}
-
-	/**
-	 * @return the singleton instance of the help webapp plugin
-	 */
-	public static HelpWebappPlugin getDefault() {
-		return plugin;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-		//bundleContext = context;
-		// Setup debugging options
-		// Setup debugging options
-		DEBUG = isDebugging();
-		if (DEBUG) {
-			DEBUG_WORKINGSETS = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.help.webapp/debug/workingsets")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		//bundleContext = null;
-		super.stop(context);
-	}
-}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java
deleted file mode 100644
index 96d2fc8..0000000
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp;
-
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Uses a resource bundle to load images and strings from a property file in a
- * documentation plugin
- */
-public class WebappResources {
-
-	// resource bundles indexed by locale
-	private static HashMap resourceBundleTable = new HashMap();
-
-	/**
-	 * Returns a string from a property file. It uses 'name' as a the key to
-	 * retrieve from the webapp.properties file.
-	 */
-	public static String getString(String name, Locale locale) {
-
-		// get bundle
-		ResourceBundle bundle = getBundle(locale);
-		if (bundle == null) {
-			return name;
-		}
-
-		// get value
-		try {
-			return bundle.getString(name);
-		} catch (MissingResourceException mre) {
-			return name;
-		}
-	}
-
-	/**
-	 * Returns a string from a property file
-	 */
-	public static String getString(String name, Locale locale, String replace0) {
-
-		// get bundle
-		ResourceBundle bundle = getBundle(locale);
-		if (bundle == null) {
-			return name;
-		}
-
-		// get value
-		try {
-			String stringFromPropertiesFile = bundle.getString(name);
-			stringFromPropertiesFile = MessageFormat.format(
-					stringFromPropertiesFile, new Object[]{replace0});
-			return stringFromPropertiesFile;
-		} catch (Exception e) {
-			return name;
-		}
-
-	}
-	/**
-	 * Obtains resource bundle for specified locale. Loads bundle if necessary
-	 * 
-	 * @param locale
-	 *            Locale or null to use default locale
-	 * @return ResourceBundle or null if not found
-	 */
-	private static ResourceBundle getBundle(Locale locale) {
-		if (locale == null)
-			locale = getDefaultLocale();
-
-		// check cache
-		ResourceBundle bundle = (ResourceBundle) resourceBundleTable
-				.get(locale);
-
-		// load bundle
-		if (bundle == null) {
-			bundle = ResourceBundle.getBundle(WebappResources.class.getName(),
-					locale);
-			if (bundle != null) {
-				resourceBundleTable.put(locale, bundle);
-			}
-		}
-		return bundle;
-	}
-	private static Locale getDefaultLocale() {
-		String nl = Platform.getNL();
-		// sanity test
-		if (nl == null)
-			return Locale.getDefault();
-
-		// break the string into tokens to get the Locale object
-		StringTokenizer locales = new StringTokenizer(nl, "_"); //$NON-NLS-1$
-		if (locales.countTokens() == 1)
-			return new Locale(locales.nextToken(), ""); //$NON-NLS-1$
-		else if (locales.countTokens() == 2)
-			return new Locale(locales.nextToken(), locales.nextToken());
-		else if (locales.countTokens() == 3)
-			return new Locale(locales.nextToken(), locales.nextToken(), locales
-					.nextToken());
-		else
-			return Locale.getDefault();
-	}
-}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties
deleted file mode 100644
index 6230300..0000000
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties
+++ /dev/null
@@ -1,133 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-browserTitle = Help - {0}
-Search=&Search
-SearchResults=Search Results
-Content=Contents
-Links=Links
-Bookshelf=Table of Contents
-show_all=Show All Topics
-Toggle=Toggle Navigation
-Synch=Show in Table of Contents
-SynchNav=Refresh / Show Current Topic
-shortSynch=Sync
-Print=Print Page
-Close=Close
-Nothing_found=Nothing found.
-Indexing=Indexing...
-complete=complete
-GO=GO
-pressF1=In the workbench, you can get context-sensitive help (called infopops) for a widget by putting focus on it and pressing F1. If you click one of the infopop's links, it will bring you here, and show you all the links to related topics.
-doSearch=To search the documentation, type a query in the Search field. The search results will be shown in this view.
-Advanced=Advanced Search
-SearchExpression=Search Expression
-PotentialHit={0} (potential hit)
-expression_label = * = any string, ? = any character, "" = phrase, AND, OR, NOT = boolean operators 
-Cancel=Cancel
-Select=Select a set of books to be searched:
-Toolbar=Toolbar
-Tabs=Tabs
-Banner=Banner
-CannotSync=The current document displayed does not exist in the table of contents.
-JavaScript_disabled=This page requires JavaScript.  You need to enable JavaScript in your web browser, restart the browser, and return to this page.
-back_tip = Go Back
-forward_tip = Go Forward
-noTopic=The topic that you have requested is not available. The link may be wrong, or you may not have the corresponding product feature installed. This online help only includes documentation for features that are installed.
-IndexingPleaseWait=Please wait while the online information is indexed. This will happen only once.
-Bookmarks = Bookmarks
-BookmarkPage = Bookmark Document
-RemoveBookmark = Delete
-RemoveAllBookmarks = Delete All
-deleteBookmark = Delete Selected Bookmark
-deleteAllBookmarks = Delete All Bookmarks
-confirmDeleteAllBookmarks = All bookmarks will be deleted.  Proceed?
-addBookmark=There are currently no bookmarks. To add one, press the bookmark icon on the main toolbar while browsing a topic.
-Help=Help
-
-searchTooComplex=Search request too complex.
-disabledResults=Results from Disabled Capabilities 
-
-# View names
-toc=Contents
-index=Index
-links=Links
-search=Search Results
-bookmarks=Bookmarks
-
-Views=Navigation Views
-noLiveHelp=Active help is not enabled in your installation.
-noLiveHelpInInfocenter=You must run help locally to perform "active help" actions.
-cookieSaveFailed=Saving search scope failed.  Please reduce search scope definitions.
-CookieUtil.tooManyCookiesNeeded=Too may cookies required to store data.
-
-All=All topics
-selectAll=Search &all topics
-selectWorkingSet=Search only the following &topics
-SelectWorkingSet=Select Search Scope
-NewWorkingSetButton=&New
-EditWorkingSetButton=&Edit
-RemoveWorkingSetButton=&Remove
-OK=OK
-NewWorkingSet=New Search List
-EditWorkingSet=Edit Search List
-WorkingSetName=List &name
-WorkingSetContent=Topics to search
-Scope=Search scope
-ScopeTooltip=Select Search Scope
-
-#Confirm Show All Topics dialog
-confirmShowAllTitle=Confirm
-confirmShowAllQuestion=This action will reveal all topics in the table of contents.
-confirmShowAllExplanation=When you choose to show all topics in the table of contents, the headings for documentation about any disabled capabilities are also shown in the table of contents and search results.  This documentation may refer to user interface elements that are not visible.  To manually enable capabilities, use the "Capabilities" preference page.<br><br>Proceed?
-yes=Yes
-no=No
-askShowAllQuestion=The topic displayed is not found in the table of contents.<BR>Do you want table of contents to show all topics?
-askShowAllExplanation=Table of contents contains topics from enabled capabilities, and the topics you are trying to view does not exist in this set.  The set can be expanded to see all topics.  You can manually show all topics by selecting "Show All Topics" button in the toolbar at anytime.
-dontask=Do &not warn me again
-
-# Frame Titles 
-ignore=Layout frame: {0}
-helpToolbarFrame=Main Help Toolbar
-TabsFrame=Selection of Navigation Views
-topicView=Topic View
-topicViewToolbar=Topic View Toolbar
-tocView=Contents View
-tocViewToolbar=Contents View Toolbar
-linksView=Links View
-linksViewToolbar=Links View Toolbar
-searchView=Search Results View
-searchViewToolbar=Search Results View Toolbar
-bookmarksView=Bookmarks View
-bookmarksViewToolbar=Bookmarks View Toolbar
-
-# Alt text
-bookClosed=Book closed
-bookOpen=Book open
-topicClosed=Topic closed
-topicOpen=Topic open
-maximize=Maximize
-restore=Restore
-expandTopicTitles=Expand topics
-collapseTopicTitles=Collapse topics
-
-disabledTopic1 = This topic belongs to a capability that is currently disabled.\n
-disabledTopic2 = It may refer to user interface elements that are not visible.\n
-disabledTopic3 = To manually enable capabilities, use
-disabledTopic4 = Capabilities preference page.
-
-# Titles for Index frames
-IndexViewTitle=Index View
-IndexTypeinTitle=Index Typein
-IndexListTitle=Index List
-
-# Index View text
-IndexTypeinInstructions=Type in the word to find:
-IndexTypeinButton=Display
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ActivitiesData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ActivitiesData.java
deleted file mode 100644
index 6259029..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ActivitiesData.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.base.*;
-/**
- * Helper for pages in navigation frames. Used enabling/disabling activity
- * filtering
- */
-public class ActivitiesData extends RequestData {
-	/**
-	 * Constructs the data for a request.
-	 * 
-	 * @param context
-	 * @param request
-	 */
-	public ActivitiesData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-		String changeShowAll = request.getParameter("showAll"); //$NON-NLS-1$
-		if (changeShowAll != null) {
-			if ("off".equalsIgnoreCase(changeShowAll)) { //$NON-NLS-1$
-				HelpBasePlugin.getActivitySupport().setFilteringEnabled(true);
-			} else if ("on".equalsIgnoreCase(changeShowAll)) { //$NON-NLS-1$
-				HelpBasePlugin.getActivitySupport().setFilteringEnabled(false);
-			} else {
-				// not supported value
-			}
-		} else {
-			// no change to afilter
-		}
-		String confirmShowAll = request.getParameter("showconfirm"); //$NON-NLS-1$
-		if ("false".equalsIgnoreCase(confirmShowAll)) { //$NON-NLS-1$
-			preferences.setDontConfirmShowAll(true);
-		}
-	}
-	/**
-	 * @return Checks if filtering is enabled.
-	 */
-	public boolean isActivityFiltering() {
-		return HelpBasePlugin.getActivitySupport().isFilteringEnabled();
-	}
-	/**
-	 * Gives state of show all topics button
-	 * 
-	 * @return "hidden", "off", or "on"
-	 */
-	public String getButtonState() {
-		if (!HelpBasePlugin.getActivitySupport().isUserCanToggleFiltering())
-			return "hidden"; //$NON-NLS-1$
-		else if (HelpBasePlugin.getActivitySupport().isFilteringEnabled())
-			return "off"; //$NON-NLS-1$
-		else
-			return "on"; //$NON-NLS-1$
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java
deleted file mode 100644
index 368988a..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.*;
-
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.internal.base.*;
-
-/**
- * This class manages bookmarks.
- */
-public class BookmarksData extends RequestData {
-	public final static int NONE = 0;
-	public final static int ADD = 1;
-	public final static int REMOVE = 2;
-	public final static int REMOVE_ALL = 3;
-
-	public BookmarksData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-
-		switch (getOperation()) {
-			case ADD :
-				addBookmark();
-				break;
-			case REMOVE :
-				removeBookmark();
-				break;
-			case REMOVE_ALL :
-				removeAllBookmarks();
-				break;
-			default :
-				break;
-		}
-	}
-
-	public void addBookmark() {
-		String bookmarkURL = request.getParameter("bookmark"); //$NON-NLS-1$
-		if (bookmarkURL != null && bookmarkURL.length() > 0
-				&& !bookmarkURL.equals("about:blank")) { //$NON-NLS-1$
-			String title = request.getParameter("title"); //$NON-NLS-1$
-			if (title == null) {
-				return;
-			}
-			BookmarkManager manager = BaseHelpSystem.getBookmarkManager();
-			manager.addBookmark(bookmarkURL, title);
-		}
-	}
-
-	public void removeBookmark() {
-		String bookmarkURL = request.getParameter("bookmark"); //$NON-NLS-1$
-		if (bookmarkURL != null && bookmarkURL.length() > 0
-				&& !bookmarkURL.equals("about:blank")) { //$NON-NLS-1$
-			String title = request.getParameter("title"); //$NON-NLS-1$
-			if (title == null) {
-				return;
-			}
-			BookmarkManager manager = BaseHelpSystem.getBookmarkManager();
-			manager.removeBookmark(bookmarkURL, title);
-		}
-	}
-
-	public void removeAllBookmarks() {
-		BookmarkManager manager = BaseHelpSystem.getBookmarkManager();
-		manager.removeAllBookmarks();
-	}
-
-	public Topic[] getBookmarks() {
-		// sanity test for infocenter, but this could not work anyway...
-		if (BaseHelpSystem.getMode() != BaseHelpSystem.MODE_INFOCENTER) {
-			BookmarkManager manager = BaseHelpSystem.getBookmarkManager();
-			IHelpResource [] bookmarks = manager.getBookmarks();
-			Topic [] topics = new Topic[bookmarks.length];
-			for (int i=0; i<bookmarks.length; i++) {
-				IHelpResource bookmark = bookmarks[i];
-				topics[i] = new Topic(bookmark.getLabel(), bookmark.getHref());
-			}
-			return topics;
-		}
-		return new Topic[0];
-	}
-
-	private int getOperation() {
-		String op = request.getParameter("operation"); //$NON-NLS-1$
-		if ("add".equals(op)) //$NON-NLS-1$
-			return ADD;
-		else if ("remove".equals(op)) //$NON-NLS-1$
-			return REMOVE;
-		else if ("removeAll".equals(op)) //$NON-NLS-1$
-			return REMOVE_ALL;
-		else
-			return NONE;
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/IndexData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/IndexData.java
deleted file mode 100644
index b70ec00..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/IndexData.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 Intel Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Intel Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.help.IHelpResource;
-import org.eclipse.help.IIndexEntry;
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.index.Index;
-import org.eclipse.help.internal.index.IndexEntry;
-import org.eclipse.help.internal.index.IIndexTopic;
-
-/**
- * Helper class for Index view initialization
- */
-public class IndexData extends ActivitiesData {
-	private Index index;
-
-	// images directory
-	private String imagesDirectory;
-
-	// plus/minus image file name
-	private String plusMinusImage;
-
-	// name of expand/collapse class for IMG, UL tags
-	private String expandedCollapsed;
-
-	// use or not expand/collapse feature
-	private boolean usePlusMinus;
-
-	// expand all by default flag
-	private boolean expandAll;
-
-	// flag right-to-left direction of text
-	private boolean isRTL;
-
-	// global writer for private generate...() methods
-	private Writer out;
-
-	/**
-	 * Constructs the data for the index page.
-	 * @param context
-	 * @param request
-	 */
-	public IndexData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-
-		imagesDirectory = preferences.getImagesDirectory();
-		usePlusMinus = preferences.isIndexPlusMinus();
-		expandAll = preferences.isIndexExpandAll();
-		plusMinusImage = expandAll ? "/minus.gif" : "/plus.gif"; //$NON-NLS-1$ //$NON-NLS-2$
-		expandedCollapsed = expandAll ? "expanded" : "collapsed"; //$NON-NLS-1$ //$NON-NLS-2$
-		isRTL = UrlUtil.isRTL(request, response);
-
-		loadIndex();
-	}
-
-	/**
-	 * Loads help index
-	 */
-	private void loadIndex() {
-		index = extractEnabled(HelpPlugin.getIndexManager().getIndex(getLocale()));
-	}
-
-	/**
-	 * Generates values for array of ids of list items
-	 * avaliable to be navigated through typein feature.
-	 *
-	 * Currently only first level items can be navigated.
-	 *
-	 * @param out
-	 * @throws IOException
-	 */
-	public void generateIds(Writer out) throws IOException {
-		boolean first = true;
-		Iterator iter = index.getEntryMap().values().iterator();
-		while (iter.hasNext()) {
-			IndexEntry entry = (IndexEntry)iter.next();
-			if (entry != null) {
-				if (first) {
-					first = false;
-				} else {
-					out.write(",\n"); //$NON-NLS-1$
-				}
-				out.write("\""); //$NON-NLS-1$
-				out.write(entry.getKeyword());
-				out.write("\""); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Generates the HTML code (a list) for the index.
-	 *
-	 * @param out
-	 * @throws IOException
-	 */
-	public void generateIndex(Writer out) throws IOException {
-		this.out = out;
-
-		Iterator iter = index.getEntryMap().values().iterator();
-		while(iter.hasNext()) {
-			IndexEntry entry = (IndexEntry)iter.next();
-			generateEntry(entry, 0);
-		}
-	}
-
-	/**
-	 * Generates the HTML code for an index entry.
-	 *
-	 * @param entry
-	 * @param level
-	 * @throws IOException
-	 */
-	/*
-	 * For advanced UI:
-	 *   <li>[ plus_image ]<a ...>...</a>
-	 *   [<ul>list of topics</ul>]
-	 *   [<ul>nested entries</ul>]
-	 *   </li>
-	 *
-	 * For basic UI:
-	 *   <li><a ...>...</a>
-	 *   [<ul>
-	 *     list of topics
-	 *     nested entries
-	 *   </ul>]
-	 *   </li>
-	 */
-	private void generateEntry(IndexEntry entry, int level) throws IOException {
-		IHelpResource[] topics = entry.getTopics();
-		IIndexEntry[] subentries = entry.getSubentries();
-		boolean multipleTopics = topics.length > 1;
-		boolean singleTopic = topics.length == 1;
-
-		out.write("<li>"); //$NON-NLS-1$
-		if (usePlusMinus && advancedUI) generatePlusImage(multipleTopics);
-		generateAnchor(singleTopic, entry, level);
-		if (multipleTopics || subentries.length > 0) {
-			if (!advancedUI) {
-				out.write("<ul>\n"); //$NON-NLS-1$
-			}
-			if (multipleTopics) generateTopicList(entry);
-			generateSubentries(entry, level + 1);
-			if (!advancedUI) {
-				out.write("</ul>\n"); //$NON-NLS-1$
-			}
-		}
-		out.write("</li>\n"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Generates the HTML code (a list) for the index.
-	 * Basic UI version.
-	 *
-	 * @param out
-	 * @throws IOException
-	 */
-	public void generateBasicIndex(Writer out) throws IOException {
-		this.out = out;
-
-		Iterator iter = index.getEntryMap().values().iterator();
-		while(iter.hasNext()) {
-			IndexEntry entry = (IndexEntry)iter.next();
-			generateBasicEntry(entry, 0);
-		}
-	}
-
-	/**
-	 * Generates the HTML code for an index entry.
-	 * Basic UI version.
-	 *
-	 * @param entry
-	 * @param level
-	 * @throws IOException
-	 */
-	/*
-	 * <tr><td align={ "left" | "right" } nowrap>
-	 *   <a ...>...</a>
-	 * </td></tr>
-	 * [<tr><td align={ "left" | "right" } nowrap><ul>
-	 *   list of topics
-	 *   nested entries
-	 * </ul></td></tr>]
-	 */
-	private void generateBasicEntry(IndexEntry entry, int level) throws IOException {
-		IHelpResource[] topics = entry.getTopics();
-		IIndexEntry[] subentries = entry.getSubentries();
-		boolean multipleTopics = topics.length > 1;
-		boolean singleTopic = topics.length == 1;
-
-		out.write("<tr><td align=\""); //$NON-NLS-1$
-		out.write(isRTL ? "right" : "left"); //$NON-NLS-1$ //$NON-NLS-2$
-		out.write("\" nowrap>\n"); //$NON-NLS-1$
-		generateAnchor(singleTopic, entry, level);
-		out.write("</td></tr>\n"); //$NON-NLS-1$
-		if (multipleTopics || subentries.length > 0) {
-			out.write("<tr><td align=\""); //$NON-NLS-1$
-			out.write(isRTL ? "right" : "left"); //$NON-NLS-1$ //$NON-NLS-2$
-			out.write("\" nowrap><ul>\n"); //$NON-NLS-1$
-			if (multipleTopics) generateTopicList(entry);
-			generateSubentries(entry, level + 1);
-			out.write("</ul></td></tr>\n"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Generates the HTML code for the plus/minus image.
-	 *
-	 * @param multipleTopics
-	 * @throws IOException
-	 */
-	/*
-	 * <img scr="images/plus.gif" class={ "collapsed" | "expanded" | "h" } alt="...">
-	 */
-	private void generatePlusImage(boolean multipleTopics) throws IOException {
-		out.write("<img src=\""); //$NON-NLS-1$
-		out.write(imagesDirectory);
-		out.write(plusMinusImage);
-		out.write("\" class=\""); //$NON-NLS-1$
-		if (multipleTopics) {
-			out.write(expandedCollapsed);
-		} else {
-			out.write("h"); //$NON-NLS-1$
-		}
-		out.write("\" alt=\""); //$NON-NLS-1$
-		if (multipleTopics) {
-			if (expandAll) {
-				out.write(ServletResources.getString("collapseTopicTitles", request)); //$NON-NLS-1$
-			} else {
-				out.write(ServletResources.getString("expandTopicTitles", request)); //$NON-NLS-1$
-			}
-		}
-		out.write("\">"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Generates the HTML code for an index entry anchor tag.
-	 *
-	 * @param singleTopic
-	 * @param entry
-	 * @param level
-	 * @throws IOException
-	 */
-	/*
-	 * For advanced UI:
-	 *   <a [ id="..." ] [ class="nolink" ] href="...">...</a>
-	 *
-	 * For basic UI:
-	 *   <a href="...">...</a>
-	 */
-	private void generateAnchor(boolean singleTopic, IndexEntry entry, int level) throws IOException {
-		out.write("<a "); //$NON-NLS-1$
-		if (level == 0 && advancedUI) {
-			out.write("id=\""); //$NON-NLS-1$
-			out.write(entry.getKeyword());
-			out.write("\" "); //$NON-NLS-1$
-		}
-		if (singleTopic) {
-			out.write("href=\""); //$NON-NLS-1$
-			out.write(UrlUtil.getHelpURL(((IIndexTopic)entry.getTopicList().get(0)).getHref()));
-			out.write("\">"); //$NON-NLS-1$
-		} else {
-			if (advancedUI) {
-				out.write("class=\"nolink\" "); //$NON-NLS-1$
-			}
-			out.write("href=\"about:blank\">"); //$NON-NLS-1$
-		}
-		out.write(UrlUtil.htmlEncode(entry.getKeyword()));
-		out.write("</a>\n"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Generates the HTML code for a list of topics.
-	 *
-	 * @param entry
-	 * @throws IOException
-	 */
-	/*
-	 * For advanced UI:
-	 *   <ul class={"collapsed" | "expanded"}>
-	 *   <li><img class="h" src="images/plus.gif" alt=""><a href="..."><img src="images/topic.gif" alt="">...</a></li>
-	 *   <li>...
-	 *   </ul>
-	 *
-	 * For basic UI:
-	 *   <li><a href="..."><img src="images/topic.gif" border=0 alt="">...</a></li>
-	 *   <li>...
-	 */
-	private void generateTopicList(IndexEntry entry) throws IOException {
-		List topics = entry.getTopicList();
-		int size = topics.size();
-
-		if (advancedUI) {
-			out.write("\n<ul class=\""); //$NON-NLS-1$
-			out.write(expandedCollapsed);
-			out.write("\">\n"); //$NON-NLS-1$
-		}
-		for (int i = 0; i < size; ++i) {
-			IIndexTopic topic = (IIndexTopic)topics.get(i); 
-
-			out.write("<li>"); //$NON-NLS-1$
-			if (usePlusMinus && advancedUI) {
-				out.write("<img class=\"h\" src=\""); //$NON-NLS-1$
-				out.write(imagesDirectory);
-				out.write(plusMinusImage);
-				out.write("\" alt=\"\">"); //$NON-NLS-1$
-			}
-			out.write("<a href=\""); //$NON-NLS-1$
-			out.write(UrlUtil.getHelpURL(topic.getHref())); 
-			out.write("\"><img src=\""); //$NON-NLS-1$
-			out.write(imagesDirectory);
-			out.write("/topic.gif\" "); //$NON-NLS-1$
-			if (!advancedUI) {
-				out.write("border=0 "); //$NON-NLS-1$
-			}
-			out.write("alt=\"\">"); //$NON-NLS-1$
-			out.write(UrlUtil.htmlEncode(topic.getLabel()));
-			out.write("</a></li>\n"); //$NON-NLS-1$
-		}
-		if (advancedUI) {
-			out.write("</ul>\n"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Generates the HTML for nested index entries.
-	 *
-	 * @param entry
-	 * @param level
-	 * @throws IOException
-	 */
-	/*
-	 * For advanced UI:
-	 *   <ul class="expanded">
-	 *   entries...
-	 *   </ul>
-	 *
-	 * For basic UI:
-	 *   entries...
-	 */
-	private void generateSubentries(IndexEntry entry, int level) throws IOException {
-		Iterator iter = entry.getEntryMap().values().iterator();
-		if (iter.hasNext()) {
-			if (advancedUI) {
-				out.write("<ul class=\"expanded\">\n"); //$NON-NLS-1$
-			}
-			do {
-				IndexEntry childEntry = (IndexEntry)iter.next();
-				generateEntry(childEntry, level);
-			} while (iter.hasNext());
-			if (advancedUI) {
-				out.write("</ul>\n"); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Get index built from the given containing not filtered entries.
-	 * 
-	 * @param index
-	 * @return
-	 */
-	private Index extractEnabled(Index index) {
-		if (!advancedUI) {
-			// activities never filtered for basic browsers
-			return index;
-		}
-		List enabledEntries = new ArrayList();
-		Iterator iter = index.getEntryMap().values().iterator();
-		while (iter.hasNext()) {
-			IndexEntry entry = extractEnabled((IndexEntry)iter.next());
-			if (entry != null)
-				enabledEntries.add(entry);
-		}
-		return new Index(index.getComparator(), enabledEntries);
-	}
-
-	/**
-	 * Get index entry built from the given containing not filtered
-	 * topics and subentries. Returns null if all topics and subentries
-	 * are filtered.
-	 * 
-	 * @param entry
-	 * @return
-	 */
-	private IndexEntry extractEnabled(IndexEntry entry) {
-		List enabledTopics = new ArrayList();
-		List enabledSubentries = new ArrayList();
-
-		List topics = entry.getTopicList();
-		if (topics != null) {
-			Iterator iter = topics.iterator();
-			while (iter.hasNext()) {
-				IIndexTopic topic = (IIndexTopic)iter.next(); 
-				if (isEnabled(topic)) {
-					enabledTopics.add(topic);
-				}
-			}
-		}
-
-		Map subentries = entry.getEntryMap();
-		if (subentries != null) {
-			Iterator iter = subentries.values().iterator();
-			while (iter.hasNext()) {
-				IndexEntry subentry = extractEnabled((IndexEntry)iter.next()); 
-				if (subentry != null) {
-					enabledSubentries.add(subentry);
-				}
-			}
-		}
-
-		if (enabledTopics.isEmpty() && enabledSubentries.isEmpty())
-			return null;
-
-		return new IndexEntry(entry.getComparator(), entry.getKeyword(),
-				enabledTopics, enabledSubentries);
-	}
-
-	/**
-	 * Checks if topic matches an enabled activity.
-	 * 
-	 * @param topic
-	 * @return
-	 */
-	private boolean isEnabled(IIndexTopic topic) {
-		return HelpBasePlugin.getActivitySupport().isEnabled(topic.getHref());
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LayoutData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LayoutData.java
deleted file mode 100644
index d3676c1..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LayoutData.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import java.util.ArrayList;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.internal.base.*;
-
-public class LayoutData extends RequestData {
-
-	private String query = ""; //$NON-NLS-1$
-	private View[] views;
-
-	public LayoutData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-
-		// initialize the query string
-		String qs = request.getQueryString();
-		if (qs != null && qs.length() > 0)
-			query = "?" + qs; //$NON-NLS-1$
-	}
-
-	public String getQuery() {
-		return query;
-	}
-
-	public String getBannerURL() {
-		String banner = preferences.getBanner();
-		if (banner == null || banner.trim().length() == 0) {
-			banner = "about:blank"; //$NON-NLS-1$
-		} else if (banner.startsWith("http:/") || banner.startsWith("https:/")) { //$NON-NLS-1$ //$NON-NLS-2$
-		} else if (banner.startsWith("file:/") || banner.startsWith("jar:file:/")) { //$NON-NLS-1$ //$NON-NLS-2$
-			banner = "topic/" + banner; //$NON-NLS-1$
-		} else {
-			banner = "topic" + banner; //$NON-NLS-1$
-		}
-		return banner;
-	}
-
-	public String getBannerHeight() {
-		String height = preferences.getBannerHeight();
-		if (height == null || height.length() == 0) {
-			height = "0"; //$NON-NLS-1$
-		}
-		return height;
-	}
-
-	public String getContentURL() {
-		TocData tocData = new TocData(context, request, response);
-		String topic = tocData.getSelectedTopic();
-		String help_home = preferences.getHelpHome();
-
-		if (topic != null)
-			help_home = topic;
-		else
-			help_home = UrlUtil.getHelpURL(help_home);
-
-		return help_home;
-	}
-
-	/**
-	 * Return array of length 0 if no views
-	 */
-	public View[] getViews() {
-		if (views != null)
-			return views;
-
-		View tocview = new View("toc", //$NON-NLS-1$
-				"", //$NON-NLS-1$
-				preferences.getImagesDirectory() + "/contents_view.gif", 'C'); //$NON-NLS-1$
-		View indexview = null;
-		View searchview = new View("search", //$NON-NLS-1$
-				"", //$NON-NLS-1$
-				preferences.getImagesDirectory() + "/search_results_view.gif", 'R'); //$NON-NLS-1$
-		View linksview = null;
-		View bookmarksview = null;
-
-		if (preferences.isIndexView() && HelpPlugin.getIndexManager().getIndex(getLocale()).getEntryMap().size() > 0)
-			indexview = new View("index", //$NON-NLS-1$
-					"", //$NON-NLS-1$
-					preferences.getImagesDirectory() + "/index_view.gif", 'I'); //$NON-NLS-1$
-		if (preferences.isLinksView())
-			linksview = new View("links", //$NON-NLS-1$
-					"", //$NON-NLS-1$
-					preferences.getImagesDirectory() + "/links_view.gif", (char)0); //$NON-NLS-1$
-		if (preferences.isBookmarksView())
-			bookmarksview = new View("bookmarks", //$NON-NLS-1$
-					"", //$NON-NLS-1$
-					preferences.getImagesDirectory() + "/bookmarks_view.gif", (char)0); //$NON-NLS-1$
-
-		ArrayList viewList = new ArrayList();
-		viewList.add(tocview);
-		if (indexview != null) {
-			viewList.add(indexview);
-		}
-		viewList.add(searchview);
-		if (linksview != null) {
-			viewList.add(linksview);
-		}
-		if (bookmarksview !=null) {
-			viewList.add(bookmarksview);
-		}
-		
-		views = (View[]) viewList.toArray(new View[viewList.size()]);
-		return views;
-	}
-
-	public String getVisibleView() {
-		String requestedView = request.getParameter("tab"); //$NON-NLS-1$
-		View[] allViews = getViews();
-		for (int i = 0; i < allViews.length; i++) {
-			if (allViews[i].getName().equals(requestedView)) {
-				return requestedView;
-			}
-		}
-		return "toc"; //$NON-NLS-1$
-	}
-
-	public View getCurrentView() {
-		String name = request.getParameter("view"); //$NON-NLS-1$
-		views = getViews();
-		for (int i = 0; i < views.length; i++)
-			if (views[i].getName().equals(name))
-				return views[i];
-		return null;
-	}
-	public String getWindowTitle() {
-		if (preferences.isWindowTitlePrefix()) {
-			return ServletResources.getString("browserTitle", //$NON-NLS-1$
-					BaseHelpSystem.getProductName(), request);
-		}
-		return BaseHelpSystem.getProductName();
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LinksData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LinksData.java
deleted file mode 100644
index 76893fb..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/LinksData.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.*;
-import org.eclipse.help.internal.*;
-
-/**
- * Helper class for linksView.jsp initialization
- */
-public class LinksData extends RequestData {
-
-	// Request parameters
-	private String topicHref;
-	private String selectedTopicId = ""; //$NON-NLS-1$
-
-	// list of related links
-	private IHelpResource[] links;
-
-	/**
-	 * Constructs data for the links page.
-	 * 
-	 * @param context
-	 * @param request
-	 */
-	public LinksData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-		this.topicHref = request.getParameter("topic"); //$NON-NLS-1$
-		if (topicHref != null && topicHref.length() == 0)
-			topicHref = null;
-
-		if (isLinksRequest())
-			loadLinks();
-	}
-
-	/**
-	 * Returns true when there is a search request
-	 * 
-	 * @return boolean
-	 */
-	public boolean isLinksRequest() {
-		return (request.getParameter("contextId") != null); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the number of links
-	 * 
-	 * @return int
-	 */
-	public int getLinksCount() {
-		return links.length;
-	}
-
-	public String getSelectedTopicId() {
-		return selectedTopicId;
-	}
-
-	public String getTopicHref(int i) {
-		return UrlUtil.getHelpURL(links[i].getHref());
-	}
-
-	public String getTopicLabel(int i) {
-		return UrlUtil.htmlEncode(links[i].getLabel());
-	}
-
-	public String getTopicTocLabel(int i) {
-		IToc toc = findTocForTopic(links[i].getHref());
-		if (toc != null)
-			return UrlUtil.htmlEncode(toc.getLabel());
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Finds a topic in a toc or within a scope if specified
-	 */
-	private IToc findTocForTopic(String href) {
-		IToc[] tocs = HelpPlugin.getTocManager().getTocs(getLocale());
-		for (int i = 0; i < tocs.length; i++) {
-			ITopic topic = tocs[i].getTopic(href);
-			if (topic != null)
-				return tocs[i];
-		}
-		return null;
-	}
-
-	private void loadLinks() {
-
-		String contextId = request.getParameter("contextId"); //$NON-NLS-1$
-		IContext context = HelpSystem.getContext(contextId);
-		if (context == null) {
-			links = new IHelpResource[0];
-			return;
-		}
-		links = context.getRelatedTopics();
-		if (links == null) {
-			links = new IHelpResource[0];
-			return;
-		}
-
-		for (int i = 0; i < links.length; i++) {
-			// the following assume topic numbering as in linksView.jsp
-			if (links[i].getHref().equals(topicHref)) {
-				selectedTopicId = "a" + i; //$NON-NLS-1$
-				break;
-			}
-		}
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java
deleted file mode 100644
index becec2c..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.base.*;
-
-/**
- * Helper class for contents.jsp initialization
- */
-public class RequestData {
-	public final static int MODE_WORKBENCH = BaseHelpSystem.MODE_WORKBENCH;
-	public final static int MODE_INFOCENTER = BaseHelpSystem.MODE_INFOCENTER;
-	public final static int MODE_STANDALONE = BaseHelpSystem.MODE_STANDALONE;
-
-	protected ServletContext context;
-	protected HttpServletRequest request;
-	protected HttpServletResponse response;
-	protected String locale;
-	protected WebappPreferences preferences;
-	protected boolean advancedUI;
-	/**
-	 * Constructs the data for a request.
-	 * 
-	 * @param context
-	 * @param request
-	 */
-	public RequestData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		this.context = context;
-		this.request = request;
-		this.response = response;
-		preferences = new WebappPreferences();
-
-		locale = UrlUtil.getLocale(request, response);
-		advancedUI = (isIE() && "5.5".compareTo(getIEVersion()) <= 0) //$NON-NLS-1$
-				|| (isMozilla() && isGecko())
-				|| (isSafari() && "120".compareTo(getSafariVersion()) <= 0); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the preferences object
-	 */
-	public WebappPreferences getPrefs() {
-		return preferences;
-	}
-
-	public boolean isBot() {
-		return UrlUtil.isBot(request);
-	}
-
-	public boolean isGecko() {
-		return UrlUtil.isGecko(request);
-	}
-
-	public boolean isIE() {
-		return UrlUtil.isIE(request);
-	}
-
-	public String getIEVersion() {
-		return UrlUtil.getIEVersion(request);
-	}
-
-	public boolean isKonqueror() {
-		return UrlUtil.isKonqueror(request);
-	}
-
-	public boolean isMozilla() {
-		return UrlUtil.isMozilla(request);
-	}
-
-	public String getMozillaVersion() {
-		return UrlUtil.getMozillaVersion(request);
-	}
-
-	public boolean isSafari() {
-		return UrlUtil.isSafari(request);
-	}
-
-	public String getSafariVersion() {
-		return UrlUtil.getSafariVersion(request);
-	}
-
-	public boolean isOpera() {
-		return UrlUtil.isOpera(request);
-	}
-
-	public String getLocale() {
-		return locale;
-	}
-
-	public int getMode() {
-		return BaseHelpSystem.getMode();
-	}
-	public boolean isAdvancedUI() {
-		return advancedUI;
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java
deleted file mode 100644
index 2dda0b7..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import java.util.ArrayList;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.base.IHelpBaseConstants;
-import org.eclipse.help.internal.search.ISearchQuery;
-import org.eclipse.help.internal.search.QueryTooComplexException;
-import org.eclipse.help.internal.search.SearchHit;
-import org.eclipse.help.internal.search.SearchProgressMonitor;
-import org.eclipse.help.internal.search.SearchQuery;
-import org.eclipse.help.internal.search.SearchResults;
-import org.eclipse.help.internal.webapp.HelpWebappPlugin;
-import org.eclipse.help.internal.webapp.servlet.WebappWorkingSetManager;
-import org.eclipse.help.internal.workingset.AdaptableToc;
-import org.eclipse.help.internal.workingset.WorkingSet;
-
-/**
- * Helper class for searchView.jsp initialization
- */
-public class SearchData extends ActivitiesData {
-	private WebappWorkingSetManager wsmgr;
-
-	// Request parameters
-	private String topicHref;
-
-	private String selectedTopicId = ""; //$NON-NLS-1$
-
-	private String searchWord;
-
-	private String workingSetName;
-
-	// search results
-	SearchHit[] hits;
-
-	// percentage of indexing completion
-	private int indexCompletion = 100;
-
-	// QueryException if any
-	private QueryTooComplexException queryException = null;
-	
-	private boolean showPotentialHits;
-
-	/**
-	 * Constructs the xml data for the search resuls page.
-	 * 
-	 * @param context
-	 * @param request
-	 */
-	public SearchData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-		wsmgr = new WebappWorkingSetManager(request, response, getLocale());
-		this.topicHref = request.getParameter("topic"); //$NON-NLS-1$
-		if (topicHref != null && topicHref.length() == 0)
-			topicHref = null;
-
-		searchWord = request.getParameter("searchWord"); //$NON-NLS-1$
-
-		// try loading search results or get the indexing progress info.
-		if (isSearchRequest() && !isScopeRequest()) {
-			loadSearchResults();
-			if (queryException != null) {
-				return;
-			}
-			if (!isProgressRequest()) {
-				for (int i = 0; i < hits.length; i++) {
-					// the following assume topic numbering as in searchView.jsp
-					if (hits[i].getHref().equals(topicHref)) {
-						selectedTopicId = "a" + i; //$NON-NLS-1$
-						break;
-					}
-				}
-			}
-		}
-
-		showPotentialHits = HelpBasePlugin.getDefault().getPluginPreferences()
-			.getBoolean(IHelpBaseConstants.P_KEY_SHOW_POTENTIAL_HITS);
-	}
-
-	/**
-	 * Returns true when there is a search request
-	 * 
-	 * @return boolean
-	 */
-	public boolean isSearchRequest() {
-		return (request.getParameter("searchWord") != null); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return indexed completion percentage
-	 */
-	public boolean isProgressRequest() {
-		return (hits == null && indexCompletion != 100);
-	}
-
-	/**
-	 * Returns true when there is a request to change the scope (working set)
-	 */
-	public boolean isScopeRequest() {
-		return (request.getParameter("workingSet") != null); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the number of links
-	 * 
-	 * @return int
-	 */
-	public int getResultsCount() {
-		return hits.length;
-	}
-
-	public String getSelectedTopicId() {
-		return selectedTopicId;
-	}
-
-	public String getTopicHref(int i) {
-		return UrlUtil.getHelpURL(hits[i].getHref());
-	}
-
-	public String getTopicLabel(int i) {
-		return UrlUtil.htmlEncode(hits[i].getLabel());
-	}
-
-	public String getTopicTocLabel(int i) {
-		if (hits[i].getToc() != null)
-			return UrlUtil.htmlEncode(hits[i].getToc().getLabel());
-		return ""; //$NON-NLS-1$
-	}
-	
-	public String getTopicDescription(int i) {
-		return UrlUtil.htmlEncode(hits[i].getDescription());
-	}
-
-	/**
-	 * @param i
-	 * @return true of result belong to an enabled TOC
-	 */
-	public boolean isEnabled(int i) {
-		String href = hits[i].getHref();
-		return HelpBasePlugin.getActivitySupport().isEnabledTopic(href,
-				getLocale());
-	}
-	
-	/**
-	 * Returns whether or not the ith hit is a potential hit. This means
-	 * it may not be an actual hit (i.e. it found something in a filtered
-	 * section of the document).
-	 * 
-	 * @param i the index of the hit to check
-	 * @return whether or not the hit is a potential hit
-	 */
-	public boolean isPotentialHit(int i) {
-		return (showPotentialHits && (getMode() != MODE_INFOCENTER) && hits[i].getFilters() != null);
-	}
-
-	/**
-	 * Return indexed completion percentage
-	 */
-	public String getIndexedPercentage() {
-		return String.valueOf(indexCompletion);
-	}
-
-	/**
-	 * Returns the search query
-	 */
-	public String getSearchWord() {
-		if (searchWord == null)
-			return ""; //$NON-NLS-1$
-		return searchWord;
-	}
-
-	/**
-	 * Returns the list of selected TOC's
-	 */
-	public String[] getSelectedTocs() {
-		String[] books = request.getParameterValues("scope"); //$NON-NLS-1$
-		if (books == null) {
-			// select all books
-			TocData tocData = new TocData(context, request, response);
-			books = new String[tocData.getTocCount()];
-			for (int i = 0; i < books.length; i++)
-				books[i] = tocData.getTocHref(i);
-		}
-		return books;
-	}
-
-	/**
-	 * Returns true if book is within a search scope
-	 */
-	public boolean isTocSelected(int toc) {
-		TocData tocData = new TocData(context, request, response);
-		String href = tocData.getTocHref(toc);
-		String[] books = request.getParameterValues("scope"); //$NON-NLS-1$
-		if (books == null)
-			return false;
-		for (int i = 0; i < books.length; i++) {
-			if (books[i].equals(href)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the working set selected. This is used to display the working set
-	 * name in the search banner.
-	 * 
-	 * @return String
-	 */
-	public String getScope() {
-		if (workingSetName != null)
-			return workingSetName;
-
-		if (isScopeRequest()) {
-			workingSetName = request.getParameter("workingSet"); //$NON-NLS-1$
-		} else if (isSearchRequest()) {
-			workingSetName = request.getParameter("scope"); //$NON-NLS-1$
-			// if we have already set the working set, then use it.
-			if (workingSetName == null)
-				workingSetName = request.getParameter("workingSet"); //$NON-NLS-1$
-		} else {
-			workingSetName = wsmgr.getCurrentWorkingSet();
-		}
-
-		if (workingSetName == null || workingSetName.length() == 0
-				|| getMode() == RequestData.MODE_INFOCENTER
-				&& wsmgr.getWorkingSet(workingSetName) == null)
-			workingSetName = ServletResources.getString("All", request); //$NON-NLS-1$
-		return workingSetName;
-	}
-
-	/**
-	 * This method is used to persist the working set name and is called from
-	 * the search view, after each search
-	 */
-	public void saveScope() {
-		// if a working set is defined, set it in the preferences
-		String workingSet = request.getParameter("scope"); //$NON-NLS-1$
-		String lastWS = wsmgr.getCurrentWorkingSet();
-		if (workingSet != null && !workingSet.equals(lastWS)) {
-			wsmgr.setCurrentWorkingSet(workingSet);
-		} else if (workingSet == null && lastWS != null && lastWS.length() > 0) {
-			wsmgr.setCurrentWorkingSet(""); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Call the search engine, and get results or the percentage of indexed
-	 * documents.
-	 */
-	private void loadSearchResults() {
-		try {
-			SearchProgressMonitor pm = SearchProgressMonitor
-					.getProgressMonitor(getLocale());
-			if (pm.isDone()) {
-				this.indexCompletion = 100;
-				SearchResults results = createHitCollector();
-				BaseHelpSystem.getSearchManager().search(createSearchQuery(),
-						results, pm);
-				hits = results.getSearchHits();
-				if (hits == null) {
-					HelpWebappPlugin
-							.logWarning("No search results returned.  Help index is in use."); //$NON-NLS-1$
-				}
-				return;
-			}
-			// progress
-			indexCompletion = pm.getPercentage();
-			if (indexCompletion >= 100) {
-				// 38573 We do not have results, so index cannot be 100
-				indexCompletion = 100 - 1;
-			}
-			return;
-		} catch (QueryTooComplexException qe) {
-			queryException = qe;
-		} catch (Exception e) {
-			this.indexCompletion = 0;
-		}
-
-	}
-
-	private ISearchQuery createSearchQuery() {
-		String fieldSearchStr = request.getParameter("fieldSearch"); //$NON-NLS-1$
-		boolean fieldSearch = fieldSearchStr != null ? new Boolean(
-				fieldSearchStr).booleanValue() : false;
-		return new SearchQuery(searchWord, fieldSearch, new ArrayList(),
-				getLocale());
-	}
-
-	private SearchResults createHitCollector() {
-		WorkingSet[] workingSets;
-		if (request.getParameterValues("scopedSearch") == null) { //$NON-NLS-1$
-			// scopes are working set names
-			workingSets = getWorkingSets();
-		} else {
-			// scopes are books (advanced search)
-			workingSets = createTempWorkingSets();
-		}
-
-		int maxHits = 500;
-		String maxHitsStr = request.getParameter("maxHits"); //$NON-NLS-1$
-		if (maxHitsStr != null) {
-			try {
-				int clientmaxHits = Integer.parseInt(maxHitsStr);
-				if (0 < clientmaxHits && clientmaxHits < 500) {
-					maxHits = clientmaxHits;
-				}
-			} catch (NumberFormatException nfe) {
-			}
-		}
-		return new SearchResults(workingSets, maxHits, getLocale());
-	}
-
-	/**
-	 * @return WorkingSet[] or null
-	 */
-	private WorkingSet[] getWorkingSets() {
-		String[] scopes = request.getParameterValues("scope"); //$NON-NLS-1$
-		if (scopes == null) {
-			return null;
-		}
-		// confirm working set exists and use it
-		ArrayList workingSetCol = new ArrayList(scopes.length);
-		for (int s = 0; s < scopes.length; s++) {
-			WorkingSet ws = wsmgr.getWorkingSet(scopes[s]);
-			if (ws != null) {
-				workingSetCol.add(ws);
-			}
-		}
-		if (workingSetCol.size() == 0) {
-			return null;
-		}
-		return (WorkingSet[]) workingSetCol
-				.toArray(new WorkingSet[workingSetCol.size()]);
-	}
-
-	/**
-	 * @return WorkingSet[] or null
-	 */
-	private WorkingSet[] createTempWorkingSets() {
-		String[] scopes = request.getParameterValues("scope"); //$NON-NLS-1$
-		if (scopes == null) {
-			// it is possible that filtering is used, but all books are
-			// deselected
-			return new WorkingSet[0];
-		}
-		if (scopes.length == HelpPlugin.getTocManager().getTocs(getLocale()).length) {
-			// do not filter if all books are selected
-			return null;
-		}
-		// create working set from books
-		ArrayList tocs = new ArrayList(scopes.length);
-		for (int s = 0; s < scopes.length; s++) {
-			AdaptableToc toc = wsmgr.getAdaptableToc(scopes[s]);
-			if (toc != null) {
-				tocs.add(toc);
-			}
-		}
-		AdaptableToc[] adaptableTocs = (AdaptableToc[]) tocs
-				.toArray(new AdaptableToc[tocs.size()]);
-		WorkingSet[] workingSets = new WorkingSet[1];
-		workingSets[0] = wsmgr.createWorkingSet("temp", adaptableTocs); //$NON-NLS-1$
-		return workingSets;
-	}
-
-	public String getQueryExceptionMessage() {
-		if (queryException == null) {
-			return null;
-		}
-		return ServletResources.getString("searchTooComplex", request); //$NON-NLS-1$
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ServletResources.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ServletResources.java
deleted file mode 100644
index a895b5a..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ServletResources.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import java.util.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.webapp.*;
-
-/**
- * Uses a resource bundle to load images and strings from a property file in a
- * documentation plugin
- */
-public class ServletResources {
-
-	/**
-	 * Resources constructor.
-	 */
-	protected ServletResources() {
-		super();
-	}
-
-	public static String getConfirmShowAllExplanation(HttpServletRequest request) {
-		String  message = HelpBasePlugin.getActivitySupport().getShowAllMessage();
-		if (message==null)
-			message = getString("confirmShowAllExplanation", request); //$NON-NLS-1$
-		return message;
-	}
-
-	/**
-	 * Returns a string from a property file. It uses 'name' as a the key to
-	 * retrieve from the webapp.properties file.
-	 * 
-	 * @param request
-	 *            HttpServletRequest or null; default locale will be used if
-	 *            null passed
-	 */
-	public static String getString(String name, HttpServletRequest request) {
-		String property = WebappResources.getString(name, UrlUtil.getLocaleObj(
-				request, null));
-		if (property == null || property.length() <= 0) {
-			return property;
-		}
-		int amp = property.indexOf('&');
-		if (amp <0 || amp >= property.length() - 1) {
-			return property;
-		}
-		return property.substring(0, amp)
-				+ property.substring(amp + 1, property.length());
-	}
-
-	/**
-	 * Returns a string from a property file. It uses 'name' as a the key to
-	 * retrieve from the webapp.properties file.
-	 * 
-	 * @param request
-	 *            HttpServletRequest or null; default locale will be used if
-	 *            null passed
-	 */
-	public static String getString(String name, String replace0,
-			HttpServletRequest request) {
-		String property = WebappResources.getString(name, UrlUtil.getLocaleObj(
-				request, null), replace0);
-		if (property == null || property.length() <= 0) {
-			return property;
-		}
-		int amp = property.indexOf('&');
-		if (amp <0 || amp >= property.length() - 1) {
-			return property;
-		}
-		return property.substring(0, amp - 1)
-				+ property.substring(amp + 1, property.length());
-	}
-	/**
-	 * Returns a string from a property file, with underlined access key. Access
-	 * key can be specified in the label by &amp: character following character
-	 * in the label that is to serve as access key It uses 'name' as a the key
-	 * to retrieve from the webapp.properties file.
-	 * 
-	 * @param request
-	 *            HttpServletRequest or null; default locale will be used if
-	 *            null passed
-	 */
-	public static String getLabel(String name, HttpServletRequest request) {
-		String property = WebappResources.getString(name, UrlUtil.getLocaleObj(
-				request, null));
-		if (property == null || property.length() <= 0) {
-			return property;
-		}
-		int amp = property.indexOf('&');
-		if (amp <0 || amp >= property.length() - 1) {
-			return property;
-		}
-		return property.substring(0, amp)
-				+ "<u STYLE=\"ACCELERATOR:true\">" //$NON-NLS-1$
-				+ property.charAt(amp+1) + "</u>" //$NON-NLS-1$
-				+ property.substring(amp + 2, property.length());
-	}
-
-	/**
-	 * Returns access key for a named label from property file. It uses 'name'
-	 * as a the key to retrieve from the webapp.properties file.
-	 * 
-	 * @param request
-	 *            HttpServletRequest or null; default locale will be used if
-	 *            null passed
-	 */
-	public static String getAccessKey(String name, HttpServletRequest request) {
-		String property = WebappResources.getString(name, UrlUtil.getLocaleObj(
-				request, null));
-		if (property == null || property.length() <= 0) {
-			return null;
-		}
-		int amp = property.indexOf('&');
-		if (amp <0 || amp >= property.length() - 1) {
-            return null;
-        }
-		return ("" + property.charAt(amp +1)).toLowerCase(Locale.ENGLISH); //$NON-NLS-1$
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java
deleted file mode 100644
index ba9bb9b..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java
+++ /dev/null
@@ -1,589 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.help.IToc;
-import org.eclipse.help.ITopic;
-import org.eclipse.help.UAContentFilter;
-import org.eclipse.help.internal.HelpPlugin;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.model.INavigationElement;
-import org.eclipse.help.internal.model.ITocElement;
-import org.eclipse.help.internal.model.ITopicElement;
-import org.eclipse.help.internal.toc.Toc;
-
-/**
- * Helper class for tocView.jsp initialization
- */
-public class TocData extends ActivitiesData {
-	// maximum number of topics in a book for generating all topics at once
-	private static int loadBookAtOnceLimit;
-	// suggested number of topic levels for large books
-	private static int dynamicLoadDepths;
-	// maximum number of topics generated when loading levels dynamically
-	// above which dynamicLoadDepths is ignored, the rest of branches will be 1
-	// deep
-	private static int honorLevelsLimit;
-
-	// Request parameters
-	private String tocHref;
-	private String topicHref;
-
-	// help form of selected topic href
-	private String topicHelpHref;
-	// Selected TOC
-	private int selectedToc;
-	// path from TOC to the root topic of the TOC fragment
-	private int[] rootPath = null;
-	// path from TOC to the selected topic, excluding TOC;
-	private ITopic[] topicPath = null;
-	// Number of topics generated so far
-	private int topicsGenerated = 0;
-
-	// List of TOC's, unfiltered
-	private ITocElement[] tocs;
-	// List of TOC's, filtered by roles
-	//private IToc[] filteredTocs;
-
-	// images directory
-	private String imagesDirectory;
-
-	/**
-	 * Constructs the xml data for the contents page.
-	 * 
-	 * @param context
-	 * @param request
-	 */
-	public TocData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-		if (dynamicLoadDepths < 1) {
-			WebappPreferences pref = new WebappPreferences();
-			loadBookAtOnceLimit = pref.getBookAtOnceLimit();
-			dynamicLoadDepths = pref.getLoadDepth();
-			honorLevelsLimit = loadBookAtOnceLimit / 4;
-		}
-
-		this.tocHref = request.getParameter("toc"); //$NON-NLS-1$
-		this.topicHref = request.getParameter("topic"); //$NON-NLS-1$
-		if (tocHref != null && tocHref.length() == 0)
-			tocHref = null;
-		if (topicHref != null && topicHref.length() == 0)
-			topicHref = null;
-		// initialize rootPath
-		String pathStr = request.getParameter("path"); //$NON-NLS-1$
-		if (pathStr != null && pathStr.length() > 0) {
-			String[] paths = pathStr.split("_", -1); //$NON-NLS-1$
-			int[] indexes = new int[paths.length];
-			boolean indexesOK = true;
-			for (int i = 0; i < paths.length; i++) {
-				try {
-					indexes[i] = Integer.parseInt(paths[i]);
-				} catch (NumberFormatException nfe) {
-					indexesOK = false;
-					break;
-				}
-				if (indexesOK) {
-					rootPath = indexes;
-				}
-			}
-		}
-
-		imagesDirectory = preferences.getImagesDirectory();
-
-		loadTocs();
-	}
-
-	// Accessor methods to avoid exposing help classes directly to JSP.
-	// Note: this seems ok for now, but maybe we need to reconsider this
-	//       and allow help classes in JSP's.
-
-	public int getTocCount() {
-		return tocs.length;
-	}
-
-	public String getTocLabel(int i) {
-		return tocs[i].getLabel();
-	}
-
-	public String getTocHref(int i) {
-		return tocs[i].getHref();
-	}
-
-	public String getTocDescriptionTopic(int i) {
-		return UrlUtil.getHelpURL(tocs[i].getTopic(null).getHref());
-	}
-
-	/**
-	 * Returns the selected TOC
-	 * 
-	 * @return int
-	 */
-	public int getSelectedToc() {
-		return selectedToc;
-	}
-
-	/**
-	 * Returns the topic to display. If there is a TOC, return its topic
-	 * description. Return null if no topic is specified and there is no toc
-	 * description.
-	 * 
-	 * @return String
-	 */
-	public String getSelectedTopic() {
-		if (topicHref != null && topicHref.length() > 0)
-			return UrlUtil.getHelpURL(topicHref);
-		else
-		if (selectedToc == -1)
-			return null;
-		IToc toc = tocs[selectedToc];
-		ITopic tocDescription = toc.getTopic(null);
-		if (tocDescription != null)
-			return UrlUtil.getHelpURL(tocDescription.getHref());
-		return UrlUtil.getHelpURL(null);
-	}
-
-	/**
-	 * Returns a list of all the TOC's as xml elements. Individual TOC's are not
-	 * loaded yet.
-	 * 
-	 * @return Element[]
-	 */
-	public ITocElement[] getTocs() {
-		return tocs;
-	}
-
-	/**
-	 * Check if given TOC is visible
-	 * 
-	 * @param toc
-	 * @return true if TOC should be visible
-	 */
-	public boolean isEnabled(int toc) {
-		if (!isEnabled(tocs[toc])) {
-			return false;
-		}
-		// do not generate toc when there are no leaf topics
-		return (getEnabledSubtopicList(tocs[toc]).size() > 0);
-	}
-	/**
-	 * Check if given TOC is visible
-	 * 
-	 * @param toc
-	 * @return true if TOC should be visible
-	 */
-	private boolean isEnabled(ITocElement toc) {
-		if(!isAdvancedUI()){
-			// activities never filtered for basic browsers
-			return true;
-		}
-		return HelpBasePlugin.getActivitySupport().isEnabled(toc.getHref()) &&
-			!UAContentFilter.isFiltered(toc);
-	}
-
-	private void loadTocs() {
-		tocs = HelpPlugin.getTocManager().getTocs(getLocale());
-		// Find the requested TOC
-		selectedToc = -1;
-		if (tocHref != null && tocHref.length() > 0) {
-			tocs = getTocs();
-			for (int i = 0; selectedToc == -1 && i < tocs.length; i++) {
-				if (tocHref.equals(tocs[i].getHref())) {
-					selectedToc = i;
-				}
-			}
-		} else {
-			// try obtaining the TOC from the topic
-			selectedToc = findTocContainingTopic(topicHref);
-
-			ITopic topic = findTopic();
-			if (topic != null
-					&& topic instanceof org.eclipse.help.internal.toc.Topic) {
-				topicPath = ((org.eclipse.help.internal.toc.Topic) topic)
-						.getPathInToc(tocs[selectedToc]);
-			}
-		}
-	}
-
-	/**
-	 * Finds a TOC that contains specified topic
-	 * 
-	 * @param topic
-	 *            the topic href
-	 */
-	private int findTocContainingTopic(String topic) {
-		if (topic == null || topic.equals("")) //$NON-NLS-1$
-			return -1;
-
-		int index = topic.indexOf("/topic/"); //$NON-NLS-1$
-		if (index != -1)
-			topic = topic.substring(index + 6);
-		index = topic.indexOf('?');
-		if (index != -1)
-			topic = topic.substring(0, index);
-
-		if (topic == null || topic.equals("")) //$NON-NLS-1$
-			return -1;
-
-		tocs = getTocs();
-		// try to find in enabled tocs first
-		for (int i = 0; i < tocs.length; i++)
-			if (isEnabled(i))
-				if (tocs[i].getTopic(topic) != null)
-					return i;
-		// try disabled tocs second
-		for (int i = 0; i < tocs.length; i++)
-			if (!isEnabled(i))
-				if (tocs[i].getTopic(topic) != null)
-					return i;
-
-		// nothing found
-		return -1;
-	}
-	/**
-	 * Finds topic in a TOC
-	 * 
-	 * @return ITopic or null
-	 */
-	private ITopic findTopic() {
-		String topic = getSelectedTopic();
-		if (topic == null || topic.equals("")) //$NON-NLS-1$
-			return null;
-
-		int index = topic.indexOf("/topic/"); //$NON-NLS-1$
-		if (index != -1)
-			topic = topic.substring(index + 6);
-		index = topic.indexOf('?');
-		if (index != -1)
-			topic = topic.substring(0, index);
-
-		if (topic == null || topic.equals("")) //$NON-NLS-1$
-			return null;
-
-		if (getSelectedToc() < 0)
-			return null;
-		IToc selectedToc = getTocs()[getSelectedToc()];
-		if (selectedToc == null)
-			return null;
-		return selectedToc.getTopic(topic);
-	}
-
-	/**
-	 * Generates the HTML code (a tree) for a TOC.
-	 * 
-	 * @param toc
-	 * @param out
-	 * @throws IOException
-	 */
-	public void generateToc(int toc, Writer out) throws IOException {
-		ITopicElement[] topics = getEnabledSubtopics(tocs[toc]);
-		if (topics.length <= 0) {
-			// do not generate toc when there are no leaf topics
-			return;
-		}
-
-		int maxLevels = dynamicLoadDepths;
-		if (tocs[toc] instanceof Toc
-				&& ((Toc) tocs[toc]).size() <= loadBookAtOnceLimit) {
-			maxLevels = -1;
-		}
-		// Construct ID of subtree root
-		StringBuffer id = new StringBuffer();
-		if (rootPath != null) {
-			// navigate to root topic, skipping parents
-			for (int p = 0; p < rootPath.length; p++) {
-				if (id.length() > 0) {
-					id.append('_');
-				}
-				topics = getEnabledSubtopics(topics[rootPath[p]]);
-				id.append(rootPath[p]);
-			}
-			out.write("<ul class='expanded' id=\"" + id.toString() + "\">\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		for (int i = 0; i < topics.length; i++) {
-			String idPrefix = id.toString();
-			if (idPrefix.length() > 0) {
-				idPrefix = idPrefix + "_" + Integer.toString(i); //$NON-NLS-1$
-			} else {
-				idPrefix = Integer.toString(i);
-			}
-
-			generateTopic(topics[i], out, idPrefix, maxLevels, rootPath == null
-					? 0
-					: rootPath.length);
-		}
-
-		if (rootPath != null) {
-			out.write("</ul>\n"); //$NON-NLS-1$
-		}
-
-	}
-
-	/**
-	 * @param topic
-	 * @param out
-	 * @param maxLevels
-	 *            relative number of topic levels to generate (pass <0 for
-	 *            inifinite), 1 generates this topic as last level topic
-	 * @param currentLevel
-	 *            current level of topic, 0 is first Level under TOC
-	 * @throws IOException
-	 */
-	private void generateTopic(ITopicElement topic, Writer out, String id,
-			int maxLevels, int currentLevel) throws IOException {
-		if (maxLevels == 0) {
-			return;
-		}
-
-		topicsGenerated++;
-		if (maxLevels > 1 && topicsGenerated > honorLevelsLimit) {
-			maxLevels = 1;
-		}
-
-		ITopicElement[] topics = getEnabledSubtopics(topic);
-		boolean hasNodes = topics.length > 0;
-
-		if (hasNodes) {
-			out.write("<li>"); //$NON-NLS-1$
-			out.write("<img src='"); //$NON-NLS-1$
-			out.write(imagesDirectory);
-			out
-					.write("/plus.gif' class='collapsed' alt=\"" + ServletResources.getString("topicClosed", request) + "\">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			out.write("<a href=" +"\""+ UrlUtil.getHelpURL(topic.getHref()) + "\""+">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			out.write("<img src='"); //$NON-NLS-1$
-			out.write(imagesDirectory);
-			out.write("/container_obj.gif' alt=\"\">"); //$NON-NLS-1$
-			out.write(UrlUtil.htmlEncode(topic.getLabel()));
-			out.write("</a>"); //$NON-NLS-1$
-
-			// is it ancestor of topic to reveal
-			boolean isAncestor = topicPath != null
-					&& topicPath.length > currentLevel + 1
-					&& topicPath[currentLevel] == topic;
-
-			if (maxLevels != 1 || isAncestor) {
-				out.write("<ul class='collapsed'>\n"); //$NON-NLS-1$
-			} else {
-				// children will not be generated
-				out.write("<ul class='collapsed' id=\"" + id + "\">\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			if (1 <= maxLevels && maxLevels <= dynamicLoadDepths && isAncestor) {
-				// ignore max levels, show children
-				for (int i = 0; i < topics.length; i++) {
-					generateTopic(topics[i], out, id + "_" + i, //$NON-NLS-1$
-							dynamicLoadDepths, currentLevel + 1);
-				}
-			} else {
-				for (int i = 0; i < topics.length; i++) {
-					generateTopic(topics[i], out, id + "_" + i, //$NON-NLS-1$
-							maxLevels - 1, currentLevel + 1);
-				}
-			}
-
-			out.write("</ul>\n"); //$NON-NLS-1$
-		} else {
-			out.write("<li>"); //$NON-NLS-1$
-			out.write("<img src='"); //$NON-NLS-1$
-			out.write(imagesDirectory);
-			out.write("/plus.gif' class='h' alt=\"\">"); //$NON-NLS-1$
-			out.write("<a href=" +"\""+ UrlUtil.getHelpURL(topic.getHref()) + "\""+">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ 
-			out.write("<img src='"); //$NON-NLS-1$
-			out.write(imagesDirectory);
-			out.write("/topic.gif' alt=\"\">"); //$NON-NLS-1$
-			out.write(UrlUtil.htmlEncode(topic.getLabel()));
-			out.write("</a>"); //$NON-NLS-1$
-		}
-
-		out.write("</li>\n"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Generates the HTML code (a tree) for a TOC.
-	 * 
-	 * @param toc
-	 * @param out
-	 * @throws IOException
-	 */
-	public void generateBasicToc(int toc, Writer out) throws IOException {
-		ITopicElement[] topics = getEnabledSubtopics(tocs[toc]);
-		for (int i = 0; i < topics.length; i++) {
-			generateBasicTopic(topics[i], out);
-		}
-
-	}
-
-	private void generateBasicTopic(ITopicElement topic, Writer out)
-			throws IOException {
-
-		out.write("<li>"); //$NON-NLS-1$
-		ITopicElement[] topics = getEnabledSubtopics(topic);
-		boolean hasNodes = topics.length > 0;
-		if (hasNodes) {
-			out.write("<nobr>"); //$NON-NLS-1$
-			out.write("<a "); //$NON-NLS-1$
-			if (getSelectedTopicHelpHref().equals(topic.getHref())) {
-				out.write("name=\"selectedItem\" "); //$NON-NLS-1$
-			}
-			out.write("href="+"\"" + UrlUtil.getHelpURL(topic.getHref())+"\"" + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ 
-			out.write("<img src='"); //$NON-NLS-1$
-			out.write(imagesDirectory);
-			out.write("/container_obj.gif' alt=\"\" border=0>&nbsp;"); //$NON-NLS-1$
-			out.write(UrlUtil.htmlEncode(topic.getLabel()));
-			out.write("</a>"); //$NON-NLS-1$
-			out.write("</nobr>"); //$NON-NLS-1$
-
-			out.write("<ul>\n"); //$NON-NLS-1$
-
-			for (int i = 0; i < topics.length; i++) {
-				generateBasicTopic(topics[i], out);
-			}
-
-			out.write("</ul>\n"); //$NON-NLS-1$
-		} else {
-			out.write("<nobr>"); //$NON-NLS-1$
-			out.write("<a "); //$NON-NLS-1$
-			if (getSelectedTopicHelpHref().equals(topic.getHref())) {
-				out.write("name=\"selectedItem\" "); //$NON-NLS-1$
-			}
-			out.write("href="+"\"" + UrlUtil.getHelpURL(topic.getHref()) +"\""+ ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ 
-			out.write("<img src='"); //$NON-NLS-1$
-			out.write(imagesDirectory);
-			out.write("/topic.gif' alt=\"\" border=0>&nbsp;"); //$NON-NLS-1$
-			out.write(UrlUtil.htmlEncode(topic.getLabel()));
-			out.write("</a>"); //$NON-NLS-1$
-			out.write("</nobr>"); //$NON-NLS-1$
-		}
-
-		out.write("</li>\n"); //$NON-NLS-1$
-	}
-	/**
-	 * @return String - help form of selected topic URL, or ""
-	 */
-	private String getSelectedTopicHelpHref() {
-		if (topicHelpHref == null) {
-			String topic = getSelectedTopic();
-			if (topic == null || topic.length() == 0) {
-				topicHelpHref = ""; //$NON-NLS-1$
-				return topicHelpHref;
-			}
-			int index = topic.indexOf("/topic/"); //$NON-NLS-1$
-			if (index != -1)
-				topic = topic.substring(index + 6);
-			index = topic.indexOf('?');
-			if (index != -1)
-				topic = topic.substring(0, index);
-			topicHelpHref = topic;
-			if (topic == null) {
-				topicHelpHref = ""; //$NON-NLS-1$
-			}
-		}
-		return topicHelpHref;
-	}
-	/**
-	 * Obtains children topics for a given navigation element. Topics from TOCs
-	 * not matching enabled activities are filtered out.
-	 * 
-	 * @param navigationElement
-	 * @return ITopic[]
-	 */
-	private ITopicElement[] getEnabledSubtopics(
-			INavigationElement navigationElement) {
-		List topics = getEnabledSubtopicList(navigationElement);
-		return (ITopicElement[]) topics
-				.toArray(new ITopicElement[topics.size()]);
-	}
-	/**
-	 * Obtains children topics for a given navigation element. Topics from TOCs
-	 * not matching enabled activities are filtered out.
-	 * 
-	 * @param navigationElement
-	 * @return List of ITopicElement
-	 */
-	private List getEnabledSubtopicList(INavigationElement navigationElement) {
-		if (navigationElement instanceof ITocElement
-				&& !isEnabled((ITocElement) navigationElement))
-			return Collections.EMPTY_LIST;
-		List children = navigationElement.getChildren();
-		List childTopics = new ArrayList(children.size());
-		for (Iterator childrenIt = children.iterator(); childrenIt.hasNext();) {
-			INavigationElement c = (INavigationElement) childrenIt.next();
-			if ((c instanceof ITopicElement)) {
-				// add topic only if it will not end up being an empty
-				// container
-				if (((((ITopicElement) c).getHref() != null && ((ITopicElement) c)
-						.getHref().length() > 0) || getEnabledSubtopicList(c).size() > 0) &&
-						!UAContentFilter.isFiltered(c)) {
-					childTopics.add(c);
-				}
-			} else {
-				// it is a Toc, Anchor or Link,
-				// which may have children attached to it.
-				childTopics.addAll(getEnabledSubtopicList(c));
-			}
-		}
-		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 (int i = 0; i < topics.length; i++) {
-            generateTopicLinks(topics[i], w, indent + 1);
-        }
-    }
-
-    public void generateLinks(Writer out) {
-        for (int i = 0; i < tocs.length; i++) {
-            IToc toc = tocs[i];
-            ITopic tocTopic = toc.getTopic(null);
-            generateTopicLinks(tocTopic, out, 0);
-            ITopic[] topics = toc.getTopics();
-            for (int t = 0; t < topics.length; t++) {
-                generateTopicLinks(topics[t], out, 1);
-            }
-        }
-
-    }
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarButton.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarButton.java
deleted file mode 100644
index 030d325..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarButton.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-/**
- * This class calls eclipse API's directly, so it should only be instantiated in
- * the workbench scenario, not in the infocenter.
- */
-public class ToolbarButton {
-	private String name;
-	private String tooltip;
-	private String image;
-	private String action;
-	private boolean state;
-	private boolean isSeparator;
-
-	public ToolbarButton() {
-		isSeparator = true;
-	}
-
-	public ToolbarButton(String name, String tooltip, String image,
-			String action, boolean state) {
-		this.name = name;
-		this.tooltip = tooltip;
-		this.image = image;
-		this.action = action;
-		this.state = state;
-	}
-
-	public boolean isSeparator() {
-		return isSeparator;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public String getTooltip() {
-		return tooltip;
-	}
-
-	/**
-	 * Returns the enabled gray image
-	 * 
-	 * @return String
-	 */
-	public String getImage() {
-		int i = image.lastIndexOf('/');
-		return image.substring(0, i) + "/e_" + image.substring(i + 1); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the image when selected
-	 * 
-	 * @return String
-	 */
-	public String getOnImage() {
-		return getImage();
-	}
-
-	public String getAction() {
-		return action;
-	}
-
-	public boolean isOn() {
-		return state;
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarData.java
deleted file mode 100644
index c2690ff..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/ToolbarData.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import java.util.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-/**
- * Control for a toolbar.
- */
-public class ToolbarData extends RequestData {
-
-	ToolbarButton[] buttons;
-
-	public ToolbarData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-		loadButtons();
-	}
-
-	private void loadButtons() {
-		String[] names = request.getParameterValues("name"); //$NON-NLS-1$
-		String[] tooltips = request.getParameterValues("tooltip"); //$NON-NLS-1$
-		String[] images = request.getParameterValues("image"); //$NON-NLS-1$
-		String[] actions = request.getParameterValues("action"); //$NON-NLS-1$
-		String[] states = request.getParameterValues("state"); //$NON-NLS-1$
-
-		if (names == null || tooltips == null || images == null
-				|| actions == null || states == null
-				|| names.length != tooltips.length
-				|| names.length != images.length
-				|| names.length != actions.length
-				|| names.length != states.length) {
-			buttons = new ToolbarButton[0];
-			return;
-		}
-
-		List buttonList = new ArrayList();
-		for (int i = 0; i < names.length; i++) {
-			if (states[i].startsWith("hid")) { //$NON-NLS-1$
-				continue;
-			}
-			if ("".equals(names[i])) //$NON-NLS-1$
-				buttonList.add(new ToolbarButton());
-			else
-				buttonList.add(new ToolbarButton(names[i], ServletResources
-						.getString(tooltips[i], request), preferences
-						.getImagesDirectory()
-						+ "/" + images[i], //$NON-NLS-1$
-						actions[i], "on".equalsIgnoreCase(states[i]))); //$NON-NLS-1$
-		}
-		// add implicit maximize/restore button on all toolbars
-		if (isIE() || isMozilla()
-				&& "1.2.1".compareTo(getMozillaVersion()) <= 0 //$NON-NLS-1$
-				|| (isSafari() && "120".compareTo(getSafariVersion()) <= 0)) { //$NON-NLS-1$
-			buttonList.add(new ToolbarButton("maximize_restore", //$NON-NLS-1$
-					getMaximizeTooltip(), preferences.getImagesDirectory()
-							+ "/" + "maximize.gif", //$NON-NLS-1$ //$NON-NLS-2$
-					"restore_maximize", false)); //$NON-NLS-1$
-		}
-		buttons = (ToolbarButton[]) buttonList
-				.toArray(new ToolbarButton[buttonList.size()]);
-	}
-
-	public ToolbarButton[] getButtons() {
-		return buttons;
-	}
-
-	public String getName() {
-		if (request.getParameter("view") == null) //$NON-NLS-1$
-			return ""; //$NON-NLS-1$
-		return request.getParameter("view"); //$NON-NLS-1$
-	}
-
-	public String getTitle() {
-		if (request.getParameter("view") == null) //$NON-NLS-1$
-			return ""; //$NON-NLS-1$
-		return ServletResources.getString(request.getParameter("view"), //$NON-NLS-1$
-					request);
-	}
-
-	public String getScript() {
-		return request.getParameter("script"); //$NON-NLS-1$
-	}
-	public String getMaximizeImage() {
-		return preferences.getImagesDirectory() + "/e_maximize.gif"; //$NON-NLS-1$
-	}
-	public String getRestoreImage() {
-		return preferences.getImagesDirectory() + "/e_restore.gif"; //$NON-NLS-1$
-	}
-	public String getMaximizeTooltip() {
-		return ServletResources.getString("maximize", request); //$NON-NLS-1$
-	}
-	public String getRestoreTooltip() {
-		return ServletResources.getString("restore", request); //$NON-NLS-1$
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/Topic.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/Topic.java
deleted file mode 100644
index 38a76b1..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/Topic.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-public class Topic {
-	private String label;
-	private String href;
-
-	public Topic(String label, String href) {
-		this.label = label;
-		this.href = href;
-	}
-
-	public String getLabel() {
-		return label;
-	}
-
-	public String getHref() {
-		return UrlUtil.getHelpURL(href);
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java
deleted file mode 100644
index 46001a6..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.regex.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.base.util.*;
-
-public class UrlUtil {
-	// XML escaped characters mapping
-	private static final String invalidXML[] = {"&", ">", "<", "\""}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	private static final String escapedXML[] = {
-			"&amp;", "&gt;", "&lt;", "&quot;"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-	// for Safari build 125.1 finds version 125
-	static final Pattern safariPatern = Pattern.compile(
-			"Safari/(\\d+)(?:\\.|\\s|$)", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
-
-	// Default locale to use for serving requests to help
-	private static String defaultLocale;
-	// Locales that infocenter can serve in addition to the default locale.
-	// null indicates that infocenter can serve every possible client locale.
-	private static Collection locales;
-	
-	private static final int INFOCENTER_DIRECTION_BY_LOCALE = 1;
-	private static final int INFOCENTER_DIRECTION_LTR = 2;
-	private static final int INFOCENTER_DIRECTION_RTL = 3;
-	private static int infocenterDirection = INFOCENTER_DIRECTION_BY_LOCALE;
-
-	/**
-	 * Encodes string for embedding in JavaScript source
-	 */
-	public static String JavaScriptEncode(String str) {
-		char[] wordChars = new char[str.length()];
-		str.getChars(0, str.length(), wordChars, 0);
-		StringBuffer jsEncoded = new StringBuffer();
-		for (int j = 0; j < wordChars.length; j++) {
-			int unicode = wordChars[j];
-			// to enhance readability, do not encode A-Z,a-z
-			if (('A' <= unicode && unicode <= 'Z')
-					|| ('a' <= unicode && unicode <= 'z')) {
-				jsEncoded.append(wordChars[j]);
-				continue;
-			}
-			// encode the character
-			String charInHex = Integer.toString(unicode, 16).toUpperCase();
-			switch (charInHex.length()) {
-				case 1 :
-					jsEncoded.append("\\u000").append(charInHex); //$NON-NLS-1$
-					break;
-				case 2 :
-					jsEncoded.append("\\u00").append(charInHex); //$NON-NLS-1$
-					break;
-				case 3 :
-					jsEncoded.append("\\u0").append(charInHex); //$NON-NLS-1$
-					break;
-				default :
-					jsEncoded.append("\\u").append(charInHex); //$NON-NLS-1$
-					break;
-			}
-		}
-		return jsEncoded.toString();
-	}
-
-	/**
-	 * Encodes string for embedding in html source.
-	 */
-	public static String htmlEncode(String str) {
-
-		for (int i = 0; i < invalidXML.length; i++)
-			str = TString.change(str, invalidXML[i], escapedXML[i]);
-		return str;
-	}
-
-	public static boolean isLocalRequest(HttpServletRequest request) {
-		String reqIP = request.getRemoteAddr();
-		if ("127.0.0.1".equals(reqIP)) { //$NON-NLS-1$
-			return true;
-		}
-
-		try {
-			String hostname = InetAddress.getLocalHost().getHostName();
-			InetAddress[] addr = InetAddress.getAllByName(hostname);
-			for (int i = 0; i < addr.length; i++) {
-				// test all addresses retrieved from the local machine
-				if (addr[i].getHostAddress().equals(reqIP))
-					return true;
-			}
-		} catch (IOException ioe) {
-		}
-		return false;
-	}
-
-	/**
-	 * Returns a URL that can be loaded from a browser. This method is used for
-	 * all url's except those from the webapp plugin.
-	 * 
-	 * @param url
-	 * @return String
-	 */
-	public static String getHelpURL(String url) {
-		if (url == null || url.length() == 0)
-			url = "about:blank"; //$NON-NLS-1$
-		else if (url.startsWith("http:/") || url.startsWith("https:/")); //$NON-NLS-1$ //$NON-NLS-2$
-		else if (url.startsWith("file:/") || url.startsWith("jar:file:/")) //$NON-NLS-1$ //$NON-NLS-2$
-			url = "../topic/" + url; //$NON-NLS-1$
-		else
-			url = "../topic" + url; //$NON-NLS-1$
-		return url;
-	}
-
-	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);
-		// sample substring Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
-		return agent.indexOf("bot") >= 0 || agent.indexOf("crawl") >= 0//$NON-NLS-1$ //$NON-NLS-2$
-                || request.getParameter("bot") != null;//$NON-NLS-1$
-    }
-
-	public static boolean isGecko(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return false;
-		agent=agent.toLowerCase(Locale.ENGLISH);
-		// sample substring Gecko/20020508
-		// search for "gecko/" not to react to "like Gecko"
-		return agent.indexOf("gecko/") >= 0; //$NON-NLS-1$
-	}
-
-	public static boolean isIE(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return false;
-		agent=agent.toLowerCase(Locale.ENGLISH);
-
-		// When accessing with Bobby identified Bobby return 5.5 to allow
-		// testing advanced UI as bobby cannot identifiy as IE >=5.5
-		if (agent.startsWith("bobby/")) { //$NON-NLS-1$
-			return true;
-		}
-		//
-
-		return (agent.indexOf("msie") >= 0); //$NON-NLS-1$
-	}
-
-	public static String getIEVersion(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return "0"; //$NON-NLS-1$
-
-		agent=agent.toLowerCase(Locale.ENGLISH);
-		// When accessing with Bobby identified Bobby return 5.5 to allow
-		// testing advanced UI as bobby cannot identifiy as IE >=5.5
-		if (agent.startsWith("bobby/")) { //$NON-NLS-1$
-			return "5.5"; //$NON-NLS-1$
-		}
-		//
-
-		int start = agent.indexOf("msie ") + "msie ".length(); //$NON-NLS-1$ //$NON-NLS-2$
-		if (start < "msie ".length() || start >= agent.length()) //$NON-NLS-1$
-			return "0"; //$NON-NLS-1$
-		int end = agent.indexOf(";", start); //$NON-NLS-1$
-		if (end <= start)
-			return "0"; //$NON-NLS-1$
-		return agent.substring(start, end);
-	}
-
-	public static boolean isKonqueror(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return false;
-		agent=agent.toLowerCase(Locale.ENGLISH); 
-		return agent.indexOf("konqueror") >= 0; //$NON-NLS-1$
-	}
-
-	public static boolean isMozilla(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return false;
-		agent=agent.toLowerCase(Locale.ENGLISH);
-		return agent.indexOf("mozilla/5") >= 0; //$NON-NLS-1$
-	}
-
-	public static String getMozillaVersion(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return "0"; //$NON-NLS-1$
-		agent=agent.toLowerCase(Locale.ENGLISH);
-		if (agent.indexOf("mozilla/5") < 0) //$NON-NLS-1$
-			return "0"; //$NON-NLS-1$
-		int start = agent.indexOf("rv:") + "rv:".length(); //$NON-NLS-1$ //$NON-NLS-2$
-		if (start < "rv:".length() || start >= agent.length()) //$NON-NLS-1$
-			return "0"; //$NON-NLS-1$
-		int end = agent.indexOf(")", start); //$NON-NLS-1$
-		if (end <= start)
-			return "0"; //$NON-NLS-1$
-		return agent.substring(start, end);
-	}
-
-	public static boolean isOpera(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return false;
-		agent=agent.toLowerCase(Locale.ENGLISH);
-		return agent.indexOf("opera") >= 0; //$NON-NLS-1$
-	}
-
-	public static boolean isSafari(HttpServletRequest request) {
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return false;
-		agent=agent.toLowerCase(Locale.ENGLISH);
-		return agent.indexOf("safari/") >= 0; //$NON-NLS-1$
-	}
-
-	public static String getSafariVersion(HttpServletRequest request) {
-		String version = "0"; //$NON-NLS-1$
-		String agent = request.getHeader("User-Agent"); //$NON-NLS-1$
-		if (agent==null)
-		    return version;
-		agent=agent.toLowerCase(Locale.ENGLISH);
-		Matcher m = safariPatern.matcher(agent);
-		boolean matched = m.find();
-		if (matched) {
-			version = m.group(1);
-			while (version.length() < 3) {
-				version = "0" + version; //$NON-NLS-1$
-			}
-		}
-		return version;
-	}
-	/**
-	 * 
-	 * @param request
-	 * @param response
-	 *            HttpServletResponse or null (locale will not be persisted in
-	 *            session cookie)
-	 * @return
-	 */
-	public static Locale getLocaleObj(HttpServletRequest request,
-			HttpServletResponse response) {
-		String localeStr = getLocale(request, response);
-		return getLocale(localeStr);
-	}
-	
-	/**
-	 * Returns the locale object from the provided string.
-	 * @param localeStr the encoded locale string
-	 * @return the Locale object
-	 * 
-	 * @since 3.1
-	 */
-	public static Locale getLocale(String localeStr) {
-		if (localeStr.length() >= 5) {
-			return new Locale(localeStr.substring(0, 2), localeStr.substring(3,
-					5));
-		} else if (localeStr.length() >= 2) {
-			return new Locale(localeStr.substring(0, 2), ""); //$NON-NLS-1$
-		} else {
-			return Locale.getDefault();
-		}
-	}
-	/**
-	 * 
-	 * @param request
-	 * @param response
-	 *            HttpServletResponse or null (locale will not be persisted in
-	 *            session cookie)
-	 * @return
-	 */
-	public static String getLocale(HttpServletRequest request,
-			HttpServletResponse response) {
-		if (defaultLocale == null) {
-			initializeNL();
-		}
-		if ((BaseHelpSystem.getMode() != BaseHelpSystem.MODE_INFOCENTER)
-				|| request == null) {
-			return defaultLocale;
-		}
-
-		// use locale passed in a request in current user session
-		String forcedLocale = getForcedLocale(request, response);
-		if (forcedLocale != null) {
-			if (locales == null) {
-				// infocenter set up to serve any locale
-				return forcedLocale;
-			}
-			// match forced locale with one of infocenter locales
-			if (locales.contains(forcedLocale)) {
-				return forcedLocale;
-			}
-			// match language of forced locale with one of infocenter locales
-			if (forcedLocale.length() > 2) {
-				String ll = forcedLocale.substring(0, 2);
-				if (locales.contains(ll)) {
-					return ll;
-				}
-			}
-		}
-
-		// use one of the browser locales
-		if (locales == null) {
-			// infocenter set up to serve any locale
-			return request.getLocale().toString();
-		}
-		// match client browser locales with one of infocenter locales
-		for (Enumeration e = request.getLocales(); e.hasMoreElements();) {
-			String locale = ((Locale) e.nextElement()).toString();
-			if (locale.length() >= 5) {
-				String ll_CC = locale.substring(0, 5);
-				if (locales.contains(ll_CC)) {
-					// client locale available
-					return ll_CC;
-				}
-			}
-			if (locale.length() >= 2) {
-				String ll = locale.substring(0, 2);
-				if (locales.contains(ll)) {
-					// client language available
-					return ll;
-				}
-			}
-		}
-		// no match
-		return defaultLocale;
-	}
-
-	/**
-	 * Obtains locale passed as lang parameter with a request during user
-	 * session
-	 * 
-	 * @param request
-	 * @param response
-	 *            response or null; if null, locale will not be persisted (in
-	 *            session cookie)
-	 * @return ll_CC or ll or null
-	 */
-	private static String getForcedLocale(HttpServletRequest request,
-			HttpServletResponse response) {
-		// get locale passed in this request
-		String forcedLocale = request.getParameter("lang"); //$NON-NLS-1$
-		if (forcedLocale != null) {
-			// save locale (in session cookie) for later use in a user session
-			if (response != null) {
-				Cookie cookieTest = new Cookie("lang", forcedLocale); //$NON-NLS-1$
-				response.addCookie(cookieTest);
-			}
-		} else {
-			// check if locale was passed earlier in this session
-			Cookie[] cookies = request.getCookies();
-			for (int c = 0; cookies != null && c < cookies.length; c++) {
-				if ("lang".equals(cookies[c].getName())) { //$NON-NLS-1$
-					forcedLocale = cookies[c].getValue();
-					break;
-				}
-			}
-		}
-
-		// format forced locale
-		if (forcedLocale != null) {
-			if (forcedLocale.length() >= 5) {
-				forcedLocale = forcedLocale.substring(0, 2) + "_" //$NON-NLS-1$
-						+ forcedLocale.substring(3, 5);
-			} else if (forcedLocale.length() >= 2) {
-				forcedLocale = forcedLocale.substring(0, 2);
-			}
-		}
-		return forcedLocale;
-	}
-	/**
-	 * If locales for infocenter specified in prefernces or as command line
-	 * parameters, this methods stores these locales in locales local variable
-	 * for later access.
-	 */
-	private static synchronized void initializeNL() {
-		if (defaultLocale != null) {
-			// already initialized
-			return;
-		}
-		initializeLocales();
-		if ((BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER)) {
-			initializeIcDirection();
-		}
-
-	}
-	/**
-	 *  
-	 */
-	private static void initializeLocales() {
-		// initialize default locale
-		defaultLocale = Platform.getNL();
-		if (defaultLocale == null) {
-			defaultLocale = Locale.getDefault().toString();
-		}
-		if (BaseHelpSystem.getMode() != BaseHelpSystem.MODE_INFOCENTER) {
-			return;
-		}
-
-		// locale strings as passed in command line or in preferences
-		List infocenterLocales = null;
-
-		// first check if locales passed as command line arguments
-		String[] args = Platform.getCommandLineArgs();
-		boolean localeOption = false;
-		for (int i = 0; i < args.length; i++) {
-			if ("-locales".equalsIgnoreCase(args[i])) { //$NON-NLS-1$
-				localeOption = true;
-				infocenterLocales = new ArrayList();
-				continue;
-			} else if (args[i].startsWith("-")) { //$NON-NLS-1$
-				localeOption = false;
-				continue;
-			}
-			if (localeOption) {
-				infocenterLocales.add(args[i]);
-			}
-		}
-		// if no locales from command line, get them from preferences
-		if (infocenterLocales == null) {
-			StringTokenizer tokenizer = new StringTokenizer(HelpBasePlugin
-					.getDefault().getPluginPreferences().getString("locales"), //$NON-NLS-1$
-					" ,\t"); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				if (infocenterLocales == null) {
-					infocenterLocales = new ArrayList();
-				}
-				infocenterLocales.add(tokenizer.nextToken());
-			}
-		}
-
-		// format locales and collect in a set for lookup
-		if (infocenterLocales != null) {
-			locales = new HashSet(10, 0.4f);
-			for (Iterator it = infocenterLocales.iterator(); it.hasNext();) {
-				String locale = (String) it.next();
-				if (locale.length() >= 5) {
-					locales.add(locale.substring(0, 2).toLowerCase(Locale.ENGLISH) + "_" //$NON-NLS-1$
-							+ locale.substring(3, 5).toUpperCase(Locale.ENGLISH));
-
-				} else if (locale.length() >= 2) {
-					locales.add(locale.substring(0, 2).toLowerCase(Locale.ENGLISH));
-				}
-			}
-		}
-	}
-	
-	private static void initializeIcDirection() {
-		// from property
-		String orientation = System.getProperty("eclipse.orientation"); //$NON-NLS-1$
-		if ("rtl".equals(orientation)) { //$NON-NLS-1$
-			infocenterDirection = INFOCENTER_DIRECTION_RTL;
-			return;
-		} else if ("ltr".equals(orientation)) { //$NON-NLS-1$
-			infocenterDirection = INFOCENTER_DIRECTION_LTR;
-			return;
-		}
-		// from command line
-		String[] args = Platform.getCommandLineArgs();
-		for (int i = 0; i < args.length; i++) {
-			if ("-dir".equalsIgnoreCase(args[i])) { //$NON-NLS-1$
-				if ((i + 1) < args.length
-						&& "rtl".equalsIgnoreCase(args[i + 1])) { //$NON-NLS-1$
-					infocenterDirection = INFOCENTER_DIRECTION_RTL;
-					return;
-				}
-				infocenterDirection = INFOCENTER_DIRECTION_LTR;
-				return;
-			}
-		}
-		// by client locale
-	}
-	
-	public static boolean isRTL(HttpServletRequest request,
-			HttpServletResponse response) {
-		if (BaseHelpSystem.getMode() != BaseHelpSystem.MODE_INFOCENTER) {
-			return BaseHelpSystem.isRTL();
-		}
-		{
-			if (infocenterDirection == INFOCENTER_DIRECTION_RTL) {
-				return true;
-			} else if (infocenterDirection == INFOCENTER_DIRECTION_LTR) {
-				return false;
-			}
-			String locale = getLocale(request, response);
-			if (locale.startsWith("ar") || locale.startsWith("fa") //$NON-NLS-1$ //$NON-NLS-2$
-					|| locale.startsWith("he") || locale.startsWith("iw") //$NON-NLS-1$ //$NON-NLS-2$
-					| locale.startsWith("ur")) { //$NON-NLS-1$
-				return true;
-			}
-			return false;
-		}
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/View.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/View.java
deleted file mode 100644
index f115830..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/View.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-public class View {
-    public static char NO_SHORTCUT = (char)0;
-	private String name;
-	private String url;
-	private String imageURL;
-	private char shortcut;
-
-	public View(String name, String url, String imageURL, char shortcut) {
-		this.name = name;
-		this.url = url;
-		this.imageURL = imageURL;
-		this.shortcut = shortcut;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public String getURL() {
-		return url;
-	}
-
-	/**
-	 * Returns the enabled gray image
-	 * 
-	 * @return String
-	 */
-	public String getImage() {
-		int i = imageURL.lastIndexOf('/');
-		return imageURL.substring(0, i) + "/e_" + imageURL.substring(i + 1); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the image when selected
-	 * 
-	 * @return String
-	 */
-	public String getOnImage() {
-		return getImage();
-	}
-	/**
-	 * Returns the image when selected
-	 * 
-	 * @return char or 0 if no shortcut
-	 */
-	public char getKey() {
-		return shortcut;
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WebappPreferences.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WebappPreferences.java
deleted file mode 100644
index 5285eb0..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WebappPreferences.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.base.*;
-
-/**
- * Preferences for availiable to webapp
- */
-public class WebappPreferences {
-	Preferences prefs;
-	/**
-	 * Constructor.
-	 */
-	public WebappPreferences() {
-		prefs = HelpBasePlugin.getDefault().getPluginPreferences();
-	}
-	/**
-	 * @return String - URL of banner page or null
-	 */
-	public String getBanner() {
-		return prefs.getString("banner"); //$NON-NLS-1$
-	}
-
-	public String getBannerHeight() {
-		return prefs.getString("banner_height"); //$NON-NLS-1$
-	}
-
-	public String getHelpHome() {
-		return prefs.getString("help_home"); //$NON-NLS-1$
-	}
-
-	public boolean isIndexView() {
-		return "true".equals(prefs.getString("indexView")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean isBookmarksView() {
-		return BaseHelpSystem.getMode() != BaseHelpSystem.MODE_INFOCENTER
-				&& "true".equals(prefs.getString("bookmarksView")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean isBookmarksAction() {
-		return "true".equals(prefs.getString("bookmarksView")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean isLinksView() {
-		return BaseHelpSystem.getMode() != BaseHelpSystem.MODE_INFOCENTER
-				&& "true".equals(prefs.getString("linksView")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public String getImagesDirectory() {
-		String imagesDirectory = prefs.getString("imagesDirectory"); //$NON-NLS-1$
-		if (imagesDirectory != null && imagesDirectory.startsWith("/")) //$NON-NLS-1$
-			imagesDirectory = UrlUtil.getHelpURL(imagesDirectory);
-		return imagesDirectory;
-
-	}
-
-	public String getToolbarBackground() {
-		return prefs.getString("advanced.toolbarBackground"); //$NON-NLS-1$
-	}
-
-	public String getBasicToolbarBackground() {
-		return prefs.getString("basic.toolbarBackground"); //$NON-NLS-1$
-	}
-
-	public String getToolbarFont() {
-		return prefs.getString("advanced.toolbarFont"); //$NON-NLS-1$
-	}
-
-	public String getViewBackground() {
-		return prefs.getString("advanced.viewBackground"); //$NON-NLS-1$
-	}
-
-	public String getBasicViewBackground() {
-		return prefs.getString("basic.viewBackground"); //$NON-NLS-1$
-	}
-
-	public String getViewFont() {
-		return prefs.getString("advanced.viewFont"); //$NON-NLS-1$
-	}
-
-	public int getBookAtOnceLimit() {
-		return prefs.getInt("loadBookAtOnceLimit"); //$NON-NLS-1$
-	}
-
-	public int getLoadDepth() {
-		int value = prefs.getInt("dynamicLoadDepthsHint"); //$NON-NLS-1$
-		if (value < 1) {
-			return 1;
-		}
-		return value;
-	}
-	public boolean isWindowTitlePrefix() {
-		return "true".equalsIgnoreCase(prefs.getString("windowTitlePrefix")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public boolean isDontConfirmShowAll() {
-		return prefs.getBoolean("dontConfirmShowAll"); //$NON-NLS-1$
-	}
-	public void setDontConfirmShowAll(boolean dontconfirm) {
-		prefs.setValue("dontConfirmShowAll", dontconfirm); //$NON-NLS-1$
-	}
-	public boolean isActiveHelp() {
-		return "true".equalsIgnoreCase(prefs.getString("activeHelp")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean isIndexInstruction() {
-		return "true".equalsIgnoreCase(prefs.getString("indexInstruction")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean isIndexButton() {
-		return "true".equalsIgnoreCase(prefs.getString("indexButton")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean isIndexPlusMinus() {
-		return "true".equalsIgnoreCase(prefs.getString("indexPlusMinus")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean isIndexExpandAll() {
-		return "true".equalsIgnoreCase(prefs.getString("indexExpandAll")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java
deleted file mode 100644
index 1c5bffc..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.webapp.servlet.*;
-import org.eclipse.help.internal.workingset.*;
-
-/**
- * This class manages help working sets
- */
-public class WorkingSetData extends RequestData {
-	public final static short STATE_UNCHECKED = 0;
-	public final static short STATE_GRAYED = 1;
-	public final static short STATE_CHECKED = 2;
-
-	private WebappWorkingSetManager wsmgr;
-
-	private AdaptableToc[] tocs;
-	private boolean isEditMode;
-
-	public WorkingSetData(ServletContext context, HttpServletRequest request,
-			HttpServletResponse response) {
-		super(context, request, response);
-		wsmgr = new WebappWorkingSetManager(request, response, getLocale());
-		AdaptableTocsArray adaptableTocs = wsmgr.getRoot();
-		tocs = (AdaptableToc[]) adaptableTocs.getChildren();
-		isEditMode = "edit".equals(getOperation()); //$NON-NLS-1$
-	}
-
-	public boolean isEditMode() {
-		return isEditMode;
-	}
-
-	public String getWorkingSetName() {
-		String name = request.getParameter("workingSet"); //$NON-NLS-1$
-		if (name == null)
-			name = ""; //$NON-NLS-1$
-		return name;
-	}
-
-	public WorkingSet getWorkingSet() {
-		String name = getWorkingSetName();
-		if (name != null && name.length() > 0)
-			return wsmgr.getWorkingSet(name);
-		return null;
-	}
-
-	/**
-	 * Returns the state of the TOC
-	 * 
-	 * @return boolean
-	 */
-	public short getTocState(int toc) {
-		if (!isEditMode())
-			return STATE_UNCHECKED;
-		WorkingSet ws = getWorkingSet();
-		if (ws == null)
-			return STATE_UNCHECKED;
-		if (toc < 0 || toc >= tocs.length)
-			return STATE_UNCHECKED;
-
-		// See if the toc is in the working set
-		AdaptableToc adaptableToc = tocs[toc];
-		AdaptableHelpResource[] elements = ws.getElements();
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i] == adaptableToc)
-				return STATE_CHECKED;
-		}
-
-		// Check if it is grayed out
-		int topics = adaptableToc.getChildren().length;
-		boolean allTheSame = true;
-		short baseValue = STATE_UNCHECKED;
-		// base value is that of the first topic
-		if (topics > 0)
-			baseValue = getTopicState(toc, 0);
-		for (int i = 1; allTheSame && i < topics; i++)
-			allTheSame = allTheSame && (getTopicState(toc, i) == baseValue);
-
-		if (!allTheSame)
-			return STATE_GRAYED;
-		return STATE_UNCHECKED;
-	}
-
-	/**
-	 * Returns the state of the topic. The state is not dependent on the parent
-	 * toc, but only whether it was part of the working set. To get the real
-	 * state, the caller must use the parent state as well. This is not done
-	 * here for performance reasons. In the JSP, by the time one looks at the
-	 * topic, the parent toc has already been processed.
-	 * 
-	 * @param toc
-	 * @param topic
-	 * @return short
-	 */
-	public short getTopicState(int toc, int topic) {
-		if (!isEditMode)
-			return STATE_UNCHECKED;
-		WorkingSet ws = getWorkingSet();
-		if (ws == null)
-			return STATE_UNCHECKED;
-		if (toc < 0 || toc >= tocs.length)
-			return STATE_UNCHECKED;
-
-		AdaptableToc parent = tocs[toc];
-		AdaptableTopic[] topics = (AdaptableTopic[]) parent.getChildren();
-		if (topic < 0 || topic >= topics.length)
-			return STATE_UNCHECKED;
-		AdaptableTopic adaptableTopic = topics[topic];
-		AdaptableHelpResource[] elements = ws.getElements();
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i] == adaptableTopic)
-				return STATE_CHECKED;
-		}
-		return STATE_UNCHECKED;
-	}
-
-	public String getOperation() {
-		return request.getParameter("operation"); //$NON-NLS-1$
-	}
-
-	// Accessor methods to avoid exposing help classes directly to JSP.
-	// Note: this seems ok for now, but maybe we need to reconsider this
-	//       and allow help classes in JSP's.
-
-	public int getTocCount() {
-		return tocs.length;
-	}
-
-	public String getTocLabel(int i) {
-		return tocs[i].getLabel();
-	}
-
-	public String getTocHref(int i) {
-		return tocs[i].getHref();
-	}
-
-	public int getTopicCount(int toc) {
-		return tocs[toc].getTopics().length;
-	}
-
-	public String getTopicLabel(int toc, int topic) {
-		return tocs[toc].getTopics()[topic].getLabel();
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java
deleted file mode 100644
index e989fce..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.data;
-
-import java.io.*;
-import java.util.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.webapp.servlet.*;
-import org.eclipse.help.internal.workingset.*;
-
-/**
- * This class manages help working sets
- */
-public class WorkingSetManagerData extends RequestData {
-	private final static int NONE = 0;
-	private final static int ADD = 1;
-	private final static int REMOVE = 2;
-	private final static int EDIT = 3;
-
-	private String name;
-	private WebappWorkingSetManager wsmgr;
-	// Indicates whether operation specified in the request failed
-	private boolean saved = true;
-
-	public WorkingSetManagerData(ServletContext context,
-			HttpServletRequest request, HttpServletResponse response) {
-		super(context, request, response);
-		wsmgr = new WebappWorkingSetManager(request, response, getLocale());
-		name = request.getParameter("workingSet"); //$NON-NLS-1$
-		try {
-			switch (getOperation()) {
-				case ADD :
-					addWorkingSet();
-					break;
-				case REMOVE :
-					removeWorkingSet();
-					break;
-				case EDIT :
-					editWorkingSet();
-					break;
-				default :
-					break;
-			}
-		} catch (IOException ioe) {
-			saved = false;
-		}
-	}
-
-	public void addWorkingSet() throws IOException {
-		if (name != null && name.length() > 0) {
-
-			String[] hrefs = request.getParameterValues("hrefs"); //$NON-NLS-1$
-			if (hrefs == null)
-				hrefs = new String[0];
-
-			ArrayList selectedElements = new ArrayList(hrefs.length);
-			for (int i = 0; i < hrefs.length; i++) {
-				AdaptableHelpResource res = getAdaptableHelpResource(hrefs[i]);
-				if (res != null)
-					selectedElements.add(res);
-			}
-
-			AdaptableHelpResource[] elements = new AdaptableHelpResource[selectedElements
-					.size()];
-			selectedElements.toArray(elements);
-			WorkingSet ws = wsmgr.createWorkingSet(name, elements);
-			wsmgr.addWorkingSet(ws);
-		}
-	}
-
-	public void removeWorkingSet() {
-		if (name != null && name.length() > 0) {
-
-			WorkingSet ws = wsmgr.getWorkingSet(name);
-			if (ws != null)
-				wsmgr.removeWorkingSet(ws);
-		}
-	}
-
-	public void editWorkingSet() throws IOException {
-		if (name != null && name.length() > 0) {
-
-			String oldName = request.getParameter("oldName"); //$NON-NLS-1$
-			if (oldName == null || oldName.length() == 0)
-				oldName = name;
-			WorkingSet ws = wsmgr.getWorkingSet(oldName);
-			if (ws != null) {
-				String[] hrefs = request.getParameterValues("hrefs"); //$NON-NLS-1$
-				if (hrefs == null)
-					hrefs = new String[0];
-
-				ArrayList selectedElements = new ArrayList(hrefs.length);
-				for (int i = 0; i < hrefs.length; i++) {
-					AdaptableHelpResource res = getAdaptableHelpResource(hrefs[i]);
-					if (res != null)
-						selectedElements.add(res);
-				}
-
-				AdaptableHelpResource[] elements = new AdaptableHelpResource[selectedElements
-						.size()];
-				selectedElements.toArray(elements);
-
-				ws.setElements(elements);
-				ws.setName(name);
-				// should also change the name....
-
-				// We send this notification, so that the manager fires to its
-				// listeners
-				wsmgr.workingSetChanged(ws);
-			}
-		}
-	}
-
-	public String[] getWorkingSets() {
-		WorkingSet[] workingSets = wsmgr.getWorkingSets();
-		String[] sets = new String[workingSets.length];
-		for (int i = 0; i < workingSets.length; i++)
-			sets[i] = workingSets[i].getName();
-
-		return sets;
-	}
-
-	public String getWorkingSetName() {
-		if (name == null || name.length() == 0) {
-			// See if anything is set in the preferences
-			name = wsmgr.getCurrentWorkingSet();
-			if (name == null || name.length() == 0
-					|| wsmgr.getWorkingSet(name) == null)
-				name = ServletResources.getString("All", request); //$NON-NLS-1$
-		}
-		return name;
-	}
-
-	public WorkingSet getWorkingSet() {
-		if (name != null && name.length() > 0)
-			return wsmgr.getWorkingSet(name);
-		return null;
-	}
-
-	public boolean isCurrentWorkingSet(int i) {
-		WorkingSet[] workingSets = wsmgr.getWorkingSets();
-		return workingSets[i].getName().equals(name);
-	}
-
-	private int getOperation() {
-		String op = request.getParameter("operation"); //$NON-NLS-1$
-		if ("add".equals(op)) //$NON-NLS-1$
-			return ADD;
-		else if ("remove".equals(op)) //$NON-NLS-1$
-			return REMOVE;
-		else if ("edit".equals(op)) //$NON-NLS-1$
-			return EDIT;
-		else
-			return NONE;
-	}
-
-	private AdaptableHelpResource getAdaptableHelpResource(String internalId) {
-		AdaptableHelpResource res = wsmgr.getAdaptableToc(internalId);
-		if (res == null)
-			res = wsmgr.getAdaptableTopic(internalId);
-		return res;
-	}
-	/**
-	 * @return null or error message if saving saved
-	 */
-	public String getSaveError() {
-		if (saved) {
-			return null;
-		}
-		return UrlUtil.JavaScriptEncode(ServletResources.getString(
-				"cookieSaveFailed", request)); //$NON-NLS-1$
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContentServlet.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContentServlet.java
deleted file mode 100644
index bfc39c3..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContentServlet.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-/**
- * Servlet to interface client with remote Eclipse
- */
-public class ContentServlet extends HttpServlet {
-	private static final long serialVersionUID = 1L;
-	private EclipseConnector connector;
-
-	/**
-	 */
-	public void init() throws ServletException {
-		try {
-			connector = new EclipseConnector(getServletContext());
-		} catch (Throwable e) {
-			throw new ServletException(e);
-		}
-	}
-
-	/**
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a GET request.
-	 */
-	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$
-		if (connector != null) {
-			connector.transfer(req, resp);
-		}
-	}
-	/**
-	 * 
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a POST request.
-	 * 
-	 * Handle the search requests,
-	 *  
-	 */
-	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		if (connector != null)
-			connector.transfer(req, resp);
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContextServlet.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContextServlet.java
deleted file mode 100644
index 19593b1..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ContextServlet.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.*;
-import org.eclipse.help.internal.*;
-import org.eclipse.help.internal.webapp.data.*;
-
-/**
- * Returns context sensitive help information.
- * http://server/help/context/plugin.id.context.id
- */
-public class ContextServlet extends HttpServlet {
-	private static final long serialVersionUID = 1L;
-	protected String locale;
-
-	/**
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a GET request.
-	 */
-	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-
-		locale = UrlUtil.getLocale(req, resp);
-		req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$
-
-		resp.setContentType("application/xml; charset=UTF-8"); //$NON-NLS-1$
-		resp.setHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		String contextId = req.getPathInfo();
-		if (contextId == null || contextId.length() < 2)
-			throw new ServletException();
-		contextId = contextId.substring(1);
-		IContext context = HelpSystem.getContext(contextId);
-		if (context == null)
-			throw new ServletException();
-
-		ContextWriter resultsWriter = new ContextWriter(resp.getWriter(),
-				locale);
-		resultsWriter.generate(contextId, context, resp);
-		resultsWriter.close();
-	}
-	/**
-	 * 
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a POST request.
-	 * 
-	 * Handle the search requests,
-	 *  
-	 */
-	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-
-		doGet(req, resp);
-	}
-
-	/**
-	 * This generates the XML file for the help navigation.
-	 */
-	private class ContextWriter extends XMLGenerator {
-		public ContextWriter(Writer writer, String locale) {
-			super(writer);
-		}
-
-		/**
-		 * XML representation of context info.
-		 */
-		public void generate(String contextId, IContext context,
-				HttpServletResponse resp) {
-
-			println("<context id=\"" + contextId + "\">"); //$NON-NLS-1$ //$NON-NLS-2$
-			pad++;
-			printPad();
-			print("<description>"); //$NON-NLS-1$
-			print(context.getText());
-			println("</description>"); //$NON-NLS-1$
-
-			IHelpResource[] links = context.getRelatedTopics();
-			if (links == null)
-				links = new IHelpResource[0];
-
-			for (int i = 0; i < links.length; i++) {
-				printPad();
-				print("<topic label=\"" //$NON-NLS-1$
-						+ xmlEscape(links[i].getLabel()) + "\"" //$NON-NLS-1$
-						+ " href=\"" //$NON-NLS-1$
-						+ links[i].getHref() + "\""); //$NON-NLS-1$
-				IToc toc = findTocForTopic(links[i].getHref());
-				if (toc != null) {
-					print(" toc=\"" //$NON-NLS-1$
-							+ toc.getHref() + "\"" //$NON-NLS-1$
-							+ " toclabel=\"" //$NON-NLS-1$
-							+ toc.getLabel() + "\""); //$NON-NLS-1$
-				}
-				print(" />"); //$NON-NLS-1$
-			}
-			pad--;
-			println("</context>"); //$NON-NLS-1$
-		}
-
-		/**
-		 * Finds a topic in a bookshelf or within a scope if specified
-		 */
-		IToc findTocForTopic(String href) {
-			IToc[] tocs = HelpPlugin.getTocManager().getTocs(locale);
-			for (int i = 0; i < tocs.length; i++) {
-				ITopic topic = tocs[i].getTopic(href);
-				if (topic != null)
-					return tocs[i];
-			}
-			return null;
-		}
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ControlServlet.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ControlServlet.java
deleted file mode 100644
index 55481f5..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/ControlServlet.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.webapp.data.*;
-import org.osgi.framework.*;
-
-/**
- * Servlet to control Eclipse helpApplication from standalone application.
- * Accepts the following parameters: command=displayHelp | shutdown
- * | install | update | enable | disable | uninstall | search | listFeatures
- * | addSite | removeSite | apply.  
- * href - may be provided if comand==displayHelp.
- * featureId, version, from, to, verifyOnly may be provided for update commands
- */
-public class ControlServlet extends HttpServlet {
-	private static final long serialVersionUID = 1L;
-	public static final String UPDATE_PLUGIN_ID = "org.eclipse.update.core"; //$NON-NLS-1$
-
-	public static final String CMD_DISPLAYHELP = "displayHelp"; //$NON-NLS-1$
-
-	public static final String CMD_SHUTDOWN = "shutdown"; //$NON-NLS-1$
-
-	public static final String CMD_INSTALL = "install"; //$NON-NLS-1$
-
-	public static final String CMD_UPDATE = "update"; //$NON-NLS-1$
-
-	public static final String CMD_ENABLE = "enable"; //$NON-NLS-1$
-
-	public static final String CMD_DISABLE = "disable"; //$NON-NLS-1$
-
-	public static final String CMD_UNINSTALL = "uninstall"; //$NON-NLS-1$
-
-	public static final String CMD_SEARCH = "search"; //$NON-NLS-1$
-
-	public static final String CMD_LIST = "listFeatures"; //$NON-NLS-1$
-
-	public static final String CMD_ADDSITE = "addSite"; //$NON-NLS-1$
-
-	public static final String CMD_APPLY = "apply"; //$NON-NLS-1$
-
-	public static final String CMD_REMOVESITE = "removeSite"; //$NON-NLS-1$
-
-	public static final String PACKAGE_PREFIX = "org.eclipse.update.standalone."; //$NON-NLS-1$
-
-	public static final String CLASS_INSTALL = PACKAGE_PREFIX
-			+ "InstallCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_UPDATE = PACKAGE_PREFIX + "UpdateCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_ENABLE = PACKAGE_PREFIX + "EnableCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_DISABLE = PACKAGE_PREFIX
-			+ "DisableCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_UNINSTALL = PACKAGE_PREFIX
-			+ "UninstallCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_SEARCH = PACKAGE_PREFIX + "SearchCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_LIST = PACKAGE_PREFIX
-			+ "ListFeaturesCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_ADDSITE = PACKAGE_PREFIX
-			+ "AddSiteCommand"; //$NON-NLS-1$
-
-	public static final String CLASS_REMOVESITE = PACKAGE_PREFIX
-			+ "RemoveSiteCommand"; //$NON-NLS-1$
-
-	public static final String PARAM_FEATUREID = "featureId"; //$NON-NLS-1$
-
-	public static final String PARAM_VERSION = "version"; //$NON-NLS-1$
-
-	public static final String PARAM_FROM = "from"; //$NON-NLS-1$
-
-	public static final String PARAM_TO = "to"; //$NON-NLS-1$
-
-	public static final String PARAM_VERIFYONLY = "verifyOnly"; //$NON-NLS-1$
-
-	private HelpDisplay helpDisplay = null;
-
-	private boolean shuttingDown = false;
-
-	/**
-	 * Called by the servlet container to indicate to a servlet that the servlet
-	 * is being placed into service.
-	 */
-	public void init() throws ServletException {
-		super.init();
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_STANDALONE) {
-			helpDisplay = BaseHelpSystem.getHelpDisplay();
-		}
-	}
-
-	/**
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a GET request.
-	 */
-	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		processRequest(req, resp);
-	}
-
-	/**
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a POST request.
-	 */
-	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		processRequest(req, resp);
-	}
-
-	private void processRequest(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-
-		req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$
-
-		// for HTTP 1.1
-		resp.setHeader("Cache-Control", "no-cache"); //$NON-NLS-1$ //$NON-NLS-2$
-		// for HTTP 1.0
-		resp.setHeader("Pragma", "no-cache"); //$NON-NLS-1$ //$NON-NLS-2$
-		resp.setDateHeader("Expires", 0); //$NON-NLS-1$
-		//prevents caching at the proxy server
-
-		if (!UrlUtil.isLocalRequest(req)) {
-			// do not allow remote clients to execute this servlet
-			return;
-		}
-		if (!"/helpControl".equals(req.getContextPath()) //$NON-NLS-1$
-				|| !"/control.html".equals(req.getServletPath())) { //$NON-NLS-1$
-			// do not allow arbitrary URLs to execute this servlet
-			resp.sendError(HttpServletResponse.SC_FORBIDDEN, ""); //$NON-NLS-1$
-			return;
-		}
-
-		if (shuttingDown) {
-			return;
-		}
-
-		String command = req.getParameter("command"); //$NON-NLS-1$
-		if (command == null) {
-			// this should never happen and is invisible to the user
-			resp.getWriter().print("No command."); //$NON-NLS-1$
-			return;
-		}
-
-		if (CMD_SHUTDOWN.equalsIgnoreCase(command)) {
-			shutdown();
-		} else if (CMD_DISPLAYHELP.equalsIgnoreCase(command)) {
-			if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_STANDALONE) {
-				displayHelp(req);
-			}
-		} else if (CMD_INSTALL.equalsIgnoreCase(command)
-				|| CMD_ENABLE.equalsIgnoreCase(command)
-				|| CMD_UPDATE.equalsIgnoreCase(command)
-				|| CMD_DISABLE.equalsIgnoreCase(command)
-				|| CMD_UNINSTALL.equalsIgnoreCase(command)
-				|| CMD_SEARCH.equalsIgnoreCase(command)
-				|| CMD_LIST.equalsIgnoreCase(command)
-				|| CMD_ADDSITE.equalsIgnoreCase(command)
-				|| CMD_REMOVESITE.equalsIgnoreCase(command)
-				|| CMD_APPLY.equalsIgnoreCase(command)) {
-			updateDocs(command, req);
-		} else {
-			// this should never happen and is invisible to the user
-			resp.getWriter().print("Unrecognized command."); //$NON-NLS-1$
-		}
-	}
-
-	private void updateDocs(String command, HttpServletRequest req) {
-		Bundle bundle = Platform.getBundle(UPDATE_PLUGIN_ID);
-		if (bundle == null) {
-			// no update plugin present
-			return;
-		}
-		try {
-			String className = getStandaloneClassName(command);
-			if (className == null) {
-				System.out.println("No class name for command " + command);
-				return;
-			}
-			Class c = bundle.loadClass(className);
-			if (c == null) {
-				System.out.println("No class for command " + command);
-				return;
-			}
-			Class[] parameterTypes = getParameterTypes(className);
-			Constructor constr = c.getConstructor(parameterTypes);
-			if (constr == null) {
-				System.out.println("No expected constructor for command "
-						+ command);
-				return;
-			}
-			Method m;
-			if (!CMD_APPLY.equalsIgnoreCase(command)) {
-				m = c.getMethod("run", new Class[]{}); //$NON-NLS-1$
-			} else {
-				m = c.getMethod("applyChangesNow", new Class[]{}); //$NON-NLS-1$
-			}
-			Object[] initargs = getInitArgs(className, req);
-			Object o = constr.newInstance(initargs);
-			Object ret = m.invoke(o, new Object[]{});
-			if (!CMD_APPLY.equalsIgnoreCase(command) &&((Boolean)ret).equals(Boolean.FALSE)){
-				System.out.println("Command not executed.");
-			} else {
-				System.out.println("Command executed.");
-			}
-		} catch (Exception e) {
-			Throwable t = e;
-			if (e instanceof InvocationTargetException) {
-				t = ((InvocationTargetException) e).getTargetException();
-			}
-			System.out.println(t.getLocalizedMessage());
-			//t.printStackTrace();
-		}
-	}
-
-	private String getStandaloneClassName(String command) {
-		if (CMD_INSTALL.equalsIgnoreCase(command))
-			return CLASS_INSTALL;
-		else if (CMD_UPDATE.equalsIgnoreCase(command))
-			return CLASS_UPDATE;
-		else if (CMD_ENABLE.equalsIgnoreCase(command))
-			return CLASS_ENABLE;
-		else if (CMD_DISABLE.equalsIgnoreCase(command))
-			return CLASS_DISABLE;
-		else if (CMD_UNINSTALL.equalsIgnoreCase(command))
-			return CLASS_UNINSTALL;
-		else if (CMD_SEARCH.equalsIgnoreCase(command))
-			return CLASS_SEARCH;
-		else if (CMD_LIST.equalsIgnoreCase(command)
-				|| CMD_APPLY.equalsIgnoreCase(command))
-			return CLASS_LIST;
-		else if (CMD_ADDSITE.equalsIgnoreCase(command))
-			return CLASS_ADDSITE;
-		else if (CMD_REMOVESITE.equalsIgnoreCase(command))
-			return CLASS_REMOVESITE;
-		else
-			return null;
-	}
-
-	private Class[] getParameterTypes(String className) {
-		if (CLASS_INSTALL.equals(className))
-			return new Class[]{String.class, String.class, String.class,
-					String.class, String.class};
-		else if (CLASS_UPDATE.equals(className))
-			return new Class[]{String.class, String.class, String.class};
-		else if (CLASS_ENABLE.equals(className)
-				|| CLASS_DISABLE.equals(className)
-				|| CLASS_UNINSTALL.equals(className))
-			return new Class[]{String.class, String.class, String.class,
-					String.class};
-		else
-			return new Class[]{String.class};
-	}
-
-	private Object[] getInitArgs(String className, HttpServletRequest req) {
-		String featureId = req.getParameter(PARAM_FEATUREID); 
-		String version = req.getParameter(PARAM_VERSION); 
-		String fromSite = req.getParameter(PARAM_FROM); 
-		String toSite = req.getParameter(PARAM_TO); 
-		String verifyOnly = req.getParameter(PARAM_VERIFYONLY); 
-		if (CLASS_INSTALL.equals(className))
-			return new Object[]{featureId, version, fromSite, toSite,
-					verifyOnly};
-		else if (CLASS_UPDATE.equals(className))
-			return new Object[]{featureId, version, verifyOnly};
-		else if (CLASS_ENABLE.equals(className)
-				|| CLASS_DISABLE.equals(className)
-				|| CLASS_UNINSTALL.equals(className))
-			return new Object[]{featureId, version, toSite, verifyOnly};
-		else if (CLASS_REMOVESITE.equals(className))
-			return new Object[]{toSite};
-		else
-			return new Object[]{fromSite};
-	}
-
-	/**
-	 * Shuts-down Eclipse helpApplication.
-	 */
-	private void shutdown() {
-		shuttingDown = true;
-		HelpApplication.stop();
-	}
-
-	/**
-	 * Displays help.
-	 * 
-	 * @param req
-	 *            HttpServletRequest that might contain href parameter, which is
-	 *            the resource to display
-	 */
-	private void displayHelp(HttpServletRequest req) {
-		String href = req.getParameter("href"); //$NON-NLS-1$
-		if (href != null) {
-			helpDisplay.displayHelpResource(href, false);
-		} else {
-			helpDisplay.displayHelp(false);
-		}
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/CookieUtil.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
deleted file mode 100644
index 7f27b6a..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.webapp.*;
-import org.eclipse.help.internal.webapp.data.*;
-
-/**
- * Utilities for working with cookies
- * 
- * @since 3.0
- */
-public class CookieUtil {
-	private static final int COOKIE_LIFE = 5 * 365 * 24 * 60 * 60;
-	private static final int MAX_COOKIE_PAYLOAD = 4096
-			- "wset01=".length() - "81920<".length() - 1; //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * @return null or String
-	 */
-	public static String getCookieValue(String name, HttpServletRequest request) {
-		String ret = null;
-		Cookie[] cookies = request.getCookies();
-		if (cookies != null) {
-			for (int i = 0; i < cookies.length; i++) {
-				if (name.equals(cookies[i].getName())) {
-					ret = cookies[i].getValue();
-					break;
-				}
-			}
-		}
-		if (HelpWebappPlugin.DEBUG_WORKINGSETS) {
-			System.out.println("CookieUtil.getCookieValue(" //$NON-NLS-1$
-					+ name + ", " //$NON-NLS-1$
-					+ request.getRequestURI() + ") returning " //$NON-NLS-1$
-					+ ret);
-		}
-		return ret;
-	}
-	public static void setCookieValue(String name, String value,
-			HttpServletResponse response) {
-		Cookie cookie = new Cookie(name, value);
-		cookie.setMaxAge(COOKIE_LIFE);
-		response.addCookie(cookie);
-		if (HelpWebappPlugin.DEBUG_WORKINGSETS) {
-			System.out
-					.println("CookieUtil.setCookieValue(" + name + ", " + value + ",...)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	public static void deleteCookie(String name, HttpServletResponse response) {
-		Cookie cookie = new Cookie(name, ""); //$NON-NLS-1$
-		cookie.setMaxAge(0);
-		response.addCookie(cookie);
-	}
-	/**
-	 * Saves string in multiple browser cookies. Cookies can store limited
-	 * length string. This method will attemt to split string among multiple
-	 * cookies. The following cookies will be set name1=length <substing1
-	 * name2=substrging2 ... namen=substringn
-	 * 
-	 * @param data
-	 *            a string containing legal characters for cookie value
-	 * @throws IOException
-	 *             when data is too long.
-	 */
-	public static void saveString(String name, String data, int maxCookies,
-			HttpServletRequest request, HttpServletResponse response)
-			throws IOException {
-		int len = data.length();
-		int n = len / MAX_COOKIE_PAYLOAD;
-		if (n > maxCookies) {
-			throw new IOException(WebappResources.getString(
-					"CookieUtil.tooManyCookiesNeeded", UrlUtil.getLocaleObj( //$NON-NLS-1$
-							request, response)));
-		}
-		for (int i = 1; i <= n; i++) {
-			if (i == 1) {
-				setCookieValue(name + "1", //$NON-NLS-1$
-						len + "<" + data.substring(0, MAX_COOKIE_PAYLOAD), //$NON-NLS-1$
-						response);
-			} else {
-				setCookieValue(name + i, data.substring(MAX_COOKIE_PAYLOAD
-						* (i - 1), MAX_COOKIE_PAYLOAD * i), response);
-			}
-		}
-		if (len % MAX_COOKIE_PAYLOAD > 0) {
-			if (n == 0) {
-				setCookieValue(name + "1", //$NON-NLS-1$
-						len + "<" + data.substring(0, len), //$NON-NLS-1$
-						response);
-			} else {
-				setCookieValue(name + (n + 1), data.substring(
-						MAX_COOKIE_PAYLOAD * n, len), response);
-			}
-		}
-
-		// if using less cookies than maximum, delete not needed cookies from
-		// last time
-		for (int i = n + 1; i <= maxCookies; i++) {
-			if (i == n + 1 && len % MAX_COOKIE_PAYLOAD > 0) {
-				continue;
-			}
-			if (getCookieValue(name + i, request) != null) {
-				deleteCookie(name + i, response);
-			} else {
-				break;
-			}
-		}
-	}
-	/**
-	 * @return null or String
-	 */
-	public static String restoreString(String name, HttpServletRequest request) {
-		String value1 = CookieUtil.getCookieValue(name + "1", request); //$NON-NLS-1$
-		if (value1 == null) {
-			// no cookie
-			return null;
-		}
-		String lengthAndSubstring1[] = value1.split("<"); //$NON-NLS-1$
-		if (lengthAndSubstring1.length < 2) {
-			return null;
-		}
-		int len = 0;
-		try {
-			len = Integer.parseInt(lengthAndSubstring1[0]);
-		} catch (NumberFormatException nfe) {
-			return null;
-		}
-		if (len <= 0) {
-			return null;
-		}
-		StringBuffer data = new StringBuffer(len);
-		data.append(lengthAndSubstring1[1]);
-		int n = len / MAX_COOKIE_PAYLOAD;
-		for (int i = 2; i <= n; i++) {
-			String substring = CookieUtil.getCookieValue(name + i, request);
-			if (substring == null) {
-				return null;
-			}
-			data.append(substring);
-		}
-		if (len % MAX_COOKIE_PAYLOAD > 0 && n > 0) {
-			String substring = CookieUtil.getCookieValue(name + (n + 1),
-					request);
-			if (substring == null) {
-				return null;
-			}
-			data.append(substring);
-		}
-
-		if (data.length() != len) {
-			return null;
-		}
-
-		return data.toString();
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java
deleted file mode 100644
index 5df86c3..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.protocols.*;
-import org.eclipse.help.internal.webapp.data.*;
-
-/**
- * Performs transfer of data from eclipse to a jsp/servlet
- */
-public class EclipseConnector {
-	//private ServletContext context;
-	private static final String errorPageBegin = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n" //$NON-NLS-1$
-			+ "<html><head>\n" //$NON-NLS-1$
-			+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" //$NON-NLS-1$
-			+ "</head>\n" //$NON-NLS-1$
-			+ "<body><p>\n"; //$NON-NLS-1$
-	private static final String errorPageEnd = "</p></body></html>"; //$NON-NLS-1$
-	private static final IFilter filters[] = new IFilter[]{
-			new HighlightFilter(), new FramesetFilter(), new InjectionFilter()};
-
-	/**
-	 * Constructor.
-	 */
-	public EclipseConnector(ServletContext context) {
-		//this.context = context;
-	}
-
-	public void transfer(HttpServletRequest req, HttpServletResponse resp)
-			throws IOException {
-
-		try {
-
-			String url = getURL(req);
-			if (url == null)
-				return;
-			if (url.toLowerCase(Locale.ENGLISH).startsWith("file:/") //$NON-NLS-1$
-					|| url.toLowerCase(Locale.ENGLISH).startsWith("jar:file:/")) { //$NON-NLS-1$
-				int i = url.indexOf('?');
-				if (i != -1)
-					url = url.substring(0, i);
-				// ensure the file is only accessed from a local installation
-				if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER
-						|| !UrlUtil.isLocalRequest(req)) {
-					return;
-				}
-			} else {
-				// enable activities matching url
-				// HelpBasePlugin.getActivitySupport().enableActivities(url);
-
-				url = "help:" + url; //$NON-NLS-1$
-			}
-
-			URLConnection con = openConnection(url, req, resp);
-			resp.setContentType(con.getContentType());
-
-			long maxAge = 0;
-			try {
-				// getExpiration() throws NullPointerException when URL is
-				// jar:file:...
-				long expiration = con.getExpiration();
-				maxAge = (expiration - System.currentTimeMillis()) / 1000;
-				if (maxAge < 0)
-					maxAge = 0;
-			} catch (Exception e) {
-			}
-			resp.setHeader("Cache-Control", "max-age=" + maxAge); //$NON-NLS-1$ //$NON-NLS-2$
-
-			InputStream is;
-			try {
-				is = con.getInputStream();
-			} catch (IOException ioe) {
-				if (url.toLowerCase(Locale.ENGLISH).endsWith("htm") //$NON-NLS-1$
-						|| url.toLowerCase(Locale.ENGLISH).endsWith("html")) { //$NON-NLS-1$
-					String error = errorPageBegin
-							+ ServletResources.getString("noTopic", req) //$NON-NLS-1$
-							+ errorPageEnd;
-					is = new ByteArrayInputStream(error.getBytes("UTF8")); //$NON-NLS-1$
-				} else {
-					return;
-				}
-			}
-
-			OutputStream out = resp.getOutputStream();
-			for (int i = 0; i < filters.length; i++) {
-				out = filters[i].filter(req, out);
-			}
-
-			transferContent(is, out);
-			out.flush();
-			is.close();
-
-		} catch (Exception e) {
-			//e.printStackTrace();
-		}
-	}
-
-	/**
-	 * Write the body to the response
-	 */
-	private void transferContent(InputStream inputStream, OutputStream out)
-			throws IOException {
-		try {
-			// Prepare the input stream for reading
-			BufferedInputStream dataStream = new BufferedInputStream(
-					inputStream);
-
-			// Create a fixed sized buffer for reading.
-			// We could create one with the size of availabe data...
-			byte[] buffer = new byte[4096];
-			int len = 0;
-			while (true) {
-				len = dataStream.read(buffer); // Read file into the byte array
-				if (len == -1)
-					break;
-				out.write(buffer, 0, len);
-			}
-		} catch (Exception e) {
-			// e.printStackTrace();
-		}
-	}
-
-	/**
-	 * Gets content from the named url (this could be and eclipse defined url)
-	 */
-	private URLConnection openConnection(String url,
-			HttpServletRequest request, HttpServletResponse response)
-			throws Exception {
-		//System.out.println("help content for: " + url);
-
-		URLConnection con = null;
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER) {
-			// it is an infocentre, add client locale to url
-			String locale = UrlUtil.getLocale(request, response);
-			if (url.indexOf('?') >= 0) {
-				url = url + "&lang=" + locale; //$NON-NLS-1$
-			} else {
-				url = url + "?lang=" + locale; //$NON-NLS-1$
-			}
-		}
-		// URL helpURL = new URL(url);
-		URL helpURL;
-		if (url.startsWith("help:")) { //$NON-NLS-1$
-			helpURL = new URL("help", //$NON-NLS-1$
-					null, -1, url.substring("help:".length()), //$NON-NLS-1$
-					HelpURLStreamHandler.getDefault());
-		} else {
-			if (url.startsWith("jar:")) {
-				// fix for bug 83929
-				int excl = url.indexOf("!/");
-				String jar = url.substring(0, excl);
-				String path = url.length() > excl + 2 ? url.substring(excl + 2)
-						: "";
-				url = jar.replaceAll("!", "%21") + "!/"
-						+ path.replaceAll("!", "%21");
-			}
-			helpURL = new URL(url);
-		}
-		String protocol = helpURL.getProtocol();
-		if (!("help".equals(protocol) //$NON-NLS-1$
-				|| "file".equals(protocol) //$NON-NLS-1$
-		|| "jar".equals(protocol))) { //$NON-NLS-1$
-			throw new IOException();
-		}
-		con = helpURL.openConnection();
-
-		con.setAllowUserInteraction(false);
-		con.setDoInput(true);
-		con.connect();
-		return con;
-	}
-
-	/**
-	 * Extracts the url from a request
-	 */
-	private String getURL(HttpServletRequest req) {
-		String query = ""; //$NON-NLS-1$
-		boolean firstParam = true;
-		for (Enumeration params = req.getParameterNames(); params
-				.hasMoreElements();) {
-			String param = (String) params.nextElement();
-			String[] values = req.getParameterValues(param);
-			if (values == null)
-				continue;
-			for (int i = 0; i < values.length; i++) {
-				if (firstParam) {
-					query += "?" + param + "=" + values[i]; //$NON-NLS-1$ //$NON-NLS-2$
-					firstParam = false;
-				} else
-					query += "&" + param + "=" + values[i]; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-
-		// the request contains the eclipse url help: or search:
-		String url = req.getPathInfo() + query;
-		if (url.startsWith("/")) //$NON-NLS-1$
-			url = url.substring(1);
-		return url;
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java
deleted file mode 100644
index b7b2d1f..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadAndBodyOutputStream.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.eclipse.help.internal.search.HTMLDocParser;
-
-/**
- * Filters output stream and inserts specified bytes before the end of HEAD
- * element (before &lt;/html&gt; tag) and immediately after the BODY 
- * element tag of HTML in the stream.
- */
-public class FilterHTMLHeadAndBodyOutputStream extends FilterOutputStream {
-	private static final int STATE_START = 0;
-
-	private static final int STATE_LT = 1;
-
-	private static final int STATE_LT_SLASH = 2;
-
-	private static final int STATE_LT_SLASH_H = 3;
-
-	private static final int STATE_LT_SLASH_HE = 4;
-
-	private static final int STATE_LT_SLASH_HEA = 5;
-
-	private static final int STATE_LT_SLASH_HEAD = 6;
-
-	private static final int STATE_AFTER_HEAD = 7;
-
-	private static final int STATE_LT_B = 8;
-
-	private static final int STATE_LT_BO = 9;
-
-	private static final int STATE_LT_BOD = 10;
-
-	private static final int STATE_LT_BODY = 11;
-
-	private static final int STATE_DONE = 17;
-	
-	private static final int STATE_LT_M = 18;
-	private static final int STATE_LT_ME = 19;
-	private static final int STATE_LT_MET = 20;
-	private static final int STATE_LT_META = 21;	
-
-	private int areaState = STATE_START;
-
-	private int state = STATE_START;
-
-	private byte[] toHead;
-
-	private String bodyContent;
-	
-	private String charset;
-
-	ByteArrayOutputStream buffer = new ByteArrayOutputStream(7);
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param out
-	 *            sink output stream
-	 * @param bytesForHead
-	 *            bytes to insert at the end of head of HTML or
-	 *            <code>null</code>
-	 * @param bytesToInsert
-	 *            bytes to insert at the begining of body of HTML or
-	 *            <code>null</code>
-	 * @param bytesToAppend
-	 *            bytes to append at the end of body of HTML or
-	 *            <code>null</code>
-	 */
-	public FilterHTMLHeadAndBodyOutputStream(OutputStream out,
-			byte[] bytesForHead, String bodyContent) {
-		super(out);
-		toHead = bytesForHead;
-		this.bodyContent = bodyContent;
-	}
-
-	/**
-	 * Writes the specified <code>byte</code> to this output stream.
-	 * <p>
-	 * The underlying stream might have a more bytes written to it, following
-	 * the &lt;head&gt; HTML element.
-	 * <p>
-	 * Implements the abstract <tt>write</tt> method of <tt>OutputStream</tt>.
-	 * 
-	 * @param b
-	 *            the <code>byte</code>.
-	 * @exception IOException
-	 *                if an I/O error occurs.
-	 */
-	public final void write(int b) throws IOException {
-		switch (state) {
-		case STATE_START:
-		case STATE_AFTER_HEAD:
-			if (b == '<') {
-				buffer.write(b);
-				state = STATE_LT;
-			} else {
-				out.write(b);
-			}
-			break;
-		case STATE_LT:
-			buffer.write(b);
-			if (b == '/') {
-				state = STATE_LT_SLASH;
-			} else if (b == 'b' || b == 'B') {
-				state = STATE_LT_B;
-			} else if (b == 'm' || b== 'M') {
-				state = STATE_LT_M;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_M:
-			buffer.write(b);
-			if (b == 'e' || b=='E') {
-				state = STATE_LT_ME;
-			}
-			else {
-				reset();
-			}
-			break;
-		case STATE_LT_ME:
-			buffer.write(b);
-			if (b == 't' || b=='T') {
-				state = STATE_LT_MET;
-			}
-			else {
-				reset();
-			}
-			break;
-		case STATE_LT_MET:
-			buffer.write(b);
-			if (b == 'a' || b=='A') {
-				state = STATE_LT_META;
-			}
-			else {
-				reset();
-			}
-			break;
-		case STATE_LT_META:
-			buffer.write(b);
-			if (b=='>') {
-				parseMetaTag(buffer);
-				reset();
-			}
-			break;
-		case STATE_LT_B:
-			buffer.write(b);
-			if (b == 'o' || b == 'O') {
-				state = STATE_LT_BO;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_BO:
-			buffer.write(b);
-			if (b == 'd' || b == 'D') {
-				state = STATE_LT_BOD;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_BOD:
-			buffer.write(b);
-			if (b == 'y' || b == 'Y') {
-				state = STATE_LT_BODY;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_BODY:
-			buffer.write(b);
-			if (b == '>') {
-				out.write(buffer.toByteArray());
-				buffer.reset();
-				if (bodyContent != null) {
-					out.write('\n');
-					byte [] bytes = bodyContent.getBytes(charset!=null?charset:"UTF-8");
-					out.write(bytes);
-					out.write('\n');
-				}
-				areaState = STATE_DONE;
-				state = STATE_DONE;
-			}
-			break;
-		case STATE_LT_SLASH:
-			buffer.write(b);
-			if (b == 'h' || b == 'H') {
-				state = STATE_LT_SLASH_H;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_H:
-			buffer.write(b);
-			if (b == 'e' || b == 'E') {
-				state = STATE_LT_SLASH_HE;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_HE:
-			buffer.write(b);
-			if (b == 'a' || b == 'A') {
-				state = STATE_LT_SLASH_HEA;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_HEA:
-			buffer.write(b);
-			if (b == 'd' || b == 'D') {
-				state = STATE_LT_SLASH_HEAD;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_HEAD:
-			buffer.write(b);
-			if (b == '>') {
-				if (toHead != null) {
-					out.write(toHead);
-					out.write('\n');
-				}
-				areaState = STATE_AFTER_HEAD;
-				state = STATE_AFTER_HEAD;
-				out.write(buffer.toByteArray());
-				buffer.reset();
-			} else {
-				reset();
-			}
-			break;
-		default: // (case STATE_DONE):
-			out.write(b);
-			break;
-		}
-	}
-	
-	private void parseMetaTag(ByteArrayOutputStream buffer) {
-		ByteArrayInputStream is = new ByteArrayInputStream(buffer.toByteArray());
-		String value = HTMLDocParser.getCharsetFromHTML(is);
-		try {
-			is.close();
-		}
-		catch (IOException e) {
-		}
-		if (value!=null)
-			this.charset = value;
-	}
-
-	private void reset() throws IOException {
-		out.write(buffer.toByteArray());
-		buffer.reset();
-		state = areaState;
-	}
-
-	public void write(byte b[], int off, int len) throws IOException {
-		if (state == STATE_DONE) {
-			out.write(b, off, len);
-		} else {
-			for (int i = 0; i < len; i++) {
-				write(b[off + i]);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.FilterOutputStream#close()
-	 */
-	public void close() throws IOException {
-		reset();
-		super.close();
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadOutputStream.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadOutputStream.java
deleted file mode 100644
index 6ddbee8..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FilterHTMLHeadOutputStream.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-/**
- * Filters output stream and inserts specified bytes before the end of HEAD
- * element (before &lt;/html&gt; tag) of HTML in the stream.
- */
-public class FilterHTMLHeadOutputStream extends FilterOutputStream {
-	private static final int STATE_START = 0;
-
-	private static final int STATE_LT = 1;
-
-	private static final int STATE_LT_SLASH = 2;
-
-	private static final int STATE_LT_SLASH_H = 3;
-
-	private static final int STATE_LT_SLASH_HE = 4;
-
-	private static final int STATE_LT_SLASH_HEA = 5;
-
-	private static final int STATE_LT_SLASH_HEAD = 6;
-
-	private static final int STATE_DONE = 7;
-
-	private int state = STATE_START;
-
-	private byte[] toInsert;
-
-	ByteArrayOutputStream buffer = new ByteArrayOutputStream(7);
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param out
-	 *            sink output stream
-	 * @param bytesToInsert
-	 *            bytes to insert in head of HTML
-	 */
-	public FilterHTMLHeadOutputStream(OutputStream out, byte[] bytesToInsert) {
-		super(out);
-		toInsert = bytesToInsert;
-	}
-
-	/**
-	 * Writes the specified <code>byte</code> to this output stream.
-	 * <p>
-	 * The underlying stream might have a more bytes written to it, following
-	 * the &lt;head&gt; HTML element.
-	 * <p>
-	 * Implements the abstract <tt>write</tt> method of <tt>OutputStream</tt>.
-	 * 
-	 * @param b
-	 *            the <code>byte</code>.
-	 * @exception IOException
-	 *                if an I/O error occurs.
-	 */
-	public final void write(int b) throws IOException {
-		switch (state) {
-		case STATE_START:
-			if (b == '<') {
-				buffer.write(b);
-				state = STATE_LT;
-			} else {
-				out.write(b);
-			}
-			break;
-		case STATE_LT:
-			buffer.write(b);
-			if (b == '/') {
-				state = STATE_LT_SLASH;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH:
-			buffer.write(b);
-			if (b == 'h' || b == 'H') {
-				state = STATE_LT_SLASH_H;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_H:
-			buffer.write(b);
-			if (b == 'e' || b == 'E') {
-				state = STATE_LT_SLASH_HE;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_HE:
-			buffer.write(b);
-			if (b == 'a' || b == 'A') {
-				state = STATE_LT_SLASH_HEA;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_HEA:
-			buffer.write(b);
-			if (b == 'd' || b == 'D') {
-				state = STATE_LT_SLASH_HEAD;
-			} else {
-				reset();
-			}
-			break;
-		case STATE_LT_SLASH_HEAD:
-			buffer.write(b);
-			if (b == '>') {
-				out.write(toInsert);
-				out.write('\n');
-				reset();
-				state = STATE_DONE;
-			} else {
-				reset();
-			}
-			break;
-		default: // (case STATE_DONE):
-			out.write(b);
-			break;
-		}
-	}
-
-	private void reset() throws IOException {
-		out.write(buffer.toByteArray());
-		buffer.reset();
-		state = STATE_START;
-	}
-
-	public void write(byte b[], int off, int len) throws IOException {
-		if (state == STATE_DONE) {
-			out.write(b, off, len);
-		} else {
-			for (int i = 0; i < len; i++) {
-				write(b[off + i]);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.FilterOutputStream#close()
-	 */
-	public void close() throws IOException {
-		reset();
-		super.close();
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java
deleted file mode 100644
index 83b4ac5..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.webapp.data.*;
-
-/**
- * This class inserts a script for showing the page inside the appropriate
- * frameset when bookmarked.
- */
-public class FramesetFilter implements IFilter {
-	private static final String scriptPart1 = "<script>if( self == top ){ window.location.replace( \""; //$NON-NLS-1$
-	private static final String scriptPart3 = "\");}</script>"; //$NON-NLS-1$
-
-	/*
-	 * @see IFilter#filter(HttpServletRequest, OutputStream)
-	 */
-	public OutputStream filter(HttpServletRequest req, OutputStream out) {
-		String uri = req.getRequestURI();
-		if (uri == null || !uri.endsWith("html") && !uri.endsWith("htm")) { //$NON-NLS-1$ //$NON-NLS-2$
-			return out;
-		}
-
-		if ("/nftopic".equals(req.getServletPath()) || 
-			"/ntopic".equals(req.getServletPath()) || 
-			UrlUtil.isBot(req)) { 
-			return out;
-		}
-
-		String noframes = req.getParameter("noframes"); //$NON-NLS-1$
-		if ("true".equals(noframes)) { //$NON-NLS-1$
-			return out;
-		}
-
-		String path = req.getPathInfo();
-		if (path == null) {
-			return out;
-		}
-		StringBuffer script = new StringBuffer(scriptPart1);
-		for (int i; 0 <= (i = path.indexOf('/')); path = path.substring(i + 1)) {
-			script.append("../"); //$NON-NLS-1$
-		}
-		script.append("?topic="); //$NON-NLS-1$
-		script.append(req.getPathInfo());
-		script.append(scriptPart3);
-		try {
-			return new FilterHTMLHeadOutputStream(out, script.toString()
-					.getBytes("ASCII"));
-		} catch (UnsupportedEncodingException uee) {
-			return out;
-		}
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/HighlightFilter.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/HighlightFilter.java
deleted file mode 100644
index ae41c5a..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/HighlightFilter.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-import java.util.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.webapp.data.*;
-
-public class HighlightFilter implements IFilter {
-	private static final String scriptPart1 = "\n<script language=\"JavaScript\">\n<!--\nvar keywords = new Array ("; //$NON-NLS-1$
-	private static final String scriptPart3 = ");\n-->\n</script>\n<script language=\"JavaScript\" src=\""; //$NON-NLS-1$
-	private static final String scriptPart5 = "advanced/highlight.js\"></script>\n"; //$NON-NLS-1$
-
-	/*
-	 * @see IFilter#filter(HttpServletRequest, OutputStream)
-	 */
-	public OutputStream filter(HttpServletRequest req, OutputStream out) {
-		String uri = req.getRequestURI();
-		if (uri == null || !uri.endsWith("html") && !uri.endsWith("htm")) { //$NON-NLS-1$ //$NON-NLS-2$
-			return out;
-		}
-		if (!(UrlUtil.isIE(req) || UrlUtil.isMozilla(req))) {
-			return out;
-		}
-
-		Collection keywords = getWords(req);
-		if (keywords.size() == 0) {
-			return out;
-		}
-		keywords = removeWildCards(keywords);
-		keywords = encodeKeyWords(keywords);
-		byte[] script = createJScript(req, keywords);
-		if (script == null) {
-			return out;
-		}
-
-		return new FilterHTMLHeadOutputStream(out, script);
-	}
-
-	/**
-	 * Creates Java Script that does highlighting
-	 * 
-	 * @param keywords
-	 * @return byte[]
-	 */
-	private byte[] createJScript(HttpServletRequest req, Collection keywords) {
-		StringBuffer buf = new StringBuffer(scriptPart1);
-		// append comma separated list of keywords
-		Iterator it = keywords.iterator();
-		if (!it.hasNext())
-			return null;
-		String keyword = (String) it.next();
-		buf.append("\"").append(keyword).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
-		while (it.hasNext()) {
-			keyword = (String) it.next();
-			buf.append(", \"").append(keyword).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		//
-		buf.append(scriptPart3);
-		// append "../" to get to the webapp
-		String path = req.getPathInfo();
-		if (path != null) {
-			for (int i; 0 <= (i = path.indexOf('/')); path = path
-					.substring(i + 1)) {
-				buf.append("../"); //$NON-NLS-1$
-			}
-		}
-		//
-		buf.append(scriptPart5);
-		try {
-			return buf.toString().getBytes("ASCII");
-		} catch (UnsupportedEncodingException uee) {
-			return new byte[0];
-		}
-	}
-	/**
-	 * Extracts keywords from query that contains keywords dobule quoted and
-	 * separated by space
-	 * 
-	 * @return Collection of String
-	 */
-	private Collection getWords(HttpServletRequest req) {
-		// Collect words to hash set to eliminate duplcates
-		Collection tokens = new ArrayList();
-
-		String searchWord = req.getParameter("resultof"); //$NON-NLS-1$
-		if (searchWord == null) {
-			return tokens;
-		}
-		//Divide along quotation marks
-		StringTokenizer qTokenizer = new StringTokenizer(searchWord.trim(),
-				"\"", true); //$NON-NLS-1$
-		boolean withinQuotation = false;
-		String quotedString = ""; //$NON-NLS-1$
-		while (qTokenizer.hasMoreTokens()) {
-			String curToken = qTokenizer.nextToken();
-			if (curToken.equals("\"")) { //$NON-NLS-1$
-				if (!withinQuotation) {
-					//beginning of quoted string
-					quotedString = ""; //$NON-NLS-1$
-				} else {
-					//end of quoted string
-					tokens.add(quotedString);
-				}
-				withinQuotation = !withinQuotation;
-				continue;
-			}
-			if (withinQuotation) {
-				tokens.add(curToken);
-			}
-		}
-
-		return tokens;
-
-	}
-	/**
-	 * Encodes strings inside collection for embedding in HTML source
-	 * 
-	 * @return Collection of String
-	 */
-	private Collection encodeKeyWords(Collection col) {
-		if (col == null)
-			return col;
-		Collection result = new ArrayList();
-		for (Iterator it = col.iterator(); it.hasNext();) {
-			String word = (String) it.next();
-			int l = word.length();
-			if (l < 1)
-				continue;
-			result.add(UrlUtil.JavaScriptEncode(word));
-		}
-		return result;
-	}
-
-	/**
-	 * Removes wildcard characters from words, by splitting words around wild
-	 * cards
-	 * 
-	 * @return Collection of String
-	 */
-	private Collection removeWildCards(Collection col) {
-		if (col == null)
-			return col;
-
-		// Split words into parts: before "*" and after "*"
-		Collection resultPass1 = new ArrayList();
-		for (Iterator it = col.iterator(); it.hasNext();) {
-			String word = (String) it.next();
-			int index;
-			while ((index = word.indexOf("*")) >= 0) { //$NON-NLS-1$
-				if (index > 0)
-					resultPass1.add(word.substring(0, index));
-				if (word.length() > index)
-					word = word.substring(index + 1);
-			}
-			if (word.length() > 0)
-				resultPass1.add(word);
-		}
-
-		// Split words into parts: before "?" and after "?"
-		Collection resultPass2 = new ArrayList();
-		for (Iterator it = resultPass1.iterator(); it.hasNext();) {
-			String word = (String) it.next();
-			int index;
-			while ((index = word.indexOf("?")) >= 0) { //$NON-NLS-1$
-				if (index > 0)
-					resultPass2.add(word.substring(0, index));
-				if (word.length() > index)
-					word = word.substring(index + 1);
-			}
-			if (word.length() > 0)
-				resultPass2.add(word);
-		}
-
-		return resultPass2;
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/IFilter.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/IFilter.java
deleted file mode 100644
index e60bbf4..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/IFilter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import javax.servlet.http.*;
-
-/**
- * Filter for filtering out content of help documents delivered to the client
- */
-public interface IFilter {
-	/**
-	 * Filters OutputStream out
-	 * 
-	 * @param req
-	 *            HTTPServletRequest for resource being filtered; filter's logic
-	 *            might differ depending on the request
-	 * @param out
-	 *            original OutputStream
-	 * @return filtered OutputStream
-	 */
-	OutputStream filter(HttpServletRequest req, OutputStream out);
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
deleted file mode 100644
index 81b1f8c..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-import java.util.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.*;
-import org.eclipse.help.internal.util.*;
-import org.eclipse.help.internal.webapp.*;
-import org.eclipse.help.internal.workingset.*;
-
-/**
- * The Infocenter working set manager stores help working sets. Working sets are
- * persisted in client cookies whenever one is added or removed.
- * 
- * @since 3.0
- */
-public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
-	private static final String COOKIE_NAME = "wset"; //$NON-NLS-1$
-	private static final int MAX_COOKIES = 15;
-	private HttpServletRequest request;
-	private HttpServletResponse response;
-
-	// Current working set , empty string means all documents
-	private String currentWorkingSet = ""; //$NON-NLS-1$
-	private SortedSet workingSets = new TreeSet(new WorkingSetComparator());
-	private String locale;
-	private AdaptableTocsArray root;
-
-	/**
-	 * Constructor
-	 * 
-	 * @param locale
-	 */
-	public InfocenterWorkingSetManager(HttpServletRequest request,
-			HttpServletResponse response, String locale) {
-		this.request = request;
-		this.response = response;
-		this.locale = locale;
-		restoreState();
-	}
-
-	public AdaptableTocsArray getRoot() {
-		if (root == null)
-			root = new AdaptableTocsArray(HelpPlugin.getTocManager().getTocs(
-					locale));
-		return root;
-	}
-
-	/**
-	 * Adds a new working set and saves it
-	 */
-	public void addWorkingSet(WorkingSet workingSet) throws IOException {
-		if (workingSet == null || workingSets.contains(workingSet))
-			return;
-		workingSets.add(workingSet);
-		saveState();
-	}
-
-	/**
-	 * Creates a new working set
-	 */
-	public WorkingSet createWorkingSet(String name,
-			AdaptableHelpResource[] elements) {
-		return new WorkingSet(name, elements);
-	}
-
-	/**
-	 * Returns a working set by name
-	 *  
-	 */
-	public WorkingSet getWorkingSet(String name) {
-		if (name == null || workingSets == null)
-			return null;
-
-		Iterator iter = workingSets.iterator();
-		while (iter.hasNext()) {
-			WorkingSet workingSet = (WorkingSet) iter.next();
-			if (name.equals(workingSet.getName()))
-				return workingSet;
-		}
-		return null;
-	}
-
-	/**
-	 * Implements IWorkingSetManager.
-	 * 
-	 * @see org.eclipse.help.internal.workingset.IHelpWorkingSetManager#getWorkingSets()
-	 */
-	public WorkingSet[] getWorkingSets() {
-		return (WorkingSet[]) workingSets.toArray(new WorkingSet[workingSets
-				.size()]);
-	}
-
-	/**
-	 * Removes specified working set
-	 */
-	public void removeWorkingSet(WorkingSet workingSet) {
-		workingSets.remove(workingSet);
-		try {
-			saveState();
-		} catch (IOException ioe) {
-		}
-	}
-
-	private void restoreState() {
-		String data = CookieUtil.restoreString(COOKIE_NAME, request);
-		if (data == null) {
-			return;
-		}
-
-		String[] values = data.split("\\|", -1); //$NON-NLS-1$
-		if (values.length < 1) {
-			return;
-		}
-		currentWorkingSet = URLCoder.decode(values[0] /* , "UTF8" */
-		);
-		i : for (int i = 1; i < values.length; i++) {
-			String[] nameAndHrefs = values[i].split("&", -1); //$NON-NLS-1$
-
-			String name = URLCoder.decode(nameAndHrefs[0] /* , "UTF8" */
-			);
-
-			AdaptableHelpResource[] elements = new AdaptableHelpResource[nameAndHrefs.length - 1];
-			// for each href (working set resource)
-			for (int e = 0; e < nameAndHrefs.length - 1; e++) {
-				int h = e + 1;
-				elements[e] = getAdaptableToc(URLCoder.decode(nameAndHrefs[h]
-				/* , "UTF8" */
-				));
-				if (elements[e] == null) {
-					elements[e] = getAdaptableTopic(URLCoder
-							.decode(nameAndHrefs[h]
-							/* , "UTF8" */
-							));
-				}
-				if (elements[e] == null) {
-					// working set cannot be restored
-					continue i;
-				}
-			}
-			WorkingSet ws = createWorkingSet(name, elements);
-			workingSets.add(ws);
-		}
-	}
-
-	/***************************************************************************
-	 * Persists all working sets. Should only be called by the webapp working
-	 * set dialog. Saves the working sets in the persistence store (cookie)
-	 * format: curentWorkingSetName|name1&href11&href12|name2&href22
-	 */
-	private void saveState() throws IOException {
-		StringBuffer data = new StringBuffer();
-		data.append(URLCoder.encode(currentWorkingSet /* , "UTF8" */
-		));
-
-		for (Iterator i = workingSets.iterator(); i.hasNext();) {
-			data.append('|');
-			WorkingSet ws = (WorkingSet) i.next();
-			data.append(URLCoder.encode(ws.getName() /* , "UTF8" */
-			));
-
-			AdaptableHelpResource[] resources = ws.getElements();
-			for (int j = 0; j < resources.length; j++) {
-				data.append('&');
-
-				IAdaptable parent = resources[j].getParent();
-				if (parent == getRoot()) {
-					// saving toc
-					data.append(URLCoder.encode(resources[j].getHref()
-					/* , "UTF8" */
-					));
-				} else {
-					// saving topic as tochref_topic#_
-					AdaptableToc toc = (AdaptableToc) parent;
-					AdaptableHelpResource[] siblings = (toc).getChildren();
-					for (int t = 0; t < siblings.length; t++) {
-						if (siblings[t] == resources[j]) {
-							data.append(URLCoder.encode(toc.getHref()
-							/* , "UTF8" */
-							));
-							data.append('_');
-							data.append(t);
-							data.append('_');
-							break;
-						}
-					}
-				}
-			}
-		}
-
-		try {
-			CookieUtil.saveString(COOKIE_NAME, data.toString(), MAX_COOKIES,
-					request, response);
-		} catch (IOException ioe) {
-			if (HelpWebappPlugin.DEBUG_WORKINGSETS) {
-				System.out
-						.println("InfocenterWorkingSetManager.saveState(): Too much data to save: " //$NON-NLS-1$
-								+ data.toString());
-			}
-			throw ioe;
-		}
-	}
-
-	/**
-	 * *
-	 * 
-	 * @param changedWorkingSet
-	 *            the working set that has changed
-	 */
-	public void workingSetChanged(WorkingSet changedWorkingSet)
-			throws IOException {
-		saveState();
-	}
-
-	public AdaptableToc getAdaptableToc(String href) {
-		return getRoot().getAdaptableToc(href);
-	}
-
-	public AdaptableTopic getAdaptableTopic(String id) {
-
-		if (id == null || id.length() == 0)
-			return null;
-
-		// toc id's are hrefs: /pluginId/path/to/toc.xml
-		// topic id's are based on parent toc id and index of topic:
-		// /pluginId/path/to/toc.xml_index_
-		int len = id.length();
-		if (id.charAt(len - 1) == '_') {
-			// This is a first level topic
-			String indexStr = id.substring(id.lastIndexOf('_', len - 2) + 1,
-					len - 1);
-			int index = 0;
-			try {
-				index = Integer.parseInt(indexStr);
-			} catch (Exception e) {
-			}
-
-			String tocStr = id.substring(0, id.lastIndexOf('_', len - 2));
-			AdaptableToc toc = getAdaptableToc(tocStr);
-			if (toc == null)
-				return null;
-			IAdaptable[] topics = toc.getChildren();
-			if (index < 0 || index >= topics.length)
-				return null;
-			return (AdaptableTopic) topics[index];
-		}
-
-		return null;
-	}
-
-	public String getCurrentWorkingSet() {
-		return currentWorkingSet;
-	}
-
-	public void setCurrentWorkingSet(String workingSet) {
-		currentWorkingSet = workingSet;
-		try {
-			saveState();
-		} catch (IOException ioe) {
-		}
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java
deleted file mode 100644
index dd1e07d..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/InjectionFilter.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.base.HelpBasePlugin;
-import org.eclipse.help.internal.webapp.data.UrlUtil;
-
-/**
- * This class inserts a CSSs for narrow and disabled CSSs when called from the
- * dynamic help view.
- */
-public class InjectionFilter implements IFilter {
-	private static final String narrowBook1 = "\n<link rel=\"stylesheet\" href=\""; //$NON-NLS-1$
-
-	private static final String narrowBook2 = "narrow_book.css\" charset=\"ISO-8859-1\" type=\"text/css\">"; //$NON-NLS-1$
-	
-	private static final String osNarrowBook2 = "_narrow_book.css\" charset=\"ISO-8859-1\" type=\"text/css\">"; //$NON-NLS-1$
-	private static final String disabledBook1 = "\n<link rel=\"stylesheet\" href=\""; //$NON-NLS-1$
-
-	private static final String disabledBook2 = "disabled_book.css\" charset=\"ISO-8859-1\" type=\"text/css\">"; //$NON-NLS-1$
-
-	private static final String disabledBook3 = "\n<script language=\"JavaScript\" src=\""; //$NON-NLS-1$
-
-	private static final String disabledBook4 = "livehelp.js\"> </script>"; //$NON-NLS-1$
-	
-	/*
-	 * @see IFilter#filter(HttpServletRequest, OutputStream)
-	 */
-	public OutputStream filter(HttpServletRequest req, OutputStream out) {
-		// This filter only works inside the workbench
-		if (BaseHelpSystem.getMode() != BaseHelpSystem.MODE_WORKBENCH)
-			return out;
-
-		boolean addNarrow = false;
-		boolean addDisabled = false;
-		boolean needsLiveHelp = false;		
-
-		String uri = req.getRequestURI();
-		if (uri == null || !uri.endsWith("html") && !uri.endsWith("htm")) { //$NON-NLS-1$ //$NON-NLS-2$
-			return out;
-		}
-		if (UrlUtil.isBot(req)) {
-			return out;
-		}
-		String pathInfo = req.getPathInfo();
-		if (pathInfo == null) {
-			return out;
-		}
-		boolean enabled = HelpBasePlugin.getActivitySupport().isRoleEnabled(
-				pathInfo);
-		if ("/ntopic".equals(req.getServletPath())) //$NON-NLS-1$
-			addNarrow = true;
-		if (!enabled) {
-			addDisabled = true;
-		}
-		if (!addNarrow && !addDisabled)
-			return out;
-		
-		needsLiveHelp = HelpBasePlugin.getActivitySupport().getDocumentMessageUsesLiveHelp(addNarrow);
-
-		IPath path = new Path(pathInfo);
-		int upLevels = path.segmentCount() - 1;
-		StringBuffer script = new StringBuffer();
-		StringBuffer disabledContent = new StringBuffer();
-		//StringBuffer feedbackContent = new StringBuffer();
-		if (addNarrow) {
-			script.append(narrowBook1);
-			appendRelativePath(script, upLevels);
-			script.append(narrowBook2);
-			script.append(narrowBook1);
-			appendRelativePath(script, upLevels);
-			script.append(Platform.getOS());
-			script.append(osNarrowBook2);
-		}
-		if (addDisabled) {
-			script.append(disabledBook1);
-			appendRelativePath(script, upLevels);
-			script.append(disabledBook2);
-			if (needsLiveHelp) {
-				script.append(disabledBook3);
-				appendRelativePath(script, upLevels, "org.eclipse.help"); //$NON-NLS-1$
-				script.append(disabledBook4);
-			}
-			appendDisabled(disabledContent, upLevels, addNarrow);
-		}
-		try {
-			return new FilterHTMLHeadAndBodyOutputStream(
-					out,
-					script.toString().getBytes("ASCII"), addDisabled ? disabledContent.toString() : null); //$NON-NLS-1$
-		} catch (UnsupportedEncodingException uee) {
-			return out;
-		}
-	}
-
-	private void appendRelativePath(StringBuffer buff, int nsteps,
-			String pluginId) {
-		for (int i = 0; i < nsteps; i++) {
-			buff.append("../"); //$NON-NLS-1$
-		}
-		buff.append(pluginId + "/"); //$NON-NLS-1$
-	}
-
-	private void appendRelativePath(StringBuffer buff, int nsteps) {
-		appendRelativePath(buff, nsteps, "PRODUCT_PLUGIN"); //$NON-NLS-1$
-	}
-
-	private void appendDisabled(StringBuffer buff, int nsteps, boolean narrow) {
-		String message = HelpBasePlugin.getActivitySupport().getDocumentMessage(narrow);
-		if (message==null)
-			return;
-		buff.append("<div id=\"help-disabledTopic\">"); //$NON-NLS-1$
-		buff.append("<img src=\""); //$NON-NLS-1$
-		appendRelativePath(buff, nsteps, "org.eclipse.help.webapp"); //$NON-NLS-1$
-		buff.append("advanced/images/e_show_all.gif\" border=\"0\" align=\"bottom\">&nbsp;"); //$NON-NLS-1$		
-		buff.append(message);
-		buff.append("<br><hr></div>"); //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/LiveHelpServlet.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/LiveHelpServlet.java
deleted file mode 100644
index ff12a59..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/LiveHelpServlet.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.help.internal.base.BaseHelpSystem;
-import org.eclipse.help.internal.webapp.data.WebappPreferences;
-
-/**
- * Servlet to handle live help action requests
- */
-public class LiveHelpServlet extends HttpServlet {
-	private static final long serialVersionUID = 1L;
-	/**
-	 */
-	public void init() throws ServletException {
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER) {
-			throw new ServletException();
-		}
-	}
-
-	/**
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a GET request.
-	 */
-	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER) {
-			return;
-		}
-		if (!new WebappPreferences().isActiveHelp()) {
-			return;
-		}
-		req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$
-		String pluginID = req.getParameter("pluginID"); //$NON-NLS-1$
-		if (pluginID == null)
-			return;
-		String className = req.getParameter("class"); //$NON-NLS-1$
-		if (className == null)
-			return;
-		String arg = req.getParameter("arg"); //$NON-NLS-1$
-		BaseHelpSystem.runLiveHelp(pluginID, className, arg);
-	}
-	/**
-	 * 
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a POST request.
-	 * 
-	 * Handle the search requests,
-	 *  
-	 */
-	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		doGet(req, resp);
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java
deleted file mode 100644
index bf2d03e..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-import java.util.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.*;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.search.*;
-import org.eclipse.help.internal.webapp.*;
-import org.eclipse.help.internal.webapp.data.*;
-import org.eclipse.help.internal.workingset.*;
-
-/**
- * Returns search results. Each hits contains a prameter "resultsof" that is the
- * url encoded query string.
- */
-public class SearchServlet extends HttpServlet {
-	private static final long serialVersionUID = 1L;
-	private String locale;
-
-	/**
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a GET request.
-	 */
-	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-
-		locale = UrlUtil.getLocale(req, resp);
-		req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$
-
-		resp.setContentType("application/xml; charset=UTF-8"); //$NON-NLS-1$
-		resp.setHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		SearchHit[] hits = loadSearchResults(req, resp);
-
-		ResultsWriter resultsWriter = new ResultsWriter(resp.getWriter());
-		resultsWriter.generate(hits, resp);
-		resultsWriter.close();
-	}
-	/**
-	 * 
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a POST request.
-	 * 
-	 * Handle the search requests,
-	 *  
-	 */
-	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-
-		doGet(req, resp);
-	}
-
-	/**
-	 * Call the search engine, and get results or the percentage of indexed
-	 * documents.
-	 */
-	private SearchHit[] loadSearchResults(HttpServletRequest request,
-			HttpServletResponse response) {
-		SearchHit[] hits = null;
-		try {
-			NullProgressMonitor pm = new NullProgressMonitor();
-
-			SearchResults results = createHitCollector(request, response);
-			BaseHelpSystem.getSearchManager().search(
-					createSearchQuery(request), results, pm);
-			hits = results.getSearchHits();
-		} catch (QueryTooComplexException qe) {
-			hits = new SearchHit[0];
-		} catch (Exception e) {
-			HelpWebappPlugin.logError("", e); //$NON-NLS-1$
-		} finally {
-			if (hits == null)
-				hits = new SearchHit[0];
-		}
-		return hits;
-	}
-
-	private ISearchQuery createSearchQuery(HttpServletRequest request) {
-		String searchWord = request.getParameter("searchWord"); //$NON-NLS-1$
-		String fieldSearchStr = request.getParameter("fieldSearch"); //$NON-NLS-1$
-		boolean fieldSearch = fieldSearchStr != null ? new Boolean(
-				fieldSearchStr).booleanValue() : false;
-		return new SearchQuery(searchWord, fieldSearch, new ArrayList(), locale);
-	}
-
-	private SearchResults createHitCollector(HttpServletRequest request,
-			HttpServletResponse response) {
-		WorkingSet[] workingSets;
-		if (request.getParameterValues("scopedSearch") == null) { //$NON-NLS-1$
-			// scopes are working set names
-			workingSets = getWorkingSets(request, response);
-		} else {
-			// scopes are books (advanced search)
-			workingSets = createTempWorkingSets(request, response);
-		}
-
-		int maxHits = 500;
-		String maxHitsStr = request.getParameter("maxHits"); //$NON-NLS-1$
-		if (maxHitsStr != null) {
-			try {
-				int clientmaxHits = Integer.parseInt(maxHitsStr);
-				if (0 < clientmaxHits && clientmaxHits < 500) {
-					maxHits = clientmaxHits;
-				}
-			} catch (NumberFormatException nfe) {
-			}
-		}
-		return new SearchResults(workingSets, maxHits, locale);
-	}
-	/**
-	 * @return WorkingSet[] or null
-	 */
-	private WorkingSet[] getWorkingSets(HttpServletRequest request,
-			HttpServletResponse response) {
-		String[] scopes = request.getParameterValues("scope"); //$NON-NLS-1$
-		if (scopes == null) {
-			return null;
-		}
-		// confirm working set exists and use it
-		WebappWorkingSetManager wsmgr = new WebappWorkingSetManager(request,
-				response, locale);
-		ArrayList workingSetCol = new ArrayList(scopes.length);
-		for (int s = 0; s < scopes.length; s++) {
-			WorkingSet ws = wsmgr.getWorkingSet(scopes[s]);
-			if (ws != null) {
-				workingSetCol.add(ws);
-			}
-		}
-		if (workingSetCol.size() == 0) {
-			return null;
-		}
-		return (WorkingSet[]) workingSetCol
-				.toArray(new WorkingSet[workingSetCol.size()]);
-	}
-
-	/**
-	 * @return WorkingSet[] or null
-	 */
-	private WorkingSet[] createTempWorkingSets(HttpServletRequest request,
-			HttpServletResponse response) {
-		String[] scopes = request.getParameterValues("scope"); //$NON-NLS-1$
-		if (scopes == null) {
-			// it is possible that filtering is used, but all books are
-			// deselected
-			return new WorkingSet[0];
-		}
-		if (scopes.length == HelpPlugin.getTocManager().getTocs(locale).length) {
-			// do not filter if all books are selected
-			return null;
-		}
-		// create working set from books
-		WebappWorkingSetManager wsmgr = new WebappWorkingSetManager(request,
-				response, locale);
-		ArrayList tocs = new ArrayList(scopes.length);
-		for (int s = 0; s < scopes.length; s++) {
-			AdaptableToc toc = wsmgr.getAdaptableToc(scopes[s]);
-			if (toc != null) {
-				tocs.add(toc);
-			}
-		}
-		AdaptableToc[] adaptableTocs = (AdaptableToc[]) tocs
-				.toArray(new AdaptableToc[tocs.size()]);
-		WorkingSet[] workingSets = new WorkingSet[1];
-		workingSets[0] = wsmgr.createWorkingSet("temp", adaptableTocs); //$NON-NLS-1$
-		return workingSets;
-	}
-
-	/**
-	 * This generates the XML file for the help navigation.
-	 */
-	private static class ResultsWriter extends XMLGenerator {
-		/**
-		 * @param writer
-		 *            java.io.Writer
-		 */
-		public ResultsWriter(Writer writer) {
-			super(writer);
-		}
-
-		/**
-		 * XML representation of search results. &lt;pre&gt; &lt; hits&gt;
-		 * &lt;topic label=".." score="..." toc=".." toclabel=".."/&gt; .....
-		 */
-		public void generate(SearchHit[] hits, HttpServletResponse resp) {
-
-			println("<hits length=\"" + hits.length + "\">"); //$NON-NLS-1$ //$NON-NLS-2$
-			pad++;
-			for (int i = 0; i < hits.length; i++) {
-				printPad();
-				print("<topic label=\"" //$NON-NLS-1$
-						+ xmlEscape(hits[i].getLabel()) + "\"" //$NON-NLS-1$
-						+ " href=\"" //$NON-NLS-1$
-						+ hits[i].getHref() + "\"" //$NON-NLS-1$
-						+ " score=\"" //$NON-NLS-1$
-						+ Float.toString(hits[i].getScore()) + "\""); //$NON-NLS-1$
-
-				if (hits[i].getToc() != null) {
-					print(" toc=\"" //$NON-NLS-1$
-							+ hits[i].getToc().getHref() + "\"" //$NON-NLS-1$
-							+ " toclabel=\"" //$NON-NLS-1$
-							+ hits[i].getToc().getLabel() + "\""); //$NON-NLS-1$
-				}
-				print(" />"); //$NON-NLS-1$
-			}
-			pad--;
-			println("</hits>"); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/TocServlet.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/TocServlet.java
deleted file mode 100644
index 04d2e2a..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/TocServlet.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.help.*;
-import org.eclipse.help.internal.*;
-import org.eclipse.help.internal.toc.*;
-import org.eclipse.help.internal.webapp.data.*;
-/**
- * URL-like description of help table of contents.
- * <ul>
- * <li>toc/pluginid/tocfile.xml: the toc defined by the specified toc xml</li>
- * <li>toc/: all the toc's</li>
- * <li>toc/?topic=/pluginid/topic.html: a list of toc that contain the
- * specified topic</li>
- * </ul>
- */
-public class TocServlet extends HttpServlet {
-	private static final long serialVersionUID = 1L;
-	private String locale;
-
-	/**
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a GET request.
-	 */
-	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-
-		locale = UrlUtil.getLocale(req, resp);
-		req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$
-
-		resp.setContentType("application/xml; charset=UTF-8"); //$NON-NLS-1$
-		resp.setHeader("Cache-Control", "max-age=10000"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		if ("/".equals(req.getPathInfo())) { //$NON-NLS-1$
-			if (req.getParameter("topic") == null) //$NON-NLS-1$
-				serializeTocs(resp);
-			else
-				serializeTocs(
-						findTocContainingTopic(req.getParameter("topic")), //$NON-NLS-1$
-						resp);
-		} else {
-			serializeToc(req.getPathInfo(), resp);
-		}
-	}
-	/**
-	 * 
-	 * Called by the server (via the <code>service</code> method) to allow a
-	 * servlet to handle a POST request.
-	 * 
-	 * Handle the search requests,
-	 *  
-	 */
-	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
-			throws ServletException, IOException {
-		doGet(req, resp);
-	}
-
-	/**
-	 * XML representation of TOC
-	 */
-	private void serializeToc(String tocID, HttpServletResponse resp)
-			throws ServletException, IOException {
-		IToc toc = HelpPlugin.getTocManager().getToc(tocID, locale);
-		serializeToc(toc, resp);
-	}
-	/**
-	 * XML representation of TOC
-	 */
-	private void serializeToc(IToc toc, HttpServletResponse resp)
-			throws ServletException, IOException {
-		if (toc == null)
-			throw new ServletException();
-
-		TocWriter tocWriter = new TocWriter(resp.getWriter());
-		tocWriter.generate(toc, true);
-		tocWriter.close();
-	}
-
-	/**
-	 * XML representation of TOC list
-	 */
-	private void serializeTocs(HttpServletResponse resp)
-			throws ServletException, IOException {
-		TocManager tocManager = HelpPlugin.getTocManager();
-		IToc[] tocs = tocManager.getTocs(locale);
-
-		TocWriter gen = new TocWriter(resp.getWriter());
-		gen.println("<tocs>"); //$NON-NLS-1$
-		gen.pad++;
-		for (int i = 0; i < tocs.length; i++) {
-			gen.printPad();
-			gen.generate(tocs[i], false);
-		}
-		gen.pad--;
-		gen.println("</tocs>"); //$NON-NLS-1$
-		gen.close();
-	}
-
-	private void serializeTocs(IToc toc, HttpServletResponse resp)
-			throws ServletException, IOException {
-		if (toc == null)
-			throw new ServletException();
-
-		TocWriter gen = new TocWriter(resp.getWriter());
-		gen.println("<tocs>"); //$NON-NLS-1$
-		gen.pad++;
-		gen.printPad();
-		gen.generate(toc, false);
-		gen.pad--;
-		gen.println("</tocs>"); //$NON-NLS-1$
-		gen.close();
-	}
-
-	/**
-	 * Finds a TOC that contains specified topic
-	 * 
-	 * @param topic
-	 *            the topic href
-	 */
-	private IToc findTocContainingTopic(String topic) {
-		if (topic == null || topic.equals("")) //$NON-NLS-1$
-			return null;
-
-		int index = topic.indexOf("/topic/"); //$NON-NLS-1$
-		if (index != -1)
-			topic = topic.substring(index + 6);
-		index = topic.indexOf('?');
-		if (index != -1)
-			topic = topic.substring(0, index);
-
-		if (topic == null || topic.equals("")) //$NON-NLS-1$
-			return null;
-
-		IToc[] tocs = HelpPlugin.getTocManager().getTocs(locale);
-		for (int i = 0; i < tocs.length; i++)
-			if (tocs[i].getTopic(topic) != null)
-				return tocs[i];
-
-		// nothing found
-		return null;
-	}
-
-	/**
-	 * This generates the XML file for the help navigation.
-	 */
-	private static class TocWriter extends XMLGenerator {
-		/**
-		 * @param writer
-		 *            java.io.Writer
-		 */
-		public TocWriter(Writer writer) {
-			super(writer);
-		}
-
-		/**
-		 * Writes out xml data for a toc
-		 */
-		public void generate(IToc toc, boolean genTopics) {
-			// get the topic description
-			String topicDescription = ""; //$NON-NLS-1$
-			ITopic topic = toc.getTopic(null);
-			if (topic != null)
-				topicDescription = topic.getHref();
-
-			println("<toc label=\"" //$NON-NLS-1$
-					+ xmlEscape(toc.getLabel()) + "\" href=\"" //$NON-NLS-1$
-					+ reduceURL(toc.getHref()) + "\" topic=\"" //$NON-NLS-1$
-					+ reduceURL(topicDescription) + "\">"); //$NON-NLS-1$
-			if (genTopics) {
-				ITopic[] topics = toc.getTopics();
-				for (int i = 0; i < topics.length; i++) {
-					generate(topics[i]);
-				}
-			}
-			println("</toc>"); //$NON-NLS-1$
-		}
-
-		/**
-		 * Generates part of navigation for a given Topic and it children Topic
-		 */
-		protected void generate(ITopic topic) {
-			pad++;
-			printPad();
-			String href = topic.getHref();
-			print("<topic label=\"" //$NON-NLS-1$
-					+ xmlEscape(topic.getLabel()) + "\"" //$NON-NLS-1$
-					+ (href != null ? " href=\"" + reduceURL(href) + "\"" : "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			ITopic[] subtopics = topic.getSubtopics();
-			if (subtopics.length > 0) {
-				println(">"); //$NON-NLS-1$
-				for (int i = 0; i < subtopics.length; i++) {
-					generate(subtopics[i]);
-				}
-				printPad();
-				println("</topic>"); //$NON-NLS-1$
-			} else {
-				println(" />"); //$NON-NLS-1$
-			}
-			pad--;
-		}
-
-		/**
-		 * Simplifies url path by removing "string/.." from the path
-		 * 
-		 * @return reduced url String
-		 * @param url
-		 *            String
-		 */
-		protected static String reduceURL(String url) {
-			if (url == null)
-				return url;
-			while (true) {
-				int index = url.indexOf("/..", 1); //$NON-NLS-1$
-				if (index <= 0)
-					break;
-				//there is no "/.." or nothing before "/.." to simplify
-				String part1 = url.substring(0, index);
-				String part2 = url.substring(index + "/..".length()); //$NON-NLS-1$
-				index = part1.lastIndexOf("/"); //$NON-NLS-1$
-				if (index >= 0)
-					url = part1.substring(0, index) + part2;
-				else
-					url = part2;
-			}
-			return url;
-		}
-	}
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java
deleted file mode 100644
index 09789de..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.workingset.*;
-
-/**
- * Proxy for WorkingSetManager or InfocenterWorkingSetManager.
- * 
- * @since 3.0
- */
-public class WebappWorkingSetManager implements IHelpWorkingSetManager {
-	IHelpWorkingSetManager wSetManager;
-	// for keeping track if working set synchronized with working sets in UI
-	//private static boolean workingSetsSynchronized = false;
-	//private static final Object workingSetsSyncLock = new Object();
-
-	/**
-	 * Constructor
-	 * 
-	 * @param locale
-	 */
-	public WebappWorkingSetManager(HttpServletRequest request,
-			HttpServletResponse response, String locale) {
-		if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER) {
-			wSetManager = new InfocenterWorkingSetManager(request, response,
-					locale);
-		} else {
-			wSetManager = BaseHelpSystem.getWorkingSetManager();
-		}
-	}
-
-	public AdaptableTocsArray getRoot() {
-		return wSetManager.getRoot();
-	}
-	/**
-	 * Adds a new working set and saves it
-	 */
-	public void addWorkingSet(WorkingSet workingSet) throws IOException {
-		wSetManager.addWorkingSet(workingSet);
-	}
-
-	/**
-	 * Creates a new working set
-	 */
-	public WorkingSet createWorkingSet(String name,
-			AdaptableHelpResource[] elements) {
-		return wSetManager.createWorkingSet(name, elements);
-	}
-
-	/**
-	 * Returns a working set by name
-	 *  
-	 */
-	public WorkingSet getWorkingSet(String name) {
-		return wSetManager.getWorkingSet(name);
-	}
-	/**
-	 * Implements IWorkingSetManager.
-	 * 
-	 * @see org.eclipse.ui.IWorkingSetManager#getWorkingSets()
-	 */
-	public WorkingSet[] getWorkingSets() {
-		return wSetManager.getWorkingSets();
-	}
-	/**
-	 * Removes specified working set
-	 */
-	public void removeWorkingSet(WorkingSet workingSet) {
-		wSetManager.removeWorkingSet(workingSet);
-	}
-
-	/**
-	 * Persists all working sets. Should only be called by the webapp working
-	 * set dialog.
-	 * 
-	 * @param changedWorkingSet
-	 *            the working set that has changed
-	 */
-	public void workingSetChanged(WorkingSet changedWorkingSet)
-			throws IOException {
-		wSetManager.workingSetChanged(changedWorkingSet);
-	}
-
-	public AdaptableToc getAdaptableToc(String href) {
-		return wSetManager.getAdaptableToc(href);
-	}
-
-	public AdaptableTopic getAdaptableTopic(String id) {
-		return wSetManager.getAdaptableTopic(id);
-	}
-
-	public String getCurrentWorkingSet() {
-		return wSetManager.getCurrentWorkingSet();
-	}
-
-	public void setCurrentWorkingSet(String scope) {
-		wSetManager.setCurrentWorkingSet(scope);
-	}
-
-}
diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/XMLGenerator.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/XMLGenerator.java
deleted file mode 100644
index 6c62576..0000000
--- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/XMLGenerator.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.help.internal.webapp.servlet;
-
-import java.io.*;
-
-import org.eclipse.help.internal.base.util.*;
-import org.eclipse.help.internal.webapp.*;
-
-/**
- * Helper class to generate xml files.
- */
-public class XMLGenerator {
-	private File outFile = null;
-
-	private PrintWriter out = null;
-
-	public int pad = 0;
-
-	// XML escaped characters mapping
-	private static final String invalidXML[] = { "&", ">", "<", "\"", "\'" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
-	private static final String escapedXML[] = {
-			"&amp;", "&gt;", "&lt;", "&quot;", "&apos;" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
-	/**
-	 * Constructor.
-	 */
-	public XMLGenerator(Writer writer) {
-		if (writer instanceof PrintWriter)
-			this.out = (PrintWriter) writer;
-		else
-			this.out = new PrintWriter(writer);
-	}
-
-	/**
-	 * Constructor.
-	 */
-	public XMLGenerator(File outFile) {
-		super();
-		this.outFile = outFile;
-		try {
-			out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
-					new FileOutputStream(outFile), "UTF8")), //$NON-NLS-1$
-					false /* no aotoFlush */
-			);
-			println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
-		} catch (IOException ioe) {
-			HelpWebappPlugin.logError("Error accessing file: " //$NON-NLS-1$
-					+ outFile.getAbsolutePath() + "", ioe); //$NON-NLS-1$
-		}
-	}
-
-	// returns a String that is a valid XML string
-	// by XML escaping special characters
-	public static String xmlEscape(String cdata) {
-		for (int i = 0; i < invalidXML.length; i++)
-			cdata = TString.change(cdata, invalidXML[i], escapedXML[i]);
-		return cdata;
-	}
-
-	public void close() {
-		out.flush();
-		out.close();
-		if (out.checkError())
-			if (outFile != null)
-				HelpWebappPlugin.logError("Errors occurred generating file: " //$NON-NLS-1$
-						+ outFile.getAbsolutePath() + "", null); //$NON-NLS-1$
-		out = null;
-	}
-
-	public void print(Object o) {
-		if (out != null)
-			out.print(o);
-	}
-
-	public void println(Object o) {
-		print(o);
-		print("\n"); //$NON-NLS-1$
-	}
-
-	public void printPad() {
-		for (int i = 0; i < pad; i++)
-			print(" "); //$NON-NLS-1$
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/.classpath b/org.eclipse.ui.cheatsheets/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/org.eclipse.ui.cheatsheets/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.ui.cheatsheets/.cvsignore b/org.eclipse.ui.cheatsheets/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.ui.cheatsheets/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.ui.cheatsheets/.options b/org.eclipse.ui.cheatsheets/.options
deleted file mode 100644
index 854ab8d..0000000
--- a/org.eclipse.ui.cheatsheets/.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# Debugging options for the org.eclipse.ui.cheatsheets.
-
-# Master flag for all org.eclipse.ui.intro plugin debug options.
-org.eclipse.ui.cheatsheets/debug = true
-
-# Enable printing of time taken during creation of cheat sheet.
-org.eclipse.ui.cheatsheets/trace/creation/times = true
diff --git a/org.eclipse.ui.cheatsheets/.project b/org.eclipse.ui.cheatsheets/.project
deleted file mode 100644
index b1b31c1..0000000
--- a/org.eclipse.ui.cheatsheets/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.cheatsheets</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF b/org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF
deleted file mode 100644
index 850b846..0000000
--- a/org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,28 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %PLUGIN_NAME
-Bundle-SymbolicName: org.eclipse.ui.cheatsheets; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin
-Bundle-Vendor: %PROVIDER_NAME
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.cheatsheets,
- org.eclipse.ui.internal.cheatsheets;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.actions;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.composite.explorer;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.composite.model;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.composite.parser;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.composite.views;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.data;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.dialogs;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.registry;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.cheatsheets.views;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.provisional.cheatsheets;x-friends:="org.eclipse.ua.tests"
-Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.help;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.help.base;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
- org.eclipse.help.ui;bundle-version="[3.2.0,4.0.0)";resolution:=optional
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
diff --git a/org.eclipse.ui.cheatsheets/about.html b/org.eclipse.ui.cheatsheets/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/org.eclipse.ui.cheatsheets/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.cheatsheets/build.properties b/org.eclipse.ui.cheatsheets/build.properties
deleted file mode 100644
index 1ad0acd..0000000
--- a/org.eclipse.ui.cheatsheets/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.properties,\
-               icons/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               META-INF/
-source.. = src/
-src.includes = schema/,\
-               about.html
diff --git a/org.eclipse.ui.cheatsheets/component.xml b/org.eclipse.ui.cheatsheets/component.xml
deleted file mode 100644
index 02fcdab..0000000
--- a/org.eclipse.ui.cheatsheets/component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="Cheatsheets"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.ui.cheatsheets" fragment="false"/><package name="org.eclipse.ui.cheatsheets"><type name="ICheatSheetViewer" instantiate="false"/><type name="CheatSheetListener"/><type name="CheatSheetExtensionFactory"/><type name="ICheatSheetEvent" instantiate="false"/><type name="OpenCheatSheetAction" implement="false" subclass="false"/><type name="ICheatSheetAction" instantiate="false"/><type name="OpenCheatSheetFromHelpAction" implement="false" subclass="false" instantiate="false"/><type name="AbstractItemExtensionElement" instantiate="false"/><type name="ICheatSheetManager" instantiate="false"/><type name="CheatSheetViewerFactory" implement="false" subclass="false" instantiate="false"/></package></component>
\ No newline at end of file
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/cheatsheet_task.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/cheatsheet_task.gif
deleted file mode 100644
index 7624f2a..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/cheatsheet_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/collapse_expand_all.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/collapse_expand_all.gif
deleted file mode 100644
index a8bf15f..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/collapse_expand_all.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/collapseall.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/collapseall.gif
deleted file mode 100644
index 7dc0de5..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/complete_task.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/complete_task.gif
deleted file mode 100644
index fa91bd6..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/complete_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/linkto_help.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/linkto_help.gif
deleted file mode 100644
index 267c040..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/linkto_help.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_all.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_all.gif
deleted file mode 100644
index 6305dbd..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_all.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_cheatsheet.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_cheatsheet.gif
deleted file mode 100644
index 545b2b0..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_cheatsheet.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_task.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_task.gif
deleted file mode 100644
index 8589279..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/restart_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/skip_task.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/skip_task.gif
deleted file mode 100644
index 904757a..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/skip_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/start_cheatsheet.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/start_cheatsheet.gif
deleted file mode 100644
index b1a5898..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/start_cheatsheet.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/start_task.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/start_task.gif
deleted file mode 100644
index 010581b..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/start_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/task_choice.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/task_choice.gif
deleted file mode 100644
index 2ed5237..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/task_choice.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/task_sequence.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/task_sequence.gif
deleted file mode 100644
index 3e92e8a..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/task_sequence.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/dlcl16/task_set.gif b/org.eclipse.ui.cheatsheets/icons/dlcl16/task_set.gif
deleted file mode 100644
index 44092c3..0000000
--- a/org.eclipse.ui.cheatsheets/icons/dlcl16/task_set.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/collapse_expand_all.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/collapse_expand_all.gif
deleted file mode 100644
index dd68d89..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/collapse_expand_all.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/collapseall.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/collapseall.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/complete_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/complete_task.gif
deleted file mode 100644
index 79a554e..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/complete_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/expandall.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/expandall.gif
deleted file mode 100644
index 0205b29..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/expandall.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/goto_ccs_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/goto_ccs_task.gif
deleted file mode 100644
index e528425..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/goto_ccs_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/linkto_help.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/linkto_help.gif
deleted file mode 100644
index 86550fe..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/linkto_help.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/restart_all.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/restart_all.gif
deleted file mode 100644
index 2253557..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/restart_all.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/restart_cheatsheet.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/restart_cheatsheet.gif
deleted file mode 100644
index 7e72266..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/restart_cheatsheet.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/restart_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/restart_task.gif
deleted file mode 100644
index 02448ca..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/restart_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/return_to_start.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/return_to_start.gif
deleted file mode 100644
index c753995..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/return_to_start.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/review_ccs_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/review_ccs_task.gif
deleted file mode 100644
index a562393..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/review_ccs_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/skip_ccs_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/skip_ccs_task.gif
deleted file mode 100644
index 331995d..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/skip_ccs_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/skip_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/skip_task.gif
deleted file mode 100644
index 761eae3..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/skip_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/start_ccs_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/start_ccs_task.gif
deleted file mode 100644
index 65c6853..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/start_ccs_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/start_cheatsheet.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/start_cheatsheet.gif
deleted file mode 100644
index 0e74548..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/start_cheatsheet.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/start_task.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/start_task.gif
deleted file mode 100644
index ec477ea..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/start_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/elcl16/tree_explorer.gif b/org.eclipse.ui.cheatsheets/icons/elcl16/tree_explorer.gif
deleted file mode 100644
index 68d40f7..0000000
--- a/org.eclipse.ui.cheatsheets/icons/elcl16/tree_explorer.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_obj.gif b/org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_obj.gif
deleted file mode 100644
index 6e63b99..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_task.gif b/org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_task.gif
deleted file mode 100644
index 6e63b99..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/cheatsheet_task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/complete_status.gif b/org.eclipse.ui.cheatsheets/icons/obj16/complete_status.gif
deleted file mode 100644
index 23c97f0..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/complete_status.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/composite_obj.gif b/org.eclipse.ui.cheatsheets/icons/obj16/composite_obj.gif
deleted file mode 100644
index 0ca77b2..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/composite_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/information.gif b/org.eclipse.ui.cheatsheets/icons/obj16/information.gif
deleted file mode 100644
index 3679f84..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/information.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/skip_status.gif b/org.eclipse.ui.cheatsheets/icons/obj16/skip_status.gif
deleted file mode 100644
index 2214cc7..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/skip_status.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/task_choice.gif b/org.eclipse.ui.cheatsheets/icons/obj16/task_choice.gif
deleted file mode 100644
index cbb26ed..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/task_choice.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/task_sequence.gif b/org.eclipse.ui.cheatsheets/icons/obj16/task_sequence.gif
deleted file mode 100644
index 92b6173..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/task_sequence.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/task_set.gif b/org.eclipse.ui.cheatsheets/icons/obj16/task_set.gif
deleted file mode 100644
index 85cc683..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/task_set.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/obj16/warning.gif b/org.eclipse.ui.cheatsheets/icons/obj16/warning.gif
deleted file mode 100644
index a01bb24..0000000
--- a/org.eclipse.ui.cheatsheets/icons/obj16/warning.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/ovr16/task_complete.gif b/org.eclipse.ui.cheatsheets/icons/ovr16/task_complete.gif
deleted file mode 100644
index 9ca8275..0000000
--- a/org.eclipse.ui.cheatsheets/icons/ovr16/task_complete.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/ovr16/task_in_progress.gif b/org.eclipse.ui.cheatsheets/icons/ovr16/task_in_progress.gif
deleted file mode 100644
index 73953f5..0000000
--- a/org.eclipse.ui.cheatsheets/icons/ovr16/task_in_progress.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/ovr16/task_skipped.gif b/org.eclipse.ui.cheatsheets/icons/ovr16/task_skipped.gif
deleted file mode 100644
index 3068e74..0000000
--- a/org.eclipse.ui.cheatsheets/icons/ovr16/task_skipped.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/icons/view16/cheatsheet_view.gif b/org.eclipse.ui.cheatsheets/icons/view16/cheatsheet_view.gif
deleted file mode 100644
index 03ff4bc..0000000
--- a/org.eclipse.ui.cheatsheets/icons/view16/cheatsheet_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.cheatsheets/plugin.properties b/org.eclipse.ui.cheatsheets/plugin.properties
deleted file mode 100644
index 560cd9e..0000000
--- a/org.eclipse.ui.cheatsheets/plugin.properties
+++ /dev/null
@@ -1,61 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# ----------------------------------------------------------------------
-# Properties for org.eclipse.ui.cheatsheets
-#
-# Entries are of the form CONSTANT=string
-# ----------------------------------------------------------------------
-
-# ----------------------------------------------------------------------
-# Properties used by cheat sheet plugin.xml
-# ----------------------------------------------------------------------
-PLUGIN_NAME = Cheat Sheets
-PROVIDER_NAME = Eclipse.org
-CHEAT_SHEETS = Cheat Sheets
-CHEAT_SHEETS_MENU = &Cheat Sheets...
-CHEAT_SHEET_CONTENT = Cheat Sheet Content
-CHEAT_SHEET_ITEM_EXTENSION = Cheat Sheet Item Extension
-CHEAT_SHEETS_VIEW_COMMAND_NAME = Cheat Sheets
-CHEAT_SHEETS_VIEW_COMMAND_DESCRIPTION = Show the Cheat Sheets view
-
-searchParticipant.name = Cheet Sheets
-
-command.openCheatSheet.name = Open Cheat Sheet
-command.openCheatSheet.description = Open a Cheat Sheet.
-commandParameter.openCheatSheet.cheatSheetId.name = Identifier
-
-command.openCheatSheetURL.name = Open Cheat Sheet from URL
-command.openCheatSheetURL.description = Open a Cheat Sheet from file at a specified URL.
-commandParameter.openCheatSheetURL.cheatSheetId.name = Identifier
-commandParameter.openCheatSheetURL.name.name = Name
-commandParameter.openCheatSheetURL.url.name = URL
-
-category.dialogs.name = Dialogs
-category.dialogs.description = Commands for opening dialogs
-
-command.openMessageDialog.name = Open Message Dialog
-command.openMessageDialog.description = Open a Message Dialog
-commandParameter.openMessageDialog.title.name = Title
-commandParameter.openMessageDialog.message.name = Message
-commandParameter.openMessageDialog.imageType.name = Image Type Constant
-commandParameter.openMessageDialog.defaultIndex.name = Default Button Index
-commandParameter.openMessageDialog.buttonLabel0.name = First Button Label
-commandParameter.openMessageDialog.buttonLabel1.name = Second Button Label
-commandParameter.openMessageDialog.buttonLabel2.name = Third Button Label
-commandParameter.openMessageDialog.buttonLabel3.name = Fourth Button Label
-commandParameter.openMessageDialog.cancelReturns.name = Return Value on Cancel
-
-command.openInputDialog.name = Open Input Dialog
-command.openInputDialog.description = Open an Input Dialog
-commandParameter.openInputDialog.title.name = Title
-commandParameter.openInputDialog.message.name = Message
-commandParameter.openInputDialog.initialValue.name = Initial Value
-commandParameter.openInputDialog.cancelReturns.name = Return Value on Cancel
diff --git a/org.eclipse.ui.cheatsheets/plugin.xml b/org.eclipse.ui.cheatsheets/plugin.xml
deleted file mode 100644
index 437a583..0000000
--- a/org.eclipse.ui.cheatsheets/plugin.xml
+++ /dev/null
@@ -1,209 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- ========== Extension Points ================= -->
-
-   <!-- =============================================================================== -->
-   <!-- Extension point: org.eclipse.ui.cheatsheets.cheatSheetContent                   -->
-   <!-- Extension-point for contributing a cheat sheet.                                 -->
-   <!--                                                                                 -->
-   <!-- =============================================================================== -->
-   <extension-point
-      id="cheatSheetContent"
-      name="%CHEAT_SHEET_CONTENT"
-      schema="schema/cheatSheetContent.exsd"/>
-      
-   <!-- =============================================================================== -->
-   <!-- Extension point: org.eclipse.ui.cheatsheets.cheatSheetItemExtension             -->
-   <!-- Extension-point for contributing controls to a cheat sheet item.                -->
-   <!--                                                                                 -->
-   <!-- =============================================================================== -->
-   <extension-point
-      id="cheatSheetItemExtension"
-      name="%CHEAT_SHEET_ITEM_EXTENSION"
-      schema="schema/cheatSheetItemExtension.exsd"/>
-
-<!-- ========== Extensions ================= -->
-
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%CHEAT_SHEETS"
-            id="org.eclipse.ui.cheatsheets.cheatsheetCategory">
-      </category>
-      <view
-            name="%CHEAT_SHEETS"
-            icon="$nl$/icons/view16/cheatsheet_view.gif"
-            category="org.eclipse.ui.cheatsheets.cheatsheetCategory"
-            fastViewWidthRatio="0.5"
-            class="org.eclipse.ui.internal.cheatsheets.views.CheatSheetView"
-            id="org.eclipse.ui.cheatsheets.views.CheatSheetView">
-      </view>
-      <stickyView
-      		id="org.eclipse.ui.cheatsheets.views.CheatSheetView"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            name="%CHEAT_SHEETS_VIEW_COMMAND_NAME"
-            description="%CHEAT_SHEETS_VIEW_COMMAND_DESCRIPTION"
-            categoryId="org.eclipse.ui.category.views"
-            id="org.eclipse.ui.cheatsheets.views.CheatSheetView">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.help"
-            defaultHandler="org.eclipse.ui.internal.cheatsheets.handlers.OpenCheatSheetHandler"
-            description="%command.openCheatSheet.description"
-            id="org.eclipse.ui.cheatsheets.openCheatSheet"
-            name="%command.openCheatSheet.name">
-         <commandParameter
-               id="cheatSheetId"
-               name="%commandParameter.openCheatSheet.cheatSheetId.name"
-               optional="true"
-               values="org.eclipse.ui.internal.cheatsheets.registry.CheatSheetParameterValues"/>
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.help"
-            defaultHandler="org.eclipse.ui.internal.cheatsheets.handlers.OpenCheatSheetURLHandler"
-            description="%command.openCheatSheetURL.description"
-            id="org.eclipse.ui.cheatsheets.openCheatSheetURL"
-            name="%command.openCheatSheetURL.name">
-         <commandParameter
-               id="cheatSheetId"
-               name="%commandParameter.openCheatSheetURL.cheatSheetId.name"
-               optional="false"/>
-         <commandParameter
-               id="name"
-               name="%commandParameter.openCheatSheetURL.name.name"
-               optional="false"/>
-         <commandParameter
-               id="url"
-               name="%commandParameter.openCheatSheetURL.url.name"
-               optional="false"/>
-      </command>
-      <category
-            description="%category.dialogs.description"
-            id="org.eclipse.ui.category.dialogs"
-            name="%category.dialogs.name"/>
-      <commandParameterType
-            converter="org.eclipse.ui.internal.cheatsheets.handlers.DialogIntegerValueConverter"
-            id="org.eclipse.ui.dialogs.Integer"
-            type="java.lang.Integer"/>
-      <command
-            categoryId="org.eclipse.ui.category.dialogs"
-            defaultHandler="org.eclipse.ui.internal.cheatsheets.handlers.OpenMessageDialogHandler"
-            description="%command.openMessageDialog.description"
-            id="org.eclipse.ui.dialogs.openMessageDialog"
-            name="%command.openMessageDialog.name"
-            >
-         <commandParameter
-               id="title"
-               name="%commandParameter.openMessageDialog.title.name"
-               optional="true"/>
-         <commandParameter
-               id="message"
-               name="%commandParameter.openMessageDialog.message.name"
-               optional="true"/>
-         <commandParameter
-               id="imageType"
-               name="%commandParameter.openMessageDialog.imageType.name"
-               optional="true"
-               typeId="org.eclipse.ui.dialogs.Integer"/>
-         <commandParameter
-               id="defaultIndex"
-               name="%commandParameter.openMessageDialog.defaultIndex.name"
-               optional="true"
-               typeId="org.eclipse.ui.dialogs.Integer"/>
-         <commandParameter
-               id="buttonLabel0"
-               name="%commandParameter.openMessageDialog.buttonLabel0.name"
-               optional="true"/>
-         <commandParameter
-               id="buttonLabel1"
-               name="%commandParameter.openMessageDialog.buttonLabel1.name"
-               optional="true"/>
-         <commandParameter
-               id="buttonLabel2"
-               name="%commandParameter.openMessageDialog.buttonLabel2.name"
-               optional="true"/>
-         <commandParameter
-               id="buttonLabel3"
-               name="%commandParameter.openMessageDialog.buttonLabel3.name"
-               optional="true"/>
-         <commandParameter
-               id="cancelReturns"
-               name="%commandParameter.openMessageDialog.cancelReturns.name"
-               optional="true"
-               />
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.dialogs"
-            defaultHandler="org.eclipse.ui.internal.cheatsheets.handlers.OpenInputDialogHandler"
-            description="%command.openInputDialog.description"
-            id="org.eclipse.ui.dialogs.openInputDialog"
-            name="%command.openInputDialog.name">
-         <commandParameter
-               id="title"
-               name="%commandParameter.openInputDialog.title.name"
-               optional="true"/>
-         <commandParameter
-               id="message"
-               name="%commandParameter.openInputDialog.message.name"
-               optional="true"/>
-         <commandParameter
-               id="initialValue"
-               name="%commandParameter.openInputDialog.initialValue.name"
-               optional="true"/>
-         <commandParameter
-               id="cancelReturns"
-               name="%commandParameter.openInputDialog.cancelReturns.name"
-               optional="true"/>
-      </command>
-     </extension>
-   <extension
-         point="org.eclipse.ui.commandImages">
-      <image
-            commandId="org.eclipse.ui.cheatsheets.openCheatSheet"
-            icon="$nl$/icons/view16/cheatsheet_view.gif"/>
-      <image
-            commandId="org.eclipse.ui.cheatsheets.openCheatSheetURL"
-            icon="$nl$/icons/view16/cheatsheet_view.gif"/>
-   </extension>
-    <extension
-    	point="org.eclipse.ui.bindings">
-      <key
-            sequence="M2+M3+Q H"
-            commandId="org.eclipse.ui.cheatsheets.views.CheatSheetView"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>      
-    </extension>
-    <extension
-          point="org.eclipse.ui.activitySupport">
-      <triggerPoint id="org.eclipse.ui.cheatsheetSelectionDialog">
-         <hint
-               id="interactive"
-               value="true"/>
-      </triggerPoint>
-    </extension>
-   <extension
-         point="org.eclipse.help.base.luceneSearchParticipants">
-      <searchParticipant
-            icon="$nl$/icons/obj16/cheatsheet_obj.gif"
-            id="org.eclipse.ui.cheatsheets"
-            name="%searchParticipant.name"
-            participant="org.eclipse.ui.internal.cheatsheets.CheatsheetSearchParticipant"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.cheatsheets.cheatSheetContent">
-      <taskEditor
-            class="org.eclipse.ui.internal.cheatsheets.composite.views.CheatsheetTaskEditor"
-            icon="$nl$/icons/obj16/cheatsheet_task.gif"
-            id="cheatsheet"/>
-      <taskExplorer
-            class="org.eclipse.ui.internal.cheatsheets.composite.explorer.TreeTaskExplorer"
-            icon="$nl$/icons/elcl16/tree_explorer.gif"
-            id="tree"
-            name="Tree"/>
-   </extension>
-</plugin>
diff --git a/org.eclipse.ui.cheatsheets/schema/cheatSheetContent.exsd b/org.eclipse.ui.cheatsheets/schema/cheatSheetContent.exsd
deleted file mode 100644
index 903fadf..0000000
--- a/org.eclipse.ui.cheatsheets/schema/cheatSheetContent.exsd
+++ /dev/null
@@ -1,326 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.cheatsheets">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.cheatsheets" id="cheatSheetContent" name="Cheat Sheet Content"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to register cheat sheet content contributions. Cheat sheets appear as choices from the &quot;Help&quot; menu or from within the cheat sheet view, and are typically used to aid a user through a series of comlex tasks to accomplish an overall goal.
-&lt;p&gt;
-The cheat sheets are organized into categories which usually reflect a particular problem domain.  For instance, a Java oriented plug-in may define a category called &quot;Java&quot; which is appropriate for cheat sheets that would aid a user with any of the Java tools.  The categories defined by one plug-in can be referenced by other plug-ins using the category attribute of a cheatsheet element. Uncategorized cheat sheets, as well as cheat sheets with invalid category paths, will end up in an &quot;Other&quot; category. 
-&lt;p&gt;
-Cheat sheets may optionally specify a description subelement whose body should contain short text about the cheat sheet.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="category"/>
-            <element ref="cheatsheet"/>
-            <element ref="taskEditor"/>
-            <element ref="taskExplorer"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="category">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-            A category element in the cheatsheetContent extension point creates a new category in the cheat sheet menu.
-The cheat sheet menu is available from the help menu in the workbench.
-If a new category is specified, cheat sheets may be targeted to that category and will appear under it in the 
-cheat sheet selection dialog.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name that can be used to identify this category
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a translatable name of the category that will be used in the dialog box
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="parentCategory" type="string">
-            <annotation>
-               <documentation>
-                  a path to another category if this category should be added as a child
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="cheatsheet">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-            A cheatsheet element is put into the cheatsheetContent extension point if there is a cheat sheet to be contributed to the 
-workbench.  A cheat sheet element must specify an id, a translatable name to appear in the selection options, a category id
-to specify which category this cheat sheet will be included in, and a content file.
-The cheat sheet content file is an XML file that describes the steps and actions that the cheat sheet has.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name that can be used to identify this cheat sheet
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a translatable name of the cheat sheet that will be used in the help menu and the selection dialog box
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  a slash-delimited path (&apos;/&apos;) of category IDs. Each token in the
-path must represent a valid category ID previously defined
-by this or some other plug-in. If omitted, the wizard will be
-added to the &quot;Other&quot; category.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="contentFile" type="string">
-            <annotation>
-               <documentation>
-                  the path of a cheat sheet content file. The content file is an XML file that contains the specifics of the cheat sheet (&lt;a href=&quot;cheatSheetContentFileSpec.html&quot;&gt;cheat sheet content file format specification)&lt;/a&gt;.
-The content file is parsed at run time by the cheat sheet framework. Based on the settings in this file, a certain number of steps, actions, descriptions, and help links are shown to the user when the cheat sheet is opened. The path is interpreted as relative to the plug-in that declares the extension; the path may include special variables. In particular, use &quot;$nl$&quot; as the first segment of the path to indicate that there are locale-specific translations of the content file in subdirectories below &quot;nl/&quot;. For more detail about the special variables, you can read the Java API document for &lt;a href=&quot;../api/org/eclipse/core/runtime/Platform.html#find&quot;&gt;Platform.find&lt;/a&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="listener" type="string">
-            <annotation>
-               <documentation>
-                  listener is a fully qualified name of a Java class which must subclass &lt;code&gt;org.eclipse.ui.cheatsheets.CheatSheetListener&lt;/code&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="composite" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  Since Eclipse 3.2 a new kind of cheatsheet, a composite cheatsheet was introduced. A composite cheatsheet manages a set of tasks, each task can be a simple cheatsheet or other kind of task.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <documentation>
-            a short description of the cheat sheet
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="taskEditor">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="id"/>
-         </appInfo>
-         <documentation>
-            This extension point is provisional, being based on the provisional API class TaskEditor. 
-
-The taskEditor extension point allows for custom UI to appear in the editor pane of a composite cheatsheet. Any task in a compostite cheatsheet whose kind matches the id of this extension will use the class defined in this extension point to create the editor area.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  An id which must be unique among task editors.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A class which implements a task editor
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.cheatsheets.ITaskEditor"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The icon which will be displayed in the task explorer for a task which uses this kind of editor.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="taskExplorer">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="id"/>
-         </appInfo>
-         <documentation>
-            This extension point is provisional, being based on the provisional API class TaskExplorer. 
-
-This extension point allows for the contribution of a task explorer which will be used when opening a composite cheatsheet.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of this explorer which must be unique among task explorer ids. If a composite cheatsheet has the explorerId set to this id, this explorer will be displayed in the task explorer area of a composite cheatsheet.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  A class which implements ITaskExplorer. The class must display the tasks in the composite cheatsheet and allow the user to select the tasks to be displayed in the editor.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.cheatsheets.ITaskExplorer"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string">
-            <annotation>
-               <documentation>
-                  An icon to be used in the dropdown menu which allows for switching between explorers.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         Here is a sample usage of the cheatSheetContent extension point:
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.ui.cheatsheets.cheatSheetContent&quot;&gt;
-  &lt;category
-     name=&quot;Example category&quot;
-     id=&quot;com.example.category&quot;&gt;
-  &lt;/category&gt;
-  &lt;cheatsheet
-     name=&quot;Example cheat sheet&quot;
-     category=&quot;com.example.category&quot;
-     id=&quot;com.example.cheatSheet&quot;
-     contentFile=&quot;ExampleCheatSheet.xml&quot;&gt;
-         &lt;description&gt;
-           This is a descriptive bit of text for my cheat sheet description.
-         &lt;/description&gt;
-  &lt;/cheatsheet&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         For further details see the spec for the org.eclipse.ui.cheatsheets API package.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         There are no built-in cheat sheets.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies 
-this distribution, and is available at 
-&lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.cheatsheets/schema/cheatSheetContentFileSpec.html b/org.eclipse.ui.cheatsheets/schema/cheatSheetContentFileSpec.html
deleted file mode 100644
index 73d2b66..0000000
--- a/org.eclipse.ui.cheatsheets/schema/cheatSheetContentFileSpec.html
+++ /dev/null
@@ -1,349 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>Cheat Sheet Content File XML Format</title>
-</head>
-
-<body>
-
-<h1>Cheat Sheet Content File XML Format</h1>
-<p>Version 3.2</p>
-<p>This document describes the cheat sheet content file structure as a series of
-DTD fragments (machine readable <a href="contentFile.xsd">XML schema</a>).</p>
-<h2><code>cheatsheet</code></h2>
-<pre>&lt;!ELEMENT cheatsheet (intro, item+)&gt;&nbsp;
-&lt;!ATTLIST cheatsheet&nbsp;
-&nbsp; title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&gt;</pre>
-<p>The &lt;cheatsheet&gt; element defines the body of the cheat sheet content
-file. &lt;cheatsheet&gt; attributes are as follows:</p>
-<ul type="disc">
-  <li><b>title</b> - the title of the cheat sheet
-</ul>
-<h2><code>intro</code></h2>
-<pre>&lt;!ELEMENT intro (description)&gt;
-&lt;!ATTLIST intro&nbsp;
-&nbsp; contextId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
-&nbsp; href &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
-&gt;</pre>
-<p>The &lt;intro&gt; element is used to describe the cheat sheet introduction to
-be displayed. The &lt;description&gt; subelement contains the body of the
-introduction. &lt;intro&gt; attributes are as follows:</p>
-<ul>
-  <li><b>contextId</b> - The optional help context id of the documentation for
-    this cheat sheet. If supplied, context help for the given fully-qualified
-    context id is shown to the user (typically in a small pop-up window) when
-    they clicks the introduction's help link. If this attribute is supplied, the
-    <b>href</b> attribute should not be supplied (<b>href</b> will be ignored if
-    both are present).</li>
-  <li><b>href</b> - The optional help document describing this cheat sheet. If
-    supplied, this help document is shown to the user (typically in a help
-    browser shown in a separate window) when they clicks the introduction's help
-    link. If this attribute is supplied, the <b>contextId</b> attribute should
-    not be supplied (<b>href</b> will be ignored if both are present).</li>
-</ul>
-<h2><code>description</code></h2>
-<pre>&lt;!ELEMENT description EMPTY&gt;
-&lt;!ATTLIST description&nbsp;
-&gt;</pre>
-<p>The &lt;description&gt; element holds the description of a cheat sheet or of
-a cheat sheet item. The description consists of text interspersed with simple
-formatting tags. The cheat sheet automatically formats and lays out the text to
-make it show up reasonably in the UI. Within the text, balanced <b>&lt;b&gt;</b>...<b>&lt;/b&gt;</b>
-tags cause the enclosed text to be rendered in a bold font, and the <b>&lt;br/&gt;</b>
-element can be used to force a line break. These are the only formatting tags
-supported at this time (however, others may be added in the future). Certain
-characters in the text have special significance for XML parsers; in particular,
-to write &quot;&lt;&quot;, &quot;&gt;&quot;, &quot;&amp;&quot;, &quot;'&quot;, and
-&quot;&quot;&quot; (quotation mark) instead write &quot;&amp;lt;&quot;,
-&quot;&amp;gt;&quot;, &quot;&amp;amp;&quot;, &quot;&amp;apos;&quot;, and &quot;&amp;quot;&quot;
-respectively. Whitespace (spaces and line breaks) is treated as a word
-separator; adjacent spaces and line breaks are treated as single unit and
-rendered as a single space or a line break. Whitespace immediately after the
-&lt;<b>description</b>&gt; and &lt;<b>br/</b>&gt; tags is ignored, as is
-whitespace immediately before the &lt;<b>/description</b>&gt; tag.</p>
-<h2><code>item</code></h2>
-<pre>&lt;!ELEMENT item (description ([action|perform-when] | (subitem|repeated-subitem|conditional-subitem)*))&gt;&nbsp;
-&lt;!ATTLIST item&nbsp;
-&nbsp; title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp; dialog  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&quot;true&quot; | &quot;false&quot;) &quot;false&quot;
-&nbsp; skip   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&quot;true&quot; | &quot;false&quot;) &quot;false&quot;
-&nbsp; contextId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
-&nbsp; href &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED
-&gt;</pre>
-<p>Each &lt;item&gt; element describes one top-level step in a cheat sheet. The
-&lt;item&gt; is either simple or composite. &lt;item&gt; attributes are as
-follows:</p>
-<ul type="disc">
-  <li><b>title</b> - The title of the cheat sheet item.
-  <li><b>dialog</b> - dialog=&quot;true&quot; means this step involves opening
-    a modal dialog. This is a hint to the system that it should allow the user
-    to continue using the cheat sheet while in the modal dialog.</li>
-  <li><b>skip</b> - skip=&quot;true&quot; means that the whole step can be
-    skipped; the UI generally shows a button that the user can press to indicate
-    that they are skipping this step</li>
-  <li><b>contextId</b> - The optional help context id of the documentation for
-    this cheat sheet step. If supplied, context help for the given&nbsp;
-    fully-qualified context id is shown to the user (typically in a small pop-up
-    window) when they clicks the step's help link. If this attribute is
-    supplied, the <b>href</b> attribute should not be supplied (<b>href</b> will
-    be ignored if both are present).</li>
-  <li><b>href</b> - The optional help document describing this cheat sheet step.
-    If supplied, this help document is shown to the user (typically in a help
-    browser shown in a separate window) when they clicks the step's help link.
-    If this attribute is supplied, the <b>contextId</b> attribute should not be
-    supplied (<b>href</b> will be ignored if both are present).</li>
-</ul>
-<p>The org.eclipse.ui.cheatsheets.cheatSheetItemExtension allows additional
-custom controls for the item to be displayed in the UI. Contributions to this
-extension point declare the names of additional, string-valued attributes that
-may appear on &lt;item&gt; elements.</p>
-<p>Simple items have a description and an optional action. In the typical
-presentation, the titles of cheat sheet items are shown to the user most of the
-time. An item's description is only shown while the step is in the process of
-being executed. The presence of an &lt;action&gt; (or &lt;perform-when&gt;)
-element is typically associated with a button that the user can press to perform
-the step's action. If no action is present, the step is one that the user must
-carry out manually and then overtly indicate that they have successfully
-completed the step.</p>
-<p>Composite steps are broken down into sub-steps as specified by the &lt;subitem&gt;
-subelements. Unlike items, which the user must follow in strict sequence, the
-sub-items of a given item can be performed in any order. All sub-items within an
-item have to be attempted (or skipped) before progressing to the next item.
-(Which means actions that must be performed in a required sequence cannot be
-represented as sub-items.)</p>
-<p>A &lt;conditional-subitem&gt; subelement allow a step to tailor the
-presentation of a sub-step based on cheat sheet variables whose values are
-acquired in earlier steps. A &lt;repeated-subitem&gt; subelement allows a step
-to include a set of similar sub-steps. Again, the exact set of sub-steps may be
-based on cheat sheet variables whose value are acquired in earlier steps.</p>
-<h2><code>subitem</code></h2>
-<pre>&lt;!ELEMENT subitem ( [action|perform-when] )&gt;&nbsp;
-&lt;!ATTLIST subitem&nbsp;
-&nbsp; label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp; skip   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&quot;true&quot; | &quot;false&quot;) &quot;false&quot;
-&nbsp; when    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED
-&gt;</pre>
-<p>Each &lt;subitem&gt; element describes a sub-step in a cheat sheet. A &lt;subitem&gt;
-carries a simple text label, but has neither a lengthy description nor further
-sub-items. &lt;subitem&gt; attributes are as follows:</p>
-<ul type="disc">
-  <li><b>label</b> - The title of the cheat sheet sub-item. If the string
-    contains substring occurrences of the form &quot;${<i>var</i>}&quot;, they
-    are considered references to cheat sheet variables. All such occurrences in
-    the string value will be replaced by the value of the corresponding variable
-    in the context of the execution of the cheat sheet, or the empty string for
-    variables that are unbound. The values of the variables are as of the
-    beginning of the execution of the main step (when the &lt;item&gt; element
-    is elaborated), rather than when the individual sub-step are run.
-  <li><b>skip</b> - skip=&quot;true&quot; means that the sub-step can be
-    skipped. The UI generally shows a button that the user can press to indicate
-    that they are skipping this sub-step.</li>
-  <li><b>when</b> - Indicates this subitem is to be used if and only if the
-    value of the condition attribute of the containing &lt;conditional-subitem&gt;
-    element matches this string value. This attribute is ignored if the &lt;subitem&gt;
-    element is not a child of&nbsp; a &lt;conditional-subitem&gt; element.</li>
-</ul>
-<p>Sub-items have an optional action. The presence of an &lt;action&gt; (or
-&lt;perform-when&gt;) element is typically associated with a button that the
-user can press to perform the sub-step's action. If no action is present, the
-sub-step is one that the user must carry out manually and then overtly indicate
-that they have successfully completed the step.</p>
-<p>Unlike items, which must be followed in strict sequence, the sub-items of a
-given item can be performed in any order. All sub-items within an item have to
-be attempted (or skipped) before progressing to the next item. (Which means
-actions that must be performed in a required sequence should not be represented
-as sub-items.)</p>
-<h2><code>conditional-subitem</code></h2>
-<pre>&lt;!ELEMENT conditional-subitem (subitem+)&gt;&nbsp;
-&lt;!ATTLIST conditional-subitem&nbsp;
-&nbsp; condition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&gt;</pre>
-<p>Each &lt;conditional-subitem&gt; element describes a single sub-step whose
-form can differ based on a condition known at the time the item is expanded.
-&lt;conditional-subitem&gt; attributes are as follows:</p>
-<ul type="disc">
-  <li><b>condition</b> - Arbitrary string value used to select which child &lt;subitem&gt;
-    will be used. If the attribute string has the form &quot;${<i>var</i>}&quot;,
-    it is considered a reference to a cheat sheet variable <i>var</i>, and value
-    of the condition will be the value of the variable for the cheat sheet at
-    the start of execution of the containing &lt;item&gt; element (or the empty
-    string if the variable is unbound at that time).</li>
-</ul>
-<p>The <b>condition</b> attribute on the &lt;conditional-subitem&gt; element
-provides a string value (invariably this value comes from a cheat sheet
-variable). Each of the &lt;subitem&gt; children must carry a <b>when</b>
-attribute with a distinct string value. When the item is expanded, the
-&lt;conditional-subitem&gt; element is replaced by the &lt;subitem&gt; element
-with the matching value. It is considered an error if there is no &lt;subitem&gt;
-element with a matching value.</p>
-<p>For example, if the cheat sheet variable named &quot;v1&quot; has the value
-&quot;b&quot; when the following item is expanded</p>
-<pre>&lt;item ...&gt;&nbsp;
-  &lt;conditional-subitem condition=&quot;${v1}&quot;&gt;
-     &lt;subitem when=&quot;a&quot; label=&quot;Step for A.&quot; /&gt;
-     &lt;subitem when=&quot;b&quot; label=&quot;Step for B.&quot; /&gt;
-  &lt;/conditional-subitem&gt;
-&lt;/item&gt;</pre>
-then the second sub-item is selected and the item expands to something
-equivalent to
-<pre>&lt;item ...&gt;&nbsp;
-  &lt;subitem label=&quot;Step for B.&quot;/&gt;
-&lt;/item&gt;</pre>
-<h2><code>repeated-subitem</code></h2>
-<pre>&lt;!ELEMENT repeated-subitem (subitem)&gt;&nbsp;
-&lt;!ATTLIST repeated-subitem&nbsp;
-&nbsp; values&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&gt;</pre>
-<p>Each &lt;repeated-subitem&gt; element describes a sub-item that expands into
-0, 1, or more similar sub-steps. &lt;repeated-subitem&gt; attributes are as
-follows:</p>
-<ul type="disc">
-  <li><b>values</b> - A string containing a comma-separated list of values. If
-    the attribute string has the form &quot;${<i>var</i>}&quot;, it is
-    considered a reference to a cheat sheet variable <i>var</i>, and value of
-    the condition will be the value of the variable for the cheat sheet at the
-    start of execution of the containing &lt;item&gt; element (or the empty
-    string if the variable is unbound at that time).</li>
-</ul>
-<p>The <b>values</b> attribute provides a list of comma-separated strings; the
-&lt;subitem&gt; child provide the template. When the item is expanded, the
-&lt;repeated-subitem&gt; element is replaced by copies of the &lt;subitem&gt;
-element with occurrences of the variable &quot;this&quot; replaced by the
-corresponding string value.</p>
-<p>For example, if the cheat sheet variable named &quot;v1&quot; has the value
-&quot;1,b,three&quot; when the following item is expanded</p>
-<pre>&lt;item ...&gt;&nbsp;
-  &lt;repeated-subitem values=&quot;${v1}&quot;&gt;
-     &lt;subitem label=&quot;Step ${this}.&quot;&gt;
-        &lt;action class=&quot;com.xyz.myaction&quot; pluginId=&quot;com.xyz&quot; param1=&quot;${this}&quot;/&gt;
-     &lt;/subitem&gt;
-  &lt;/repeated-subitem&gt;
-&lt;/item&gt;</pre>
-then the item expands to something equivalent to:
-<pre>&lt;item ...&gt;&nbsp;
-  &lt;subitem label=&quot;Step 1.&quot;&gt;
-     &lt;action class=&quot;com.xyz.myaction&quot; pluginId=&quot;com.xyz&quot; param1=&quot;1&quot;/&gt;
-  &lt;/subitem&gt;
-  &lt;subitem label=&quot;Step b.&quot;&gt;
-     &lt;action class=&quot;com.xyz.myaction&quot; pluginId=&quot;com.xyz&quot; param1=&quot;b&quot;/&gt;
-  &lt;/subitem&gt;
-  &lt;subitem label=&quot;Step three.&quot;&gt;
-     &lt;action class=&quot;com.xyz.myaction&quot; pluginId=&quot;com.xyz&quot; param1=&quot;three&quot;/&gt;
-  &lt;/subitem&gt;
-&lt;/item&gt;</pre>
-<h2><code>action</code></h2>
-<pre>&lt;!ELEMENT action EMPTY&gt;&nbsp;
-&lt;!ATTLIST action&nbsp;
-&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp; pluginId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp; param1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       CDATA #IMPLIED
-&nbsp; ...
-&nbsp; param9      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED
-&nbsp; confirm  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&quot;true&quot; | &quot;false&quot;) &quot;false&quot;
-&nbsp; when    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED
-&gt;</pre>
-<p>Each &lt;action&gt; element describes an action in a cheat sheet.
-&lt;action&gt; attributes are as follows:</p>
-<ul type="disc">
-  <li><b>class</b> - The fully-qualified name of the Java class implementing <code>org.eclipse.jface.action.IAction</code>.
-    If this action also implements <code>org.eclipse.ui.cheatsheets.ICheatSheetAction</code>
-    it will be invoked via its run(String[],ICheatSheetManager) method and be
-    passed the cheat sheet manager and action parameters. The pluginId attribute
-    must be present whenever this attribute is present. It is strongly
-    recommended that actions intended to be invoked from cheat sheets should
-    report success/fail outcome if running the action might fail (perhaps
-    because the user cancels the action from its dialog). (See
-    org.eclipse.jface.action.Action.notifyResult(boolean) for details.)</li>
-  <li><b>pluginId </b>- The id of the plug-in which contains the Java class of
-    the action class. This attribute must be present whenever the class
-    attribute is present.</li>
-  <li><b>param<i>N</i></b> - For action classes that also implement <code>org.eclipse.ui.cheatsheets.ICheatSheetAction</code>,
-    the string values of these attributes are passed to the action when it is
-    invoked. You can pass up to 9 parameters to a cheat sheet action (<b>param1</b>,
-    <b>param2</b>, etc.). The parameters supplied must start with parameter 1
-    and be contiguous; that is, it is illegal to specify <b>param2</b> without <b>param1</b>
-    also being present. If the attribute string has the form &quot;${<i>var</i>}&quot;,
-    it is considered a reference to a cheat sheet variable <i>var</i>, and value
-    of the condition will be the value of the variable for the cheat sheet at
-    the start of execution of the containing &lt;item&gt; element (or the empty
-    string if the variable is unbound at that time).</li>
-  <li><b>confirm</b> - &quot;true&quot; indicates this step (or sub-step)
-    requires the user to manually confirm that the action has been completed.</li>
-  <li><b>when</b> - Indicates this action is to be used if and only if the value
-    of the condition attribute of the containing &lt;perform-when&gt; element
-    matches this string value. This attribute is ignored if the &lt;action&gt;
-    element is not a child of&nbsp; a &lt;perform-when&gt; element.</li>
-</ul>
-<h2><code>perform-when</code></h2>
-<pre>&lt;!ELEMENT perform-when (action+)&gt;&nbsp;
-&lt;!ATTLIST perform-when&nbsp;
-&nbsp; condition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&gt;</pre>
-<p>Each &lt;perform-when&gt; element describes an action in a cheat sheet.
-&lt;perform-when&gt; attributes are as follows:</p>
-<ul type="disc">
-  <li><b>condition</b> - Arbitrary string value used to select which child
-    &lt;action&gt; will be performed. If the attribute string has the form
-    &quot;${<i>var</i>}&quot;, it is considered a reference to a cheat sheet
-    variable <i>var</i>, and value of the condition will be the value of the
-    variable for the cheat sheet at the start of execution of the containing
-    &lt;item&gt; element (or the empty string if the variable is unbound at that
-    time).</li>
-</ul>
-<p>The <b>condition</b> attribute on the &lt;conditional-subitem&gt; element
-provides a string value (invariably this value comes from a cheat sheet
-variable). Each of the &lt;subitem&gt; children must carry a <b>when</b>
-attribute with a distinct string value. When the item is expanded, the
-&lt;conditional-subitem&gt; element is replaced by the &lt;subitem&gt; element
-with the matching value. It is considered an error if there is no &lt;subitem&gt;
-element with a matching value.</p>
-<p>For example, if the cheat sheet variable named &quot;v1&quot; has the value
-&quot;b&quot; when the following item is expanded</p>
-<pre>&lt;item ...&gt;
-  &lt;subitem label=&quot;Main step&quot;&gt;
-     &lt;perform-when condition=&quot;${v1}&quot;&gt;
-        &lt;action when=&quot;a&quot; class=&quot;com.xyz.action1&quot; pluginId=&quot;com.xyz&quot; /&gt;
-        &lt;action when=&quot;b&quot; class=&quot;com.xyz.action2&quot; pluginId=&quot;com.xyz&quot; /&gt;
-     &lt;/conditional-subitem&gt;
-  &lt;/subitem&gt;
-&lt;/item&gt;</pre>
-then the second action is selected and the item expands to something equivalent
-to
-<pre>&lt;item ...&gt;&nbsp;
-  &lt;subitem label=&quot;Main step&quot;&gt;
-     &lt;action class=&quot;com.xyz.action2&quot; pluginId=&quot;com.xyz&quot; /&gt;
-  &lt;/subitem&gt;
-&lt;/item&gt;</pre>
-<h2>Example</h2>
-<p>The following is an example of a very simple cheat sheet content file:</p>
-<pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;cheatsheet title=&quot;Example&quot;&gt;
-  &lt;intro&gt;
-    &lt;description&gt;Example cheat sheet with two steps.&lt;/description&gt;
-  &lt;/intro&gt;
-  &lt;item title=&quot;Step 1&quot; dialog=&quot;true&quot;&gt;
-     &lt;description&gt;This is a step with an action that involves opening a modal dialog.&lt;/description&gt;
-     &lt;action class=&quot;com.xyz.myaction&quot; pluginId=&quot;com.xyz&quot;/&gt;
-  &lt;/item&gt;
-  &lt;item title=&quot;Step 2&quot;&gt;
-     &lt;description&gt;This is a fully manual step.&lt;/description&gt;
-  &lt;/item&gt;
-&lt;/cheatsheet&gt;</pre>
-
-<br>
-<p class=note id=copyright>
-Copyright (c) 2004, 2005 IBM Corporation and others.<br>
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at 
-<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
-</p>
-
-</body>
-
-</html>
diff --git a/org.eclipse.ui.cheatsheets/schema/cheatSheetItemExtension.exsd b/org.eclipse.ui.cheatsheets/schema/cheatSheetItemExtension.exsd
deleted file mode 100644
index e35caa5..0000000
--- a/org.eclipse.ui.cheatsheets/schema/cheatSheetItemExtension.exsd
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.cheatsheets">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.cheatsheets" id="cheatSheetItemExtension" name="Cheat Sheet Item Extension"/>
-      </appInfo>
-      <documentation>
-         This extension point should be used when an extra button needs to be added to a step in the cheat sheet.
-You can put a new attribute into the &quot;item&quot; tag in the cheat sheet content file, and when that value is read by the cheat sheet framework,
-it will check to see if there is a class registered through this extension point that will handle this attribute.  The attribute name found in the
-cheat sheet content file is matched against all of the values found in the &quot;itemAttribute&quot; attribute of all of the registered cheatsheetItemExtension point implementations.  If there is a match, the class specified to handle this item attribute is loaded by the cheat sheet framework and is called to handle the attribute specified in the cheat sheet content file.
-
-After having parsed the value of the item attribute, the class remains available to the cheat sheets framework.  When the item is rendered for the cheat sheets view, the class is once again called to handle the addition of components to a Composite.  The items that are added to this composite are displayed in the cheat sheet step (currently, beside the help icon).  It is displayed only for the step that is described by the &quot;item&quot; tag that the attribute appeared in the cheat sheet content file.
-
-The suggested use of this extension point is adding a small (16x16) button with a graphic that opens a dialog box when pressed.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice minOccurs="0" maxOccurs="unbounded">
-            <element ref="itemExtension"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="itemExtension">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-         <documentation>
-            Use this item extension to add elements to cheat sheet steps.  You can use this extension point to add icons and buttons (currently, beside the
-help icon) for a step in the cheat sheet.
-You specify the name of an attribute that you will put into the cheat sheet item tag.  You also specify a class that will handle the parsing of the attribute value from the cheat sheet content file when the cheat sheet is loaded.  The attribute valuemust be a string. The specified class must subclass &lt;code&gt;org.eclipse.ui.cheatsheets.AbstractItemExtensionElement&lt;/code&gt;.  After the cheat sheet content file is parsed and loaded, the class specified in the extension point is called again through the interface to add graphics or buttons to the step in the cheat sheet (currently, next to the help button).
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="itemAttribute" type="string" use="required">
-            <annotation>
-               <documentation>
-                  This attribute value must be the string value of an attribute name that is put into an item tag in the cheat sheet content file.  If this attribute string matches an attribute parsed from the item tag in the cheat sheet content file, the class specified will be loaded and will be called to parse the full value of the attribute using the w3 DOM specification.  It will later be called to add controls to a Composite, and the added components (usually graphics or buttons) will appear in the step of the cheat sheet for the item specified (currently, beside the help icon for that step).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The fully qualified class name of the class that subclasses &lt;code&gt;org.eclipse.ui.cheatsheets.AbstractItemExtensionElement&lt;/code&gt; to handle unknown attributes in the cheat sheet content file and extend the steps in the cheat sheet. The class must be public, and have a public 1-argument constructor that accepts the attribute name
-(a &lt;code&gt;String&lt;/code&gt;).
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.cheatsheets.AbstractItemExtensionElement"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         Here is an example implementation of this extension point:
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.ui.cheatsheets.cheatSheetItemExtension&quot;&gt;
- &lt;itemExtension
-   itemAttribute=&quot;xyzButton&quot;
-   class=&quot;com.example.HandleParsingAndAddButton&quot;&gt;
- &lt;/itemExtension&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-And here is the item attribute for that extension:
-&lt;p&gt;
-&lt;pre&gt;
-&lt;item title=&quot;XYZ Title&quot; xyzButton=&quot;/icon/button.gif&quot;/&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-Note that the value of the attribute in the item tag can be ANYTHING. It can be anything because
-the class that parses that attribute is the class HandleParsingAndAddButton, which in this example parses
-a string /icon/button.gif from the attribute.  It later will use that info to load the gif and use it as the icon
-for a new button.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         See the Javadoc information for org.eclipse.ui.cheatsheets.AbstractItemExtensionElement for API details.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         There is no supplied implementation at this time.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies 
-this distribution, and is available at 
-&lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.cheatsheets/schema/compositeContentFile.exsd b/org.eclipse.ui.cheatsheets/schema/compositeContentFile.exsd
deleted file mode 100644
index e246e23..0000000
--- a/org.eclipse.ui.cheatsheets/schema/compositeContentFile.exsd
+++ /dev/null
@@ -1,236 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.cheatsheets">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.cheatsheets" id="composite_schema" name="Composite Cheat Sheets"/>
-      </appInfo>
-      <documentation>
-         The schema definition for a composite cheat sheet content file. A composite cheat sheet consists of a set of tasks organized into task groups. Each task can be a simple cheat sheet or a user contributed task kind.
-      </documentation>
-   </annotation>
-
-   <element name="compositeCheatsheet">
-      <annotation>
-         <documentation>
-            The root element of a composite cheatsheet
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="taskGroup"/>
-            <element ref="task"/>
-         </choice>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of the composite cheat sheet which will be displayed in large font when the composite cheat sheet is opened.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="taskGroup">
-      <annotation>
-         <documentation>
-            A task group represents a collection of related tasks. If the kind is &quot;choice&quot; only one of the child tasks need to be completed. If the kind is &quot;set&quot; or &quot;sequence&quot; all children must be completed.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <choice>
-               <element ref="task"/>
-               <element ref="taskGroup"/>
-            </choice>
-            <element ref="intro" minOccurs="0" maxOccurs="1"/>
-            <element ref="onCompletion" minOccurs="0" maxOccurs="1"/>
-            <element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="kind" type="string" use="default" value="set">
-            <annotation>
-               <documentation>
-                  The kind of this task group which can be &quot;set&quot;, &quot;sequence&quot; or &quot;choice&quot;. If the kind is set or sequence this task group is complete when all of its child tasks/task groups have been completed. In addition the subtasks of a sequence must be completed in order. A choice is complete when any of its subtasks has been completed.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of this task group which will be displayed in the task explorer.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An id for this task group which is required if this task group is referenced by a dependency element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="skip" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  If true this group of tasks may be skipped.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="task">
-      <annotation>
-         <documentation>
-            A leaf task within a composite cheat sheet. A task does not have children, but it does have a task editor which shows in the lower/right hand pane of the cheat sheet view. The task kind determines which task editor will be opened, a task kind of &quot;cheatsheet&quot; represents a simple cheatsheet. Other task kinds may be contributed.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="intro" minOccurs="0" maxOccurs="1"/>
-            <element ref="onCompletion" minOccurs="0" maxOccurs="1"/>
-            <element ref="param" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="kind" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The task kind. A task kind of &quot;cheatsheet&quot; represents a simple cheatsheet, other task kinds can be contributed using the extension point org.eclipse.ui.cheatsheets.cheatSheetContent.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of this task which will be displayed in the task explorer.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An id for this task group which is required if this task group is referenced by a dependency element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="skip" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  If true this task may be skipped.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="param">
-      <annotation>
-         <documentation>
-            A parameter to a task within a composite cheatsheet. Each parameter has a name and value, both of which are strings. A task may have any number of parameters, two parameters for a single task may not share the same name.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of this parameter.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value of this parameter.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="intro" type="string">
-      <annotation>
-         <documentation>
-            Contains the text which will be displayed before this task has been started. May contain form text markup.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="onCompletion" type="string">
-      <annotation>
-         <documentation>
-            Contains the text which will be displayed in the completion panel for this task. May contain form text markup.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="dependency">
-      <annotation>
-         <documentation>
-            Creates a dependency between two tasks or subtasks.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="task" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the task or task group which must be completed before this task can be started.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2006 IBM Corporation and others.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.cheatsheets/schema/contentFile.xsd b/org.eclipse.ui.cheatsheets/schema/contentFile.xsd
deleted file mode 100644
index 699ac58..0000000
--- a/org.eclipse.ui.cheatsheets/schema/contentFile.xsd
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-
-	<xsd:annotation>
-		<xsd:documentation xml:lang="en">
-		Schema for cheat sheet content file.
- 		Copyright (c) 2004, 2005 IBM Corporation and others.&lt;br&gt;
-		All rights reserved. This program and the accompanying materials are made 
-		available under the terms of the Eclipse Public License v1.0 which 
-		accompanies this distribution, and is available at 
-		&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-		</xsd:documentation>
-	</xsd:annotation>
-
-    <xsd:element name="cheatsheet">
-        <xsd:complexType>
-            <xsd:sequence>
-                <xsd:element maxOccurs="1" minOccurs="1" ref="intro"/>
-                <xsd:element maxOccurs="unbounded" minOccurs="1" ref="item"/>
-            </xsd:sequence>
-            <xsd:attribute name="title" type="xsd:string" use="required"/>
-        </xsd:complexType>
-    </xsd:element>
-    
-    <xsd:element name="intro">
-        <xsd:complexType>
-            <xsd:sequence>
-                <xsd:element ref="description" minOccurs="1" maxOccurs="1"/>
-            </xsd:sequence>
-            <xsd:attribute name="contextId" type="xsd:string" use="optional"/>
-            <xsd:attribute name="href" type="xsd:string" use="optional"/>
-        </xsd:complexType>
-    </xsd:element>
-      
-    <xsd:element name="description">
-        <xsd:complexType>
-            <xsd:simpleContent>
-                <xsd:extension base="string"/>
-            </xsd:simpleContent>
-        </xsd:complexType>
-    </xsd:element> 
-    
-    <xsd:element name="onCompletion">
-        <xsd:complexType>
-            <xsd:simpleContent>
-                <xsd:extension base="string"/>
-            </xsd:simpleContent>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="item">
-        <xsd:complexType mixed="true">
-            <xsd:choice maxOccurs="1" minOccurs="1">
-	            <xsd:sequence>
-	                <xsd:element ref="description"/>
-		            <xsd:choice minOccurs="0" maxOccurs="1">
-		                <xsd:element ref="action"/>
-		                <xsd:element ref="command"/>
-		                <xsd:element ref="perform-when"/>
-		            </xsd:choice>
-		            <xsd:element minOccurs="0" maxOccurs="1" ref="onCompletion"/>
-	            </xsd:sequence>
-	            <xsd:choice maxOccurs="unbounded" minOccurs="0">
-	                <xsd:element ref="subitem"/>
-	                <xsd:element ref="conditional-subitem"/>
-	                <xsd:element ref="repeated-subitem"/>
-	            </xsd:choice>
-            </xsd:choice>
-            <xsd:attribute name="title" type="xsd:string" use="required"/>
-            <xsd:attribute name="dialog" type="xsd:boolean" use="optional" default="false"/>
-            <xsd:attribute name="skip" type="xsd:boolean" use="optional" default="false"/>
-            <xsd:attribute name="contextId" type="xsd:string" use="optional"/>
-            <xsd:attribute name="href" type="xsd:string" use="optional"/>
-        </xsd:complexType>
-    </xsd:element>
-    
-    <xsd:element name="subitem">
-        <xsd:complexType>
-            <xsd:choice minOccurs="0" maxOccurs="1">
-                <xsd:element ref="action"/>
-                <xsd:element ref="command"/>
-                <xsd:element ref="perform-when"/>
-            </xsd:choice>
-            <xsd:attribute name="label" type="xsd:string" use="required"/>
-            <xsd:attribute name="kind" type="ActionKind" use="required"/>
-            <xsd:attribute name="skip" type="xsd:boolean" use="optional" default="false"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="conditional-subitem">
-        <xsd:complexType>
-           <xsd:sequence>
-                <xsd:element ref="subitem" minOccurs="1" maxOccurs="unbounded"/>
-            </xsd:sequence>
-            <xsd:attribute name="condition" type="xsd:string" use="required"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="repeated-subitem">
-        <xsd:complexType>
-           <xsd:sequence>
-                <xsd:element ref="subitem" minOccurs="1" maxOccurs="1"/>
-            </xsd:sequence>
-            <xsd:attribute name="values" type="xsd:string" use="required"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="action">
-        <xsd:complexType>
-            <xsd:attribute name="when" type="xsd:string" use="required"/>
-            <xsd:attribute name="confirm" type="xsd:boolean" use="optional" default="false"/>
-            <xsd:attribute name="class" type="xsd:string" use="optional"/>
-            <xsd:attribute name="pluginId" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param1" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param2" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param3" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param4" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param5" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param6" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param7" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param8" type="xsd:string" use="optional"/>
-            <xsd:attribute name="param9" type="xsd:string" use="optional"/>
-        </xsd:complexType>
-    </xsd:element>
-    
-    <xsd:element name="command">
-        <xsd:complexType>
-            <xsd:attribute name="when" type="xsd:string" use="required"/>
-            <xsd:attribute name="confirm" type="xsd:boolean" use="optional" default="false"/>
-            <xsd:attribute name="serialization" type="xsd:string" use="optional"/>
-            <xsd:attribute name="returns" type="xsd:string" use="optional"/>
-        </xsd:complexType>
-    </xsd:element>
-    
-    <xsd:element name="perform-when">
-        <xsd:complexType>
-           <xsd:sequence>
-	           <xsd:choice minOccurs="1" maxOccurs="unbounded">
-	                <xsd:element ref="action" />
-	                <xsd:element ref="command"/>
-	            </xsd:choice>
-            </xsd:sequence>
-            <xsd:attribute name="condition" type="xsd:string" use="required"/>
-        </xsd:complexType>
-    </xsd:element>
-
-</xsd:schema>
-
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/AbstractItemExtensionElement.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/AbstractItemExtensionElement.java
deleted file mode 100644
index 76864ac..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/AbstractItemExtensionElement.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Base class for adding controls to cheat sheet items.
- * <p>
- * Subclasses are used in conjunction with the
- * <code>org.eclipse.ui.cheatsheets.cheatSheetItemExtension</code> extension
- * point. Subclasses must be public and have a public 1-arg constructor 
- * that takes the name of the attribute type <code>String</code>. The
- * extension point specifies the name of the subclass and the name of the XML
- * attribute that it can handle. When the cheat sheet framework encounters an
- * item (or subitem) element in the cheat sheet content file with an attribute
- * with a matching name, an instance of the corresponding item extension subclass
- * is created. It is up to this instance to remember the attribute value if
- * required. Later, when creating the visual controls for the item
- * are being created, the instance is given the opportunity to add extra controls.
- * </p>
- * 
- * @since 3.0
- */
-public abstract class AbstractItemExtensionElement {
-	
-	/**
-	 * Name of the XML attribute that this item extension handles.
-	 */
-	private String attributeName;
-	
-	/**
-	 * Creates a new item element extension for handling the
-	 * XML attributes of the given name.
-	 * 
-	 * @param attributeName the name of the attribute that this item extension handles
-	 * @exception IllegalArgumentException if <code>attributeName</code>
-	 * is <code>null</code>
-	 */
-	public AbstractItemExtensionElement(String attributeName) {
-		if (attributeName == null) {
-			throw new IllegalArgumentException();
-		}
-		this.attributeName = attributeName;
-	}
-
-	/**
-	 * Returns the name of the XML attribute that this item extension handles.
-	 * 
-	 * @return the name of the attribute that this item extension handles
-	 */
-	public final String getAttributeName() {
-		return this.attributeName;
-	}
-	
-	/**
-	 * Called by the cheat sheet framework to parse and extract information
-	 * from the string value of the XML attribute.
-	 * 
-	 * @param attributeValue the attribute value specified in the cheat sheet
-	 * content file
-	 */
-	public abstract void handleAttribute(String attributeValue);
-
-	/**
-	 * Called by the cheat sheet framework when creating the visual
-	 * representation of a step. This method should add a small button
-	 * (suggested size 16x16 pixels) to the given composite to decorate the step.
-	 * <p>
-	 * Important note: In some presentations of the cheatsheet, the color of the
-	 * background is varied to emphasize the current step. Because of this, it is
-	 * important to always use the background color of the composite
-	 * (<code>composite.getBackground()</code>) as the background color for any
-	 * additional controls; otherwise the new controls will not match their
-	 * surrounding.
-	 * </p>
-	 * 
-	 * @param composite the composite to add extra controls to
-	 */
-	public abstract void createControl(Composite composite);
-
-	/**
-	 * Called by the cheat sheet framework to dispose of this item element extension.
-	 * <p>
-	 * This is the last method called on the <code>AbstractItemExtensionElement</code>.
-	 * At this point the controls (if they were ever created) have been disposed as part 
-	 * of an SWT composite.  There is no guarantee that createControl() has been called,
-	 * so the controls may never have been created.
-	 * </p>
-	 * <p>
-	 * Within this method an item element extension may release any resources, fonts,
-	 * images, etc.&nbsp; held by this part.  It is also very important to deregister
-	 * all listeners.
-	 * </p>
-	 * <p>
-	 * Clients should not call this method (the cheat sheet framework calls this method
-	 * at appropriate times).
-	 * </p>
-	 */
-	public abstract void dispose();
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetExtensionFactory.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetExtensionFactory.java
deleted file mode 100644
index ae4f8bf..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetExtensionFactory.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IExecutableExtensionFactory;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.cheatsheets.actions.CheatSheetHelpMenuAction;
-
-/**
- * Factory for the cheat sheet's public extensions.
- * <p>
- * This allows the extensions to be made available for use by RCP applications
- * without exposing their concrete implementation classes.
- * </p>
- * 
- * @since 3.1
- */
-
-public class CheatSheetExtensionFactory implements IExecutableExtensionFactory,
-		IExecutableExtension {
-	/**
-	 * Factory ID for the Help menu cheat sheet action.
-	 */
-	public static final String HELP_MENU_ACTION = "helpMenuAction"; //$NON-NLS-1$
-
-	private IConfigurationElement config;
-
-	private String id;
-
-	private String propertyName;
-
-	/**
-	 * The default constructor.
-	 */
-	public CheatSheetExtensionFactory() {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IExecutableExtensionFactory#create()
-	 */
-	public Object create() throws CoreException {
-		if (HELP_MENU_ACTION.equals(id))
-			return configure(new CheatSheetHelpMenuAction());
-		throw new CoreException(new Status(IStatus.ERROR,
-				"org.eclipse.ui.cheatsheets", //$NON-NLS-1$
-				0, "Unknown id in data argument for " + getClass(), null)); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
-	 *      java.lang.String, java.lang.Object)
-	 */
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-		if (data instanceof String)
-			id = (String) data;
-		else
-			throw new CoreException(new Status(IStatus.ERROR,
-					PlatformUI.PLUGIN_ID, 0,
-					"Data argument must be a String for " + getClass(), null)); //$NON-NLS-1$
-		this.config = config;
-		this.propertyName = propertyName;
-	}
-
-	private Object configure(Object obj) throws CoreException {
-		if (obj instanceof IExecutableExtension) {
-			((IExecutableExtension) obj).setInitializationData(config,
-					propertyName, null);
-		}
-		return obj;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetListener.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetListener.java
deleted file mode 100644
index 73089dc..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetListener.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-/**
- * For monitoring the execution of a cheat sheet.
- * <p>
- * This class is used in conjuction with the "listener" attribute on
- * extensions to the extension point 
- * "org.eclipse.ui.cheatsheets.cheatSheetContent". Clients should declare
- * a subclass that implements {@link #cheatSheetEvent(ICheatSheetEvent)}. The
- * listener subclass must be public, and have a public 0-arg constructor. The
- * listener subclass is instantiated as the cheat sheet is opened, and discarded
- * after the cheat sheet is closed.
- * </p>
- * 
- * @since 3.0
- */
-public abstract class CheatSheetListener {
-	
-	/**
-	 * Creates a new cheat sheet listener.
-	 */
-	public CheatSheetListener() {
-		// do nothing
-	}
-
-	/**
-	 * Notifies this listener of the given cheat sheet event.
-	 * 
-	 * @param event the cheat sheet event
-	 */
-	 public abstract void cheatSheetEvent(ICheatSheetEvent event);
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetViewerFactory.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetViewerFactory.java
deleted file mode 100644
index 8c4dc4a..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/CheatSheetViewerFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetViewer;
-
-/**
- * A factory for creating a cheat sheet viewer.
- * <p>
- * This class provides all its functionality via static members.
- * It is not intended to be instantiated.
- * </p>
- * 
- * @since 3.0
- */
-public final class CheatSheetViewerFactory {
-
-	/**
-	 * Non-instantiable.
-	 */
-	private CheatSheetViewerFactory() {
-		// do nothing
-	}
-	
-	/**
-	 * Creates a new cheat sheet viewer. The viewer does not
-	 * show any cheat sheet initially.
-	 * 
-	 * @return a new cheat sheet viewer
-	 */
-	public static ICheatSheetViewer createCheatSheetView() {
-		return new CheatSheetViewer(false);
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetAction.java
deleted file mode 100644
index 2860010..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetAction.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-/**
- * Cheat sheet-aware action.
- * <p>
- * This interface should be implemented by actions 
- * (subclasses of {@link org.eclipse.jface.action.Action}) that provide extra
- * support for use in cheat sheets. These actions get passed additional
- * parameters and the invoking cheat sheet manager.
- * </p>
- * <p>
- * It is strongly recommended that actions intended to be invoked from cheat
- * sheets should report success/fail outcome if running the action might fail
- * (perhaps because the user cancels the action from its dialog). 
- * See {@link org.eclipse.jface.action.Action#notifyResult(boolean)} for
- * details.
- * </p>
- *
- * @since 3.0
- */
-public interface ICheatSheetAction {
-
-	/**
-	 * Runs this Cheat sheet-aware action.
-	 * 
-	 * @param params an array of strings
-	 * @param manager the cheat sheet manager
-	 */
-	public void run(String [] params, ICheatSheetManager manager);
-
-}
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
deleted file mode 100644
index 3ac8b3e..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetEvent.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-
-/**
- * Event in the life cycle of a cheat sheet.
- * <p>
- * Events over the life time of a running cheat sheet
- * follow this pattern:
- * <pre>
- * opened { started | restored } { restarted | completed }* closed
- * </pre> 
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @see CheatSheetListener
- * @since 3.0
- */
-public interface ICheatSheetEvent {
-	
-	/**
-	 * 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.
-	 */
-	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.
-	 */
-	public static final int CHEATSHEET_CLOSED = 1;
-	
-	/**
-	 * Event type constant (value {@value}) indicating that
-	 * the cheat sheet was started.
-	 */
-	public static final int CHEATSHEET_STARTED = 2;
-	
-	/**
-	 * Event type constant (value {@value}) indicating that
-	 * the cheat sheet was restarted.
-	 */
-	public static final int CHEATSHEET_RESTARTED = 3;
-	
-	/**
-	 * Event type constant (value {@value}) indicating that
-	 * the cheat sheet has been completed.
-	 */
-	public static final int CHEATSHEET_COMPLETED = 4;
-
-	/**
-	 * Event type constant (value {@value}) indicating that
-	 * the cheat sheet has been restored.
-	 */
-	public static final int CHEATSHEET_RESTORED = 5;
-
-	/**
-	 * Returns the type of this cheat sheet event.
-	 * 
-	 * @return the event type code; one of the event type constants
-	 * declared on this class
-	 */
-	public int getEventType();
-	
-	/**
-	 * Returns the id of the cheat sheet that generated this event.
-	 * 
-	 * @return the cheat sheet id
-	 */
-	public String getCheatSheetID();
-	
-	/**
-	 * Returns the cheat sheet manager responsible for executing
-	 * the cheat sheet.
-	 * 
-	 * @return the cheat sheet manager
-	 */
-	public ICheatSheetManager getCheatSheetManager();
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java
deleted file mode 100644
index 8b40165..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import java.util.Set;
-
-/**
- * Manages the running of a cheat sheet.
- * <p>
- * Each cheat sheet that is opened in the UI is assigned its own cheat sheet
- * manager, which stays with it until the cheat sheet is completed (or
- * restarted). The cheat sheet manager is passed as a parameter to cheat
- * sheet-aware actions which implement {@link ICheatSheetAction}. The manager
- * carries arbitrary key-value data (strings) for the lifetime of a cheat sheet,
- * and can be accessed via {@link #getData(String)}and
- * {@link #setData(String, String)}. If the workbench is shut down while the
- * cheat sheet is in progress, this data will generally be saved and later
- * restored when the workbench is restarted and cheat sheet is resumed. The
- * manager also supports a {@link CheatSheetListener}(specified via the
- * "listener" attribute of the "cheatsheet" element in the cheat sheet content
- * file), which is kept informed of life cycle events over the course of the
- * cheat sheet's life time.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @since 3.0
- */
-public interface ICheatSheetManager {
-
-	/**
-	 * Returns the id of the cheat sheet managed by this manager.
-	 * 
-	 * @return the cheat sheet id
-	 */
-	public String getCheatSheetID();
-
-	/**
-	 * Returns the data value associated with the given key.
-	 * 
-	 * @param key the key
-	 * @return the string data associated with the key, or
-	 * <code>null</code> none
-	 * @exception IllegalArgumentException if <code>key</code>
-	 * is <code>null</code>
-	 */
-	public String getData(String key);
-
-	/**
-	 * Sets the data value associated with the given key.
-	 * <p>
-	 * Data associated with a cheat sheet manager is remembered
-	 * for the life of the manager. All data is discarded when 
-	 * the cheat sheet is completed (or restarted).
-	 * </p>
-	 * 
-	 * @param key the key
-	 * @param data the string data associated with the key,
-	 * or <code>null</code> to remove
-	 * @exception IllegalArgumentException if <code>key</code>
-	 * is <code>null</code>
-	 */
-	public void setData(String key, String data);
-	
-	/**
-	 * Get the cheat sheet manager for the enclosing composite cheat sheet.
-	 * @return The cheat sheet manager for the composite cheat sheet which contains
-	 * this cheat sheet as a task or <code>null</code> if this cheatsheet was not
-	 * opened as a subtask of a composite cheat sheet.
-	 * @since 3.2
-	 */
-	public ICheatSheetManager getParent();
-	
-	/**
-	 * Get the keys for the data in this cheat sheet manager
-	 * @return The set of keys.
-	 * @since 3.2
-	 */
-	public Set getKeySet();
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java
deleted file mode 100644
index a4a060a..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import java.net.URL;
-import java.util.Map;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A cheat sheet viewer.
- * <p>
- * Clients call {@link CheatSheetViewerFactory#createCheatSheetView()} to create
- * a cheat sheet viewer instance, and then call the viewer's 
- * <code>createPartControl</code> method to have it create the viewer's control
- * under the specified SWT composite. The viewer's control can then be retrieved
- * using <code>getControl</code> to arrange layout. The <code>setInput</code>
- * methods are used to set (or clear) the cheat sheet shown in the viewer,
- * and can be called either before or after the viewer's controls have been
- * created and laid out.
- * </p>
- * <p>
- * The execution states of open cheat sheets are maintained and persisted
- * globally using the cheat sheet id as the key.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @see CheatSheetViewerFactory
- * @since 3.0
- */
-public interface ICheatSheetViewer {
-
-	/**
-	 * Creates the SWT controls for this cheat sheet viewer.
-	 * <p>
-	 * When the parent Composite is disposed, this will automatically
-	 * dispose the controls added by this viewer (and release any other 
-	 * viewer-specific state).
-	 * </p>
-	 *
-	 * @param parent the parent control
-	 */
-	public void createPartControl(Composite parent);
-
-	/**
-	 * Returns the primary control associated with this viewer.
-	 *
-	 * @return the SWT control which displays this viewer's
-	 * content, or <code>null</code> if this viewer's controls
-	 * have not yet been created.
-	 */
-	public Control getControl();
-
-	/**
-	 * Returns the id of the cheat sheet showing in this view.
-	 * 
-	 * @return id the cheat sheet id, or <code>null</code> if the
-	 * view is not showing a cheat sheet
-	 */
-	public String getCheatSheetID();
-
-	/**
-	 * Asks this cheat sheet viewer to take focus.
-	 */
-	public void setFocus();
-
-	/**
-	 * Sets the cheat sheet viewer to show the cheat sheet with 
-	 * the given id. The cheat sheet content file is located via the
-	 * <code>org.eclipse.ui.cheatsheets.cheatSheetContent</code>
-	 * extension point. The viewer shows an error message if there
-	 * is no cheat sheet with the given id.
-	 * </p>
-	 * <p>
-	 * The execution states of open cheat sheets are maintained
-	 * and persisted globally using the cheat sheet id as the key. 
-	 * </p>
-	 * 
-	 * @param id the cheat sheet id, or <code>null</code> to show
-	 * no cheat sheet in this viewer
-	 */
-	public void setInput(String id);
-
-	/**
-	 * Sets the cheat sheet viewer to show the cheat sheet with the 
-	 * given cheat sheet content file. The viewer shows an error
-	 * message if the cheat sheet content file cannot be opened or
-	 * parsed.
-	 * <p>
-	 * The execution states of open cheat sheets are maintained
-	 * and persisted globally using the cheat sheet id as the key. 
-	 * This means that each cheat sheet must have a distinct id,
-	 * including ones opened from URLs.
-	 * </p>
-	 * <p>
-	 * Use the other <code>setInput</code> method to clear
-	 * the viewer; that is, call <code>setInput(null)</code>.
-	 * </p>
-	 * 
-	 * @param id the id to give this cheat sheet
-	 * @param name the name to give this cheat sheet
-	 * @param url URL of the cheat sheet content file
-	 * @exception IllegalArgumentException if the parameters
-	 * are <code>null</code>
-	 */
-	public void setInput(String id, String name, URL url);
-	
-	/**
-	 * Sets the currently active cheat sheet to its initial state and
-	 * initalizes the cheat sheet manager data.
-	 * @param cheatSheetData A map whose keys and values are all of type
-	 * <code>java.lang.String</code> or <code>null</code> to reset all data in 
-	 * the cheat sheet manager. 
-	 * @since 3.2
-	 */
-	public void reset(Map cheatSheetData);
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetAction.java
deleted file mode 100644
index b7caeea..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetAction.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetView;
-
-/**
- * Action for opening a cheat sheet. The cheat sheet can be specified 
- * either by a cheat sheet id or by a URL of a cheat sheet content file.
- * <p>
- * This class is not intended to be subclassed by clients.
- * </p>
- * 
- * @since 3.0
- */
-public final class OpenCheatSheetAction extends Action {
-	private String id;
-	private String name;
-	private URL url;
-
-	/**
-	 * Creates an action that opens the cheat sheet with the given id.
-	 * The cheat sheet content file is located via the
-	 * <code>org.eclipse.ui.cheatsheets.cheatSheetContent</code>
-	 * extension point.
-	 * 
-	 * @param id the cheat sheet id
-	 * @exception IllegalArgumentException if <code>id</code>
-	 * is <code>null</code>
-	 */
-	public OpenCheatSheetAction(String id) {
-		if (id == null) {
-			throw new IllegalArgumentException();
-		}
-		this.id = id;
-	}
-	
-	/**
-	 * Creates an action that opens the cheat sheet with the 
-	 * given cheat sheet content file.
-	 * 
-	 * @param id the id to give this cheat sheet
-	 * @param name the name to give this cheat sheet
-	 * @param url URL of the cheat sheet content file
-	 * @exception IllegalArgumentException if the parameters
-	 * are <code>null</code>
-	 */
-	public OpenCheatSheetAction(String id, String name, URL url) {
-		if (id == null || name == null || url == null) {
-			throw new IllegalArgumentException();
-		}
-		this.id = id;
-		this.name = name;
-		this.url = url;
-	}
-
-	/* (non-javadoc)
-	 * This action will try to launch the cheat sheet view and populate
-	 * it with the content specified either in the URL or the content
-	 * file specified in the cheatsheetContent extension point
-	 * for the cheat sheet with the id passed to this action.
-	 * @see IAction#run()
-	 */
-	public void run() {
-		IWorkbench workbench = CheatSheetPlugin.getPlugin().getWorkbench();
-		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
-		IWorkbenchPage page = window.getActivePage();
-
-		CheatSheetView view = (CheatSheetView) page.findView(ICheatSheetResource.CHEAT_SHEET_VIEW_ID);
-		if (view != null) {
-			if(url == null) {
-				view.setInput(id);
-			} else {
-				view.setInput(id, name, url);
-			}
-			page.bringToTop(view);
-		} else {
-			try {
-				view = (CheatSheetView)page.showView(ICheatSheetResource.CHEAT_SHEET_VIEW_ID);
-				page.activate(view);
-				if(url == null) {
-					view.setInput(id);
-				} else {
-					view.setInput(id, name, url);
-				}
-			} catch (PartInitException pie) {
-				String message = Messages.LAUNCH_SHEET_ERROR;
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, pie);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-				org.eclipse.jface.dialogs.ErrorDialog.openError(window.getShell(), Messages.CHEAT_SHEET_ERROR_OPENING, null, pie.getStatus());
-				return;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetFromHelpAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetFromHelpAction.java
deleted file mode 100644
index 30bcd80..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/OpenCheatSheetFromHelpAction.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.cheatsheets;
-
-import org.eclipse.help.ILiveHelpAction;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Live help action for launching a cheat sheet from a help book.
- * <p>
- * The initialization string passed to {@link #setInitializationString(String)}
- * is the id of a cheat sheet contributed to the <code>cheatsheetContent</code>
- * extension point.
- * </p>
- * 
- * @since 3.0
- */
-public final class OpenCheatSheetFromHelpAction implements ILiveHelpAction {
-	
-	/**
-	 * Cheat sheet id; null until initialized.
-	 */
-	private String cheatsheetID = null;
-
-	/**
-	 * Creates a new live help action.
-	 */
-	public OpenCheatSheetFromHelpAction() {
-		super();
-	}
-
-	/* (non-javadoc)
-	 * This method is called by the eclipse framework.  The initialization string must be the id of a 
-	 * registered cheat sheet in order for the action to work.
-	 * @see ILiveHelpAction#setInitializationString(String)
-	 */
-	public void setInitializationString(String data) {
-		cheatsheetID = data;
-	}
-
-	/* (non-javadoc)
-	 * @see java.lang.Runnable#run()
-	 */
-	public void run() {
-		// Active help does not run on the UI thread, so we must use syncExec
-		Display.getDefault().syncExec(new Runnable() {
-			public void run() {
-				new OpenCheatSheetAction(cheatsheetID).run();
-			}
-		});
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/package.html b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/package.html
deleted file mode 100644
index 5e289a9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/package.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Author" content="IBM">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-
-Provides support for working with cheat sheets.
-<h2>Package Specification</h2>
-This package contains the API for cheat sheets.
-
-</body>
-
-</html>
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
deleted file mode 100644
index fc327ae..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ActionRunner.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.cheatsheets.ICheatSheetAction;
-import org.eclipse.ui.internal.cheatsheets.data.Action;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-import org.osgi.framework.Bundle;
-
-/**
- * Class which can run actions and determine the outcome
- */
-public class ActionRunner {
-	public IStatus runAction(Action cheatSheetAction, CheatSheetManager csm) {
-
-		IStatus status =  Status.OK_STATUS;
-		String pluginId = cheatSheetAction.getPluginID();
-		String className = cheatSheetAction.getActionClass();
-		String[] params = cheatSheetAction.getParams();
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle == null) {
-			String message = NLS.bind(Messages.ERROR_FINDING_PLUGIN_FOR_ACTION, (new Object[] {pluginId}));
-			return new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, null);
-		}
-		Class actionClass;
-		IAction action;
-		try {
-			actionClass = bundle.loadClass(className);
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_LOADING_CLASS_FOR_ACTION, (new Object[] {className}));
-			return new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-		}
-		try {
-			action = (IAction) actionClass.newInstance();
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_CREATING_CLASS_FOR_ACTION, (new Object[] {className}));
-			return new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-		}
-
-		final boolean[] listenerFired = { false };
-		final boolean[] listenerResult = { false };
-		IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				if(event.getProperty().equals(IAction.RESULT) && event.getNewValue() instanceof Boolean) {
-					listenerFired[0] = true;
-					listenerResult[0] = ((Boolean)event.getNewValue()).booleanValue();
-				}
-			}
-		};
-
-		// Add PropertyChangeListener to the action, so we can detemine if a action was succesfull
-		action.addPropertyChangeListener(propertyChangeListener);
-
-		// Run the action for this ViewItem
-		if (action instanceof ICheatSheetAction) {
-			// Prepare parameters
-			String[] clonedParams = null;
-			if(params != null && params.length > 0) {
-				clonedParams = new String[params.length];
-				System.arraycopy(params, 0, clonedParams, 0, params.length);
-				for (int i = 0; i < clonedParams.length; i++) {
-					String param = clonedParams[i];
-					if(param != null && param.startsWith("${") && param.endsWith("}")) { //$NON-NLS-1$ //$NON-NLS-2$
-						param = param.substring(2,param.length()-1);
-						String value = csm.getDataQualified(param);
-						clonedParams[i] = value == null ? ICheatSheetResource.EMPTY_STRING : value;
-					}
-				}
-			}			
-			((ICheatSheetAction) action).run(clonedParams, csm);
-		} else {
-			try {
-				action.run();
-			} catch (Throwable e) {
-				status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.EXCEPTION_RUNNING_ACTION, e);
-			}
-		}
-
-		// Remove the PropertyChangeListener
-		action.removePropertyChangeListener(propertyChangeListener);
-
-		if (status.isOK() && listenerFired[0]) {
-			if (!listenerResult[0]) {				
-			    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/CheatSheetHistory.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetHistory.java
deleted file mode 100644
index 3777b00..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetHistory.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-
-/**
- * This is used to store the most recently used (MRU) list
- * of cheatsheet for the entire workbench.
- */
-public class CheatSheetHistory {
-
-	private static final int DEFAULT_DEPTH = 5;
-	
-	private ArrayList history;
-	private CheatSheetRegistryReader reg; 
-	private ListenerList listeners = new ListenerList();
-
-	public CheatSheetHistory(CheatSheetRegistryReader reg) {
-		this.history = new ArrayList(DEFAULT_DEPTH);
-		this.reg = reg;
-	}
-
-	public void addListener(IPropertyListener l) {
-		listeners.add(l);
-	}	
-	
-	public void removeListener(IPropertyListener l) {
-		listeners.remove(l);
-	}	
-	
-	private void fireChange() {
-		Object[] array = listeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			IPropertyListener element = (IPropertyListener)array[i];
-			element.propertyChanged(this, 0);
-		}
-	}
-	
-	public IStatus restoreState(IMemento memento) {
-		IMemento [] children = memento.getChildren("element"); //$NON-NLS-1$
-		for (int i = 0; i < children.length && i < DEFAULT_DEPTH; i++) {
-			CheatSheetElement element =
-				reg.findCheatSheet(children[i].getID());
-			if (element != null) 
-				history.add(element);
-		}
-		return new Status(IStatus.OK,ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID,0,ICheatSheetResource.EMPTY_STRING,null);
-	}
-	
-	public IStatus saveState(IMemento memento) {
-		Iterator iter = history.iterator();
-		while (iter.hasNext()) {
-			CheatSheetElement element = (CheatSheetElement)iter.next();
-			if(element != null) {
-				memento.createChild("element", element.getID()); //$NON-NLS-1$
-			}
-		}
-		return new Status(IStatus.OK,ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID,0,ICheatSheetResource.EMPTY_STRING,null);
-	}
-
-	public void add(String id) {
-		CheatSheetElement element = reg.findCheatSheet(id);
-		if (element != null) 
-			add(element);
-	}
-	
-	public void add(CheatSheetElement element) {
-		// Avoid duplicates
-		if (history.contains(element))
-			return;
-
-		// If the shortcut list will be too long, remove oldest ones			
-		int size = history.size();
-		int preferredSize = DEFAULT_DEPTH;
-		while (size >= preferredSize) {
-			size--;
-			history.remove(size);
-		}
-		
-		// Insert at top as most recent
-		history.add(0, element);
-		fireChange();
-	}
-	
-	public void refreshFromRegistry() {
-		boolean change = false;
-		
-		Iterator iter = history.iterator();
-		while (iter.hasNext()) {
-			CheatSheetElement element = (CheatSheetElement)iter.next();
-			if (reg.findCheatSheet(element.getID()) == null) {
-				iter.remove();
-				change = true;
-			}
-		}
-		
-		if (change)
-			fireChange();
-	}
-
-	/**
-	 * Copy the requested number of items from the history into
-	 * the destination list at the given index.
-	 * 
-	 * @param dest destination list to contain the items
-	 * @param destStart index in destination list to start copying items at
-	 * @param count number of items to copy from history
-	 * @return the number of items actually copied
-	 */
-	public int copyItems(List dest, int destStart, int count) {
-		int itemCount = count;
-		if (itemCount > history.size())
-			itemCount = history.size();
-			
-		for (int i = 0; i < itemCount; i++)
-			dest.add(destStart + i, history.get(i));
-			
-		return itemCount;
-	} 
-}
-
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetPlugin.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetPlugin.java
deleted file mode 100644
index 51880e5..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetPlugin.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.net.URL;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class for cheat sheets.
- */
-
-public class CheatSheetPlugin extends AbstractUIPlugin {
-
-	//The shared instance of this plugin.
-	static CheatSheetPlugin plugin;
-
-	//Resource bundle.
-	//private boolean resourceBundleInitialized = false;
-	//private ResourceBundle resourceBundle;
-	private CheatSheetHistory history = null;
-	private DocumentBuilder documentBuilder = null;
-	
-	private static final String HISTORY_FILENAME = "history.xml"; //$NON-NLS-1$
-	private static final String MEMENTO_TAG_CHEATSHEET = "cheatsheet"; //$NON-NLS-1$
-	private static final String MEMENTO_TAG_VERSION = "version"; //$NON-NLS-1$
-	private static final String VERSION_STRING[] = { "0.0", "3.0.0" }; //$NON-NLS-1$ //$NON-NLS-2$
-	private static final String MEMENTO_TAG_CHEATSHEET_HISTORY = "cheatsheetHistory"; //$NON-NLS-1$	
-
-	public static final IPath ICONS_PATH = new Path("$nl$/icons/"); //$NON-NLS-1$	
-	public static final String T_OBJ = "obj16/"; //$NON-NLS-1$
-	public static final String T_ELCL = "elcl16/"; //$NON-NLS-1$
-	public static final String T_DLCL = "dlcl16/"; //$NON-NLS-1$
-	public static final String T_VIEW = "view16/"; //$NON-NLS-1$
-	
-	/**
-	 * The constructor.
-	 */
-	public CheatSheetPlugin() {
-		super();
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static CheatSheetPlugin getPlugin() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the image in Cheat Sheet's image registry with the given key, 
-	 * or <code>null</code> if none.
-	 * Convenience method equivalent to
-	 * <pre>
-	 * CheatSheetPlugin.getImageRegistry().get(key)
-	 * </pre>
-	 *
-	 * @param key the key
-	 * @return the image, or <code>null</code> if none
-	 */
-	public Image getImage(String key) {
-		Image image = getImageRegistry().get(key);
-		return image;
-	}
-
-	/**
-	 * Returns the CheatSheetHistory
-	 */
-	public CheatSheetHistory getCheatSheetHistory() {
-		if (history == null) {
-			history = new CheatSheetHistory(CheatSheetRegistryReader.getInstance());
-			restoreCheatSheetHistory();
-		}
-		return history;
-	}
-
-	/**
-	 * Get a file from the state folder.
-	 */
-	private File getCheatSheetStateFile(String filename) {
-		IPath path = CheatSheetPlugin.getPlugin().getStateLocation();
-		path = path.append(filename);
-		return path.toFile();
-	}
-
-	/**
-	 * Returns the DocumentBuilder to be used by the cheat sheets.
-	 */
-	public DocumentBuilder getDocumentBuilder() {
-		if(documentBuilder == null) {
-			try {
-				documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-			} catch (Exception e) {
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.ERROR_CREATING_DOCUMENT_BUILDER, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-		}
-		return documentBuilder;
-	}
-
-	protected void initializeImageRegistry(ImageRegistry reg) {
-		IPath path = ICONS_PATH.append(T_OBJ).append("cheatsheet_obj.gif");//$NON-NLS-1$
-		ImageDescriptor imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_OBJ, imageDescriptor);	
-		
-		path = ICONS_PATH.append(T_OBJ).append("skip_status.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_ITEM_SKIP, imageDescriptor);
-
-		path = ICONS_PATH.append(T_OBJ).append("complete_status.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_ITEM_COMPLETE, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("linkto_help.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_ITEM_HELP, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("start_cheatsheet.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_START, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("restart_cheatsheet.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_RESTART, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("start_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_START, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("skip_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_SKIP, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("complete_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_COMPLETE, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("restart_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_RESTART, imageDescriptor);
-			
-		path = ICONS_PATH.append(T_ELCL).append("return_to_start.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_RETURN, imageDescriptor);
-	
-		// Images used by composites
-
-		path = ICONS_PATH.append(T_OBJ).append("composite_obj.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.COMPOSITE_OBJ, imageDescriptor);
-		
-		path = ICONS_PATH.append(T_OBJ).append("information.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.INFORMATION, imageDescriptor);
-		
-		path = ICONS_PATH.append(T_OBJ).append("warning.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.WARNING, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("start_ccs_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.COMPOSITE_TASK_START, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("skip_ccs_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.COMPOSITE_TASK_SKIP, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("review_ccs_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.COMPOSITE_TASK_REVIEW, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("goto_ccs_task.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.COMPOSITE_GOTO_TASK, imageDescriptor);
-
-		path = ICONS_PATH.append(T_ELCL).append("restart_all.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.COMPOSITE_RESTART_ALL, imageDescriptor);
-
-		path = ICONS_PATH.append(T_VIEW).append("cheatsheet_view.gif");//$NON-NLS-1$
-		imageDescriptor = createImageDescriptor(getPlugin().getBundle(), path);
-		reg.put(ICheatSheetResource.CHEATSHEET_VIEW, imageDescriptor);
-	}
-
-	/**
-	 * Restores the state of the previously saved cheatsheet history
-	 */
-	private void restoreCheatSheetHistory() {
-		SafeRunner.run(new SafeRunnable() {
-			public void run() {
-				IMemento memento;				
-				memento = readMemento(HISTORY_FILENAME);
-				if (memento != null) {
-					IMemento childMem = memento.getChild(MEMENTO_TAG_CHEATSHEET_HISTORY);
-					if (childMem != null) {
-						history.restoreState(childMem);
-					}
-				}
-			}
-			public void handleException(Throwable e) {
-				String message = Messages.ERROR_READING_STATE_FILE;
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-		});
-	}
-	
-	/**
-	 * Read a memento from the state directory for the cheatsheets plugin
-	 * @param filename A simple filename 
-	 * @return A memento read from the state directory or null if the memento could not be read
-	 */
-	public XMLMemento readMemento(String filename) {
-		XMLMemento memento;
-		InputStreamReader reader = null;
-
-		try {
-			// Read the cheatsheet state file.
-			final File stateFile = getCheatSheetStateFile(filename);
-
-			FileInputStream input = new FileInputStream(stateFile);
-			reader = new InputStreamReader(input, "utf-8"); //$NON-NLS-1$
-			memento = XMLMemento.createReadRoot(reader);
-
-			
-		} catch (FileNotFoundException e) {
-			memento = null;
-			// Do nothing, the file will not exist the first time the workbench in used.
-		} catch (Exception e) {
-			String message = Messages.ERROR_READING_STATE_FILE;
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-			memento = null;
-		} finally {
-			try {
-				if (reader != null)
-					reader.close();
-			} catch (IOException e) {
-				// Not much to do, just catch the exception and keep going.
-				String message = Messages.ERROR_READING_STATE_FILE;
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-		}
-		return memento;
-	}
-
-	/**
-	 * Saves the current cheatsheet history so it can be restored later on
-	 */
-	private void saveCheatSheetHistory() {
-		SafeRunner.run(new SafeRunnable() {
-			public void run() {
-				XMLMemento memento = XMLMemento.createWriteRoot(MEMENTO_TAG_CHEATSHEET);
-
-				// Save the version number.
-				memento.putString(MEMENTO_TAG_VERSION, VERSION_STRING[1]);
-
-				// Save perspective history.
-				getCheatSheetHistory().saveState(memento.createChild(MEMENTO_TAG_CHEATSHEET_HISTORY));
-
-				IStatus status = saveMemento(memento, HISTORY_FILENAME);
-				if (!status.isOK()) {
-					CheatSheetPlugin.getPlugin().getLog().log(status);
-				}
-			}
-			public void handleException(Throwable e) {
-				String message = Messages.ERROR_WRITING_STATE_FILE;
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-		});
-	}
-	
-	/**
-	 * Save the memento to a file in this plugins state area
-	 * @param memento The memento to save
-	 * @param filename A simple filename
-	 * @return OK_Status if the memento was saved without error, otherwise an error
-	 * status
-	 */
-	public IStatus saveMemento(XMLMemento memento, String filename) {
-		// Save the IMemento to a file.
-		File stateFile = getCheatSheetStateFile(filename);
-		OutputStreamWriter writer = null;
-		try {
-			FileOutputStream stream = new FileOutputStream(stateFile);
-			writer = new OutputStreamWriter(stream, "utf-8"); //$NON-NLS-1$
-			memento.save(writer);
-			return Status.OK_STATUS;
-		} catch (IOException e) {
-			stateFile.delete();
-			String message = Messages.ERROR_WRITING_STATE_FILE;
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-			return status;
-		} finally {
-			try {
-				if (writer != null)
-					writer.close();
-			} catch (IOException e) {
-				String message = Messages.ERROR_WRITING_STATE_FILE;
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-
-		plugin = this;
-		
-		// allow the MRU history to be lazily initialized by getCheatSheetHistory
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		
-		// save the MRU history if necessary
-		// if we never restored history, let existing memento stand
-		if (history != null) {
-			saveCheatSheetHistory();
-		}
-		
-		CheatSheetRegistryReader.getInstance().stop();
-	}
-
-	/*
-	 * Since 3.1.1. Load from icon paths with $NL$
-	 */
-	public static ImageDescriptor createImageDescriptor(Bundle bundle, IPath path) {
-		URL url= FileLocator.find(bundle, path, null);
-		if (url != null) {
-			return ImageDescriptor.createFromURL(url);
-		}
-		return null;
-	}
-	
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java
deleted file mode 100644
index 97bc795..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.util.Assert;
-
-public class CheatSheetStopWatch {
-	private static CheatSheetStopWatch stopWatch = null;
-
-	private Map table;
-
-	private CheatSheetStopWatch() {
-		
-	}
-	
-	public static CheatSheetStopWatch getInstance() {
-		if(stopWatch == null) {
-			stopWatch = new CheatSheetStopWatch();
-		}
-		
-		return stopWatch;
-	}
-	
-	public void start(String key) {
-		Assert.isNotNull(key);
-
-		Entry entry = getEntry(key);
-		if (entry == null) {
-			entry = new Entry();
-			putEntry(key, entry);
-		} else {
-			resetEntry(entry);
-		}
-		
-		entry.start = System.currentTimeMillis();
-	}
-	
-	public void stop(String key) {
-		Assert.isNotNull(key);
-		Entry entry = getEntry(key);
-		Assert.isTrue(entry == null || entry.start != -1, "start() must be called before using stop()"); //$NON-NLS-1$
-		entry.stop = System.currentTimeMillis();
-	}
-	
-	public long totalElapsedTime(String key) {
-		Assert.isNotNull(key);
-		Entry entry = getEntry(key);
-		Assert.isTrue(entry == null || entry.start != -1, "start() must be called before using totalElapsedTime()"); //$NON-NLS-1$
-		Assert.isTrue(entry.stop != -1, "stop() must be called before using totalElapsedTime()"); //$NON-NLS-1$
-		return entry.stop - entry.start;
-	}
-	
-	public void lapTime(String key) {
-		Assert.isNotNull(key);
-		Entry entry = getEntry(key);
-		Assert.isTrue(entry == null || entry.start != -1, "start() must be called before using lapTime()"); //$NON-NLS-1$
-		if(entry.currentLap == -1) {
-			entry.previousLap = entry.start;
-		} else {
-			entry.previousLap = entry.currentLap;
-		}
-		entry.currentLap = System.currentTimeMillis();
-	}
-
-	public long elapsedTime(String key) {
-		Assert.isNotNull(key);
-		Entry entry = getEntry(key);
-		Assert.isTrue(entry.currentLap != -1, "lapTime() must be called before using elapsedTime()"); //$NON-NLS-1$
-		return entry.currentLap - entry.previousLap;
-	}
-
-	/**
-	 * Contains the data for an entry in the stopwatch. 
-	 */
-	private static class Entry {
-		protected long start = -1;
-		protected long stop = -1;
-		protected long currentLap = -1;
-		protected long previousLap = -1;
-	}
-	
-	private Entry getEntry(String key) {
-		return (Entry) getTable().get(key);
-	}
-
-	private void putEntry(String key, Entry entry) {
-		getTable().put(key, entry);
-	}
-
-	private void resetEntry(Entry entry) {
-		entry.start = -1;
-		entry.stop = -1;
-		entry.currentLap = -1;
-		entry.previousLap = -1;
-	}
-
-	private Map getTable() {
-		if (table == null) {
-			table = new HashMap(10);
-		}
-		return table;
-	}
-
-
-	public static boolean isTracing() {
-		if (CheatSheetPlugin.getPlugin().isDebugging()) {
-			String traceTimes = Platform.getDebugOption("org.eclipse.ui.cheatsheets/trace/creation/times"); //$NON-NLS-1$
-			if (traceTimes != null && traceTimes.equalsIgnoreCase("true")) { //$NON-NLS-1$
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public static void startStopWatch(String key) {
-		if(isTracing()) {
-			getInstance().start(key);
-		}
-	}
-
-	public static void printTotalTime(String key, String message) {
-		if(isTracing()) {
-			getInstance().stop(key);
-			System.out.print(message);
-			System.out.println(getInstance().totalElapsedTime(key));
-		}
-	}
-
-	public static void printLapTime(String key, String message) {
-		if(isTracing()) {
-			getInstance().lapTime(key);
-			System.out.print(message);
-			System.out.println(getInstance().elapsedTime(key));
-		}
-	}
-}
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
deleted file mode 100644
index a345688..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package org.eclipse.ui.internal.cheatsheets;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement; 
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.search.XMLSearchParticipant;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.cheatsheets.OpenCheatSheetAction;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.xml.sax.Attributes;
-
-public class CheatsheetSearchParticipant extends XMLSearchParticipant {
-	private static final String INTRO_DESC = "cheatsheet/intro/description"; //$NON-NLS-1$
-
-	private static final String ITEM_DESC = "cheatsheet/item/description"; //$NON-NLS-1$
-	
-	private static final String CCS_DESC = "compositeCheatsheet/taskGroup/intro"; //$NON-NLS-1$
-
-	/**
-	 * Returns all the documents that this participant knows about. This method
-	 * is only used for participants that handle documents outside of the help
-	 * system's TOC.
-	 * 
-	 * @return a set of hrefs for documents managed by this participant.
-	 */
-	public Set getAllDocuments(String locale) {
-		HashSet set = new HashSet();
-		IConfigurationElement[] elements = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(
-						ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID + '.' 
-						+ CheatSheetRegistryReader.CHEAT_SHEET_CONTENT); 
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (!element.getName().equals(CheatSheetRegistryReader.TAG_CHEATSHEET))
-				continue;
-			String fileName = element.getAttribute(CheatSheetRegistryReader.ATT_CONTENTFILE);
-			String id = element.getAttribute("id"); //$NON-NLS-1$
-			String pluginId = element.getContributor().getName();
-			fileName = resolveVariables(pluginId, fileName, locale);
-			set.add("/" + pluginId + "/" + fileName + "?id=" + id); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return set;
-	}
-
-	public Set getContributingPlugins() {
-		IConfigurationElement[] elements = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(
-						ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID + '.' 
-						+ CheatSheetRegistryReader.CHEAT_SHEET_CONTENT);
-		HashSet set = new HashSet();
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (element.getName().equals(CheatSheetRegistryReader.TAG_CHEATSHEET)) { 
-			    set.add(element.getContributor().getName());
-			}
-		}
-		return set;
-	}
-
-	protected void handleStartElement(String name, Attributes attributes,
-			IParsedXMLContent data) {
-		if (name.equals(IParserTags.CHEATSHEET)) {
-			data.setTitle(attributes.getValue(IParserTags.TITLE));
-			data.addText(attributes.getValue(IParserTags.TITLE));
-		} else if (name.equals(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET)) {
-			data.addText(attributes.getValue(ICompositeCheatsheetTags.NAME));
-			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));	
-	    }
-	}
-
-	protected void handleEndElement(String name, IParsedXMLContent data) {
-	}
-
-	protected void handleText(String text, IParsedXMLContent data) {
-		String stackPath = getElementStackPath();
-		String top = getTopElement();
-		if (IParserTags.INTRO.equals(top)) {
-			data.addText(text);
-			if (stackPath.equalsIgnoreCase(CCS_DESC)) {
-				data.addToSummary(text);
-			}
-		} else if (IParserTags.ON_COMPLETION.equals(top)) {
-			data.addText(text);
-		} else if (stackPath.equalsIgnoreCase(INTRO_DESC)) {
-			data.addText(text);
-			data.addToSummary(text);
-			return;
-		} else if (stackPath.equalsIgnoreCase(ITEM_DESC)) {
-			data.addText(text);
-			return;
-		}
-	}
-
-	public boolean open(String id) {
-		Action openAction = new OpenCheatSheetAction(id);
-		openAction.run();
-		return true;
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 5263ece..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets;
-
-import org.eclipse.core.commands.ParameterType;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheetCommand;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-
-/**
- * Execute a command defined in a cheatsheet
- */
-
-public class CommandRunner {
-	
-	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;
-		    }
-		}
-		return null;
-	}
-	
-	/**
-	 * Attempt to execute a command 
-	 * @param command a CheatSheetCommand created by the parser
-	 * @param csm 
-	 * @return OK_STATUS if the command completes withour error, otherwise
-	 * an error status
-	 */
-	public IStatus executeCommand(CheatSheetCommand command, CheatSheetManager csm) {
-		ICommandService service = getCommandService();
-		if (service == null) {
-			return new Status
-			(IStatus.ERROR, 
-			ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, 0,
-			Messages.ERROR_COMMAND_SERVICE_UNAVAILABLE, null);
-		}
-
-		ParameterizedCommand selectedCommand;
-		Object result;			
-		String rawSerialization = command.getSerialization();
-		try {
-			String substitutedSerialization = csm.performVariableSubstitution(rawSerialization);
-			selectedCommand = service.deserialize(substitutedSerialization);
-			result = selectedCommand.executeWithChecks(null, null);
-			
-			String returnsAttribute = command.getReturns();
-			if ((returnsAttribute != null) && (result != null)) {
-				ParameterType returnType = selectedCommand.getCommand().getReturnType();
-				if ((returnType != null && (returnType.getValueConverter() != null))) {
-					String resultString = returnType.getValueConverter().convertToString(result);
-					csm.setDataQualified(returnsAttribute, resultString);
-				}
-				else {
-					if (result instanceof String) {
-						csm.setDataQualified(returnsAttribute, (String)result);
-					}
-				}
-			}
-			
-		} catch (NotDefinedException e) {
-			String message = NLS.bind(Messages.ERROR_COMMAND_ID_NOT_FOUND, (new Object[] {rawSerialization}));
-			return new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);		
-		} catch (CommandException e) {
-			return commandFailureStatus(e);
-		} catch (Exception e) {
-			return commandFailureStatus(e);
-		}
-		
-		return Status.OK_STATUS;
-	}
-	
-	private IStatus commandFailureStatus(Exception exception) {
-		return new Status
-		(IStatus.ERROR, 
-		ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, 0,
-		Messages.ERROR_COMMAND_ERROR_STATUS, exception);
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ICheatSheetResource.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ICheatSheetResource.java
deleted file mode 100644
index e19f5d9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/ICheatSheetResource.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets;
-
-public interface ICheatSheetResource {
-
-	// Empty string used through out the plugin
-	public static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	//
-	// ID used through out the cheatsheets:
-	//		plugin, menu, view
-	//
-	public static final String CHEAT_SHEET_PLUGIN_ID = "org.eclipse.ui.cheatsheets"; //$NON-NLS-1$
-	public static final String CHEAT_SHEET_VIEW_ID = "org.eclipse.ui.cheatsheets.views.CheatSheetView"; //$NON-NLS-1$
-	public static final String CHEAT_SHEET_RESOURCE_ID = "org.eclipse.ui.internal.cheatsheets.CheatsheetPluginResources"; //$NON-NLS-1$
-
-	// Memento info
-	public static final String MEMENTO = "cheatSheetMemento"; //$NON-NLS-1$
-	public static final String MEMENTO_ID = "id"; //$NON-NLS-1$
-	public static final String MEMENTO_NAME = "name"; //$NON-NLS-1$
-	public static final String MEMENTO_URL = "url"; //$NON-NLS-1$
-	
-	public static final String TRIGGER_POINT_ID = "org.eclipse.ui.cheatsheetSelectionDialog"; //$NON-NLS-1$
-
-
-	//
-	// Constants used to retrieve images from the cheatsheet image registry.
-	//
-	public static final String CHEATSHEET_OBJ = "CHEATSHEET_OBJ";//$NON-NLS-1$	
-	public static final String COMPOSITE_OBJ = "COMPOSITE_OBJ";//$NON-NLS-1$
-	public static final String CHEATSHEET_ITEM_SKIP = "CHEATSHEET_ITEM_SKIP"; //$NON-NLS-1$
-	public static final String CHEATSHEET_ITEM_COMPLETE = "CHEATSHEET_ITEM_COMPLETE"; //$NON-NLS-1$
-	public static final String CHEATSHEET_ITEM_HELP = "CHEATSHEET_ITEM_HELP"; //$NON-NLS-1$
-	public static final String CHEATSHEET_START = "CHEATSHEET_START"; //$NON-NLS-1$
-	public static final String CHEATSHEET_RESTART = "CHEATSHEET_RESTART"; //$NON-NLS-1$
-	public static final String CHEATSHEET_ITEM_BUTTON_START = "CHEATSHEET_ITEM_BUTTON_START"; //$NON-NLS-1$
-	public static final String CHEATSHEET_ITEM_BUTTON_SKIP = "CHEATSHEET_ITEM_BUTTON_SKIP"; //$NON-NLS-1$
-	public static final String CHEATSHEET_ITEM_BUTTON_COMPLETE = "CHEATSHEET_ITEM_BUTTON_COMPLETE"; //$NON-NLS-1$
-	public static final String CHEATSHEET_ITEM_BUTTON_RESTART = "CHEATSHEET_ITEM_BUTTON_RESTART"; //$NON-NLS-1$
-	public static final String COMPOSITE_TASK_START = "COMPOSITE_TASK_START"; //$NON-NLS-1$
-	public static final String COMPOSITE_TASK_SKIP = "COMPOSITE_TASK_SKIP"; //$NON-NLS-1$
-	public static final String COMPOSITE_TASK_REVIEW = "COMPOSITE_TASK_REVIEW"; //$NON-NLS-1$
-	public static final String COMPOSITE_GOTO_TASK = "COMPOSITE_GOTO_TASK"; //$NON-NLS-1$
-	public static final String COMPOSITE_RESTART_ALL = "COMPOSITE_RESTART_ALL"; //$NON-NLS-1$
-	public static final String CHEATSHEET_RETURN = "CHEATSHEET_RETURN"; //$NON-NLS-1$
-	public static final String CHEATSHEET_VIEW = "CHEATSHEET_VIEW"; //$NON-NLS-1$
-	public static final String WARNING ="WARNING"; //$NON-NLS-1$
-	public static final String INFORMATION = "INFORMATION"; //$NON-NLS-1$
-}
-
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java
deleted file mode 100644
index b84d15c..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.cheatsheets.Messages";//$NON-NLS-1$
-	
-	private Messages() {
-		// Do not instantiate
-	}
-
-	public static String ERROR_READING_STATE_FILE;
-	public static String ERROR_WRITING_STATE_FILE;
-	public static String CHEAT_SHEET_SELECTION_DIALOG_TITLE;
-	public static String CHEAT_SHEET_SELECTION_DIALOG_MSG;
-	public static String COLLAPSE_ALL_BUT_CURRENT_TOOLTIP;
-	public static String CATEGORY_OTHER;
-	public static String RESTORE_ALL_TOOLTIP;
-	public static String CHEAT_SHEET_OTHER_MENU;
-	public static String PERFORM_TASK_TOOLTIP;
-	public static String SKIP_TASK_TOOLTIP;
-	public static String COMPLETE_TASK_TOOLTIP;
-	public static String RESTART_TASK_TOOLTIP;
-	public static String LESS_THAN_2_SUBITEMS;
-	public static String ERROR_FINDING_PLUGIN_FOR_ACTION;
-	public static String ERROR_DATA_MISSING;
-	public static String ERROR_DATA_MISSING_LOG;
-	public static String ERROR_CONDITIONAL_DATA_MISSING_LOG;
-	public static String ERROR_LOADING_CLASS_FOR_ACTION;
-	public static String ERROR_CREATING_CLASS_FOR_ACTION;
-	public static String START_CHEATSHEET_TOOLTIP;
-	public static String RESTART_CHEATSHEET_TOOLTIP;
-	public static String ADVANCE_TASK_TOOLTIP;
-	public static String RETURN_TO_INTRO_TOOLTIP;
-	public static String HELP_BUTTON_TOOLTIP;
-	public static String ERROR_RUNNING_ACTION;
-	public static String ERROR_INVALID_CHEATSHEET_ID;
-	public static String ERROR_CHEATSHEET_DOESNOT_EXIST;
-	public static String ERROR_APPLYING_STATE_DATA;
-	public static String CHEATSHEET_STATE_RESTORE_FAIL_TITLE;
-	public static String CHEATSHEET_STATE_RESET_CONFIRM;
-	public static String ERROR_APPLYING_STATE_DATA_LOG;
-	public static String INITIAL_VIEW_DIRECTIONS;
-	public static String ERROR_LOADING_CHEATSHEET_CONTENT;
-	public static String ERROR_PAGE_MESSAGE;
-	public static String ERROR_LOADING_CLASS;
-	public static String ERROR_CREATING_CLASS;
-	public static String CHEAT_SHEET_OTHER_CATEGORY;
-	public static String LAUNCH_SHEET_ERROR;
-	public static String CHEAT_SHEET_ERROR_OPENING;
-	public static String ERROR_OPENING_PERSPECTIVE;
-	public static String ERROR_SAVING_STATEFILE_URL;
-	public static String CHEAT_SHEET_INTRO_TITLE;
-	public static String ERROR_TITLE;
-	public static String ERROR_CREATING_DOCUMENT_BUILDER;
-	public static String ERROR_DOCUMENT_BUILDER_NOT_INIT;
-	public static String ERROR_OPENING_FILE;
-	public static String ERROR_OPENING_FILE_IN_PARSER;
-	public static String ERROR_SAX_PARSING;
-	public static String ERROR_SAX_PARSING_WITH_LOCATION;
-	public static String ERROR_PARSING_CHEATSHEET_CONTENTS;
-	public static String ERROR_PARSING_CHEATSHEET_ELEMENT;
-	public static String ERROR_PARSING_NO_INTRO;
-	public static String ERROR_PARSING_MORE_THAN_ONE_INTRO;
-	public static String ERROR_PARSING_NO_ITEM;
-	public static String ERROR_PARSING_PARAM_INVALIDRANGE;
-	public static String ERROR_PARSING_PARAM_INVALIDNUMBER;
-	public static String ERROR_PARSING_NO_DESCRIPTION;
-	public static String ERROR_PARSING_NO_SUBITEM;
-	public static String ERROR_PARSING_NO_ACTION;
-	public static String ERROR_PARSING_NO_TITLE;
-	public static String ERROR_PARSING_NO_CLASS;
-	public static String ERROR_PARSING_NO_PLUGINID;
-	public static String ERROR_PARSING_NO_CONDITION;
-	public static String ERROR_PARSING_NO_VALUES;
-	public static String ERROR_PARSING_NO_LABEL;
-	public static String ERROR_PARSING_NO_SERIALIZATION;
-	public static String ERROR_COMMAND_ID_NOT_FOUND;
-	public static String ERROR_COMMAND_ERROR_STATUS;
-	public static String ERROR_COMMAND_SERVICE_UNAVAILABLE;
-	public static String WARNING_PARSING_UNKNOWN_ATTRIBUTE;
-	public static String WARNING_PARSING_UNKNOWN_ELEMENT;
-	public static String WARNING_PARSING_DESCRIPTION_UNKNOWN_ELEMENT;
-	public static String WARNING_PARSING_ON_COMPLETION_UNKNOWN_ELEMENT;
-	public static String EXCEPTION_RUNNING_ACTION;
-	public static String ACTION_FAILED;
-	public static String ERROR_MULTIPLE_ERRORS;
-	public static String ERROR_PARSING_ROOT_NODE_TYPE;
-	public static String COMPLETED_TASK;
-	public static String ERROR_PARSING_DUPLICATE_TASK_ID;
-	public static String ERROR_PARSING_NO_VALUE;
-	public static String ERROR_PARSING_NO_NAME;
-	public static String ERROR_PARSING_NO_ID;
-	public static String ERROR_PARSING_MULTIPLE_ROOT;
-	public static String ERROR_PARSING_NO_ROOT;
-	public static String ERROR_PARSING_INVALID_ID;
-	public static String ERROR_PARSING_CYCLE_DETECTED;
-	public static String ERROR_PARSING_CYCLE_CONTAINS;
-	public static String SELECTION_DIALOG_FILEPICKER_TITLE;
-	public static String SELECTION_DIALOG_FILEPICKER_BROWSE;
-	public static String SELECTION_DIALOG_OPEN_REGISTERED;
-	public static String SELECTION_DIALOG_OPEN_FROM_FILE;
-	public static String COMPOSITE_PAGE_REVIEW_TASK;
-	public static String COMPOSITE_PAGE_GOTO_TASK;
-	public static String COMPOSITE_PAGE_START_TASK;
-	public static String COMPOSITE_PAGE_SKIP_TASK;
-	public static String COMPOSITE_PAGE_SKIP_TASK_GROUP;
-	public static String COMPOSITE_MENU_SKIP;
-	public static String COMPOSITE_MENU_START;
-	public static String COMPOSITE_MENU_REVIEW;
-	public static String COMPOSITE_MENU_RESET;
-	public static String COMPOSITE_PAGE_BLOCKED;
-	public static String COMPOSITE_PAGE_TASK_NOT_COMPLETE;
-	public static String EXPLORER_PULLDOWN_MENU;
-	public static String COMPOSITE_RESTART_DIALOG_TITLE;
-	public static String COMPOSITE_RESTART_CONFIRM_MESSAGE;
-	public static String RESTART_ALL_MENU;
-	public static String RESTART_MENU;
-	public static String ERROR_EDITABLE_TASK_WITH_CHILDREN;
-	public static String ERROR_PARSING_TASK_NO_NAME;
-	public static String ERROR_PARSING_CCS_NO_NAME;
-	public static String ERROR_PARSING_TASK_NO_KIND;
-	public static String ERROR_PARSING_TASK_INVALID_KIND;
-	public static String ERROR_PARSING_CHILDLESS_TASK_GROUP;
-	public static String ERROR_PARSING_NO_CHOICE;
-	public static String THIS_TASK_SKIPPED;
-	public static String PARENT_SKIPPED;
-	public static String PARENT_COMPLETED;
-	public static String PARENT_BLOCKED;
-	public static String COMPOSITE_RESET_TASK_DIALOG_TITLE;
-	public static String COMPOSITE_RESET_TASK_DIALOG_MESSAGE;
-	public static String COMPOSITE_PAGE_END_REVIEW;
-	
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String CheatSheetCategoryBasedSelectionDialog_showAll;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties
deleted file mode 100644
index 88aacc0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties
+++ /dev/null
@@ -1,191 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# ----------------------------------------------------------------------
-# Properties for org.eclipse.ui.cheatsheets
-#
-# Entries are of the form CONSTANT=string
-# ----------------------------------------------------------------------
-# ----------------------------------------------------------------------
-# Properties used by cheat sheet Java code
-# ----------------------------------------------------------------------
-# CheatSheetPlugin
-ERROR_READING_STATE_FILE = Unable to read state information.
-ERROR_WRITING_STATE_FILE = Unable to store state information.
-
-# CheatSheetCategoryBasedSelectionDialog, CheatSheetSelectionDialog
-CHEAT_SHEET_SELECTION_DIALOG_TITLE = Cheat Sheet Selection
-CHEAT_SHEET_SELECTION_DIALOG_MSG = &Select the cheat sheet to open:
-
-# CheatSheetExapndRestoreAction, CheatSheetView
-COLLAPSE_ALL_BUT_CURRENT_TOOLTIP = Collapse All Items but Current
-
-# CheatSheetExapndRestoreAction
-RESTORE_ALL_TOOLTIP = Expand to Previous Expansion States
-
-CATEGORY_OTHER = Other
-
-# CheatSheetMenu
-CHEAT_SHEET_OTHER_MENU = Launch &Other...
-EXPLORER_PULLDOWN_MENU = &Layout
-RESTART_ALL_MENU = &Restart all tasks
-RESTART_MENU = &Restart
-
-# CoreItem
-PERFORM_TASK_TOOLTIP = Click to Perform
-SKIP_TASK_TOOLTIP = Click to Skip
-COMPLETE_TASK_TOOLTIP = Click to Complete
-RESTART_TASK_TOOLTIP = Click to Redo
-ADVANCE_TASK_TOOLTIP = Click to Advance
-RETURN_TO_INTRO_TOOLTIP = Click to return to Introduction
-LESS_THAN_2_SUBITEMS = Less than 2 sub items found for the next item.
-ERROR_FINDING_PLUGIN_FOR_ACTION = The action could not be run because the plugin ''{0}'' could not be located.
-ERROR_DATA_MISSING = An error occured while executing the cheat sheet due to missing data. 
-ERROR_DATA_MISSING_LOG = The data for variable ''{0}'' is not initialized properly before it is attempted to be used.
-ERROR_CONDITIONAL_DATA_MISSING_LOG = No subitem matched the condition ''{0}'' specified for the conditional-subitem ''{1}''.
-ERROR_LOADING_CLASS_FOR_ACTION = The action could not be run because the class ''{0}'' could not be loaded.
-ERROR_CREATING_CLASS_FOR_ACTION = The action could not be run because an instance of the class ''{0}'' could not be created.
-
-# IntroItem
-START_CHEATSHEET_TOOLTIP = Click to Begin
-RESTART_CHEATSHEET_TOOLTIP = Click to Restart
-
-# ViewItem
-HELP_BUTTON_TOOLTIP = Open Related Help
-
-# CheatSheetViewer
-ERROR_RUNNING_ACTION = The action could not be run.
-ERROR_INVALID_CHEATSHEET_ID = The cheat sheet ''{0}'' does not exist. 
-ERROR_CHEATSHEET_DOESNOT_EXIST = The cheat sheet specified does not exist.
-ERROR_APPLYING_STATE_DATA = The saved state for the cheat sheet current not applied.
-ERROR_APPLYING_STATE_DATA_LOG = The saved state from file ''{0}'' for the ''{1}'' cheat sheet current not applied.
-CHEATSHEET_STATE_RESTORE_FAIL_TITLE = Restore Cheat Sheet State
-CHEATSHEET_STATE_RESET_CONFIRM = The state of this cheat sheet could not be restored. The cheat sheet will be restarted.
-INITIAL_VIEW_DIRECTIONS = To display a cheat sheet, select one from the Help menu or from the menu of the view's local toolbar.
-
-# ErrorPage
-ERROR_LOADING_CHEATSHEET_CONTENT = Error loading cheat sheet content.
-ERROR_PAGE_MESSAGE = An error occurred loading the cheat sheet content file.
-
-# CheatSheetElement, CheatSheetItemExtensionElement
-ERROR_LOADING_CLASS = The class ''{0}'' could not be loaded.
-ERROR_CREATING_CLASS = An instance of the class ''{0}'' could not be created.
-
-# CheatSheetRegistryReader
-CHEAT_SHEET_OTHER_CATEGORY = Other
-
-# OpenCheatSheetAction
-LAUNCH_SHEET_ERROR = Error loading the cheat sheet view
-CHEAT_SHEET_ERROR_OPENING = Error opening cheat sheet
-
-# actions.OpenPerspective
-ERROR_OPENING_PERSPECTIVE = Error opening perspective.
-
-# CheatSheetSaveHelper
-ERROR_SAVING_STATEFILE_URL = Error saving state file for the ''{0}'' cheat sheet.
-
-# CheatSheetParser, regular messages
-CHEAT_SHEET_INTRO_TITLE = Introduction
-
-# CheatSheetParser, general error messages
-ERROR_TITLE = Cheat Sheet Error
-
-# CheatSheetParser - init, file I/O and XML parsing error messages
-ERROR_CREATING_DOCUMENT_BUILDER = Error occured creating DocumentBuilder, verify that the JRE is properly setup.
-ERROR_DOCUMENT_BUILDER_NOT_INIT = The DocumentBuilder was not initialized, verify that the JRE is properly setup.
-ERROR_OPENING_FILE = Could not open the cheat sheet content file, ''{0}''.
-ERROR_OPENING_FILE_IN_PARSER = Cheat sheet content file ''{0}'' not found by parser.
-ERROR_SAX_PARSING = Cheat sheet content file ''{0}'' could not be parsed.
-ERROR_SAX_PARSING_WITH_LOCATION = Cheat sheet content file ''{0}'' could not be parsed, error at line ''{1}'', column ''{2}''.
-
-# CheatSheetParser, content error messages
-ERROR_PARSING_CHEATSHEET_CONTENTS = Error parsing the cheat sheet DOM.
-ERROR_PARSING_CHEATSHEET_ELEMENT = The <cheatsheet> element must be the root node of the cheat sheet content file.
-ERROR_PARSING_NO_INTRO = The cheat sheet content file must contain an <intro> element.
-ERROR_PARSING_MORE_THAN_ONE_INTRO = The cheat sheet content file can only contain one <intro> element.
-ERROR_PARSING_NO_ITEM = The cheat sheet content file must contain at least one <item> element.
-ERROR_PARSING_PARAM_INVALIDRANGE = The action has a parameter ''{0}'' which specified an invalid range ''{1}''.
-ERROR_PARSING_PARAM_INVALIDNUMBER = The action has a parameter which specified an invalid parameter number.
-ERROR_PARSING_NO_DESCRIPTION = The description for element ''{0}'' was not defined.
-ERROR_PARSING_NO_SUBITEM = The ''{0}'' element must specify a subitem element.
-ERROR_PARSING_NO_ACTION = The ''{0}'' element must specify an action or command element.
-ERROR_PARSING_NO_TITLE = The ''{0}'' element must specify a title attribute.
-ERROR_PARSING_NO_CLASS = The ''{0}'' element must specify a class attribute.
-ERROR_PARSING_NO_PLUGINID = The ''{0}'' element must specify a pluginId attribute.
-ERROR_PARSING_NO_CONDITION = The ''{0}'' element must specify a condition attribute.
-ERROR_PARSING_NO_VALUES = The ''{0}'' element must specify a values attribute.
-ERROR_PARSING_NO_LABEL = The ''{0}'' element must specify a label attribute.
-
-# CheatsheetCommand, content error messages
-ERROR_PARSING_NO_SERIALIZATION = The ''{0}'' element must specify a serialization attribute.
-
-# CommandRunner
-ERROR_COMMAND_ID_NOT_FOUND = The command could not be run because no command with id ''{0}'' was registered with the command service.
-ERROR_COMMAND_ERROR_STATUS = The command did not complete successfully. 
-ERROR_COMMAND_SERVICE_UNAVAILABLE = The command could not be run because the command service is not available.
-
-# Action runner
-EXCEPTION_RUNNING_ACTION = Exception thrown while running action.
-ACTION_FAILED = Action returned a failure status
-
-# CheatSheetParser, content warning messages
-WARNING_PARSING_UNKNOWN_ATTRIBUTE = Unknown attribute ''{0}'' specified for element ''{1}''.
-WARNING_PARSING_UNKNOWN_ELEMENT = Unknown element ''{0}'' specified for element ''{1}''.
-WARNING_PARSING_DESCRIPTION_UNKNOWN_ELEMENT = The description for element ''{0}'' contains an unknown element ''{1}''.
-WARNING_PARSING_ON_COMPLETION_UNKNOWN_ELEMENT = The onCompletion element for ''{0}'' contains an unknown element ''{1}''.
-
-CheatSheetCategoryBasedSelectionDialog_showAll=Show &all
-SELECTION_DIALOG_FILEPICKER_TITLE = Select Cheat Sheet Content File
-SELECTION_DIALOG_FILEPICKER_BROWSE = Browse...
-SELECTION_DIALOG_OPEN_REGISTERED = Select a cheat sheet from the list
-SELECTION_DIALOG_OPEN_FROM_FILE = Select a cheat sheet from a file
-
-# Composite Cheatsheets
-ERROR_MULTIPLE_ERRORS = Multiple errors detected.
-ERROR_PARSING_ROOT_NODE_TYPE = Root node is not ''{0}''.
-ERROR_PARSING_DUPLICATE_TASK_ID = Duplicate task id ''{0}''.
-ERROR_PARSING_NO_VALUE = Parameter has no value.
-ERROR_PARSING_NO_NAME = Parameter has no name.
-ERROR_PARSING_NO_ID = Missing task id in dependsOn element.
-ERROR_PARSING_MULTIPLE_ROOT = A composite cheat sheet may not have more than one root task.
-ERROR_PARSING_NO_ROOT = Missing root task.
-ERROR_PARSING_INVALID_ID = Invalid id ''{0}'' in dependency.
-ERROR_PARSING_CYCLE_DETECTED = Cycle detected in task dependencies.
-ERROR_PARSING_CYCLE_CONTAINS = Task ''{0}'' depends on task ''{1}''.
-ERROR_EDITABLE_TASK_WITH_CHILDREN = The editable task ''{0}'' may not have child tasks.
-ERROR_PARSING_TASK_NO_NAME = Missing name attribute in {0}.
-ERROR_PARSING_CCS_NO_NAME = Missing name attribute in compositeCheatsheet element.
-ERROR_PARSING_TASK_NO_KIND = Missing kind attribute in task ''{0}''.
-ERROR_PARSING_TASK_INVALID_KIND = Invalid kind ''{0}'' for {1} ''{2}''.
-ERROR_PARSING_CHILDLESS_TASK_GROUP = Task group ''{0}'' has no children.
-ERROR_PARSING_NO_CHOICE = Task choice ''{0}'' must have at least two child tasks.
-
-COMPLETED_TASK = This task has been completed.
-THIS_TASK_SKIPPED = This task has been skipped.
-PARENT_SKIPPED = This task cannot be started because parent task ''{0}'' has been skipped.
-PARENT_COMPLETED = This task cannot be started because parent task ''{0}'' has been completed.
-PARENT_BLOCKED = This task cannot be started until all prerequisite tasks for parent task ''{0}'' are completed.
-
-COMPOSITE_PAGE_REVIEW_TASK = Review this task
-COMPOSITE_PAGE_END_REVIEW = End review
-COMPOSITE_PAGE_GOTO_TASK = Go to ''{0}''
-COMPOSITE_PAGE_START_TASK = Start working on this task
-COMPOSITE_PAGE_SKIP_TASK_GROUP = Skip this group of tasks
-COMPOSITE_PAGE_SKIP_TASK = Skip this task
-COMPOSITE_MENU_SKIP = S&kip
-COMPOSITE_MENU_START = &Start
-COMPOSITE_MENU_REVIEW = Re&view
-COMPOSITE_MENU_RESET = &Reset
-COMPOSITE_PAGE_BLOCKED = This task cannot be started until all prerequisite tasks are completed.
-COMPOSITE_PAGE_TASK_NOT_COMPLETE = ''{0}'' has not been completed.
-COMPOSITE_RESTART_DIALOG_TITLE = Restart Composite Cheat Sheet 
-COMPOSITE_RESTART_CONFIRM_MESSAGE = This will reset the state of all tasks.
-COMPOSITE_RESET_TASK_DIALOG_MESSAGE = These tasks will be reset to their initial state:
-COMPOSITE_RESET_TASK_DIALOG_TITLE = Confirm task reset 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java
deleted file mode 100644
index 40c7678..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.actions;
-
-import java.io.File;
-import java.net.MalformedURLException;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.PlatformUI;
-
-import org.eclipse.ui.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.dialogs.CheatSheetCategoryBasedSelectionDialog;
-import org.eclipse.ui.internal.cheatsheets.registry.*;
-
-/**
- * Action to programmatically open the CheatSheet selection dialog.
- * 
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- */
-public class CheatSheetCategoryBasedSelectionAction extends Action {
-
-	/**
-	 * Create a new <code>CheatSheetCategoryBasedSelectionAction</code> action.
-	 */
-	public CheatSheetCategoryBasedSelectionAction() {
-	}
-
-	/**
-	 * Constructor for CheatSheetCategoryBasedSelectionAction.
-	 * @param text
-	 */
-	public CheatSheetCategoryBasedSelectionAction(String text) {
-		super(text);
-	}
-
-	/**
-	 * Constructor for CheatSheetCategoryBasedSelectionAction.
-	 * @param text
-	 * @param image
-	 */
-	public CheatSheetCategoryBasedSelectionAction(String text, ImageDescriptor image) {
-		super(text, image);
-	}
-
-	/**
-	 * @see Action#run()
-	 */
-	public void run() {
-		CheatSheetCollectionElement cheatSheets = (CheatSheetCollectionElement)CheatSheetRegistryReader.getInstance().getCheatSheets();
-
-		CheatSheetCategoryBasedSelectionDialog dialog = new CheatSheetCategoryBasedSelectionDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), cheatSheets);
-
-		if(dialog.open() != Window.OK || dialog.getResult().length != 1) {
-			notifyResult(false);
-			return;
-		}
-		
-		notifyResult(true);
-
-		CheatSheetElement result = (CheatSheetElement)dialog.getResult()[0];
-	    
-	    if (result.isRegistered()) {
-	    	new OpenCheatSheetAction(result.getID()).run();
-		} else {
-			File contentFile = new File(result.getContentFile());
-			try {
-				new OpenCheatSheetAction(result.getID(), result.getID() ,contentFile.toURL()).run();
-			} catch (MalformedURLException e) {
-				e.printStackTrace();
-			}
-		}		
-	}
-}
-
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetHelpMenuAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetHelpMenuAction.java
deleted file mode 100644
index 4ab7f4c..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetHelpMenuAction.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.*;
-
-/**
- * A menu action for selecting a cheat sheets.
- */
-public class CheatSheetHelpMenuAction implements IWorkbenchWindowActionDelegate {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		new CheatSheetCategoryBasedSelectionAction().run();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java
deleted file mode 100644
index 20e6079..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.actions;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-
-import org.eclipse.ui.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.registry.*;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetView;
-
-/**
- * A menu for cheatsheet selection.  
- * <p>
- * A <code>CheatSheetMenu</code> is used to populate a menu with
- * cheatsheet items.  If the user selects one of these items 
- * an action is performed to launch the selected cheatsheet.
- * </p><p>
- * The visible cheatsheet items within the menu are dynamic and reflect the
- * available set. The available set consists of a limited combination of
- * the most recently used cheatsheet list and the currently available
- * cheatsheet.
- * </p>
- */
-public class CheatSheetMenu extends ContributionItem {
-	private static final int MAX_CHEATSHEET_ITEMS = 5;
-	private static CheatSheetRegistryReader reg;
-
-	private boolean showActive = false;
-	
-	private IMenuContributor menuContributor;
-
-	private Comparator comparator = new Comparator() {
-		private Collator collator = Collator.getInstance();
-
-		public int compare(Object ob1, Object ob2) {
-			if(ob1 == null || ob2 == null) {
-				return -1;
-			}
-			CheatSheetElement d1 = (CheatSheetElement) ob1;
-			CheatSheetElement d2 = (CheatSheetElement) ob2;
-			return collator.compare(d1.getLabel(null), d2.getLabel(null));
-		}
-	};
-
-	/**
-	 * Constructs a new instance of <code>CheatSheetMenu</code>.  
-	 */
-	public CheatSheetMenu() {
-		super("LaunchCheatSheetMenu"); //$NON-NLS-1$
-
-		if (reg == null)
-			reg = CheatSheetRegistryReader.getInstance();
-
-		showActive(true);
-	}
-
-	/* (non-Javadoc)
-	 * Creates a menu item for a cheatsheet.
-	 */
-	private void createMenuItem(Menu menu, int index, final CheatSheetElement element, boolean bCheck) {
-
-		MenuItem mi = new MenuItem(menu, bCheck ? SWT.RADIO : SWT.PUSH, index);
-		mi.setText(element.getLabel(null));
-		String key;
-		if (element.isComposite()) { 
-			key = ICheatSheetResource.COMPOSITE_OBJ;
-		} else {
-			key = ICheatSheetResource.CHEATSHEET_OBJ;
-		}
-		mi.setImage(CheatSheetPlugin.getPlugin().getImageRegistry().get(key));
-		mi.setSelection(bCheck);
-		mi.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				run(element, e);
-			}
-		});
-	}
-
-	/* (non-Javadoc)
-	 * Creates a menu item for "Other...".
-	 */
-	private void createOtherItem(Menu menu, int index) {
-		MenuItem mi = new MenuItem(menu, SWT.PUSH, index);
-		mi.setText(Messages.CHEAT_SHEET_OTHER_MENU);
-		mi.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				runOther(e);
-			}
-		});
-	}
-
-	/* (non-Javadoc)
-	 * Fills the menu with cheatsheet items.
-	 */
-	public void fill(Menu menu, int index) {
-		// Get the checked cheatsheet.
-		String checkID = null;
-		if (showActive) {
-			checkID = getActiveCheatSheetID();
-		}
-
-		// Collect and sort cheatsheet items.
-		ArrayList cheatsheets = getCheatSheetItems();
-		Collections.sort(cheatsheets, comparator);
-
-		// Add cheatsheet shortcuts
-		for (int i = 0; i < cheatsheets.size(); i++) {
-			CheatSheetElement element = (CheatSheetElement) cheatsheets.get(i);
-			if (element != null) {
-				createMenuItem(menu, index++, element, element.getID().equals(checkID));
-			}
-		}
-
-		// Add others item..
-		if (cheatsheets.size() > 0) {
-			new MenuItem(menu, SWT.SEPARATOR, index++);
-		}
-		createOtherItem(menu, index++);
-		if (menuContributor != null) {
-			menuContributor.contributeToViewMenu(menu, index);
-		}
-	}
-
-	/**
-	 * Method getActiveCheatSheetID returns the id of the active
-	 * cheatsheet or null.
-	 * 
-	 * @return String
-	 */
-	private String getActiveCheatSheetID() {
-		//get the active cheatsheet view, if opened
-		IWorkbenchPage page = getActiveWorkbenchPage();
-
-		if( page != null ) {
-			CheatSheetView view = (CheatSheetView) page.findView(ICheatSheetResource.CHEAT_SHEET_VIEW_ID);
-			if (view != null) {
-				CheatSheetElement content = view.getContent();
-				if (content != null) {
-					return content.getID();
-				}
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Method getActiveWorkbenchPage returns the active
-	 * workbench page or null.
-	 * 
-	 * @return IWorkbenchPage
-	 */
-	private IWorkbenchPage getActiveWorkbenchPage() {
-		IWorkbench workbench = CheatSheetPlugin.getPlugin().getWorkbench();
-		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
-
-		//get the active cheatsheet view, if opened
-		return window.getActivePage();
-	}
-
-	/**
-	 * Returns the available list of cheatsheets to display
-	 * in the menu.
-	 * <p>
-	 * By default, the list contains the most recently used cheatsheets
-	 * and then random cheatsheets until there are 5 present in the list. 
-	 * </p><p>
-	 * Care should be taken to keep this list to a minimum (7 +/- 2 items
-	 * is a good guideline to follow).
-	 * </p>
-	 * 
-	 * @return an <code>ArrayList<code> of cheatsheet items <code>CheatSheetElement</code>
-	 */
-	protected ArrayList getCheatSheetItems() {
-		ArrayList list = new ArrayList(MAX_CHEATSHEET_ITEMS);
-		int emptySlots = MAX_CHEATSHEET_ITEMS;
-
-		// Add cheatsheets from MRU list
-		if (emptySlots > 0) {
-			ArrayList mru = new ArrayList(MAX_CHEATSHEET_ITEMS);
-			int count = getCheatSheetMru(mru, 0, MAX_CHEATSHEET_ITEMS);
-			for (int i = 0; i < count && emptySlots > 0; i++) {
-				if (!list.contains(mru.get(i))) {
-					list.add(mru.get(i));
-					emptySlots--;
-				}
-			}
-		}
-
-		// Add random cheatsheets until the list is filled.
-		CheatSheetCollectionElement cheatSheetsCollection = (CheatSheetCollectionElement)reg.getCheatSheets();
-		emptySlots = addCheatSheets(list, cheatSheetsCollection, emptySlots);
-
-		return list;
-	}
-
-	/**
-	 * Method addCheatSheets fills a list with cheatsheet elements until there
-	 * are no more empty slots.
-	 * 
-	 * @param list - the list to file
-	 * @param cheatSheetsCollection - the collection to get the elements from
-	 * @param emptySlots - number of empty slots remaining
-	 * @return int - number of empty slots remaining
-	 */
-	private int addCheatSheets(ArrayList list, CheatSheetCollectionElement cheatSheetsCollection, int emptySlots) {
-		Object[] cheatSheets = cheatSheetsCollection.getCheatSheets();
-		for (int i = 0; i < cheatSheets.length && emptySlots > 0; i++) {
-			if (!list.contains(cheatSheets[i])) {
-				list.add(cheatSheets[i]);
-				emptySlots--;
-			}
-		}
-
-		Object[] cheatSheetsFromCollection = cheatSheetsCollection.getChildren();
-		for (int nX = 0; nX < cheatSheetsFromCollection.length && emptySlots > 0; nX++) {
-			CheatSheetCollectionElement collection = (CheatSheetCollectionElement) cheatSheetsFromCollection[nX];
-			emptySlots = addCheatSheets(list, collection, emptySlots);
-		}
-
-		return emptySlots;
-	}
-
-	/* (non-Javadoc)
-	 * Gets the most recently used (MRU) shortcut cheatsheets
-	 * (<code>CheatSheetElement</code> items)
-	 * <p>
-	 * The list is formed from the global cheatsheet history.
-	 * </p>
-	 * @param dest destination list to contain the items
-	 * @param destStart index in destination list to start copying items at
-	 * @param count number of items to copy from history
-	 * @return the number of items actually copied
-	 */
-	private int getCheatSheetMru(List dest, int destStart, int count) {
-		CheatSheetHistory history = CheatSheetPlugin.getPlugin().getCheatSheetHistory();
-		return history.copyItems(dest, destStart, count);
-	}
-
-	/**
-	 * Returns whether the menu item representing the active cheatsheet
-	 * will have a check mark.
-	 *
-	 * @return <code>true</code> if a check mark is shown, <code>false</code> otherwise
-	 */
-	protected boolean getShowActive() {
-		return showActive;
-	}
-
-	/* (non-Javadoc)
-	 * Returns whether this menu is dynamic.
-	 */
-	public boolean isDynamic() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IContributionItem#isVisible()
-	 */
-	public boolean isVisible() {
-		return getActiveWorkbenchPage() != null;
-	}
-
-	/**
-	 * Runs an action to launch the cheatsheet.
-	 *
-	 * @param element the selected cheatsheet
-	 * @param event SelectionEvent - the event send along with the selection callback
-	 */
-	protected void run(CheatSheetElement element, SelectionEvent event) {
-		new OpenCheatSheetAction(element.getID()).run();
-	}
-
-	/* (non-Javadoc)
-	 * Show the "other" dialog, select a cheatsheet, and launch it. Pass on the selection
-	 * event should the meny need it.
-	 */
-	private void runOther(SelectionEvent event) {
-		new CheatSheetCategoryBasedSelectionAction().run();
-	}
-
-	/**
-	 * Sets the showActive flag.  If <code>showActive == true</code> then the
-	 * active cheatsheet is hilighted with a check mark.
-	 *
-	 * @param the new showActive flag
-	 */
-	protected void showActive(boolean b) {
-		showActive = b;
-	}
-
-	/**
-	 * Sets the menuContributor
-	 * @param menuContributor an object which may add contributions to 
-	 * the menu.
-	 */
-	public void setMenuContributor(IMenuContributor menuContributor) {
-		this.menuContributor = menuContributor;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenuAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenuAction.java
deleted file mode 100644
index ccd347c..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenuAction.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-
-/**
- * This is the action used to contribute the CheatSheets menu to the workbench's
- * help menu.  
- */
-public class CheatSheetMenuAction implements IWorkbenchWindowPulldownDelegate2, IPropertyListener {
-	/**
-	 * The menu created by this action
-	 */
-	private Menu fMenu;
-
-	/**
-	 * Indicates whether the cheat sheet history has changed and
-	 * the sub menu needs to be recreated.
-	 */
-	protected boolean fRecreateMenu = false;
-
-	/**
-	 * The constructor.
-	 */
-	public CheatSheetMenuAction() {
-		CheatSheetPlugin.getPlugin().getCheatSheetHistory().addListener(this);
-	}
-
-	/* (non-Javadoc)
-	 * @see IWorkbenchWindowActionDelegate#dispose
-	 */
-	public void dispose() {
-		setMenu(null);
-		CheatSheetPlugin.getPlugin().getCheatSheetHistory().removeListener(this);
-	}
-
-	/**
-	 * Fills the drop-down menu with cheat sheets history
-	 * 
-	 * @param menu the menu to fill
-	 */
-	protected void fillMenu(Menu menu) {
-		CheatSheetMenu cheatsheetMenuMenuItem = new CheatSheetMenu();
-		cheatsheetMenuMenuItem.fill(menu, 0);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowPulldownDelegate#getMenu(org.eclipse.swt.widgets.Control)
-	 */
-	public Menu getMenu(Control parent) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowPulldownDelegate2#getMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public Menu getMenu(Menu parent) {
-		setMenu(new Menu(parent));
-		fillMenu(fMenu);
-		initMenu();
-		return fMenu;
-	}
-
-	/* (non-Javadoc)
-	 * @see IWorkbenchWindowActionDelegate#init
-	 */
-	public void init(IWorkbenchWindow window) {
-	}
-
-	/**
-	 * Creates the menu for the action
-	 */
-	private void initMenu() {
-		// Add listener to repopulate the menu each time
-		// it is shown because of dynamic history list
-		fMenu.addMenuListener(new MenuAdapter() {
-			public void menuShown(MenuEvent e) {
-				if (fRecreateMenu) {
-					Menu m = (Menu)e.widget;
-					MenuItem[] items = m.getItems();
-					for (int i=0; i < items.length; i++) {
-						items[i].dispose();
-					}
-					fillMenu(m);
-					fRecreateMenu= false;
-				}
-			}
-		});
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
-	 */
-	public void propertyChanged(Object source, int propId) {
-		fRecreateMenu = true;
-	}
-
-	/* (non-Javadoc)
-	 * @see IWorkbenchWindowActionDelegate#run
-	 */
-	public void run(IAction action) {
-	}
-
-	/* (non-Javadoc)
-	 * @see IWorkbenchWindowActionDelegate#selectionChanged
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-
-	/**
-	 * Sets this action's drop-down menu, disposing the previous menu.
-	 * 
-	 * @param menu the new menu
-	 */
-	private void setMenu(Menu menu) {
-		if (fMenu != null) {
-			fMenu.dispose();
-		}
-		fMenu = menu;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/IMenuContributor.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/IMenuContributor.java
deleted file mode 100644
index 32612b9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/IMenuContributor.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.actions;
-
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * Interface representing an object that can contribute to a menu
- */
-
-public interface IMenuContributor {
-	/**
-	 * Contribute zero or more items to a menu
-	 * @param menu The menu to add the contributions
-	 * @param index The index before cintributions are added
-	 * @return the index after contributions are added
-	 */
-	public int contributeToViewMenu(Menu menu, int index);
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/OpenPerspective.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/OpenPerspective.java
deleted file mode 100644
index 7de7414..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/OpenPerspective.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.actions;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.*;
-import org.eclipse.ui.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.*;
-
-/**
- * Action to programmatically open a perspective from a cheat sheet.
- * The perspective id must be passed to the action via param1.
- * 
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- */
-public class OpenPerspective extends Action implements ICheatSheetAction {
-
-	/**
-	 * Create a new <code>OpenPerspective</code> action.
-	 */
-	public OpenPerspective() {
-	}
-
-
-	/**
-	 * @see Action#run()
-	 */
-	public void run(String[] params, ICheatSheetManager manager) {
-		try {
-			if(params == null || params[0] == null) {
-				return;
-			}
-
-			IWorkbench workbench = PlatformUI.getWorkbench();
-			IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
-			IWorkbenchPage page = window.getActivePage();
-
-			IPerspectiveDescriptor perspective = workbench.getPerspectiveRegistry().findPerspectiveWithId(params[0]);
-			page.setPerspective(perspective);
-		} catch(Exception e) {
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.ERROR_OPENING_PERSPECTIVE, null);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-		}
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/AbstractOverlayIcon.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/AbstractOverlayIcon.java
deleted file mode 100644
index 5923e66..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/AbstractOverlayIcon.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An OverlayIcon consists of a main icon and several adornments.
- */
-public abstract class AbstractOverlayIcon extends CompositeImageDescriptor {
-
-	static final int DEFAULT_WIDTH = 16;
-	static final int DEFAULT_HEIGHT = 16;
-
-	private Point fSize = null;
-
-	private ImageDescriptor fOverlays[][];
-
-	public AbstractOverlayIcon(ImageDescriptor[][] overlays) {
-		this(overlays, null);
-	}
-
-	public AbstractOverlayIcon(ImageDescriptor[][] overlays, Point size) {
-		fOverlays = overlays;
-		if (size != null)
-			fSize = size;
-		else
-			fSize = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);
-	}
-	protected void drawBottomLeft(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = 0;
-		for (int i = 0; i < 3; i++) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				drawImage(id, x, getSize().y - id.height);
-				x += id.width;
-			}
-		}
-	}
-	protected void drawBottomRight(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = getSize().x;
-		for (int i = 2; i >= 0; i--) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
-				drawImage(id, x, getSize().y - id.height);
-			}
-		}
-	}
-
-	protected abstract ImageData getBaseImageData();
-
-	protected void drawCompositeImage(int width, int height) {
-		ImageData base = getBaseImageData();
-		drawImage(base, 0, 0);
-		if (fOverlays != null) {
-			if (fOverlays.length > 0)
-				drawTopRight(fOverlays[0]);
-
-			if (fOverlays.length > 1)
-				drawBottomRight(fOverlays[1]);
-
-			if (fOverlays.length > 2)
-				drawBottomLeft(fOverlays[2]);
-
-			if (fOverlays.length > 3)
-				drawTopLeft(fOverlays[3]);
-		}
-	}
-	protected void drawTopLeft(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = 0;
-		for (int i = 0; i < 3; i++) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				drawImage(id, x, 0);
-				x += id.width;
-			}
-		}
-	}
-	protected void drawTopRight(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = getSize().x;
-		for (int i = 2; i >= 0; i--) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
-				drawImage(id, x, 0);
-			}
-		}
-	}
-
-	protected Point getSize() {
-		return fSize;
-	}
-}
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
deleted file mode 100644
index 960377b..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-
-public class ConfirmRestartDialog extends Dialog {
-
-	public class TaskLabelProvider extends LabelProvider implements ITableLabelProvider {
-		public String getColumnText(Object obj, int index) {
-			return treeLabelProvider.getText(obj);
-		}
-		
-		public Image getColumnImage(Object obj, int index) {
-			return treeLabelProvider.getImage(obj);
-		}
-		
-		public Image getImage(Object obj) {
-			return PlatformUI.getWorkbench().
-					getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
-		}
-		
-	}
-
-	public class TaskContentProvider  implements IStructuredContentProvider {
-		
-		Object[] input;
-		
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-			input = (Object[])newInput;
-		}
-		
-		public void dispose() {
-		}	
-		
-		public Object[] getElements(Object parent) {
-			return input;
-		}
-	}
-	
-	private AbstractTask[] tasks;
-	
-	private TreeLabelProvider treeLabelProvider;
-
-	protected ConfirmRestartDialog(Shell parentShell, AbstractTask[] restartTasks,
-			                       TreeLabelProvider treeLabelProvider) {
-		super(parentShell);
-		this.tasks = restartTasks;
-		this.treeLabelProvider = treeLabelProvider;
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		composite.setLayout(new GridLayout());
-		Label header = new Label(composite,SWT.NULL);
-		header.setText(Messages.COMPOSITE_RESET_TASK_DIALOG_MESSAGE);
-		TableViewer viewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new TaskContentProvider());
-		viewer.setLabelProvider(new TaskLabelProvider());
-		viewer.setInput(tasks);
-		GridData taskData = new GridData();
-		taskData.widthHint = 400;
-		taskData.heightHint = 200;
-		taskData.horizontalAlignment = SWT.FILL;
-		taskData.verticalAlignment = SWT.FILL;
-		viewer.getControl().setLayoutData(taskData);
-		return composite;
-	}
-	
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_RETURN));
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		newShell.setText(Messages.COMPOSITE_RESET_TASK_DIALOG_TITLE);
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/OverlayIcon.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/OverlayIcon.java
deleted file mode 100644
index 7ea479a..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/OverlayIcon.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An OverlayIcon consists of a main icon and several adornments.
- */
-public class OverlayIcon extends AbstractOverlayIcon {
-	private ImageDescriptor fBase;
-
-	public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays) {
-		this(base, overlays, null);
-	}
-
-	public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays,
-			Point size) {
-		super(overlays, size);
-		fBase = base;
-		if (fBase == null)
-			fBase = ImageDescriptor.getMissingImageDescriptor();
-	}
-
-	protected ImageData getBaseImageData() {
-		return fBase.getImageData();
-	}
-}
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
deleted file mode 100644
index f9d9260..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ResetTaskAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.cheatsheets.composite.model.CompositeCheatSheetModel;
-import org.eclipse.ui.internal.cheatsheets.composite.model.TaskStateUtilities;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-/**
- * Action to reset a single task and its children
- */
-
-public class ResetTaskAction extends Action {
-	private AbstractTask task;
-
-	public ResetTaskAction(ICompositeCheatSheetTask task) {
-        this.task = (AbstractTask) task;
-		this.setText(Messages.COMPOSITE_MENU_RESET);
-		IPath path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append("return_to_start.gif");//$NON-NLS-1$
-		ImageDescriptor restartImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);	
-		this.setImageDescriptor(restartImage);
-	}
-	
-	public void run() {
-		AbstractTask[] restartTasks = TaskStateUtilities.getRestartTasks(task);
-		if (restartTasks.length == 0) return;
-		TreeLabelProvider labelProvider = new TreeLabelProvider();
-		ConfirmRestartDialog dlg = new ConfirmRestartDialog(
-				PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), restartTasks, labelProvider);
-		dlg.open();
-		labelProvider.dispose();
-		if (dlg.getReturnCode() == ConfirmRestartDialog.OK) {
-			CompositeCheatSheetModel model = (CompositeCheatSheetModel) restartTasks[0].getCompositeCheatSheet();
-			model.resetTasks(restartTasks);
-		}
-	}
-
-}
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
deleted file mode 100644
index df60044..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/RestartAllAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.CompositeCheatSheetModel;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheet;
-
-public class RestartAllAction extends Action {
-
-	private ICompositeCheatSheet model;
-
-	public RestartAllAction(ICompositeCheatSheet model) {
-        this.model = model;
-		this.setText(Messages.RESTART_ALL_MENU);
-		IPath path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append("restart_all.gif");//$NON-NLS-1$
-		ImageDescriptor restartImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);	
-		this.setImageDescriptor(restartImage);
-	}
-	
-	public void run() {
-		if (confirmRestart()) {
-		    ((CompositeCheatSheetModel)model).resetAllTasks(null);
-		}
-	}
-	
-	public static boolean confirmRestart() {
-		return MessageDialog.openConfirm(
-				PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), 
-				Messages.COMPOSITE_RESTART_DIALOG_TITLE, 
-				Messages.COMPOSITE_RESTART_CONFIRM_MESSAGE); 
-	}
-
-}
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
deleted file mode 100644
index 36af70f..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/SkipAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-public class SkipAction extends Action {
-
-	private static final String SKIP_CCS_TASK_GIF = "skip_ccs_task.gif"; //$NON-NLS-1$
-	private AbstractTask task;
-
-	public SkipAction(ICompositeCheatSheetTask task) {
-		this.task = (AbstractTask) task;
-		this.setText(Messages.COMPOSITE_MENU_SKIP);
-		IPath ePath = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append(SKIP_CCS_TASK_GIF);
-		ImageDescriptor skipImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), ePath);	
-		this.setImageDescriptor(skipImage);
-	}
-	
-	public void run() {
-	    task.setState(ICompositeCheatSheetTask.SKIPPED);
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/StartAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/StartAction.java
deleted file mode 100644
index 11ffb2d..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/StartAction.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-public class StartAction extends Action {
-	private AbstractTask task;
-	private static final String START_CCS_TASK_GIF = "start_ccs_task.gif"; //$NON-NLS-1$
-
-	public StartAction(ICompositeCheatSheetTask task) {
-		this.task = (AbstractTask) task;
-		this.setText(Messages.COMPOSITE_MENU_START);
-		IPath path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append(START_CCS_TASK_GIF);
-		ImageDescriptor startImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);	
-		this.setImageDescriptor(startImage);
-	}
-	
-	public void run() {
-		task.setState(ICompositeCheatSheetTask.IN_PROGRESS);
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeContentProvider.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeContentProvider.java
deleted file mode 100644
index b366ca3..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeContentProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheet;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-
-class TreeContentProvider implements ITreeContentProvider {
-	public Object[] getChildren(Object parentElement) {
-		if (parentElement instanceof ICompositeCheatSheet) {
-			final Object[] rootTask = {((ICompositeCheatSheet) parentElement).getRootTask()};
-			return rootTask;
-		}
-		if (parentElement instanceof ITaskGroup)
-			return ((ITaskGroup) parentElement).getSubtasks();
-		return new Object[0];
-	}
-
-	public Object getParent(Object element) {
-		if (element instanceof  AbstractTask) {
-			return ((AbstractTask)element).getParent();
-		}
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		if (element instanceof ICompositeCheatSheet)
-			return true;
-		if (element instanceof ITaskGroup)
-			return ((ITaskGroup) element).getSubtasks().length > 0;
-		return false;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	public void dispose() {
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-	}
-}
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
deleted file mode 100644
index 8dee7d7..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeExplorerMenu.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-/**
- * Creates the context menu for a task explorer
- */
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.internal.cheatsheets.composite.model.TaskStateUtilities;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskExplorer;
-
-public class TreeExplorerMenu {
-	
-	private TaskExplorer explorer;
-
-	public TreeExplorerMenu(TaskExplorer explorer) {
-		this.explorer = explorer;
-		MenuManager menuMgr = new MenuManager(null);
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(explorer.getControl());
-		explorer.getControl().setMenu(menu);
-	}
-
-	protected void fillContextMenu(IMenuManager manager) {
-		ISelection selection = explorer.getSelectionProvider().getSelection();
-		ICompositeCheatSheetTask selectedTask = null;
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection structuredSelection = (IStructuredSelection)selection;
-			if (structuredSelection.size() == 1) {
-			selectedTask = (ICompositeCheatSheetTask)(structuredSelection).getFirstElement();		
-			}
-		}
-		if (selectedTask == null) return;
-		
-		// Start
-	    StartAction startAction = new StartAction(selectedTask);
-	    startAction.setEnabled(TaskStateUtilities.isStartEnabled(selectedTask));
-		manager.add(startAction);
-		
-		// Skip
-	    SkipAction skipAction = new SkipAction(selectedTask);
-	    skipAction.setEnabled(TaskStateUtilities.isSkipEnabled(selectedTask));
-		manager.add(skipAction);
-		
-		// Restart
-		Action restartAction;
-		if (selectedTask.getParent() == null) {
-			restartAction = new RestartAllAction(selectedTask.getCompositeCheatSheet());
-		} else {
-			restartAction = new ResetTaskAction(selectedTask);
-			restartAction.setEnabled(selectedTask.getState() != ICompositeCheatSheetTask.NOT_STARTED);
-		}
-		manager.add(restartAction);	
-	}
-
-}
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
deleted file mode 100644
index d943069..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.composite.model.TaskStateUtilities;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.cheatsheets.composite.views.TaskEditorManager;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-import org.osgi.framework.Bundle;
-
-public class TreeLabelProvider extends LabelProvider {
-
-	private static int BLOCKED = -1;
-	private Image defaultImage = null; // Image for tasks with null kind
-	
-	/*
-	 * A set of related images
-	 */
-	private class ImageSet {
-		// Use a map rather than array so the nuber of icons is not hard coded
-		Map images = new HashMap();
-		
-		public void put(int index, Image image) {
-			images.put(Integer.toString(index), image);
-		}
-		
-		public Image getImage(int index) {
-			return (Image)images.get(Integer.toString(index));
-		}
-		
-		void dispose() {
-			for (Iterator iter = images.values().iterator(); iter.hasNext(); ) {
-				Image nextImage = (Image)iter.next();
-				nextImage.dispose();
-			}		
-		}
-	}
-	
-	private Map imageMap = null; // each entry is an ImageSet
-		
-	public TreeLabelProvider() {
-		imageMap = new HashMap();
-	}
-
-	public String getText(Object obj) {
-		String result;
-		if (obj instanceof ICompositeCheatSheetTask) {
-			result =  ((ICompositeCheatSheetTask) obj).getName();
-		} else {
-		    result =  obj.toString();
-		}
-		if (result == null) {
-			result = ""; //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	public Image getImage(Object obj) {
-		if (obj instanceof ICompositeCheatSheetTask) {
-			ICompositeCheatSheetTask task = (ICompositeCheatSheetTask) obj;
-			return lookupImage(task.getKind(), task.getState(), TaskStateUtilities.isBlocked(task));		
-		}
-		return super.getImage(obj);
-	}
-
-	public Image lookupImage(String kind, int state, boolean isBlocked) {
-		ImageSet images = (ImageSet) imageMap.get(kind);
-		if (images == null) {
-			images = createImages(kind);
-			imageMap.put(kind, images);
-		}
-		if (isBlocked) {
-			return images.getImage(BLOCKED);
-		}
-	    return images.getImage(state);
-	}
-
-	/**
-	 * Create a set of images for a task which may be [redefined.
-	 * @param kind
-	 * @return
-	 */
-	private ImageSet createImages(String kind) {
-		ImageSet images = new ImageSet();
-		ImageDescriptor desc;
-		desc = getPredefinedImageDescriptor(kind, true);
-        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.gif",  //$NON-NLS-1$
-		               images, 
-		               desc);
-			createImageWithOverlay(ICompositeCheatSheetTask.SKIPPED, 
-		               "$nl$/icons/ovr16/task_skipped.gif",  //$NON-NLS-1$
-		               images, 
-		               desc);
-			createDisabledImage(kind, BLOCKED, 
-		               images, 
-		               baseImage);
-			createImageWithOverlay(ICompositeCheatSheetTask.COMPLETED, 
-		               "$nl$/icons/ovr16/task_complete.gif",  //$NON-NLS-1$
-		               images, 
-		               desc);
-			
-		}
-		return images;
-	}
-
-	private ImageDescriptor getPredefinedImageDescriptor(String kind, boolean isEnabled) {
-		String filename;
-		if (ICompositeCheatsheetTags.CHEATSHEET_TASK_KIND.equals(kind)) {
-			filename = "cheatsheet_task.gif"; //$NON-NLS-1$
-		} else if (ITaskGroup.SET.equals(kind)) {
-			filename = "task_set.gif"; //$NON-NLS-1$
-		} else if (ITaskGroup.CHOICE.equals(kind)) {
-			filename = "task_choice.gif"; //$NON-NLS-1$
-		} else if (ITaskGroup.SEQUENCE.equals(kind)) {
-			filename = "task_sequence.gif"; //$NON-NLS-1$
-		} else {
-			return null;
-		}
-		String iconPath =  "$nl$/icons/"; //$NON-NLS-1$
-		if (isEnabled) { 
-			iconPath += CheatSheetPlugin.T_OBJ;
-		} else {
-			iconPath += CheatSheetPlugin.T_DLCL;
-		}
-		iconPath += filename;
-		return createImageDescriptor(iconPath);
-	}
-
-	private void createImageWithOverlay(int state, String imagePath, ImageSet images, ImageDescriptor baseDescriptor) {
-		ImageDescriptor descriptor = createImageDescriptor(imagePath); 
-		OverlayIcon icon = new OverlayIcon(baseDescriptor, new ImageDescriptor[][] {
-				{}, { descriptor } });
-		images.put(state, icon.createImage());
-	}
-	
-	private void createDisabledImage(String kind, int state, ImageSet images, Image baseImage) {
-		// The four images for task_set, task_sequence, task_choice and cheatsheet_task can be found
-		// in icons/dlcl16. 
-		// TODO extend the extension point to allow disabled images to be specified.
-		//if 
-
-		ImageDescriptor desc = getPredefinedImageDescriptor(kind, false);
-		Image disabledImage;
-		if (desc != null) {
-			disabledImage = desc.createImage();
-		} else {
-		    disabledImage = createGrayedImage(baseImage);
-		}
-		images.put(state, disabledImage);		
-	}
-
-	private Image createGrayedImage(Image image) {
-		return new Image(image.getDevice(), image, SWT.IMAGE_DISABLE);
-	}
-
-	private ImageDescriptor createImageDescriptor(String relativePath) {
-		Bundle bundle = CheatSheetPlugin.getPlugin().getBundle();
-		URL url = FileLocator.find(bundle, new Path(relativePath),null);
-		if (url == null) return null;
-		try {
-			url = FileLocator.resolve(url);
-			return ImageDescriptor.createFromURL(url);
-		} catch (IOException e) {
-			return null;
-		}
-	}
-
-	public void dispose() {
-		if (imageMap != null) {
-			for (Iterator iter = imageMap.values().iterator(); iter.hasNext(); ) {
-			    ImageSet nextImages = (ImageSet)iter.next();
-			    nextImages.dispose();
-			}
-			imageMap = null;
-		}
-		if (defaultImage != null) {
-			defaultImage.dispose();
-			defaultImage = null;
-		}
-	}
-	
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeTaskExplorer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeTaskExplorer.java
deleted file mode 100644
index a7fbe2f..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeTaskExplorer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.explorer;
-
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheet;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskExplorer;
-
-public class TreeTaskExplorer extends TaskExplorer {
-	private TreeViewer viewer;
-
-	
-	public String getId() {
-		return ICompositeCheatsheetTags.TREE;
-	}	
-
-	public void createControl(Composite parent, FormToolkit toolkit) {
-		Tree tree = new Tree(parent, toolkit.getOrientation());
-		toolkit.adapt(tree, false, false);
-		viewer = new TreeViewer(tree);
-		viewer.setContentProvider(new TreeContentProvider());
-		viewer.setLabelProvider(new TreeLabelProvider());
-	}
-	
-	public void taskUpdated(ICompositeCheatSheetTask task) {
-		viewer.update(task, null);
-	}
-
-	public Control getControl() {
-		return viewer.getControl();
-	}
-
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-
-	public ISelectionProvider getSelectionProvider() {
-		return viewer;
-	}
-
-	public void setCompositeCheatSheet(ICompositeCheatSheet compositeCheatSheet) {
-		viewer.setInput(compositeCheatSheet);
-	}
-
-	public void dispose() {
-		viewer.getLabelProvider().dispose();		
-	}
-
-	public void setSelection(ISelection selection, boolean reveal) {
-		viewer.setSelection(selection, reveal);
-	}
-
-}
\ No newline at end of file
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
deleted file mode 100644
index ab4c3f4..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ITaskParseStrategy;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheet;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-
-/**
- * A single task within a composite cheatsheet. This class encapsulates the
- * behavior common to editable tasks and taskGroups
- */
-
-public abstract class AbstractTask implements ICompositeCheatSheetTask {
-	protected CompositeCheatSheetModel model;
-	protected int state = NOT_STARTED;
-	private String id;
-
-	private String name;
-
-	protected String kind;
-
-	private Dictionary parameters;
-	
-	private String description;
-		
-	private String completionMessage;
-
-	private ArrayList requiredTasks;
-	
-	private ArrayList successorTasks;
-	
-	private boolean skippable;
-	
-	private TaskGroup parent;
-
-	protected static final ICompositeCheatSheetTask[] EMPTY = new ICompositeCheatSheetTask[0];
-
-	public AbstractTask(CompositeCheatSheetModel model, String id, String name, String kind) {
-		this.model = model;
-		this.id = id;
-		this.name = name;
-		this.kind = kind;
-		this.parameters = new Hashtable();
-		this.description = ""; //$NON-NLS-1$
-		requiredTasks = new ArrayList();
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public String getKind() {
-		return kind;
-	}
-
-	public Dictionary getParameters() {
-		return parameters;
-	}
-
-	public String getDescription() {
-		return description;
-	}
-	
-	public void setDescription(String description) {
-		this.description = description;
-	}
-	
-	public void setCompletionMessage(String completionMessage) {
-		this.completionMessage = completionMessage;
-	}
-
-	public String getCompletionMessage() {
-		return completionMessage;
-	}
-
-	public ICompositeCheatSheetTask[] getRequiredTasks() {
-		if (requiredTasks==null) return EMPTY;
-		return (ICompositeCheatSheetTask[])requiredTasks.toArray(new ICompositeCheatSheetTask[requiredTasks.size()]);
-	}
-
-	public ICompositeCheatSheetTask[] getSuccessorTasks() {
-		if (successorTasks==null) return EMPTY;
-		return (ICompositeCheatSheetTask[])successorTasks.toArray(new ICompositeCheatSheetTask[successorTasks.size()]);
-	}
-	
-	public void addRequiredTask(AbstractTask task) {
-		if (requiredTasks==null)
-			requiredTasks = new ArrayList();
-		requiredTasks.add(task);
-		if (task.successorTasks==null)
-			task.successorTasks = new ArrayList();
-		task.successorTasks.add(this);
-	}
-
-	public int getState() {
-		return state;
-	}
-
-	public void complete() { 
-		setState(COMPLETED);
-	}
-
-	public boolean requiredTasksCompleted() {
-		boolean startable = true;
-		ICompositeCheatSheetTask[] requiredTasks = getRequiredTasks();
-		for (int i = 0; i < requiredTasks.length; i++) {
-			if (requiredTasks[i].getState() != COMPLETED &&
-				requiredTasks[i].getState() != SKIPPED	) {
-				startable = false;
-			}
-		}
-		return startable;
-	}
-	
-	/**
-	 * Determine whether the candidate task is a required task for this task.
-	 * This function does not test for indirectly required tasks
-	 * @param candidateTask a task which may be a required task
-	 * @return true if candidateTask is in the list of required tasks.
-	 */
-	public boolean requiresTask(ICompositeCheatSheetTask candidateTask) {
-		return (requiredTasks.contains(candidateTask));
-	}
-
-	/**
-	 * Interface used when restoring state from a file. 
-	 * Not intended to be called from task editors.
-	 * @param state
-	 */
-	public void setState(int state) {
-	    setStateNoNotify(state);
-		model.sendTaskChangeEvents();
-	}
-	
-	/**
-	 * Set the state of a task but don't send out any events yet,
-	 * let them collect so we don't send out multiple events for 
-	 * one task
-	 * @param state
-	 */
-	public void setStateNoNotify(int state) {
-		this.state = state;	
-		if (parent != null) {
-		    parent.checkState();
-		}
-		model.stateChanged(this);
-	}
-
-	public URL getInputUrl(String path) throws MalformedURLException {
-		return new URL(model.getContentUrl(), path);
-	}
-
-	public ICompositeCheatSheet getCompositeCheatSheet() {
-		return model;
-	}
-	
-	public abstract ITaskParseStrategy getParserStrategy();
-
-	public abstract ICompositeCheatSheetTask[] getSubtasks();
-
-	public void setSkippable(boolean skippable) {
-		this.skippable = skippable;
-	}
-
-	public boolean isSkippable() {
-		return skippable;
-	}
-
-	protected void setParent(TaskGroup parent) {
-		this.parent = parent;
-	}
-
-	public ITaskGroup getParent() {
-		return parent;
-	}
-	
-	public int hashCode() {
-		return getId().hashCode();
-	}
-
-}
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
deleted file mode 100644
index f9cc444..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-public class BlockedTaskFinder {
-	
-	private Set stateChangedTasks;
-	private Set impactedTasks;
-	/**
-	 * Find which tasks have either become blocked or unblocked so that they
-	 * can be added to the list of change events.
-	 * @param stateChangedTasks The set of tasks which has changed
-	 * @return The set of tasks which have become blocked or unblocked by the
-	 * change of state and were not in the original set. The algorithm will sometimes add tasks to 
-	 * the result set which were not actually impacted but this is not a major problem 
-	 * since it only means that extra events get sent to the explorer. For updates other
-	 * than resets the number of extra events is very low.
-	 * 
-	 * 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
-	 */
-	
-	public Set findBlockedTaskChanges(Set stateChangedTasks) {
-		this.stateChangedTasks = stateChangedTasks;
-		impactedTasks = new HashSet();
-		visitChangedTasks();
-		findSuccesors();
-		return impactedTasks;
-	}
-
-	private void visitChangedTasks() {
-		for (Iterator iter = stateChangedTasks.iterator(); iter.hasNext(); ) {
-			final ICompositeCheatSheetTask nextTask = (ICompositeCheatSheetTask)iter.next();
-			if (nextTask.getState() != ICompositeCheatSheetTask.IN_PROGRESS) {
-			    findUnstartedChildren(nextTask);
-			}
-		}	
-	}
-
-	/*
-	 * Look for children which we have not seen elsewhere and if they are not started
-	 * add them to the list of impacted tasks.
-	 */
-	private void findUnstartedChildren(ICompositeCheatSheetTask task) {
-		ICompositeCheatSheetTask[] children = task.getSubtasks();	
-		for (int i = 0; i < children.length; i++) {
-			ICompositeCheatSheetTask nextChild = children[i];
-			// 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);
-			}
-		}
-	}	
-
-	private void findSuccesors() {
-		for (Iterator iter = stateChangedTasks.iterator(); iter.hasNext(); ) {
-			final AbstractTask nextTask = (AbstractTask)iter.next();
-			ICompositeCheatSheetTask[] successors = nextTask.getSuccessorTasks();
-			for (int i = 0; i < successors.length; i++) {
-				ICompositeCheatSheetTask nextSuccessor = successors[i];
-				if (nextSuccessor.getState() == ICompositeCheatSheetTask.NOT_STARTED) {
-					impactedTasks.add(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
deleted file mode 100644
index afa92d9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Observable;
-import java.util.Set;
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-import org.eclipse.ui.internal.cheatsheets.data.ICheatSheet;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheet;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-public class CompositeCheatSheetModel extends Observable implements ICompositeCheatSheet, ICheatSheet{
-
-	private String name;
-	private String description;
-	private String explorerId;
-	private ICompositeCheatSheetTask rootTask;
-	private TaskDependencies dependencies;
-	private String id;
-	private CompositeCheatSheetSaveHelper saveHelper;
-	private URL contentURL;
-	private CheatSheetManager manager;
-	private Set stateChangedSet = new HashSet();
-	
-	public void setRootTask(ICompositeCheatSheetTask task) {
-		rootTask = task;
-	}
-	
-	public CompositeCheatSheetModel(String name, String description, String explorerId) {
-		this.name = name;
-	    this.description = description;
-	    this.explorerId = explorerId;
-	    this.dependencies = new TaskDependencies();
-	}
-	
-	public String getName() {
-		return name;
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public String getTaskExplorerId() {
-		return explorerId;
-	}
-	
-	public ICompositeCheatSheetTask getRootTask() {
-		return rootTask;
-	}
-
-	public void setDependencies(TaskDependencies dependencies) {
-		this.dependencies = dependencies;
-	}
-
-	public TaskDependencies getDependencies() {
-		return dependencies;
-	}
-	
-	public URL getContentUrl() {
-		return contentURL;
-	}
-
-	public void setContentUrl(URL newUrl) {
-		contentURL=newUrl;		
-	}
-	
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public void setSaveHelper(CompositeCheatSheetSaveHelper saveHelper) {
-		this.saveHelper = saveHelper;
-	}
-	
-	/**
-	 * Maintain a set of tasks which have been changed which will
-	 * be used to send events to observers.
-	 * @param task
-	 */
-	void stateChanged(ICompositeCheatSheetTask task) {
-		if (!stateChangedSet.contains(task)) {
-			stateChangedSet.add(task);
-		}
-	}
-	
-	/**
-	 * At this point we need to determine which blocked tasks  have 
-	 * become unblocked and which unblocked tasks are now blocked and
-	 * send events for those also.
-	 */
-	public void sendTaskChangeEvents() {
-		Set blockedStateChanged = new BlockedTaskFinder().findBlockedTaskChanges(stateChangedSet);
-		for (Iterator iter = stateChangedSet.iterator(); iter.hasNext();) {
-			setChanged();
-			notifyObservers(iter.next());
-		}
-		for (Iterator iter = blockedStateChanged.iterator(); iter.hasNext();) {
-			setChanged();
-			notifyObservers(iter.next());
-		}
-		stateChangedSet.clear();
-	}
-	
-	public IMemento getTaskMemento(String id) {
-		 return saveHelper.getTaskMemento(id);
-	}
-
-	public ICheatSheetManager getCheatSheetManager() {
-		return manager;
-	}
-	
-	public void setCheatSheetManager(CheatSheetManager manager) {
-		this.manager = manager;	
-	}
-
-	public void loadState(Map layoutData) {
-		saveHelper.loadCompositeState(this, layoutData);	
-	}
-	
-	/*
-	 * Reset the state of a task and it's children
-	 */
-	private void resetTask(ICompositeCheatSheetTask task) {
-		if (task instanceof EditableTask) {
-		    EditableTask editable = (EditableTask)task;
-			editable.reset();
-			if (saveHelper != null) {
-			    saveHelper.clearTaskMemento(task.getId());
-			}
-		} else if (task instanceof TaskGroup) { 
-			TaskGroup group = (TaskGroup)task;
-		    ICompositeCheatSheetTask[] subtasks = group.getSubtasks();
-		    for (int i = 0; i < subtasks.length; i++) {
-			    resetTask(subtasks[i]);
-		    }
-		   group.setStateNoNotify(ICompositeCheatSheetTask.NOT_STARTED);
-		}
-	}
-
-	public void resetAllTasks(Map cheatSheetData) {
-        if (manager != null) {
-    		if (cheatSheetData == null) {
-            	manager.setData(new Hashtable());
-    		} else {
-    			manager.setData(cheatSheetData);
-    		}
-        }
-        saveHelper.clearTaskMementos();	
-	    resetTask(getRootTask());
-	    sendTaskChangeEvents();
-	}
-
-	/**
-	 * Restart one or more tasks
-	 * @param restartTasks An array of the tasks to be restarted
-	 */
-	public void resetTasks(ICompositeCheatSheetTask[] restartTasks) {
-		for (int i = 0; i < restartTasks.length; i++) {
-			resetTask(restartTasks[i]);
-		}	
-		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
deleted file mode 100644
index 27a8825..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheetSaveHelper;
-import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskEditor;
-
-/**
- * Class to save and restore composite cheatsheet state using a memento
- * There is a child memento for each task which contains keys for the
- * state complete. There is also a grandchild memento for 
- * each task that has been started.
- */
-
-public class CompositeCheatSheetSaveHelper extends CheatSheetSaveHelper {
-	private static final String DOT_XML = ".xml"; //$NON-NLS-1$
-	private Map taskMementoMap;
-
-	/**
-	 * Constructor 
-	 */
-	public CompositeCheatSheetSaveHelper() {
-		super();
-	}
-
-	public IStatus loadCompositeState(CompositeCheatSheetModel model, Map layoutData) {
-		XMLMemento readMemento = CheatSheetPlugin.getPlugin().readMemento(model.getId() + DOT_XML);
-		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;
-	}
-
-	private Map createTaskMap(XMLMemento readMemento) {
-		Map map = new HashMap();
-		IMemento[] tasks = readMemento.getChildren(ICompositeCheatsheetTags.TASK);
-		for (int i = 0; i < tasks.length; i++) {
-			String taskId = tasks[i].getString(ICompositeCheatsheetTags.TASK_ID);
-			if (taskId != null) {
-			    map.put(taskId, tasks[i]);
-			}
-		}
-		return map;
-	}
-
-	private void loadTaskState(Map taskMap, AbstractTask task) {
-		ICompositeCheatSheetTask[] children = task.getSubtasks();
-		IMemento memento = (IMemento)taskMap.get(task.getId());
-		if (memento != null) {
-			String state = memento.getString(ICompositeCheatsheetTags.STATE);
-			if (state != null) {
-				task.setStateNoNotify(Integer.parseInt(state));
-			}
-		}
-		if (task instanceof TaskGroup) {
-			for (int i = 0; i < children.length; i++) {		
-				loadTaskState(taskMap, (AbstractTask) children[i]);
-			}
-			((TaskGroup)task).checkState();
-		}
-	}
-	
-	private void loadCheatsheetManagerData(XMLMemento readMemento, ICheatSheetManager manager) {
-		if (manager == null) {
-			return;
-		}
-		IMemento[] children = readMemento.getChildren(ICompositeCheatsheetTags.CHEAT_SHEET_MANAGER);
-		for (int i = 0; i < children.length; i++) {
-			IMemento childMemento = children[i];
-			String key = childMemento.getString(ICompositeCheatsheetTags.KEY);
-			String value = childMemento.getString(ICompositeCheatsheetTags.VALUE);
-			manager.setData(key, value);
-		}
-	}
-	
-	private void loadLayoutData(XMLMemento readMemento, Map layoutData) {
-		if (layoutData == null) {
-			return;
-		}
-		IMemento[] children = readMemento.getChildren(ICompositeCheatsheetTags.LAYOUT_DATA);
-		for (int i = 0; i < children.length; i++) {
-			IMemento childMemento = children[i];
-			String key = childMemento.getString(ICompositeCheatsheetTags.KEY);
-			String value = childMemento.getString(ICompositeCheatsheetTags.VALUE);
-			layoutData.put(key, value);
-		}
-	}
-
-	/**
-	 * Save the state of a composite cheat sheet model
-	 * @param model
-	 * @param selectedTask 
-	 * @param layoutData Will contain pairs of name/value Strings used to save and restore layout
-	 * @return
-	 */
-	public IStatus saveCompositeState(CompositeCheatSheetModel model, Map layoutData) {
-		XMLMemento writeMemento = XMLMemento.createWriteRoot(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET_STATE);
-		writeMemento.putString(IParserTags.ID, model.getId());		
-        saveTaskState(writeMemento, (AbstractTask)model.getRootTask());
-        saveCheatSheetManagerData(writeMemento, model.getCheatSheetManager());
-		taskMementoMap = createTaskMap(writeMemento);
-		if (layoutData != null) {
-			saveMap(writeMemento, layoutData, ICompositeCheatsheetTags.LAYOUT_DATA);
-		}
-		return CheatSheetPlugin.getPlugin().saveMemento(writeMemento, model.getId() + DOT_XML);
-	}
-
-	private void saveCheatSheetManagerData(XMLMemento writeMemento, ICheatSheetManager manager) {
-		if (!(manager instanceof CheatSheetManager)) {
-			return;
-		}		
-		Map data = ((CheatSheetManager)manager).getData();
-		saveMap(writeMemento, data, ICompositeCheatsheetTags.CHEAT_SHEET_MANAGER);
-	}
-
-	private void saveMap(XMLMemento writeMemento, Map data, String tag) {
-		for (Iterator iter = data.keySet().iterator(); iter.hasNext();) {
-			String key = (String)iter.next();
-			String value = (String) data.get(key);
-			IMemento childMemento = writeMemento.createChild(tag);
-			childMemento.putString(ICompositeCheatsheetTags.KEY, key);
-			childMemento.putString(ICompositeCheatsheetTags.VALUE, value);		
-		}
-	}
-
-	private void saveTaskState(IMemento writeMemento, AbstractTask task) {
-		IMemento childMemento = writeMemento.createChild(ICompositeCheatsheetTags.TASK);
-		childMemento.putString(ICompositeCheatsheetTags.TASK_ID, task.getId());
-		childMemento.putString(ICompositeCheatsheetTags.STATE, Integer.toString(task.getState())); 
-		
-		TaskEditor editor = getEditor(task);
-		if (editor != null) {
-			IMemento taskDataMemento = childMemento.createChild(ICompositeCheatsheetTags.TASK_DATA);
-			editor.saveState(taskDataMemento);
-		} else {
-			// The task has not been started so save its previous state
-			IMemento taskData = getTaskMemento(task.getId());
-			if (taskData != null) {
-				IMemento previousDataMemento = childMemento.createChild(ICompositeCheatsheetTags.TASK_DATA);
-				previousDataMemento.putMemento(taskData);
-			}
-		}
-		ICompositeCheatSheetTask[] subtasks = task.getSubtasks();
-		for (int i = 0; i < subtasks.length; i++) {
-			saveTaskState(writeMemento, (AbstractTask)subtasks[i]);
-		}
-	}
-
-	private TaskEditor getEditor(AbstractTask task) {
-        if (task instanceof EditableTask) {
-        	return ((EditableTask)task).getEditor();
-        }
-		return null;
-	}
-
-	public IMemento getTaskMemento(String id) {
-		if (taskMementoMap == null) {
-			return null;
-		}
-	    IMemento childMemento = (IMemento)taskMementoMap.get(id);
-	    if (childMemento == null) {
-	    	return  null;
-	    }
-	    return childMemento.getChild(ICompositeCheatsheetTags.TASK_DATA);
-	}
-
-	public void clearTaskMementos() {
-		taskMementoMap = null;
-	}
-	
-	public void clearTaskMemento(String id) {
-		if (taskMementoMap != null) {
-			taskMementoMap.remove(id);
-		}
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/EditableTask.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/EditableTask.java
deleted file mode 100644
index 324b1d9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/EditableTask.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-/**
- * The concrete implementation of an editable task
- */
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.EditableTaskParseStrategy;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ITaskParseStrategy;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.IEditableTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskEditor;
-
-public class EditableTask extends AbstractTask implements IEditableTask {
-	
-	private TaskEditor editor;
-
-	private ITaskParseStrategy parserStrategy;
-	
-	private boolean editorInitialized = false;
-	
-	private boolean underReview = false;
-
-	public EditableTask(CompositeCheatSheetModel model, String id, String name, String kind) {
-		super(model, id, name, kind);
-		parserStrategy = new EditableTaskParseStrategy();
-	}
-	
-	public ITaskParseStrategy getParserStrategy() {
-		return parserStrategy;
-	}
-
-	public ICompositeCheatSheetTask[] getSubtasks() {
-		return EMPTY;
-	}
-
-	public void setStarted() {	
-		if (state==NOT_STARTED) {
-			setState(IN_PROGRESS);
-		}
-	}	
-	
-	public void setEditor(TaskEditor editor) {
-		this.editor = editor;
-	}
-
-	public TaskEditor getEditor() {
-		return editor;
-	}
-
-	public void reset() {
-		setStateNoNotify(NOT_STARTED);	
-		editorInitialized = false;
-	}
-	
-	public void setInput(IMemento memento) {
-		if (editor != null) {
-			editor.setInput(this, memento);
-			editorInitialized = true;
-		}
-	}
-
-	public boolean isEditorInitialized() {
-		return editorInitialized;
-	}
-
-	public void setUnderReview(boolean underReview) {
-		this.underReview = underReview;
-	}
-
-	public boolean isUnderReview() {
-		return underReview;
-	}	
-	
-}
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
deleted file mode 100644
index a63f6f0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-
-public class SuccesorTaskFinder {
-	
-	private AbstractTask currentTask;
-	ICompositeCheatSheetTask bestLaterTask;
-	ICompositeCheatSheetTask bestEarlierTask;
-	private boolean seenThisTask;
-
-	public SuccesorTaskFinder(ICompositeCheatSheetTask task) {
-		currentTask = (AbstractTask)task;
-	}
-	
-	/**
-	 * Find the next recommended task or tasks to be completed.
-	 * Algorithm - visualize the tree as having its root at the top,
-	 * children below and to the left of their parents and then
-	 * search the tree from left to right. Look for 
-	 * the best predecessor which is the first task to the
-	 * left of this task that is runnable and the best successor 
-	 * which is the first task to the
-	 * right of this task which is runnable. 
-	 * @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
-    		List runnableChoices = findRunnableChoices();
-    		if (runnableChoices.size() != 0) {
-    			return (ICompositeCheatSheetTask[])runnableChoices.toArray
-    			(    new ICompositeCheatSheetTask[runnableChoices.size()]);
-    		}
-    	}
-    	return getBestSuccessor();
-    }
-
-	private List findRunnableChoices() {
-		List result;
-		result = new ArrayList();
-		if (isStartable(currentTask)) {
-			ICompositeCheatSheetTask[] subtasks = currentTask.getSubtasks();
-			for (int i = 0; i < subtasks.length; i++) {
-				if (isStartable(subtasks[i])) {
-					result.add(subtasks[i]);
-				}
-			}
-		}
-		return result;
-	}
-
-	private boolean isStartable(ICompositeCheatSheetTask task) {
-		int state = task.getState();
-		return (state != ICompositeCheatSheetTask.COMPLETED &&
-			    state != ICompositeCheatSheetTask.SKIPPED &&
-			    task.requiredTasksCompleted());
-	}
-
-	private ICompositeCheatSheetTask[] getBestSuccessor() {
-		bestLaterTask = null;
-    	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.
-		if (bestLaterTask != null) {
-			return new ICompositeCheatSheetTask[] {bestLaterTask};
-		}
-		if (bestEarlierTask != null) {
-			return new ICompositeCheatSheetTask[] {bestEarlierTask};
-		}
-		return new ICompositeCheatSheetTask[0];
-	}
-
-	private void searchRunnableChildren(ICompositeCheatSheetTask task) {
-		// Don't search completed tasks or their children
-		// and stop searching if we've already found the best successor
-		if (task == currentTask) {
-			seenThisTask = true;
-		}
-		if (task.getState() == ICompositeCheatSheetTask.COMPLETED || 
-			task.getState() == ICompositeCheatSheetTask.SKIPPED ||
-		     bestLaterTask != null) {
-			return;
-		}
-		
-		if ( isStartable(task) && task != currentTask) {
-			if (seenThisTask) {
-				if (bestLaterTask == null) {
-					bestLaterTask = task;
-				}
-			} else {
-				if (bestEarlierTask == null) {
-					bestEarlierTask = task;
-				}
-			}
-		}
-
-		ICompositeCheatSheetTask[] subtasks = task.getSubtasks();
-		for (int i = 0; i < subtasks.length; i++) {
-			searchRunnableChildren(subtasks[i]);
-		}	
-
-	}
-}
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
deleted file mode 100644
index 26bc5aa..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskChoiceCompletionStrategy.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-public class TaskChoiceCompletionStrategy implements TaskGroup.CompletionStrategy {
-
-	/**
-	 * Determine the state based on the state of the children, which is
-	 * NOT_STARTED if all children are not started
-	 * COMPLETED if one children is completed or skipped
-	 * IN_PROGRESS otherwise
-	 * @return
-	 */
-	public int computeState(TaskGroup taskGroup) {
-		boolean noChildrenStarted = true;
-		boolean atLeastOneChildCompleted = false;
-		ICompositeCheatSheetTask[] children = taskGroup.getSubtasks();
-		for (int i = 0; i < children.length; i++) {
-			switch(children[i].getState()) {
-			   case ICompositeCheatSheetTask.NOT_STARTED:
-				   break;
-			   case ICompositeCheatSheetTask.IN_PROGRESS:
-				   noChildrenStarted = false;
-				   break;
-			   case ICompositeCheatSheetTask.SKIPPED:
-				   break;
-			   case ICompositeCheatSheetTask.COMPLETED:
-				   noChildrenStarted = false;
-				   atLeastOneChildCompleted = true;
-				   break;
-			}
-		}
-		if (atLeastOneChildCompleted || children.length == 0) {
-			return ICompositeCheatSheetTask.COMPLETED;
-		}
-		if (taskGroup.getState() == ICompositeCheatSheetTask.SKIPPED) {
-			return ICompositeCheatSheetTask.SKIPPED;
-		}
-		if (noChildrenStarted) {
-			return ICompositeCheatSheetTask.NOT_STARTED;
-		}
-		return ICompositeCheatSheetTask.IN_PROGRESS;
-	}
-}
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
deleted file mode 100644
index 96dc775..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.IStatusContainer;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-/**
- * Class to keep track of dependencies between tasks
- */
-
-public class TaskDependencies {
-	
-	private class Dependency {
-		private AbstractTask sourceTask;
-		
-		private String requiredTaskId;
-		
-		public Dependency(AbstractTask sourceTask, String requiredTaskId) {
-			this.sourceTask = sourceTask;
-			this.requiredTaskId = requiredTaskId;
-		}
-		
-		public AbstractTask getSourceTask() {
-			return sourceTask;
-		}
-		
-		public String getRequiredTaskId() {
-			return requiredTaskId;
-		}
-	}
-	
-	private List dependencies;
-	
-	private Map taskIdMap = new HashMap();
-
-	public void saveId(AbstractTask task) {
-		String id = task.getId();
-		if (id != null) {
-			taskIdMap.put(id, task);
-		}		
-	}
-	
-	public AbstractTask getTask(String id) {
-		return (AbstractTask)taskIdMap.get(id);
-	}
-	
-	public TaskDependencies() {
-		dependencies = new ArrayList();
-	}
-	
-	/**
-	 * Register a dependency between tasks
-	 * @param sourceTask a task which cannot be started until another task is completed
-	 * @param requiredTaskId the id of the task which must be completed first
-	 */
-	public void addDependency(AbstractTask sourceTask, String requiredTaskId) {
-		dependencies.add(new Dependency(sourceTask, requiredTaskId));
-	}
-	
-	/**
-	 * Resolve all of the dependencies updating the individual tasks
-	 * @param model The composite cheat sheet
-	 * @param status An object used to add error status
-	 */
-	public void resolveDependencies(IStatusContainer status) {
-		for (Iterator dependencyIterator = dependencies.iterator(); dependencyIterator.hasNext();) {
-			 Dependency dep = (Dependency)dependencyIterator.next();
-			 AbstractTask sourceTask = dep.getSourceTask();
-			 AbstractTask requiredTask = getTask(dep.requiredTaskId);
-			 if (requiredTask == null) {
-					String message = NLS.bind(Messages.ERROR_PARSING_INVALID_ID, (new Object[] {dep.getRequiredTaskId()}));	
-					status.addStatus(IStatus.ERROR, message, null);
-			 } else if (!sourceTask.requiresTask(requiredTask)) {
-				 sourceTask.addRequiredTask(requiredTask);
-			 }
-		}
-		checkForCircularities (status);
-	}
-
-	/**
-	 * Check for circular dependencies using the following algorithm.
-	 * 1. Create a set of all the tasks which have an id (tasks without id cannot be in a cycle).;
-	 * 2. Remove from the set any tasks which depend on no other task, these cannot be part of a cycle
-	 * 3. Remove from the set any tasks which only depend on tasks already removed, these cannot be
-	 * part of a cycle.
-	 * 4. Repeat step 3 until not further tasks can be removed
-	 * 5. Any tasks remaining are part of a cycle or depend on a task in a cycle
-	 * @param model
-	 * @param status
-	 */
-	private void checkForCircularities (IStatusContainer status) {
-		Set tasks = new HashSet();
-		// Combine steps 1 + 2
-		for (Iterator idIterator = taskIdMap.values().iterator(); idIterator.hasNext(); ) {
-			AbstractTask nextTask = (AbstractTask)idIterator.next();
-			if (nextTask.getRequiredTasks().length > 0) {
-				tasks.add(nextTask);
-			}
-		}
-		boolean makingProgress = true;
-		while (makingProgress) {
-			// Use a new set to store the tasks which are still cycle candidates to avoid
-			// iterating over and deleting from the same set.
-			Set remainingTasks = new HashSet();
-			makingProgress = false;
-			for (Iterator taskIterator = tasks.iterator(); taskIterator.hasNext() && !makingProgress; ) {
-				boolean mayBeInCycle = false;
-				ICompositeCheatSheetTask nextTask = (ICompositeCheatSheetTask)taskIterator.next();
-				ICompositeCheatSheetTask[] requiredTasks = nextTask.getRequiredTasks();
-				for (int i = 0; i < requiredTasks.length; i++) {
-					if (tasks.contains(requiredTasks[i])) {
-						mayBeInCycle = true;
-					}
-				}
-				if (mayBeInCycle) {
-					remainingTasks.add(nextTask);
-				} else {
-					makingProgress = true;
-				}				
-			}
-			tasks = remainingTasks;
-		}
-		if (!tasks.isEmpty()) {
-			status.addStatus(IStatus.ERROR, Messages.ERROR_PARSING_CYCLE_DETECTED, null);
-			// Detect one of the cycles and report its members
-			List cycle = new ArrayList();
-			ICompositeCheatSheetTask cycleStartTask = (ICompositeCheatSheetTask)tasks.iterator().next();
-			while (!cycle.contains(cycleStartTask)) {
-				cycle.add(cycleStartTask);ICompositeCheatSheetTask[] requiredTasks = cycleStartTask.getRequiredTasks();
-				for (int i = 0; i < requiredTasks.length; i++) {
-					if (tasks.contains(requiredTasks[i])) {
-						cycleStartTask=requiredTasks[i];
-					}
-				}
-			}
-			// Now the list contains a cycle and possibly additional tasks at the start
-			// of the list
-			boolean cycleStarted = false;
-			String thisTask = null;
-			String lastTask = null;
-			String firstTask = null;
-			for (Iterator cycleIterator = cycle.iterator(); cycleIterator.hasNext();) {
-				ICompositeCheatSheetTask task = (ICompositeCheatSheetTask)cycleIterator.next();
-				if (task == cycleStartTask) {
-					cycleStarted = true;
-					firstTask = task.getName();
-				}
-				if (cycleStarted) {
-					// Save the name of this task
-					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[] {thisTask, firstTask}));	
-		    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
deleted file mode 100644
index d5efc41..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.util.ArrayList;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ITaskParseStrategy;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.TaskGroupParseStrategy;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-
-public class TaskGroup extends AbstractTask implements ITaskGroup {
-	
-	public interface CompletionStrategy {
-		public int computeState(TaskGroup taskGroup);
-	}
-	
-	private ITaskParseStrategy parserStrategy;
-
-	private ArrayList subtasks;
-	
-	private CompletionStrategy completionStrategy;
-
-	public TaskGroup(CompositeCheatSheetModel model, String id, String name, String kind) {
-		super(model, id, name, kind);
-		if (kind == null) {
-			this.kind = ITaskGroup.SET;
-		}
-		parserStrategy = new TaskGroupParseStrategy();
-		completionStrategy = determineCompletionStrategy(kind);
-	}
-
-	private CompletionStrategy determineCompletionStrategy(String kind) {
-		if (ITaskGroup.CHOICE.equals(kind)) {
-			return new TaskChoiceCompletionStrategy();
-		}
-		return new TaskSetCompletionStrategy();
-	}
-
-	public ITaskParseStrategy getParserStrategy() {
-		return parserStrategy;
-	}
-	
-	public ICompositeCheatSheetTask[] getSubtasks() {
-		if (subtasks==null) return EMPTY;
-		return (ICompositeCheatSheetTask[])subtasks.toArray(new ICompositeCheatSheetTask[subtasks.size()]);
-	}
-	
-	public void addSubtask(ICompositeCheatSheetTask task) {
-		if (subtasks==null) {
-			subtasks = new ArrayList();
-		}
-		subtasks.add(task);
-		((AbstractTask)task).setParent(this);
-	}
-	
-	/**
-	 * Called when the state of a child has changed or when the model
-	 * has been restored.
-	 */
-	public void checkState() {
-		int newState = computeState();
-		if (newState != state) {
-			setStateNoNotify(newState);
-		}
-	}
-
-	/**
-	 * 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.
-	 */
-	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
deleted file mode 100644
index be85b14..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskSetCompletionStrategy.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-
-public class TaskSetCompletionStrategy implements TaskGroup.CompletionStrategy {
-
-	/**
-	 * Determine the state based on the state of the children, which is
-	 * NOT_STARTED if all children are not started
-	 * COMPLETED if all children are completed or skipped
-	 * IN_PROGRESS otherwise
-	 * @return
-	 */
-	public int computeState(TaskGroup taskGroup) {
-		boolean noChildrenStarted = true;
-		boolean allChildrenCompleted = true;
-		ICompositeCheatSheetTask[] children = taskGroup.getSubtasks();
-		for (int i = 0; i < children.length; i++) {
-			switch(children[i].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;
-			}
-		}
-		if (allChildrenCompleted) {
-			return ICompositeCheatSheetTask.COMPLETED;
-		}
-		if (taskGroup.getState() == ICompositeCheatSheetTask.SKIPPED) {
-			return ICompositeCheatSheetTask.SKIPPED;
-		}
-		if (noChildrenStarted) {
-			return ICompositeCheatSheetTask.NOT_STARTED;
-		}
-		return ICompositeCheatSheetTask.IN_PROGRESS;
-	}
-}
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
deleted file mode 100644
index c2448a5..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.model;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.IEditableTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-
-/**
- * This class contains utility functions to determine the state of a task based on
- * dependencies, parent state etc.
- */
-
-public class TaskStateUtilities {
-	
-	/**
-	 * Find the most recent ancestor of this task that is blocked
-	 * @param task
-	 * @return A blocked task or null if no ancestors are blocked
-	 */
-	public static ICompositeCheatSheetTask findBlockedAncestor(ICompositeCheatSheetTask task) {
-		ITaskGroup parent = ((AbstractTask)task).getParent();
-		if (parent == null) {
-			return null;
-		} 
-        if (!parent.requiredTasksCompleted()) {
-			return parent;
-		}
-		return findBlockedAncestor(parent);		
-	}
-	
-	/**
-	 * Find the most recent ancestor of this task that is skipped
-	 * @param task
-	 * @return A skipped task or null if no ancestors are skipped
-	 */
-	public static ICompositeCheatSheetTask findSkippedAncestor(ICompositeCheatSheetTask task) {
-		ITaskGroup parent = ((AbstractTask)task).getParent();
-		if (parent == null) {
-			return null;
-		} 
-        if (parent.getState() == ICompositeCheatSheetTask.SKIPPED) {
-			return parent;
-		}
-		return findSkippedAncestor(parent);			
-	}
-	
-	/**
-	 * Find the most recent ancestor of this task that is completed
-	 * @param task
-	 * @return A completed task or null if no ancestors are completed
-	 */
-	public static ICompositeCheatSheetTask findCompletedAncestor(ICompositeCheatSheetTask task) {
-		ITaskGroup parent = ((AbstractTask)task).getParent();
-		if (parent == null) {
-			return null;
-		} 
-        if (parent.getState() == ICompositeCheatSheetTask.COMPLETED) {
-			return parent;
-		}
-		return findCompletedAncestor(parent);		
-	}
-	
-	/**
-	 * Determine whether a task can be skipped.
-	 * A task can be skipped if it is skippable, its state is not SKIPPED or completed
-	 * and it has no skipped ot completed ancestors.
-	 */
-	public static boolean isSkipEnabled(ICompositeCheatSheetTask task) {
-		if (!task.isSkippable()) return false;
-		if (task.getState() == ICompositeCheatSheetTask.COMPLETED) return false;
-		if (task.getState() == ICompositeCheatSheetTask.SKIPPED) return false;
-		if (findCompletedAncestor(task) != null) return false;
-		if (findSkippedAncestor(task) != null) return false;
-		return true;
-	}
-
-	/**
-	 * Determine whether a task can be started
-	 * Only editable tasks which are not blocked and whose ancestors
-	 * are not completed can be started
-	 */
-	public static boolean isStartEnabled(ICompositeCheatSheetTask task) {
-		if (!(task instanceof IEditableTask)) return false;
-		return isStartable(task);
-	}
-	
-	/**
-	 * Determines whether a task is in a state where it has net been started and
-	 * cannot be started. This is used to determine when to gray out the icon for a task.
-	 */
-	public static boolean isBlocked(ICompositeCheatSheetTask task) {
-		return (task.getState() == ICompositeCheatSheetTask.NOT_STARTED && !isStartable(task));
-	}
-
-	/**
-	 * Determines whether an editable task, or a task group has anything
-	 * that would prevent it or its children from being started.
-	 */
-	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;
-	}
-	
-	/**
-	 * Determine which tasks need to be restarted if this tasks is restarted
-	 */
-	public static AbstractTask[] getRestartTasks(ICompositeCheatSheetTask task) {
-		List restartables = new ArrayList();
-		Set visited = new HashSet();
-		addRestartableTasks(restartables, task, visited);
-		return (AbstractTask[])restartables.toArray(new AbstractTask[restartables.size()]);
-	}
-
-	
-	private static void addRestartableTasks(List restartables, ICompositeCheatSheetTask task, Set visited) {
-		if (visited.contains(task)) {
-			return;
-		}
-		visited.add(task);
-		if (task instanceof IEditableTask && task.getState() != ICompositeCheatSheetTask.NOT_STARTED) {
-			restartables.add(task);
-		} else if (task.getState() == ICompositeCheatSheetTask.SKIPPED){
-			restartables.add(task);
-		}
-		
-		// Add all children
-		ICompositeCheatSheetTask[] children = task.getSubtasks();
-		for (int i = 0; i < children.length; i++) {
-			addRestartableTasks(restartables, children[i], visited);
-		}
-		
-		// Add all dependents that are started or in progress but not skipped
-		ICompositeCheatSheetTask[] successors = ((AbstractTask)task).getSuccessorTasks();
-		for (int i = 0; i < successors.length; i++) {
-			int state = successors[i].getState();
-			if (state == ICompositeCheatSheetTask.COMPLETED || state == ICompositeCheatSheetTask.IN_PROGRESS) {
-			    addRestartableTasks(restartables, successors[i], visited);
-			}
-		}
-	}
-	
-	
-
-}
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
deleted file mode 100644
index 1d0f014..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/CompositeCheatSheetParser.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.parser;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.cheatsheets.composite.model.CompositeCheatSheetModel;
-import org.eclipse.ui.internal.cheatsheets.composite.model.EditableTask;
-import org.eclipse.ui.internal.cheatsheets.composite.model.TaskGroup;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheetParserException;
-import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-public class CompositeCheatSheetParser implements IStatusContainer {
-	
-	private DocumentBuilder documentBuilder;
-	
-	private IStatus status;
-	
-	private int nextTaskId = 0;
-	
-	
-	/**
-	 *  Gets the status of the last call to parseGuide
-	 */
-	
-	public IStatus getStatus() {
-		return status;
-	}
-	
-	/**
-	 * Returns the DocumentBuilder to be used by composite cheat sheets.
-	 */
-	public DocumentBuilder getDocumentBuilder() {
-		if(documentBuilder == null) {
-			try {
-				documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-			} catch (Exception e) {
-				addStatus(IStatus.ERROR, Messages.ERROR_CREATING_DOCUMENT_BUILDER, e);
-			}
-		}
-		return documentBuilder;
-	}
-	
-	private final int PARSER_ERROR = 1001; // TODO is there another number that would be more meaningful
-	
-	/**
-	 * If the status is OK set it to reflect the new error condition, otherwise
-	 * add to the existing status making it a MultiStatus if necessary.
-	 */
-	public void addStatus(int severity, String message, Throwable exception) {       
-		Status newStatus = new Status(severity, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, PARSER_ERROR, message, exception);
-		if (status.isOK()) {
-			status = newStatus;
-		} else if (status instanceof MultiStatus) {
-			((MultiStatus)status).add(newStatus);
-		} else {
-			MultiStatus multiStatus = new MultiStatus(ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, 
-					Messages.ERROR_MULTIPLE_ERRORS,  exception);
-			multiStatus.add(status);
-			multiStatus.add(newStatus);
-			status = multiStatus;
-		}
-	}
-	
-	/**
-	 * Parse a composite cheat sheet from a url. The parser status will be set as a result
-	 * of this operation, if the status is IStatus.ERROR the parser returns null  
-	 * @param url The url of the input
-	 * @return A valid composite cheat sheet or null if there was an error
-	 */
-	public CompositeCheatSheetModel parseGuide(URL url) {
-		status = Status.OK_STATUS;
-		if(url == null) {
-			String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {""})); //$NON-NLS-1$
-			addStatus(IStatus.ERROR,  message,  null);
-			return null;
-		}
-
-		InputStream is = null;	
-
-		try {
-			is = url.openStream();
-
-			if (is == null) {
-				String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {url.getFile()}));
-				addStatus(IStatus.ERROR,  message,  null);
-				return null;
-			}
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {url.getFile()}));
-			addStatus(IStatus.ERROR,  message,  e);
-			return null;
-		}
-		
-		Document document;	
-		String filename = url.getFile();
-		try {
-			InputSource inputSource = new InputSource(is);
-			document = getDocumentBuilder().parse(inputSource);
-		} catch (IOException e) {
-			String message = NLS.bind(Messages.ERROR_OPENING_FILE_IN_PARSER, (new Object[] {filename}));
-			addStatus(IStatus.ERROR,  message,  e);
-			return null;
-		} catch (SAXParseException spe) {
-			String message = NLS.bind(Messages.ERROR_SAX_PARSING_WITH_LOCATION, (new Object[] {filename, new Integer(spe.getLineNumber()), new Integer(spe.getColumnNumber())}));
-			addStatus(IStatus.ERROR,  message,  spe);
-			return null;
-		} catch (SAXException se) {
-			String message = NLS.bind(Messages.ERROR_SAX_PARSING, (new Object[] {filename}));
-			addStatus(IStatus.ERROR,  message, se);
-			return null;
-		} finally {
-			try {
-				is.close();
-			} catch (Exception e) {
-			}
-		}
-		
-		CompositeCheatSheetModel result = parseCompositeCheatSheet(document, url);
-		return result;		
-	}
-
-	/**
-	 * Parse a composite cheatsheet. The parser status will be set as a result
-	 * of this operation, if the status is IStatus.ERROR the parser returns null  
-	 * @param url The url of the input. This is only used so the model can record
-	 * its input location
-	 * @param document the document to be parse
-	 * @return A valid composite cheat sheet or null if there was an error
-	 * @return
-	 */
-	public CompositeCheatSheetModel parseCompositeCheatSheet(Document document, URL url)   {
-		status = Status.OK_STATUS;
-		try {
-			// If the document passed is null return a null tree and update the status
-			if (document != null) {
-				Node rootnode = document.getDocumentElement();
-				
-				// Is the root node correct?
-				if( !rootnode.getNodeName().equals(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET )) {
-					String message = NLS.bind(Messages.ERROR_PARSING_ROOT_NODE_TYPE, (
-							new Object[] {ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET}));
-					throw new CheatSheetParserException(message);
-				}
-				
-				String name = "";  //$NON-NLS-1$
-				boolean nameFound = false;
-				String explorerId = ICompositeCheatsheetTags.TREE;
-				
-				NamedNodeMap attributes = rootnode.getAttributes();
-				if (attributes != null) {
-					for (int x = 0; x < attributes.getLength(); x++) {
-						Node attribute = attributes.item(x);
-						String attributeName = attribute.getNodeName();
-						if ( attributeName != null && attributeName.equals(ICompositeCheatsheetTags.NAME)) {
-							nameFound = true;
-							name= attribute.getNodeValue();
-						}
-						if (attributeName.equals(ICompositeCheatsheetTags.EXPLORER)) {
-							explorerId= attribute.getNodeValue();
-						}
-					}
-				}
-				CompositeCheatSheetModel compositeCS = new CompositeCheatSheetModel(name, name, explorerId);
-				
-				parseCompositeCheatSheetChildren(rootnode, compositeCS);
-				
-				compositeCS.getDependencies().resolveDependencies(this);
-				
-				if (compositeCS.getRootTask() == null) {
-					addStatus(IStatus.ERROR, Messages.ERROR_PARSING_NO_ROOT, null);
-				} 
-				if (!nameFound) {
-					addStatus(IStatus.ERROR, Messages.ERROR_PARSING_CCS_NO_NAME, null);
-				}
-				if (status.getSeverity() != IStatus.ERROR) {
-					compositeCS.setContentUrl(url);
-				    return compositeCS;
-				}
-			} 
-			return null;
-		} catch(CheatSheetParserException e) {
-			addStatus(IStatus.ERROR, e.getMessage(), null);
-			return null;
-		}	
-	}
-
-	private void parseCompositeCheatSheetChildren(Node compositeCSNode, CompositeCheatSheetModel model) {
-		nextTaskId = 0;
-		NodeList childNodes = compositeCSNode.getChildNodes();
-		for (int index = 0; index < childNodes.getLength(); index++) {
-			Node nextNode = childNodes.item(index);
-			if (isAbstractTask(nextNode.getNodeName()) ) {
-				AbstractTask task = parseAbstractTask(nextNode, model);
-			    if (model.getRootTask() == null ) { 
-					model.setRootTask(task);
-					parseTaskChildren(nextNode, task, model);
-			    } else {
-				    addStatus(IStatus.ERROR, Messages.ERROR_PARSING_MULTIPLE_ROOT, null);
-			    }
-			}
-		}		
-	}
-
-	public static boolean isAbstractTask(String nodeName) {
-		return nodeName == ICompositeCheatsheetTags.TASK ||
-			nodeName == ICompositeCheatsheetTags.TASK_GROUP;
-	}
-	
-	private void parseTaskChildren(Node parentNode, AbstractTask parentTask, CompositeCheatSheetModel model) {
-		NodeList childNodes = parentNode.getChildNodes();
-		ITaskParseStrategy strategy = parentTask.getParserStrategy();
-		strategy.init();
-		for (int index = 0; index < childNodes.getLength(); index++) {
-			Node childNode = childNodes.item(index);
-			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = childNode.getNodeName();
-				if (nodeName == IParserTags.PARAM) {
-					addParameter(parentTask, childNode.getAttributes());			
-				} else if (nodeName == IParserTags.INTRO) {
-					parentTask.setDescription(MarkupParser.parseAndTrimTextMarkup(childNode));
-				} else if (nodeName == ICompositeCheatsheetTags.ON_COMPLETION) {
-					parentTask.setCompletionMessage(MarkupParser.parseAndTrimTextMarkup(childNode));						
-				} else if (nodeName == ICompositeCheatsheetTags.DEPENDS_ON) {
-					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);
-					}
-			    } 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);
-					}
-				}
-			}
-		}	
-		// Check for missing attributes and add dependencies if this was a sequence
-		strategy.parsingComplete(parentTask, this);
-	}
-
-	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);
-		     }
-		}	
-	}
-
-	private void addParameter(AbstractTask parentTask, NamedNodeMap attributes) {
-		String name = null;
-		String value = null;
-
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-				if (attributeName.equals(ICompositeCheatsheetTags.NAME)) {
-					name = attribute.getNodeValue();
-				}
-				if (attributeName.equals(ICompositeCheatsheetTags.VALUE)) {
-					value= attribute.getNodeValue();
-				}	
-			}
-		}
-		if (name == null) {
-			addStatus(IStatus.WARNING, Messages.ERROR_PARSING_NO_NAME, null);
-			return;
-		} else if (value == null) {
-			addStatus(IStatus.WARNING, Messages.ERROR_PARSING_NO_VALUE, null);
-			return;
-		} else {
-			parentTask.getParameters().put(name, value);
-		}
-		
-	}
-
-	private AbstractTask parseAbstractTask(Node taskNode, CompositeCheatSheetModel model) {
-		AbstractTask task;
-		NamedNodeMap attributes = taskNode.getAttributes();
-		String kind = null;
-		String name = null;
-		String id = null;
-		boolean skippable = false;
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-				if (attributeName.equals(ICompositeCheatsheetTags.KIND)) {
-					kind = attribute.getNodeValue();
-				}
-				if (attributeName.equals(ICompositeCheatsheetTags.NAME)) {
-					name= attribute.getNodeValue();
-				}
-				if (attributeName.equals(IParserTags.ID)) {
-					id = attribute.getNodeValue();
-				}			
-				if (attributeName.equals(IParserTags.SKIP)) {
-					skippable = "true".equalsIgnoreCase(attribute.getNodeValue()); //$NON-NLS-1$
-				}				
-			}
-		}
-
-		String nodeName = taskNode.getNodeName();
-		if (id == null) {
-			id = autoGenerateId();
-		}
-		if (name == null) {
-			String message = NLS.bind(Messages.ERROR_PARSING_TASK_NO_NAME, (new Object[] {nodeName}));
-			addStatus(IStatus.ERROR, message, null);
-		}
-		task = createTask(nodeName, model, kind, id, name);
-		task.setSkippable(skippable);
-
-		if (model.getDependencies().getTask(id) != null) {
-			String message = NLS.bind(Messages.ERROR_PARSING_DUPLICATE_TASK_ID, (new Object[] {id, }));
-			addStatus(IStatus.ERROR, message, null);
-		} else {
-		    model.getDependencies().saveId(task);
-		}
-
-		return task;
-	}
-
-	private AbstractTask createTask(String nodeKind, CompositeCheatSheetModel model, String kind, String id, String name) {
-		AbstractTask task;
-		if (ICompositeCheatsheetTags.TASK_GROUP.equals(nodeKind)) {
-			task = new TaskGroup(model, id, name, kind);
-		} else {
-			task = new EditableTask(model, id, name, kind);
-		}
-		task.setCompletionMessage(Messages.COMPLETED_TASK);
-		return task;
-	}
-	
-	private String autoGenerateId() {
-		return "TaskId_" + nextTaskId++; //$NON-NLS-1$
-	}
-
-}
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
deleted file mode 100644
index 3d357ad..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/EditableTaskParseStrategy.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.parser;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.w3c.dom.Node;
-
-public class EditableTaskParseStrategy implements ITaskParseStrategy {
-	
-	private boolean editableChildErrorReported;
-	
-	public void init() {
-		editableChildErrorReported = false;
-	}
-
-	public boolean parseElementNode(Node childNode, Node parentNode,
-			AbstractTask parentTask, IStatusContainer status) {	
-		boolean isElementHandled = true;
-		String nodeName = childNode.getNodeName();
-		if (CompositeCheatSheetParser.isAbstractTask(nodeName)) {
-			if (!editableChildErrorReported  ){
-				 editableChildErrorReported = true;
-				 String message = NLS.bind(
-							Messages.ERROR_EDITABLE_TASK_WITH_CHILDREN,
-							(new Object[] { parentTask.getName()}));
-				status.addStatus(IStatus.ERROR, message, null);
-			}
-		} else {
-			isElementHandled = false;
-		}
-		return isElementHandled;
-	}
-
-	public void parsingComplete(AbstractTask parentTask, IStatusContainer status) {
-		if (parentTask.getKind() == null) {
-			String message = NLS.bind(
-					Messages.ERROR_PARSING_TASK_NO_KIND,
-					(new Object[] { parentTask.getName()}));
-		    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);
-		}
-	}
-
-}
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
deleted file mode 100644
index 9163d83..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.composite.parser;
-
-/**
- * Interface containing the constants used by the cheatsheet parser
- * to identify the tags used in a composite cheatsheet file.
- */
-
-public interface ICompositeCheatsheetTags {
-
-	// Elements and attributes
-	public static final String COMPOSITE_CHEATSHEET= "compositeCheatsheet"; //$NON-NLS-1$
-	public static final String COMPOSITE_CHEATSHEET_STATE= "compositeCheatSheetState"; //$NON-NLS-1$
-	public static final String TASK = "task"; //$NON-NLS-1$
-	public static final String TASK_GROUP = "taskGroup"; //$NON-NLS-1$
-	public static final String EXPLORER = "explorer"; //$NON-NLS-1$
-	public static final String NAME = "name"; //$NON-NLS-1$
-	public static final String VALUE = "value"; //$NON-NLS-1$
-	public static final String KIND = "kind"; //$NON-NLS-1$
-	public static final String ON_COMPLETION = "onCompletion"; //$NON-NLS-1$
-	public static final String DEPENDS_ON = "dependsOn"; //$NON-NLS-1$
-	public static final String STATE = "state"; //$NON-NLS-1$
-	
-	// Attribute values
-	public static final String TREE = "tree"; //$NON-NLS-1$
-	
-    // 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
-	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$
-	public static final String TASK_ID = "id"; //$NON-NLS-1$
-	public static final String SELECTED_TASK = "selectedTask"; //$NON-NLS-1$
-	public static final String LAYOUT_DATA = "layout"; //$NON-NLS-1$
-	
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/IStatusContainer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/IStatusContainer.java
deleted file mode 100644
index 2a32de1..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/IStatusContainer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.parser;
-
-public interface IStatusContainer {
-
-	public void addStatus(int severity, String message, Throwable exception);
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ITaskParseStrategy.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ITaskParseStrategy.java
deleted file mode 100644
index 3ca4b3e..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ITaskParseStrategy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.parser;
-
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.w3c.dom.Node;
-
-/**
- * Interface which encapsulates the parsing logic specific to different
- * task kinds.
- */
-
-public interface ITaskParseStrategy {
-
-	/**
-	 * Called before parsing a new set of children
-	 */
-	public void init();
-	
-	/**
-	 * Parse a child node of this task
-	 * @param childNode The child node
-	 * @param parentNode The task node
-	 * @param parentTask The task object
-	 * @param status Used to add error messages.
-	 * @return True if this element is a valid child
-	 */
-	public boolean parseElementNode(Node childNode, Node parentNode, AbstractTask parentTask, IStatusContainer status);
-	
-	/**
-	 * Called afer all the children have been parsed to check for missing children
-	 */
-	public void parsingComplete(AbstractTask parentTask, IStatusContainer status);
-
-
-}
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
deleted file mode 100644
index 6d08e89..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/MarkupParser.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.parser;
-
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class MarkupParser {
-
-	public static String parseAndTrimTextMarkup(Node parentNode) {
-		return parseMarkup(parentNode).trim();
-	}
-	
-	private static String parseMarkup(Node parentNode) {
-	    NodeList children = parentNode.getChildNodes();
-		StringBuffer text = new StringBuffer();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node childNode = children.item(i);
-			if (childNode.getNodeType() == Node.TEXT_NODE) {
-				text.append(escapeText(childNode.getNodeValue()));
-			} else if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				text.append('<');
-				text.append(childNode.getNodeName());
-				text.append('>');
-				text.append(parseMarkup(childNode));
-				text.append("</"); //$NON-NLS-1$
-				text.append(childNode.getNodeName());
-				text.append('>');
-			}
-		}
-		return text.toString();
-	}
-
-	private static String escapeText(String nodeValue) {
-		String temp = nodeValue.replaceAll(">", "&gt;");  //$NON-NLS-1$//$NON-NLS-2$
-		return temp.replaceAll("<", "&lt;"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
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
deleted file mode 100644
index 8235133..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/TaskGroupParseStrategy.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.parser;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-import org.w3c.dom.Node;
-
-public class TaskGroupParseStrategy implements ITaskParseStrategy {
-
-
-	public TaskGroupParseStrategy() {
-	}
-	
-	public void init() {	
-	}
-	
-	public boolean parseElementNode(Node childNode, Node parentNode,
-			AbstractTask parentTask, IStatusContainer status) 
-    {
-		// Task children are handled by CompositeCheatSheetParser
-		return false;
-	}
-
-	public void parsingComplete(AbstractTask parentTask, IStatusContainer status) {
-		String kind = parentTask.getKind();
-		if (ITaskGroup.SEQUENCE.equals(kind)) {
-			// Create dependencies between the children
-			ICompositeCheatSheetTask[] children  = parentTask.getSubtasks();
-			AbstractTask previous = null;
-			AbstractTask next = null;
-			for (int i = 0; i < children.length; i++) {
-				previous = next;
-				next = (AbstractTask)children[i];
-				if (previous != null) {
-					next.addRequiredTask(previous);
-				}
-			}
-			checkForChildren(parentTask, status);
-		} else if (ITaskGroup.SET.equals(kind)) {
-			checkForChildren(parentTask, status);
-		} else if (ITaskGroup.CHOICE.equals(kind)) {
-			if (parentTask.getSubtasks().length < 2) {
-				String message = NLS.bind(
-						Messages.ERROR_PARSING_NO_CHOICE,
-						(new Object[] { parentTask.getName()}));
-			    status.addStatus(IStatus.ERROR, message, null);
-			}
-		} else {
-			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);
-		}
-	}
-
-	private void checkForChildren(AbstractTask parentTask, IStatusContainer status) {
-		if (parentTask.getSubtasks().length < 1) {
-			String message = NLS.bind(
-					Messages.ERROR_PARSING_CHILDLESS_TASK_GROUP,
-					(new Object[] { parentTask.getName()}));
-		    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
deleted file mode 100644
index f917c54..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CheatsheetTaskEditor.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.views;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Dictionary;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.cheatsheets.CheatSheetListener;
-import org.eclipse.ui.cheatsheets.CheatSheetViewerFactory;
-import org.eclipse.ui.cheatsheets.ICheatSheetEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.cheatsheets.state.MementoStateManager;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetViewer;
-import org.eclipse.ui.internal.provisional.cheatsheets.IEditableTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskEditor;
-
-public class CheatsheetTaskEditor extends TaskEditor {
-	private CheatSheetViewer viewer;
-	private IEditableTask task;
-
-	public void createControl(Composite parent, FormToolkit toolkit) {
-		viewer = (CheatSheetViewer)CheatSheetViewerFactory.createCheatSheetView();
-		viewer.createPartControl(parent);
-	}
-	
-	public Control getControl() {
-		return viewer.getControl();
-	}
-
-
-	public void setInput(IEditableTask task, IMemento memento) {
-		this.task = task;	
-		Dictionary params = task.getParameters();
-		String id = (String)params.get(ICompositeCheatsheetTags.CHEATSHEET_TASK_ID);
-		String path = (String)params.get(ICompositeCheatsheetTags.CHEATSHEET_TASK_PATH);
-		boolean showIntro = true;
-		String showIntroParam = (String)params.get(ICompositeCheatsheetTags.CHEATSHEET_TASK_SHOW_INTRO);
-		if (showIntroParam != null) {
-			showIntro = showIntroParam.equalsIgnoreCase("true"); //$NON-NLS-1$
-		}
-		
-		MementoStateManager stateManager = new MementoStateManager(memento, task.getCompositeCheatSheet().getCheatSheetManager());
-		if (path != null) {
-			URL url;
-			try {
-				url = task.getInputUrl(path);
-				if (id == null) { 
-					id = task.getId();
-				}
-				viewer.setInput(id, task.getName(), url, stateManager);				
-			} catch (MalformedURLException e) {
-				e.printStackTrace();
-				return;
-			}
-		} else {
-		    viewer.setInput(id, stateManager);
-		}
-		if (!showIntro) {
-			viewer.advanceIntroItem();
-		}
-		viewer.addListener(new TaskListener());
-	}
-	
-	/*
-	 * Listener for the cheatsheet used by this class
-	 */
-	private class TaskListener extends CheatSheetListener {
-
-		public void cheatSheetEvent(ICheatSheetEvent event) {
-			if (event.getEventType() == ICheatSheetEvent.CHEATSHEET_COMPLETED) {
-				task.complete();
-			}	
-		}	
-	}
-
-	public void saveState(IMemento memento) {
-		viewer.saveState(memento);
-	}
-}
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
deleted file mode 100644
index 045ba99..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
+++ /dev/null
@@ -1,547 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.views;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Observable;
-import java.util.Observer;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.ManagedForm;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.actions.IMenuContributor;
-import org.eclipse.ui.internal.cheatsheets.composite.explorer.RestartAllAction;
-import org.eclipse.ui.internal.cheatsheets.composite.explorer.TreeExplorerMenu;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.cheatsheets.composite.model.CompositeCheatSheetModel;
-import org.eclipse.ui.internal.cheatsheets.composite.model.CompositeCheatSheetSaveHelper;
-import org.eclipse.ui.internal.cheatsheets.composite.model.EditableTask;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader.TaskExplorerNode;
-import org.eclipse.ui.internal.cheatsheets.views.Page;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskEditor;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskExplorer;
-import org.eclipse.ui.part.PageBook;
-
-/**
- * A page which represents a composite cheat sheet
- */
-
-public class CompositeCheatSheetPage extends Page implements ISelectionChangedListener, IMenuContributor {
-
-	public static final String REVIEW_TAG = "__review__"; //$NON-NLS-1$
-	public static final String END_REVIEW_TAG = "__endReview__"; //$NON-NLS-1$
-	public static final String GOTO_TASK_TAG = "__goto__"; //$NON-NLS-1$
-	public static final String START_HREF = "__start__"; //$NON-NLS-1$
-	public static final String SKIP_HREF = "__skip__"; //$NON-NLS-1$
-	
-	private ManagedForm mform;
-	private PageBook explorerContainer;
-	private PageBook taskEditorContainer;
-	private CompositeCheatSheetModel model;
-	private TaskExplorer currentExplorer;
-	private DescriptionPanel descriptionPanel;
-	
-	private CompositeCheatSheetSaveHelper saveHelper;
-	
-	private ICompositeCheatSheetTask selectedTask;
-	private boolean initialized = false;;
-	
-	public CompositeCheatSheetPage(CompositeCheatSheetModel model) {
-		this.model = model;
-		saveHelper = new CompositeCheatSheetSaveHelper();
-	}
-
-	public void createPart(Composite parent) {
-		init(parent.getDisplay());
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER);
-		form = toolkit.createScrolledForm(parent);		
-		form.setLayoutData(new GridData(GridData.FILL_BOTH));
-		FormColors colors = toolkit.getColors();
-		colors.initializeSectionToolBarColors();
-		Color gbg = colors.getColor(FormColors.TB_GBG);
-		Color bg = colors.getBackground();
-		form.getForm().setTextBackground(new Color[]{bg, gbg}, new int [] {100}, true);
-		form.getForm().setSeparatorColor(colors.getColor(FormColors.TB_BORDER));
-		form.getForm().setSeparatorVisible(true);
-		mform = new ManagedForm(toolkit, form);
-		GridLayout glayout = new GridLayout();
-		glayout.marginHeight = 0;
-		glayout.marginWidth = 0;
-		form.getBody().setLayout(glayout);
-		final SashForm sash = new SashForm(form.getBody(), SWT.NULL);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 10;
-		gd.heightHint = 10;
-		sash.setLayoutData(gd);
-		sash.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent e) {
-				Point size = sash.getSize();
-				if (size.x>size.y)
-					sash.setOrientation(SWT.HORIZONTAL);
-				else
-					sash.setOrientation(SWT.VERTICAL);
-				updateSashPanelMargins(sash);
-			}
-		});
-		sash.setBackground(colors.getColor(FormColors.TB_GBG));
-		
-		Composite explorerPanel = new Composite(sash, SWT.NULL);
-		explorerPanel.setBackground(colors.getColor(FormColors.TB_BORDER));
-		GridLayout playout = new GridLayout();
-		playout.marginWidth = 0;
-		playout.marginHeight = 0;
-		explorerPanel.setLayout(playout);
-		explorerContainer = new PageBook(explorerPanel, SWT.NULL);
-		explorerContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-		Composite editorPanel = new Composite(sash, SWT.NULL);
-		playout = new GridLayout();
-		playout.marginWidth = 0;
-		playout.marginHeight = 0;
-		editorPanel.setLayout(playout);
-		editorPanel.setBackground(colors.getColor(FormColors.TB_BORDER));		
-		taskEditorContainer = new PageBook(editorPanel, SWT.NULL);
-		toolkit.adapt(taskEditorContainer);
-		taskEditorContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-	
-	private void updateSashPanelMargins(SashForm sash) {
-		Control [] children = sash.getChildren();
-		int orientation = sash.getOrientation();
-		// update task explorer panel
-		GridLayout layout = (GridLayout)((Composite)children[0]).getLayout();
-		if (orientation==SWT.HORIZONTAL) {
-			layout.marginBottom = 0;
-			layout.marginRight = 1;
-		}
-		else {
-			layout.marginBottom = 1;
-			layout.marginRight = 0;
-		}
-		// update task editor panel
-		layout = (GridLayout)((Composite)children[1]).getLayout();
-		if (orientation==SWT.HORIZONTAL) {
-			layout.marginTop = 0;
-			layout.marginLeft = 1;
-		}
-		else {
-			layout.marginTop = 1;
-			layout.marginLeft = 0;
-		}
-		((Composite)children[0]).layout();
-		((Composite)children[1]).layout();
-	}
-
-	public void dispose() {
-		mform.dispose();
-		super.dispose();
-	}
-
-	private void setInputModel(CompositeCheatSheetModel model, Map layout) {
-		this.model = model;
-		mform.getForm().setText(model.getName());
-		String explorerId = model.getTaskExplorerId();
-		setCurrentExplorerFromId(explorerId);
-		String selectedTaskId = (String) layout.get(ICompositeCheatsheetTags.SELECTED_TASK);
-		ICompositeCheatSheetTask selectedTask= null; 
-		if (selectedTaskId != null) {
-			selectedTask = model.getDependencies().getTask(selectedTaskId);
-			if (selectedTask != null)  {
-				currentExplorer.setSelection(new StructuredSelection(selectedTask), true);
-			}
-		}
-		if (selectedTask != null) {
-			updateSelectedTask(selectedTask); 
-		} else {
-			updateSelectedTask(model.getRootTask());
-		}
-		model.addObserver(new Observer() {
-			public void update(Observable o, Object arg) {
-				ICompositeCheatSheetTask task = (ICompositeCheatSheetTask)arg;
-				if (currentExplorer!=null)
-					currentExplorer.taskUpdated(task);
-				updateTask(task);
-			}
-		});
-	}
-
-	private void setCurrentExplorerFromId(String explorerId) {
-		TaskExplorer explorer = getTaskExplorer(explorerId);
-		if (explorer!=null) {
-			explorer.setCompositeCheatSheet(this.model);
-			explorer.setFocus();
-			setExplorerVisible(explorerId);
-		}
-	}
-
-	private void setExplorerVisible(String id) {
-		Control [] excontrols = explorerContainer.getChildren();
-		TaskExplorer explorer=null;
-		for (int i=0; i<excontrols.length; i++) {
-			Control excontrol = excontrols[i];
-			explorer = (TaskExplorer)excontrol.getData(ICompositeCheatsheetTags.EXPLORER);
-			if (explorer.getId().equals(id)) {
-				explorerContainer.showPage(excontrol);
-				setCurrentExplorer(explorer);
-				return;
-			}
-		}
-	}
-	
-	private void setCurrentExplorer(TaskExplorer explorer) {
-		if (currentExplorer!=null) {
-			currentExplorer.getSelectionProvider().removeSelectionChangedListener(this);
-		}
-		currentExplorer = explorer;
-		currentExplorer.getSelectionProvider().addSelectionChangedListener(this);
-		updateForSelection(currentExplorer.getSelectionProvider().getSelection());
-	}
-
-	private TaskExplorer getTaskExplorer(String id) {
-		Control [] excontrols = explorerContainer.getChildren();
-		TaskExplorer explorer=null;
-		for (int i=0; i<excontrols.length; i++) {
-			Control excontrol = excontrols[i];
-			Object data = excontrol.getData(ICompositeCheatsheetTags.EXPLORER);
-			if (data instanceof TaskExplorer) {
-			    explorer = (TaskExplorer)data;
-			    if (explorer.getId().equals(id)) {
-				    return explorer;
-			    }
-			}
-		}
-	
-		// Load the explorer from an extension point
-
-		TaskExplorerManager explorerManager = TaskExplorerManager.getInstance();
-		explorer = explorerManager.getExplorer(id); 
-		if (explorer != null) {
-			explorer.createControl(explorerContainer, mform.getToolkit());
-			explorer.getControl().setData(ICompositeCheatsheetTags.EXPLORER, explorer);
-			new TreeExplorerMenu(explorer);
-		}
-		return explorer;
-	}
-
-	public void selectionChanged(SelectionChangedEvent event) {
-		updateForSelection(event.getSelection());
-	}
-
-	private void updateForSelection(ISelection selection) {
-		Object selectedElement = ((IStructuredSelection)selection).getFirstElement();
-		if (selectedElement instanceof ICompositeCheatSheetTask) {
-			updateSelectedTask((ICompositeCheatSheetTask)selectedElement);
-		}
-	}
-	
-	private void updateSelectedTask(ICompositeCheatSheetTask task) {
-		selectedTask = task;
-		updateTask(selectedTask);
-	}
-
-	/*
-	 * Update can be called as a result of a selection  change or a state change
-	 * If this is not the selected task wait till it is selected to display it
-	 */
-	private void updateTask(ICompositeCheatSheetTask task) {
-		if (task==null || task != selectedTask) return;
-		if ( task instanceof EditableTask) {
-			EditableTask editable = (EditableTask)task;
-			if (editable.getState() == ICompositeCheatSheetTask.IN_PROGRESS ||
-				editable.isUnderReview()) {
-				showEditor(editable);
-				return;
-			}
-		} 
-		showDescription(task);
-	}
-
-	public void saveState() {
-		Map layout = new HashMap();
-		if (selectedTask != null) {
-		    layout.put(ICompositeCheatsheetTags.SELECTED_TASK, selectedTask.getId());
-		}
-		saveHelper.saveCompositeState(model, layout);	
-	}
-
-	private void showDescription(final ICompositeCheatSheetTask task) {
-		if (descriptionPanel==null) {
-			createDescriptionPanel();
-		}
-		descriptionPanel.showDescription(task);
-		setCurrentEditor(descriptionPanel.getControl());
-	}
-
-	private void createDescriptionPanel() {
-		descriptionPanel = new DescriptionPanel(mform, taskEditorContainer);
-		descriptionPanel.addHyperlinkListener(new DescriptionLinkListener());
-	}
-
-	/*
-	 * Ensure that if this task is visible and in a runnable state that it has been started
-	 */
-	private void showEditor(EditableTask task) {
-		if (task == selectedTask) {
-			TaskEditor editor = getTaskEditor(task);
-			if (editor!= null) {
-				if (!task.isEditorInitialized()) {
-					task.setInput(model.getTaskMemento(task.getId()));
-				}
-				setCurrentEditor(editor.getControl().getParent());
-			}
-		}
-	}
-
-	private void addHyperlink(StringBuffer buf, String href, String imageRef, String message) {
-		buf.append("<p><a href=\""); //$NON-NLS-1$
-		buf.append(href);
-		buf.append("\">"); //$NON-NLS-1$
-		buf.append("<img href=\""); //$NON-NLS-1$
-		buf.append(imageRef);
-		buf.append("\"/> "); //$NON-NLS-1$
-		buf.append(message);
-		buf.append("</a></p>"); //$NON-NLS-1$
-	}
-
-	private void reviewTask(EditableTask task) {
-		TaskEditor taskEditor = getTaskEditor(task);
-		Composite container = taskEditor.getControl().getParent();
-		Composite separator = toolkit.createCompositeSeparator(container);
-		GridData data = new GridData();
-		data.heightHint = 1;
-		data.horizontalAlignment = SWT.FILL;
-	    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));
-	    StringBuffer buf = new StringBuffer();
-	    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);
-	}
-	
-	private void endReview(EditableTask task) {
-		TaskEditor taskEditor = getTaskEditor(task);
-		Control editorControl = taskEditor.getControl();
-		Composite container = editorControl.getParent();
-		Control[] children = container.getChildren();
-		for (int i = children.length -2; i < children.length; i++) {
-			children[i].dispose();
-		}
-		task.setUnderReview(false);
-		showDescription(task);
-		container.layout();
-	}
-	
-	private void setCurrentEditor(Control c) {
-		taskEditorContainer.showPage(c);
-	}
-	
-	/**
-	 * Class which responds to hyperlink events originating from the
-	 * description panel.
-	 */
-	private final class DescriptionLinkListener extends HyperlinkAdapter {
-		public void linkActivated(HyperlinkEvent e) {
-			String ref = (String)e.getHref();
-			if (ref.equals(START_HREF)) {
-				Object data = descriptionPanel.getControl().getData(ICompositeCheatsheetTags.TASK);
-				if (data instanceof EditableTask) {
-				    EditableTask task = (EditableTask)data;
-				    task.setStarted();
-				}
-			}     
-            if (ref.equals(SKIP_HREF)) {
-				Object data = descriptionPanel.getControl().getData(ICompositeCheatsheetTags.TASK);
-				if (data instanceof AbstractTask) {
-				    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);
-				}
-			}
-			if (ref.startsWith(GOTO_TASK_TAG)) {
-				String next = ref.substring(GOTO_TASK_TAG.length());
-				AbstractTask nextTask =
-				    model.getDependencies().getTask(next);
-				currentExplorer.setSelection
-				    (new StructuredSelection(nextTask), true);				
-			}
-		}
-	}
-	
-	/**
-	 * Class which responds to hyperlink events originating from the
-	 * end review panel
-	 */
-	private final class EndReviewListener extends HyperlinkAdapter {
-		public void linkActivated(HyperlinkEvent e) {
-			String ref = (String)e.getHref();
-			if (ref.startsWith(END_REVIEW_TAG)) {
-				String next = ref.substring(END_REVIEW_TAG.length());
-				AbstractTask task =
-				    model.getDependencies().getTask(next);
-				endReview((EditableTask)task);			
-			}
-		}
-	}
-	
-	private EndReviewListener endReviewListener;
-	
-	private EndReviewListener getEndReviewListener() {
-		if (endReviewListener == null) {
-			endReviewListener = new EndReviewListener();
-		}
-		return endReviewListener;
-	}
-
-
-	/*
-	 * Get the task editor for this task. If no editor exists create one
-	 */
-	private TaskEditor getTaskEditor(EditableTask editable) {
-		if (editable.getEditor() == null) {
-            // 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);
-				GridLayout layout = new GridLayout();
-				layout.marginWidth = 0;
-				layout.marginHeight = 0;
-				editorPanel.setLayout(layout);
-				mform.getToolkit().adapt(editorPanel);
-				editor.createControl(editorPanel, mform.getToolkit());
-				editable.setEditor(editor);
-				GridData gridData = new GridData(GridData.FILL_BOTH);
-				editor.getControl().setLayoutData(gridData);
-			} 
-		}
-		return editable.getEditor();	
-	}
-
-	public Control getControl() {
-		return form;
-	}
-
-	protected String getTitle() {
-		return model.getName();
-	}
-
-	public void initialized() {
-		// Open the model
-		model.setSaveHelper(saveHelper);
-		Map layout = new HashMap();
-		model.loadState(layout);
-		setInputModel(model, layout);
-		initialized  = true;
-	}
-
-	public int contributeToViewMenu(Menu menu, int index) {	
-		if (!initialized) {
-			return index;
-		}
-		index = contributeExplorerMenuItem(menu, index);
-		return contributeRestartMenuItem(menu, index);
-	}
-
-	private int contributeRestartMenuItem(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.PUSH, index++);
-		item.setText(Messages.RESTART_ALL_MENU);
-		item.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_RESTART_ALL));
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (model != null) {
-					if (RestartAllAction.confirmRestart()) {
-					    restart(null);	
-				    }
-				}
-			}
-		});
-		return index;
-	}
-
-	private int contributeExplorerMenuItem(Menu menu, int index) {
-		String[] explorerIds = CheatSheetRegistryReader.getInstance().getExplorerIds();
-		if (explorerIds.length == 1) {
-			return index;  // no other explorer to chosse from
-		}
-        MenuItem menuItem = new MenuItem(menu, SWT.CASCADE, index++);
-
-        menuItem.setText(Messages.EXPLORER_PULLDOWN_MENU);
-    
-        Menu subMenu = new Menu(menu);
-        menuItem.setMenu(subMenu);
-        
-        for (int i = 0; i < explorerIds.length; i++) {
-        	final String id = explorerIds[i];
-        	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() {
-    			public void widgetSelected(SelectionEvent e) {
-    				setCurrentExplorerFromId(id);
-    			}
-    		});
-        }
-
-		return index;
-	}
-
-	public void restart(Map cheatSheetData) {
-		model.resetAllTasks(cheatSheetData);
-		currentExplorer.setSelection
-		    (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
deleted file mode 100644
index d944eb1..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.views;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.ManagedForm;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.composite.model.AbstractTask;
-import org.eclipse.ui.internal.cheatsheets.composite.model.SuccesorTaskFinder;
-import org.eclipse.ui.internal.cheatsheets.composite.model.TaskStateUtilities;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.IEditableTask;
-import org.eclipse.ui.internal.provisional.cheatsheets.ITaskGroup;
-
-/**
- * The description panel of a composite cheat sheet panel. This panel shows the introduction
- * message and depending upon the type and state of the task a selection of the following:
- * Completion message
- * A message indicating that the task has been skipped.
- * A message indicating that a parent task has been skipped.
- * A message indicating that the task is blocked.
- * A message indicationg that a parent choice is already satisfied.
- * A link to a successor task.
- * All tasks completed message.
- */
-
-public class DescriptionPanel {
-	
-	public static final String REVIEW_IMAGE = "review"; //$NON-NLS-1$
-	private static final String GOTO_IMAGE = "goto"; //$NON-NLS-1$
-	private static final String SKIP_IMAGE = "skip"; //$NON-NLS-1$
-	private static final String START_IMAGE = "start"; //$NON-NLS-1$
-	private static final String WARNING_IMAGE = "warning"; //$NON-NLS-1$
-	private static final String INFORMATION_IMAGE = "info"; //$NON-NLS-1$	
-	private Composite panel;
-	private Composite control;
-	private FormText upperText;
-	private FormText lowerText;
-	protected DescriptionPanel() {}
-	
-	public DescriptionPanel(ManagedForm mform, Composite parent) {
-		
-		FormToolkit toolkit = mform.getToolkit();
-		control = new Composite(parent, SWT.NULL);	
-		final GridLayout controlLayout = new GridLayout();
-		controlLayout.marginHeight = 0;
-		controlLayout.marginWidth = 0;
-		control.setLayout(controlLayout);
-		ScrolledForm form = toolkit.createScrolledForm(control);
-		panel = form.getBody();
-		form.setLayoutData(new GridData(GridData.FILL_BOTH));
-		toolkit.adapt(panel);
-		
-		TableWrapLayout layout = new TableWrapLayout();
-		panel.setLayout(layout);
-
-		upperText = mform.getToolkit().createFormText(panel, false);
-		mform.getToolkit().adapt(upperText, false, false);	
-		
-		Composite separator = toolkit.createCompositeSeparator(panel);
-		
-	    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);	
-
-		upperText.marginWidth = 5;
-		upperText.marginHeight = 5;
-		upperText.setFont("header", JFaceResources.getHeaderFont()); //$NON-NLS-1$
-		upperText.setColor("title", toolkit.getColors().getColor(FormColors.TITLE)); //$NON-NLS-1$
-		lowerText.marginWidth = 5;
-		lowerText.marginHeight = 5;
-		lowerText.setImage(START_IMAGE, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_TASK_START));
-		lowerText.setImage(SKIP_IMAGE, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_TASK_SKIP));
-		lowerText.setImage(GOTO_IMAGE, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_GOTO_TASK)); 
-		lowerText.setImage(REVIEW_IMAGE, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_TASK_REVIEW));
-		lowerText.setImage(WARNING_IMAGE, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.WARNING));
-		lowerText.setImage(INFORMATION_IMAGE, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.INFORMATION));	
-	}
-	
-	public Control getControl() {
-		return control;
-	}
-	
-	public void addHyperlinkListener(IHyperlinkListener listener) {
-		lowerText.addHyperlinkListener(listener);		
-	}
-	
-	public void showDescription(final ICompositeCheatSheetTask task) {
-		StringBuffer upperMessage = new StringBuffer();
-		upperMessage.append("<form>"); //$NON-NLS-1$
-		upperMessage.append("<p><span color=\"title\" font=\"header\">"); //$NON-NLS-1$
-		upperMessage.append(task.getName());
-		upperMessage.append("</span></p>"); //$NON-NLS-1$		
-		upperMessage.append(createParagraph(task.getDescription(), null));
-		upperMessage.append("</form>"); //$NON-NLS-1$
-        upperText.setText(upperMessage.toString(), true, false);
-	
-		StringBuffer buf = new StringBuffer();
-		buf.append("<form>"); //$NON-NLS-1$
-		
-        boolean startable = false;
-        boolean isBlocked = false;
-        boolean isSkippable = ((AbstractTask)task).isSkippable();
-		
-		if (task.getState() == ICompositeCheatSheetTask.COMPLETED) {
-			buf.append(createParagraph(task.getCompletionMessage(), null));
-			isSkippable = false;
-		} else if (task.getState() == ICompositeCheatSheetTask.SKIPPED) {
-			buf.append(createParagraph(Messages.THIS_TASK_SKIPPED, INFORMATION_IMAGE));
-			isSkippable = false;
-		} else if (TaskStateUtilities.findSkippedAncestor(task) != null) {
-			ICompositeCheatSheetTask skipped = TaskStateUtilities.findSkippedAncestor(task);
-			String skipParentMsg = NLS.bind(Messages.PARENT_SKIPPED, (new Object[] {skipped.getName()}));	
-			buf.append(createParagraph(skipParentMsg, WARNING_IMAGE));
-			isSkippable = false;
-		} else if (TaskStateUtilities.findCompletedAncestor(task) != null) {
-			ICompositeCheatSheetTask completed = TaskStateUtilities.findCompletedAncestor(task);
-			String completedParentMsg = NLS.bind(Messages.PARENT_COMPLETED, (new Object[] {completed.getName()}));	
-			buf.append(createParagraph(completedParentMsg, WARNING_IMAGE));
-			isSkippable = false;
-		} else if (!task.requiredTasksCompleted()) {
-			isBlocked = true;
-			showBlockingTasks(Messages.COMPOSITE_PAGE_BLOCKED, task, buf);
-		} else if (TaskStateUtilities.findBlockedAncestor(task) != null) {
-			isBlocked = true;
-			ICompositeCheatSheetTask blockedAncestor = TaskStateUtilities.findBlockedAncestor(task);
-			String blockingAncestorMsg = NLS.bind(Messages.PARENT_BLOCKED, (new Object[] {blockedAncestor.getName()}));	
-			showBlockingTasks(blockingAncestorMsg , blockedAncestor, buf);
-		} else {
-			startable = task instanceof IEditableTask && task.getState() == ICompositeCheatSheetTask.NOT_STARTED;
-		}
-		
-		if (startable) {
-			addHyperlink(buf, CompositeCheatSheetPage.START_HREF, START_IMAGE, Messages.COMPOSITE_PAGE_START_TASK);
-		}
-
-		if (task instanceof IEditableTask && task.getState() == ICompositeCheatSheetTask.COMPLETED ) {
-			addHyperlink(buf, CompositeCheatSheetPage.REVIEW_TAG, REVIEW_IMAGE, Messages.COMPOSITE_PAGE_REVIEW_TASK);
-		}		
-		
-		if (isSkippable) {
-			String skipMessage;
-			if (task instanceof ITaskGroup) {
-				skipMessage = Messages.COMPOSITE_PAGE_SKIP_TASK_GROUP;
-			} else {
-				skipMessage = Messages.COMPOSITE_PAGE_SKIP_TASK;					
-			}
-		    addHyperlink(buf, CompositeCheatSheetPage.SKIP_HREF, SKIP_IMAGE, skipMessage);
-		}
-
-		if (!startable && !isBlocked) {
-			showSuccesorTaskLinks(task, buf);
-		}
-	
-		buf.append("</form>"); //$NON-NLS-1$
-
-		lowerText.setText(buf.toString(), true, false);
-		getControl().setData(ICompositeCheatsheetTags.TASK, task);
-		panel.layout();
-	}
-
-	/*
-	 * Add paragraph tags if not already present
-	 */
-	private String createParagraph(String text, String imageTag) {
-		String result = ""; //$NON-NLS-1$
-		String trimmed = text.trim();
-		boolean addParagraphTags = trimmed.length() == 0 || trimmed.charAt(0)!='<';
-		if (addParagraphTags) {
-			result +=  "<p>"; //$NON-NLS-1$
-		} 
-
-		if (imageTag != null) {
-			result += "<img href=\""; //$NON-NLS-1$
-			result += imageTag;
-			result += "\"/> "; //$NON-NLS-1$
-		}
-
-		result += trimmed;
-
-		if (addParagraphTags) {
-			result += "</p>"; //$NON-NLS-1$ 
-		}
-		return result;
-	}
-
-	private void showBlockingTasks(String message, final ICompositeCheatSheetTask task, StringBuffer buf) {
-		buf.append("<p/>"); //$NON-NLS-1$
-		buf.append("<p>"); //$NON-NLS-1$
-		buf.append("<img href=\""); //$NON-NLS-1$
-		buf.append(WARNING_IMAGE);
-		buf.append("\"/> "); //$NON-NLS-1$
-		buf.append(message);
-		buf.append("</p>");	 //$NON-NLS-1$// Add the list of blocking tasks
-		
-		ICompositeCheatSheetTask[] requiredTasks = task.getRequiredTasks();
-		for (int i = 0; i < requiredTasks.length; i++) {
-			warnOfIncompleteTask(buf, requiredTasks[i]);
-		}
-		buf.append("<p>"); //$NON-NLS-1$
-		buf.append("</p>");	 //$NON-NLS-1$
-	}
-	
-	private void addHyperlink(StringBuffer buf, String href, String imageRef, String message) {
-		buf.append("<p><a href=\""); //$NON-NLS-1$
-		buf.append(href);
-		buf.append("\">"); //$NON-NLS-1$
-		buf.append("<img href=\""); //$NON-NLS-1$
-		buf.append(imageRef);
-		buf.append("\"/> "); //$NON-NLS-1$
-		buf.append(message);
-		buf.append("</a></p>"); //$NON-NLS-1$
-	}
-	
-	/*
-	 * If this task is incomplete create a message to that effect
-	 */
-	private void warnOfIncompleteTask(StringBuffer buf, ICompositeCheatSheetTask task) {
-		if (task.getState() != ICompositeCheatSheetTask.COMPLETED &&
-			task.getState() != ICompositeCheatSheetTask.SKIPPED	) {
-			buf.append("<li>"); //$NON-NLS-1$
-			buf.append("<a href=\""); //$NON-NLS-1$
-			buf.append(CompositeCheatSheetPage.GOTO_TASK_TAG);
-			buf.append(task.getId());
-			buf.append("\">"); //$NON-NLS-1$	
-			buf.append(NLS.bind(Messages.COMPOSITE_PAGE_TASK_NOT_COMPLETE, (new Object[] {task.getName()})));	
-			buf.append("</a>"); //$NON-NLS-1$	
-			buf.append("</li>"); //$NON-NLS-1$
-	    }
-	}
-	
-	private void showSuccesorTaskLinks(ICompositeCheatSheetTask task, StringBuffer buf) {
-		// Add the links to the next tasks
-		ICompositeCheatSheetTask[] successorTasks = new SuccesorTaskFinder(task).getRecommendedSuccessors();
-		for (int i = 0; i < successorTasks.length; i++) {
-			ICompositeCheatSheetTask successor = successorTasks[i];
-			String message = NLS.bind(Messages.COMPOSITE_PAGE_GOTO_TASK, (new Object[] {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/TaskEditorManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskEditorManager.java
deleted file mode 100644
index bd33b52..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskEditorManager.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.views;
-
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskEditor;
-import org.osgi.framework.Bundle;
-
-public class TaskEditorManager {
-	
-	private static TaskEditorManager instance;
-	
-	private TaskEditorManager() {
-	}
-	
-	public static TaskEditorManager getInstance() {
-		if (instance == null) {
-			instance = new TaskEditorManager();
-		}
-		return instance;
-	}
-
-	public TaskEditor getEditor(String editorKind) {
-		CheatSheetRegistryReader.TaskEditorNode editorInfo =
-			CheatSheetRegistryReader.getInstance().findTaskEditor(editorKind);
-		if (editorInfo != null) {
-			TaskEditor editorInstance = null;
-			Class extClass = null;
-			String className = editorInfo.getClassName();
-			try {
-				Bundle bundle = Platform.getBundle(editorInfo.getPluginId());
-				extClass = bundle.loadClass(className);
-			} catch (Exception e) {
-				String message = NLS.bind(Messages.ERROR_LOADING_CLASS, (new Object[] {className}));
-				Status status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-			try {
-				if (extClass != null) {
-					Constructor c = extClass.getConstructor(new Class[0]);
-					Object[] parameters = new Object[0];
-					editorInstance = (TaskEditor) c.newInstance(parameters);
-				}
-			} catch (Exception e) {
-				String message = NLS.bind(Messages.ERROR_CREATING_CLASS, (new Object[] {className}));
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-			
-			return editorInstance;
-		}
-
-		return null;
-	}
-
-	public ImageDescriptor getImageDescriptor(String editorKind) {
-		CheatSheetRegistryReader.TaskEditorNode editorInfo =
-			CheatSheetRegistryReader.getInstance().findTaskEditor(editorKind);
-		if (editorInfo != null) {
-			Bundle bundle = Platform.getBundle(editorInfo.getPluginId());
-			URL url = FileLocator.find(bundle, new Path(editorInfo.getIconPath()), null);
-			if (url != null) {
-				try {
-					url = FileLocator.resolve(url);
-					return ImageDescriptor.createFromURL(url);
-				} catch (IOException e) {
-					return null;
-				}
-			}
-		}
-		return null;
-	}
-
-}
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
deleted file mode 100644
index 14fb612..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.composite.views;
-
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.eclipse.ui.internal.provisional.cheatsheets.TaskExplorer;
-import org.osgi.framework.Bundle;
-
-public class TaskExplorerManager {
-private static TaskExplorerManager instance;
-
-    private Map images;
-	
-	private TaskExplorerManager() {
-	
-	}
-	
-	public static TaskExplorerManager getInstance() {
-		if (instance == null) {
-			instance = new TaskExplorerManager();
-		}
-		return instance;
-	}
-	
-	public TaskExplorer getExplorer(String explorerKind) {
-		CheatSheetRegistryReader.TaskExplorerNode explorerInfo =
-			CheatSheetRegistryReader.getInstance().findTaskExplorer(explorerKind);
-		if (explorerInfo != null) {
-			TaskExplorer explorerInstance = null;
-			Class extClass = null;
-			String className = explorerInfo.getClassName();
-			try {
-				Bundle bundle = Platform.getBundle(explorerInfo.getPluginId());
-				extClass = bundle.loadClass(className);
-			} catch (Exception e) {
-				String message = NLS.bind(Messages.ERROR_LOADING_CLASS, (new Object[] {className}));
-				Status status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-			try {
-				if (extClass != null) {
-					Constructor c = extClass.getConstructor(new Class[0]);
-					Object[] parameters = new Object[0];
-					explorerInstance = (TaskExplorer) c.newInstance(parameters);
-				}
-			} catch (Exception e) {
-				String message = NLS.bind(Messages.ERROR_CREATING_CLASS, (new Object[] {className}));
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			}
-			
-			return explorerInstance;
-		}
-
-		return null;
-	}
-
-	private ImageDescriptor getImageDescriptor(String explorerKind) {
-		CheatSheetRegistryReader.TaskExplorerNode explorerInfo =
-			CheatSheetRegistryReader.getInstance().findTaskExplorer(explorerKind);
-		if (explorerInfo == null) {
-			return null;
-		}
-	    String iconPath = explorerInfo.getIconPath();
-		if (iconPath == null) {
-			return null;
-		}
-		Bundle bundle = Platform.getBundle(explorerInfo.getPluginId());
-		URL url = FileLocator.find(bundle, new Path(iconPath), null);
-		try {
-			url = FileLocator.resolve(url);
-			return ImageDescriptor.createFromURL(url);
-		} catch (IOException e) {
-			return null;
-		}		
-	}
-	
-	private Map getImages() {
-		if (images == null) {
-			initImages();
-		}
-		return images;
-	}
-	
-	
-	private void initImages() {
-		if (images == null) {
-			images = new HashMap();
-			String[] ids = CheatSheetRegistryReader.getInstance().getExplorerIds();
-			for (int i = 0; i < ids.length; i++) {
-				ImageDescriptor descriptor = getImageDescriptor(ids[i]);
-				if (descriptor != null) {
-					images.put(ids[i], descriptor.createImage());
-				}
-			}
-		}	
-	}
-
-	public String getName(String explorerKind) {
-		CheatSheetRegistryReader.TaskExplorerNode explorerInfo =
-			CheatSheetRegistryReader.getInstance().findTaskExplorer(explorerKind);
-		if (explorerInfo != null) {
-			return explorerInfo.getName();
-		}
-		return null;
-	}
-
-	public Image getImage(String id) {
-		return (Image)getImages().get(id);
-	}
-
-}
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
deleted file mode 100644
index 96a94a0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractExecutable.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-import org.w3c.dom.Node;
-
-/**
- * The common base class for all of the cheatsheet elements which have
- * executable behavior, i.e. Action, Command and Linkable
- */
-
-public abstract class AbstractExecutable {
-	
-	private String[] params;
-	private boolean confirm;
-	private String when;
-	
-	/**
-	 * This method returns an array of parameters specified to be passed to the action class
-	 * when it is run in the cheat sheet.
-	 * @return an array of string parameters that are passed to the action class when it is run	 
-	 */
-	public String[] getParams() {
-		return params;
-	}
-
-	/**
-	 * This method returns the expression to be used when determining if this action should used. 
-	 * @return the when expression to be used for this action
-	 */
-	public String getWhen() {
-		return when;
-	}
-
-	/**
-	 * Returns whether this action needs to be manually confirmed by the user.
-	 * @return <code>true</code> when the action needs to be confirmed and <code>false</code> otherwise.
-	 */
-	public boolean isConfirm() {
-		return confirm;
-	}
-
-	/**
-	 * This method allows you to set the string parameters to be passed to the action class on running it 
-	 * in the cheat sheet.
-	 * @param params an array of strings that is passed to the action class on running the action
-	 */
-	public void setParams(String[] params) {
-		this.params = params;
-	}
-
-	/**
-	 * Set whether this action needs to be manually confirmed by the user.
-	 * @param value The new value of the confirm state.
-	 */
-	public void setConfirm(boolean value) {
-		this.confirm = value;
-	}
-
-	/**
-	 * Indicates this action is to be used if and only if the value of the condition attribute
-	 * of the containing <perform-when> element matches this string value. This attribute is
-	 * ignored if the <action> element is not a child of  a <perform-when> element.
-	 * @param when The expression to use when determine if this action should be used.
-	 */
-	public void setWhen(String when) {
-		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
-     */
-	public abstract boolean handleAttribute(Node attribute);
-
-	/**
-	 * Check to see if all required attributes are present and are valid.
-	 * This method is called after any calls to handleAttributes have been made
-	 * @param node the node for this executable.
-	 * @return null if the parameters are valid or an error message if the 
-	 * parameters are invalid or incomplete. 
-	 */
-	public abstract String checkAttributes(Node node);
-	
-	/**
-	 * @return true if calls to execute require a non-null CheatsheetManager
-	 */
-	public abstract boolean isCheatSheetManagerUsed();
-	
-	/**
-	 * Execute and return a status
-	 * @param csm A cheatsheet manager if this object uses a cheatsheet manager,
-	 * otherwise null.
-	 * @return OK status if the operation succeeds, warning status if an action
-	 * completes with a failure result, error status if an exception was thrown
-	 * or the executable could not be initiated.
-	 */
-	public abstract IStatus execute(CheatSheetManager csm);	
-
-	/**
-	 * @return true if this executable can have parameters
-	 */
-	public abstract boolean hasParams();
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractSubItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractSubItem.java
deleted file mode 100644
index fc1f394..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/AbstractSubItem.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-public abstract class AbstractSubItem {
-	
-	public AbstractSubItem() {
-		super();
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Action.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Action.java
deleted file mode 100644
index 1e5bdcf..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Action.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.cheatsheets.ActionRunner;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-import org.w3c.dom.Node;
-
-/**
- * Class that represents an <ACTION> element in a cheatsheet. This class stores all
- * of the attributes associated with an Action and is capable of executing that Action.
- */
-public class Action extends AbstractExecutable {
-	private String actionClass;
-	private String pluginID;
-	private boolean hasClassAttr = false;
-	private boolean hasPluginId = false;
-
-	public Action() {
-		super();
-	}
-	
- 	
-	/**
-	 * This method returns the class specified to be run when the "click to perform" button is pressed for this item.
-	 * @return the class name to be run for the item
-	 */
-	public String getActionClass() {
-		return actionClass;
-	}
-
-	/**
-	 * This method returns the string id of the plugin that contains the action class to be run.
-	 * @return the id of the plugin that has the action class
-	 */
-	public String getPluginID() {
-		return pluginID;
-	}
-
-	/**
-	 *  This method allows you to specify the class to be run when the perform button is pressed for this 
-	 * item in the cheat sheet. 
-	 * @param classname the class to be run by the item in the cheat sheet
-	 */
-	public void setClass(String aclass) {
-		this.actionClass = aclass;
-	}
-
-	/**
-	 * This method allows to set the plugin id of the action to be run by this item in the cheat sheet.
-	 * @param pluginId the id of the plugin containing the action class specified for this item
-	 */
-	public void setPluginID(String pluginId) {
-		this.pluginID = pluginId;
-	}
-
-	public boolean handleAttribute(Node attribute) {
-		if (attribute.getNodeName().equals(IParserTags.PLUGINID)) {
-			hasPluginId = true;
-			setPluginID(attribute.getNodeValue());
-			return true;
-		} else if (attribute.getNodeName().equals(IParserTags.CLASS)) {
-			hasClassAttr = true;
-			setClass(attribute.getNodeValue());
-			return true;
-		}
-		return false;
-	}
-
-	public String checkAttributes(Node node) {
-		if(!hasClassAttr) {
-			return NLS.bind(Messages.ERROR_PARSING_NO_CLASS, (new Object[] {node.getNodeName()}));
-		}
-		if(!hasPluginId) {
-			return NLS.bind(Messages.ERROR_PARSING_NO_PLUGINID, (new Object[] {node.getNodeName()}));
-		}
-		return null;
-	}
-
-	public boolean isCheatSheetManagerUsed() {
-		return true;
-	}
-
-
-	public IStatus execute(CheatSheetManager csm) {
-		return new ActionRunner().runAction(this, csm);
-	}
-
-	public boolean hasParams() {
-		return true;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java
deleted file mode 100644
index 1235d3d..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-/**
- * 
- */
-public class CheatSheet implements ICheatSheet {
-	
-	protected String title;
-	private Item introItem;
-	private ArrayList items;
-
-	/**
-	 * Creates a new cheat sheet.
-	 * 
-	 */
-	public CheatSheet() {
-	}
-
-	/**
-	 * This method sets the title of cheat sheet.
-	 * 
-	 * @param title the title of cheat sheet
-	 */
-	public void setTitle(String title) {
-		this.title = title;
-	}
-
-	/**
-	 * This method returns the title of the cheat sheet.
-	 * @return the title of the cheat sheet
-	 */
-	public String getTitle(){
-		return title;	
-	}
-
-	/**
-	 * Returns the intro item.
-	 */
-	public Item getIntroItem() {
-		return introItem;
-	}
-
-	/**
-	 * Returns the items.
-	 */
-	public ArrayList getItems() {
-		return items;
-	}
-
-	/**
-	 * Returns the intro item.
-	 */
-	public void setIntroItem(Item intro) {
-		introItem = intro;
-	}
-
-	/**
-	 * Adds an item to the cheat sheet.
-	 * 
-	 * @param item the item to add
-	 */
-	public void addItem(Item item) {
-		if(items == null) {
-			items = new ArrayList();
-		}
-		items.add(item);
-	}
-
-	/**
-	 * Adds all the items from the collection to the cheat sheet.
-	 * 
-	 * @param c the collection of items to add
-	 */
-	public void addItems(Collection c) {
-		if(items == null) {
-			items = new ArrayList();
-		}
-		items.addAll(c);
-	}
-}
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
deleted file mode 100644
index 56ad9cd..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetCommand.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.internal.cheatsheets.CommandRunner;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-import org.w3c.dom.Node;
-
-/**
- * A command which can be executed from the cheatsheet
- */
-
-public class CheatSheetCommand extends AbstractExecutable {
-
-	private String serialization;
-	private String returns;
-	private boolean serializationFound;
-	
-	public void setSerialization(String serialization) {
-		this.serialization = serialization;	
-	}
-	
-	public String getSerialization() {
-		return serialization;
-	}
-
-	public boolean isCheatSheetManagerUsed() {
-		return true;
-	}
-
-	public IStatus execute(CheatSheetManager csm) {
-		return new CommandRunner().executeCommand(this, csm);
-	}
-
-	public boolean hasParams() {
-		return false;
-	}
-
-	public boolean handleAttribute(Node attribute) {
-		if (IParserTags.SERIALIZATION.equals(attribute.getNodeName())) {
-		    setSerialization(attribute.getNodeValue());
-		    serializationFound = true;
-		    return true;
-		} else if (IParserTags.RETURNS.equals(attribute.getNodeName())) {
-			setReturns(attribute.getNodeValue());
-			return true;
-		}
-		return false;
-	}
-
-	public String checkAttributes(Node node) {
-		if(!serializationFound) {
-			return NLS.bind(Messages.ERROR_PARSING_NO_SERIALIZATION, (new Object[] {node.getNodeName()}));
-		}
-		return null;
-	}
-
-	public void setReturns(String returns) {
-		this.returns = returns;
-	}
-
-	public String getReturns() {
-		return returns;
-	}
-
-}
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
deleted file mode 100644
index c1b9ad1..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
+++ /dev/null
@@ -1,923 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.io.*;
-import java.net.URL;
-import java.util.ArrayList;
-
-import javax.xml.parsers.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.cheatsheets.AbstractItemExtensionElement;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.composite.model.CompositeCheatSheetModel;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.CompositeCheatSheetParser;
-import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags;
-import org.eclipse.ui.internal.cheatsheets.registry.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-/**
- * Parser for the cheatsheet content files.
- * 
- * Construct an intance of the CheatSheetDomParser.
- * Call <code>parse()</code>.
- * Then get the content items by calling
- * <code>getIntroItem()</code> and <code>getItemsList()</code>.
- * The title of the cheatsheet can be retrieved by calling
- * <code>getTitle()</code>.
- * 
- */
-public class CheatSheetParser {
-
-	
-	private static final String TRUE_STRING = "true"; //$NON-NLS-1$
-
-	private DocumentBuilder documentBuilder;
-	private ArrayList itemExtensionContainerList;
-	
-	// Cheatsheet kinds that can be parsed
-	public static final int COMPOSITE_ONLY = 1;
-	public static final int SIMPLE_ONLY = 2;
-	public static final int ANY = 3;
-	
-
-
-	/**
-	 * Java constructor comment.
-	 */
-	public CheatSheetParser() {
-		super();
-		documentBuilder = CheatSheetPlugin.getPlugin().getDocumentBuilder();
-	}
-
-	/**
-	 * Converts any characters required to escaped by an XML parser to 
-	 * their escaped counterpart.
-	 * 
-	 * Characters			XML escaped counterpart
-	 * <			->		&lt;
-	 * >			->		&gt;
-	 * &			->		&amp;
-	 * '			->		&apos;
-	 * "			->		&quot;
-	 *
-	 * Tags that will be ignored <b>, </b> and <br/>.
-	 *
-	 * @param text the string buffer to have its characters escaped
-	 * @return string buffer with any of the characters requiring XML escaping escaped
-	 */
-	private StringBuffer escapeXMLCharacters(StringBuffer text) {
-		// Set the maximum length of the tags to ignore
-		final int MAXIMUM_TAG_LENGTH = 5;
-		
-		// Keep a local variable for the orignal string's length
-		int length = text.length();
-		
-		// Create the buffer to store the resulting string
-		StringBuffer result = new StringBuffer(length);
-		
-		// Loop for the characters of the original string
-		for(int i=0; i<length; i++) {
-			// Grab the next character and determine how to handle it
-			char c = text.charAt(i);
-			switch (c) {
-				case '<': {
-					// We have a less than, grab the maximum tag length of characters
-					// or the remaining characters which follow and determine if it
-					// is the start of a tag to ignore.
-					String tmp = ICheatSheetResource.EMPTY_STRING;
-					if(i+MAXIMUM_TAG_LENGTH < length)
-						tmp = text.substring(i, i+MAXIMUM_TAG_LENGTH).toLowerCase();
-					else {
-						tmp = text.substring(i, length).toLowerCase();
-					}
-					if(tmp.startsWith(IParserTags.BOLD_START_TAG) || tmp.startsWith(IParserTags.BOLD_END_TAG) || tmp.startsWith(IParserTags.BREAK_TAG)) {
-						// We have a tag to ignore so just emit the character
-						result.append(c);
-					} else {
-						// We have detemined that it is just a less than
-						// so emit the XML escaped counterpart
-						result.append(IParserTags.LESS_THAN);
-					}
-					break; }
-				case '>': {
-					// We have a greater than, grab the maximum tag length of characters
-					// or the starting characters which come before and determine if it
-					// is the end of a tag to ignore.
-					String tmp = ICheatSheetResource.EMPTY_STRING;
-					if(i>=MAXIMUM_TAG_LENGTH) {
-						tmp = text.substring(i-MAXIMUM_TAG_LENGTH, i+1).toLowerCase();
-					} else {
-						tmp = text.substring(0, i+1).toLowerCase();
-					}
-					if(tmp.endsWith(IParserTags.BOLD_START_TAG) || tmp.endsWith(IParserTags.BOLD_END_TAG) || tmp.endsWith(IParserTags.BREAK_TAG)) {
-						// We have a tag to ignore so just emit the character
-						result.append(c);
-					} else {
-						// We have detemined that it is just a greater than
-						// so emit the XML escaped counterpart
-						result.append(IParserTags.GREATER_THAN);
-					}
-					break; }
-				case '&':
-					// We have an ampersand so emit the XML escaped counterpart
-					result.append(IParserTags.AMPERSAND);
-					break;
-				case '\'':
-					// We have an apostrophe so emit the XML escaped counterpart
-					result.append(IParserTags.APOSTROPHE);
-					break;
-				case '"':
-					// We have a quote so emit the XML escaped counterpart
-					result.append(IParserTags.QUOTE);
-					break;
-				default:
-					// We have a character that does not require escaping
-					result.append(c);
-					break;
-			}
-		}
-		return result;
-	}
-
-	private Node findNode(Node startNode, String nodeName) {
-		if(startNode == null) {
-			return null;
-		}
-
-		if(startNode.getNodeName().equals(nodeName)) {
-			return startNode;
-		}
-
-		NodeList nodes = startNode.getChildNodes();
-		for (int i = 0; i < nodes.getLength(); i++) {
-			Node node = nodes.item(i);
-			if(node.getNodeName().equals(nodeName)) {
-				return node;
-			}
-		}
-		
-		return null;
-	}
-
-	private void handleExecutable(IExecutableItem item, Node executableNode, AbstractExecutable executable) throws CheatSheetParserException {
-		Assert.isNotNull(item);
-		Assert.isNotNull(executableNode);
-
-		String[] params = null;
-
-		NamedNodeMap attributes = executableNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;			
-				if (attributeName.equals(IParserTags.CONFIRM)) {
-					executable.setConfirm(attribute.getNodeValue().equals(TRUE_STRING));} 
-				else if (attributeName.equals(IParserTags.WHEN)) {
-					executable.setWhen(attribute.getNodeValue());
-				} else if (executable.hasParams() && attributeName.startsWith(IParserTags.PARAM)) {
-					try {
-						if(params == null) {
-							params = new String[9];
-						}
-						String paramNum = attributeName.substring(IParserTags.PARAM.length());
-						int num = Integer.parseInt(paramNum)-1;
-						
-						if(num>-1 && num<9){
-							params[num] = attribute.getNodeValue();
-						} else {
-							String message = NLS.bind(Messages.ERROR_PARSING_PARAM_INVALIDRANGE, (new Object[] {attributeName, paramNum}));
-							throw new NumberFormatException(message);
-						}
-					} catch(NumberFormatException e) {
-						String message = Messages.ERROR_PARSING_PARAM_INVALIDNUMBER;
-						logMessage(IStatus.ERROR, false, message, null, e);
-						throw new CheatSheetParserException(message);
-					}
-				} else if (!executable.handleAttribute(attribute)) {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {attributeName, executableNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-			String errorMessage = executable.checkAttributes(executableNode);
-			if (errorMessage != null) {
-				throw new CheatSheetParserException(errorMessage);
-			}
-		}
-		executable.setParams(params);
-		item.setExecutable(executable);
-	}
-
-	private void handleCheatSheet(CheatSheet cheatSheet, Node cheatSheetNode) throws CheatSheetParserException {
-		Assert.isNotNull(cheatSheet);
-		Assert.isNotNull(cheatSheetNode);
-		Assert.isTrue(cheatSheetNode.getNodeName().equals(IParserTags.CHEATSHEET));
-
-		boolean title = false;
-
-		NamedNodeMap attributes = cheatSheetNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-
-				if (attributeName.equals(IParserTags.TITLE)) {
-					title = true;
-					cheatSheet.setTitle(attribute.getNodeValue());
-				} else {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {attributeName, cheatSheetNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!title) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_TITLE, (new Object[] {cheatSheetNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-	}
-
-	private void handleConditionalSubItem(Item item, Node conditionalSubItemNode) throws CheatSheetParserException {
-		Assert.isNotNull(item);
-		Assert.isNotNull(conditionalSubItemNode);
-		Assert.isTrue(conditionalSubItemNode.getNodeName().equals(IParserTags.CONDITIONALSUBITEM));
-
-		ConditionalSubItem conditionalSubItem = new ConditionalSubItem();
-
-		boolean condition = false;
-
-		// Handle attributes
-		NamedNodeMap attributes = conditionalSubItemNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-
-				if (attributeName.equals(IParserTags.CONDITION)) {
-					condition = true;
-					conditionalSubItem.setCondition(attribute.getNodeValue());
-				} else {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {attributeName, conditionalSubItemNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!condition) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_CONDITION, (new Object[] {conditionalSubItemNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		boolean subitem = false;
-
-		// Handle nodes
-		NodeList nodes = conditionalSubItemNode.getChildNodes();
-		for (int i = 0; i < nodes.getLength(); i++) {
-			Node node = nodes.item(i);
-
-			if(node.getNodeName().equals(IParserTags.SUBITEM)) {
-				subitem = true;
-				handleSubItem(conditionalSubItem, node);
-			} else {
-				if(node.getNodeType() != Node.TEXT_NODE && node.getNodeType() != Node.COMMENT_NODE ) {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ELEMENT, (new Object[] {node.getNodeName(), conditionalSubItemNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!subitem) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_SUBITEM, (new Object[] {conditionalSubItemNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		item.addSubItem(conditionalSubItem);
-	}
-
-	private void handleDescription(Item item, Node startNode) throws CheatSheetParserException {
-		Assert.isNotNull(item);
-		Assert.isNotNull(startNode);
-
-		Node descriptionNode = findNode(startNode, IParserTags.DESCRIPTION);
-		
-		if(descriptionNode != null) {
-			String text = handleMarkedUpText(descriptionNode, startNode, IParserTags.DESCRIPTION);
-			item.setDescription(text);
-		} else {
-			Node parentNode = startNode;
-			if( startNode.getNodeName().equals(IParserTags.DESCRIPTION) ) {
-				parentNode = startNode.getParentNode();
-			}
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_DESCRIPTION, (new Object[] {parentNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-	}
-
-	private String handleMarkedUpText(Node nodeContainingText, Node startNode, String nodeName ) {
-		NodeList nodes = nodeContainingText.getChildNodes();	
-		StringBuffer text = new StringBuffer();
-		
-		boolean containsMarkup = false;
-
-		for (int i = 0; i < nodes.getLength(); i++) {
-			Node node = nodes.item(i);
-			if(node.getNodeType() == Node.TEXT_NODE) {
-				text.append(node.getNodeValue());
-			} else if(node.getNodeType() == Node.ELEMENT_NODE) {
-				// handle <b></b> and <br/>
-				if(node.getNodeName().equals(IParserTags.BOLD)) {
-					containsMarkup = true;
-					text.append(IParserTags.BOLD_START_TAG);
-					text.append(node.getFirstChild().getNodeValue());
-					text.append(IParserTags.BOLD_END_TAG);
-				} else if(node.getNodeName().equals(IParserTags.BREAK)) {
-					containsMarkup = true;	
-					text.append(IParserTags.BREAK_TAG);
-				} else {
-					warnUnknownMarkupElement(startNode, nodeName, node);
-				}
-			}
-		}
-
-		if(containsMarkup) {
-			text = escapeXMLCharacters(text);
-			text.insert(0, IParserTags.FORM_START_TAG);
-			text.append(IParserTags.FORM_END_TAG);
-		}
-
-		// Remove the new line, form feed and tab chars
-		return text.toString().trim();
-	}
-
-	/*
-	 * Write a warning to the log
-	 */
-	private void warnUnknownMarkupElement(Node startNode, String nodeName, Node node) {
-		Node parentNode = startNode;
-		if( startNode.getNodeName().equals(nodeName) ) {
-			parentNode = startNode.getParentNode();
-		}
-		String message;
-		if (IParserTags.DESCRIPTION.equals(nodeName)) {
-		    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()}));
-		}
-		logMessage(IStatus.WARNING, false, message, null, null);
-
-	}
-	
-	private void handleOnCompletion(Item item, Node onCompletionNode) {
-		String text = handleMarkedUpText(onCompletionNode, onCompletionNode, IParserTags.ON_COMPLETION);
-		item.setCompletionMessage(text);
-	}
-	
-	private void handleIntro(CheatSheet cheatSheet, Document document) throws CheatSheetParserException {
-		Assert.isNotNull(cheatSheet);
-		Assert.isNotNull(document);
-
-		//Get the Intro item.
-		NodeList introList = document.getElementsByTagName(IParserTags.INTRO);
-		Node introNode = introList.item(0);
-		
-		if(introNode == null) {
-			// Error: there is no intro
-			throw new CheatSheetParserException(Messages.ERROR_PARSING_NO_INTRO);
-		}
-		if(introList.getLength() > 1) {
-			// Error: there are more than 1 intro
-			throw new CheatSheetParserException(Messages.ERROR_PARSING_MORE_THAN_ONE_INTRO);
-		}
-
-		Item introItem = new Item();
-		introItem.setTitle(Messages.CHEAT_SHEET_INTRO_TITLE);
-
-		handleIntroAttributes(introItem, introNode);
-		handleDescription(introItem, introNode);
-
-		cheatSheet.setIntroItem(introItem);
-	}
-
-	private void handleIntroAttributes(Item item, Node introNode) {
-		Assert.isNotNull(item);
-		Assert.isNotNull(introNode);
-
-		NamedNodeMap attributes = introNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-
-				if (attributeName.equals(IParserTags.CONTEXTID)) {
-					item.setContextId(attribute.getNodeValue());
-				} else if (attributeName.equals(IParserTags.HREF)) {
-					item.setHref(attribute.getNodeValue());
-				} else {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {attributeName, introNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-	}
-
-	private Item handleItem(Node itemNode) throws CheatSheetParserException {
-		Assert.isNotNull(itemNode);
-		Assert.isTrue(itemNode.getNodeName().equals(IParserTags.ITEM));
-
-		Item item = new Item();
-
-		handleItemAttributes(item, itemNode);
-
-		boolean description = false;
-		
-		NodeList nodes = itemNode.getChildNodes();
-		for (int i = 0; i < nodes.getLength(); i++) {
-			Node node = nodes.item(i);
-
-			if(node.getNodeName().equals(IParserTags.ACTION)) {
-				handleExecutable(item, node, new Action());
-			} else if(node.getNodeName().equals(IParserTags.COMMAND)) {
-				handleExecutable(item, node, new CheatSheetCommand());
-			} else if(node.getNodeName().equals(IParserTags.DESCRIPTION)) {
-				description = true;
-				handleDescription(item, node);
-			} else if(node.getNodeName().equals(IParserTags.ON_COMPLETION)) {
-				handleOnCompletion(item, node);
-			} else if(node.getNodeName().equals(IParserTags.SUBITEM)) {
-				handleSubItem(item, node);
-			} else if(node.getNodeName().equals(IParserTags.CONDITIONALSUBITEM)) {
-				handleConditionalSubItem(item, node);
-			} else if(node.getNodeName().equals(IParserTags.REPEATEDSUBITM)) {
-				handleRepeatedSubItem(item, node);
-			} else if(node.getNodeName().equals(IParserTags.PERFORMWHEN)) {
-				handlePerformWhen(item, node);
-			} else {
-				if(node.getNodeType() != Node.TEXT_NODE && node.getNodeType() != Node.COMMENT_NODE ) {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ELEMENT, (new Object[] {node.getNodeName(), itemNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!description) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_DESCRIPTION, (new Object[] {itemNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		return item;
-	}
-
-	private void handleItemAttributes(Item item, Node itemNode) throws CheatSheetParserException {
-		Assert.isNotNull(item);
-		Assert.isNotNull(itemNode);
-
-		ArrayList itemExtensionElements = new ArrayList();
-
-		boolean title = false;
-
-		NamedNodeMap attributes = itemNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-
-				if (attributeName.equals(IParserTags.TITLE)) {
-					title = true;
-					item.setTitle(attribute.getNodeValue());
-				} else if (attributeName.equals(IParserTags.CONTEXTID)) {
-					item.setContextId(attribute.getNodeValue());
-				} else if (attributeName.equals(IParserTags.HREF)) {
-					item.setHref(attribute.getNodeValue());
-				} else if (attributeName.equals(IParserTags.SKIP)) {
-					item.setSkip(attribute.getNodeValue().equals(TRUE_STRING));
-				} else if (attributeName.equals(IParserTags.DIALOG)) {
-					item.setDialog(attribute.getNodeValue().equals(TRUE_STRING));
-				} else {
-					AbstractItemExtensionElement[] ie = handleUnknownItemAttribute(attribute, itemNode);
-					if (ie != null)
-						itemExtensionElements.add(ie);
-				}
-			}
-		}
-
-		if(!title) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_TITLE, (new Object[] {itemNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		if (itemExtensionElements != null)
-			item.setItemExtensions(itemExtensionElements);
-	}
-	
-	private void handleItems(CheatSheet cheatSheet, Document document) throws CheatSheetParserException {
-		//Get the items.
-		NodeList itemList = document.getElementsByTagName(IParserTags.ITEM);
-
-		if (itemList == null || itemList.getLength() == 0) {
-			throw new CheatSheetParserException(Messages.ERROR_PARSING_NO_ITEM);
-		}
-		
-		//parse the items.  assemble CheatSheetItem objects.
-		ArrayList items = handleItems(itemList);
-
-		if (items == null || items.size() == 0) {
-			// This should never occur but just to be safe let's check.
-			throw new CheatSheetParserException(Messages.ERROR_PARSING_NO_ITEM);
-		}
-
-		cheatSheet.addItems(items);
-	}
-
-	private ArrayList handleItems(NodeList itemList) throws CheatSheetParserException {
-		CheatSheetRegistryReader reader = CheatSheetRegistryReader.getInstance();
-		itemExtensionContainerList = reader.readItemExtensions();
-
-		ArrayList localList = new ArrayList();
-
-		for (int i = 0; i < itemList.getLength(); i++) {
-			//get the item node.  
-			Node itemNode = itemList.item(i);
-			Item item = handleItem(itemNode);
-			
-			localList.add(item);
-		}
-		return localList;
-	}
-
-	private void handlePerformWhen(IPerformWhenItem item, Node performWhenNode) throws CheatSheetParserException {
-		Assert.isNotNull(item);
-		Assert.isNotNull(performWhenNode);
-		Assert.isTrue(performWhenNode.getNodeName().equals(IParserTags.PERFORMWHEN));
-
-		PerformWhen performWhen = new PerformWhen();
-
-		 boolean condition = false;
-
-		// Handle attributes
-		NamedNodeMap attributes = performWhenNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-
-				if (attributeName.equals(IParserTags.CONDITION)) {
-					condition = true;
-					performWhen.setCondition(attribute.getNodeValue());
-				} else {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {attributeName, performWhenNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!condition) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_CONDITION, (new Object[] {performWhenNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		boolean exeutable = false;
-
-		// Handle nodes
-		NodeList nodes = performWhenNode.getChildNodes();
-		for (int i = 0; i < nodes.getLength(); i++) {
-			Node node = nodes.item(i);
-			if(node.getNodeName().equals(IParserTags.ACTION)) {
-				exeutable = true;
-				handleExecutable(performWhen, node, new Action());
-			} else if(node.getNodeName().equals(IParserTags.COMMAND)) {
-				exeutable = true;
-				handleExecutable(performWhen, node, new CheatSheetCommand());
-			} else {
-				if(node.getNodeType() != Node.TEXT_NODE && node.getNodeType() != Node.COMMENT_NODE ) {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ELEMENT, (new Object[] {node.getNodeName(), performWhenNode .getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!exeutable) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_ACTION, (new Object[] {performWhenNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		item.setPerformWhen(performWhen);
-	}
-
-	private void handleRepeatedSubItem(Item item, Node repeatedSubItemNode) throws CheatSheetParserException {
-		Assert.isNotNull(item);
-		Assert.isNotNull(repeatedSubItemNode);
-		Assert.isTrue(repeatedSubItemNode.getNodeName().equals(IParserTags.REPEATEDSUBITM));
-
-		RepeatedSubItem repeatedSubItem = new RepeatedSubItem();
-
-		boolean values = false;
-
-		// Handle attributes
-		NamedNodeMap attributes = repeatedSubItemNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-
-				if (attributeName.equals(IParserTags.VALUES)) {
-					values = true;
-					repeatedSubItem.setValues(attribute.getNodeValue());
-				} else {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {attributeName, repeatedSubItemNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!values) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_VALUES, (new Object[] {repeatedSubItemNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		boolean subitem = false;
-
-		// Handle nodes
-		NodeList nodes = repeatedSubItemNode.getChildNodes();
-		for (int i = 0; i < nodes.getLength(); i++) {
-			Node node = nodes.item(i);
-
-			if(node.getNodeName().equals(IParserTags.SUBITEM)) {
-				subitem = true;
-				handleSubItem(repeatedSubItem, node);
-			} else {
-				if(node.getNodeType() != Node.TEXT_NODE && node.getNodeType() != Node.COMMENT_NODE ) {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ELEMENT, (new Object[] {node.getNodeName(), repeatedSubItemNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!subitem) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_SUBITEM, (new Object[] {repeatedSubItemNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-
-		item.addSubItem(repeatedSubItem);
-	}
-
-	private void handleSubItem(ISubItemItem item, Node subItemNode) throws CheatSheetParserException {
-		Assert.isNotNull(item);
-		Assert.isNotNull(subItemNode);
-		Assert.isTrue(subItemNode.getNodeName().equals(IParserTags.SUBITEM));
-
-		SubItem subItem = new SubItem();
-
-		handleSubItemAttributes(subItem, subItemNode);
-
-		NodeList nodes = subItemNode.getChildNodes();
-		for (int i = 0; i < nodes.getLength(); i++) {
-			Node node = nodes.item(i);
-
-			if(node.getNodeName().equals(IParserTags.ACTION)) {
-				handleExecutable(subItem, node, new Action());
-			} else if(node.getNodeName().equals(IParserTags.COMMAND)) {
-				handleExecutable(subItem, node, new CheatSheetCommand());
-			} else if(node.getNodeName().equals(IParserTags.PERFORMWHEN)) {
-				handlePerformWhen(subItem, node);
-			} else {
-				if(node.getNodeType() != Node.TEXT_NODE && node.getNodeType() != Node.COMMENT_NODE ) {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ELEMENT, (new Object[] {node.getNodeName(), subItemNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-		item.addSubItem(subItem);
-	}
-
-	private void handleSubItemAttributes(SubItem subItem, Node subItemNode) throws CheatSheetParserException {
-		Assert.isNotNull(subItem);
-		Assert.isNotNull(subItemNode);
-
-		boolean label = false;
-
-		NamedNodeMap attributes = subItemNode.getAttributes();
-		if (attributes != null) {
-			for (int x = 0; x < attributes.getLength(); x++) {
-				Node attribute = attributes.item(x);
-				String attributeName = attribute.getNodeName();
-				if (attribute == null || attributeName == null)
-					continue;
-
-				if (attributeName.equals(IParserTags.LABEL)) {
-					label = true;
-					subItem.setLabel(attribute.getNodeValue());
-				} else if (attributeName.equals(IParserTags.SKIP)) {
-					subItem.setSkip(attribute.getNodeValue().equals(TRUE_STRING));
-				} else if (attributeName.equals(IParserTags.WHEN)) {
-					subItem.setWhen(attribute.getNodeValue());
-				} else {
-					String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {attributeName, subItemNode.getNodeName()}));
-					logMessage(IStatus.WARNING, false, message, null, null);
-				}
-			}
-		}
-
-		if(!label) {
-			String message = NLS.bind(Messages.ERROR_PARSING_NO_LABEL, (new Object[] {subItemNode.getNodeName()}));
-			throw new CheatSheetParserException(message);
-		}
-	}
-
-	private AbstractItemExtensionElement[] handleUnknownItemAttribute(Node item, Node node) {
-		ArrayList al = new ArrayList();
-		if (itemExtensionContainerList == null)
-			return null;
-
-		for (int i = 0; i < itemExtensionContainerList.size(); i++) {
-			CheatSheetItemExtensionElement itemExtensionElement = (CheatSheetItemExtensionElement) itemExtensionContainerList.get(i);
-
-			if (itemExtensionElement.getItemAttribute().equals(item.getNodeName())) {
-				AbstractItemExtensionElement itemElement = itemExtensionElement.createInstance();
-				if(itemElement != null) {
-					itemElement.handleAttribute(item.getNodeValue());
-					al.add(itemElement);
-				}
-			}
-		}
-
-		if(al.size() == 0) {
-			String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {item.getNodeName(), node.getNodeName()}));
-			logMessage(IStatus.WARNING, false, message, null, null);
-		}
-		return (AbstractItemExtensionElement[])al.toArray(new AbstractItemExtensionElement[al.size()]);
-	}
-
-	/**
-	 * @param severity
-	 * @param informUser
-	 * @param message
-	 * @param title
-	 * @param exception
-	 */
-	private void logMessage(int severity, boolean informUser, String message, String title, Throwable exception) {
-		IStatus status = new Status(severity, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, exception);
-		logMessage(informUser, title, status);
-	}
-
-	private void logMessage(boolean informUser, String title, IStatus status) {
-		CheatSheetPlugin.getPlugin().getLog().log(status);		
-		if(informUser) {
-			org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), title, null, status);
-		}
-	}
-
-	public ICheatSheet parse(URL url, int cheatSheetKind) {
-		if(url == null) {
-			return null;
-		}
-
-		InputStream is = null;
-		InputSource inputSource = null;
-
-
-		try {
-			is = url.openStream();
-
-			if (is != null) {
-				inputSource = new InputSource(is);
-			}
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_OPENING_FILE, (new Object[] {url.getFile()}));
-			logMessage(IStatus.ERROR, true, message, Messages.ERROR_TITLE, e);
-			return null;
-		}
-
-		Document document;
-		try {
-			if(documentBuilder == null) {
-				logMessage(IStatus.ERROR, false, Messages.ERROR_DOCUMENT_BUILDER_NOT_INIT, null, null);
-				return null;
-			}
-			document = documentBuilder.parse(inputSource);
-		} catch (IOException e) {
-			String message = NLS.bind(Messages.ERROR_OPENING_FILE_IN_PARSER, (new Object[] {url.getFile()}));
-			logMessage(IStatus.ERROR, false, message, null, e);
-			return null;
-		} catch (SAXParseException spe) {
-			String message = NLS.bind(Messages.ERROR_SAX_PARSING_WITH_LOCATION, (new Object[] {url.getFile(), new Integer(spe.getLineNumber()), new Integer(spe.getColumnNumber())}));
-			logMessage(IStatus.ERROR, false, message, null, spe);
-			return null;
-		} catch (SAXException se) {
-			String message = NLS.bind(Messages.ERROR_SAX_PARSING, (new Object[] {url.getFile()}));
-			logMessage(IStatus.ERROR, false, message, null, se);
-			return null;
-		} finally {
-			try {
-				is.close();
-			} catch (Exception e) {
-			}
-		}
-		
-		if ( cheatSheetKind == COMPOSITE_ONLY  ||  (cheatSheetKind == ANY && isComposite(document))) {
-			CompositeCheatSheetParser compositeParser = new CompositeCheatSheetParser();
-			CompositeCheatSheetModel result = compositeParser.parseCompositeCheatSheet(document, url);
-			if (!compositeParser.getStatus().isOK()) {
-				logMessage(true, Messages.ERROR_TITLE, compositeParser.getStatus());
-			}
-			return result;
-		}
-		try {
-			return parseCheatSheet(document);
-		} catch(CheatSheetParserException e) {
-			logMessage(IStatus.ERROR, true, e.getMessage(), Messages.ERROR_TITLE, e);
-		}
-		return null;
-	}
-
-	private boolean isComposite(Document document) {
-		if (document != null) {
-			Node rootnode = document.getDocumentElement();		
-			// Is the root node compositeCheatsheet?
-			return rootnode.getNodeName().equals(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET) ;
-		}
-		return false;
-	}
-
-	private CheatSheet parseCheatSheet(Document document) throws CheatSheetParserException {
-		// If the document passed is null return a null tree and update the status
-		if (document != null) {
-			Node rootnode = document.getDocumentElement();
-			
-			// Is the root node really <cheatsheet>?
-			if( !rootnode.getNodeName().equals(IParserTags.CHEATSHEET) ) {
-				throw new CheatSheetParserException(Messages.ERROR_PARSING_CHEATSHEET_ELEMENT);
-			}
-
-			// Create the cheat sheet model object
-			CheatSheet cheatSheet = new CheatSheet();
-
-			handleCheatSheet(cheatSheet, rootnode);
-	
-			handleIntro(cheatSheet, document);
-
-			handleItems(cheatSheet, document);
-			
-			return cheatSheet;
-		} 
-		throw new CheatSheetParserException(Messages.ERROR_PARSING_CHEATSHEET_CONTENTS);
-	}
-/*
-	private String getNormalizedText(String text) {
-		int [] spaceCounter = new int[1];
-		StringBuffer buf = new StringBuffer();
-		
-		if (text==null) return null;
-
-
-		for (int j=0; j<text.length(); j++) {
-			char c = text.charAt(j);
-			if (c==' ' || c=='\t') {
-				// space
-				if (++spaceCounter[0] == 1) {
-					buf.append(c);
-				}
-			}
-			else if (c=='\n' || c=='\r' || c=='\f') {
-				// new line
-				if (++spaceCounter[0]==1) {
-					buf.append(' ');
-				}
-			}
-			else {
-				// other characters
-				spaceCounter[0]=0;
-				buf.append(c);
-			}
-		}
-
-		return buf.toString();
-	}
-*/
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParserException.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParserException.java
deleted file mode 100644
index 124eca3..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParserException.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.data;
-
-public class CheatSheetParserException extends Exception {
-	private static final long serialVersionUID = 6009335074727417445L;
-	public CheatSheetParserException(String message) {
-		super(message);
-	}
-}
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
deleted file mode 100644
index f4b2335..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.xml.parsers.DocumentBuilder;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-import org.eclipse.ui.internal.cheatsheets.views.CoreItem;
-import org.eclipse.ui.internal.cheatsheets.views.SubItemCompositeHolder;
-import org.eclipse.ui.internal.cheatsheets.views.ViewItem;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.xml.sax.InputSource;
-
-public class CheatSheetSaveHelper {
-
-	// Get the path to the cheatsheet folder in the .metadata folder of
-	// workspace.
-	protected IPath savePath;
-
-	private static final String DOT_XML = ".xml"; //$NON-NLS-1$
-	
-	private IStatus loadStatus;  // The status of the last load operation
-
-	/**
-	 * Constructor for CheatSheetSaveHelper.
-	 */
-	public CheatSheetSaveHelper() {
-		super();
-		savePath = CheatSheetPlugin.getPlugin().getStateLocation();
-	}
-
-
-	/**
-	 * Create the properties used to save the state of a cheatsheet
-	 * @param currentItemNum the current item
-	 * @param items a list of the items in this cheatsheet
-	 * @param buttonIsDown 
-	 * @param expandRestoreStates
-	 * @param csID the cheatsheet id
-	 * @param contentPath will be null if the cheatsheet was launched using information from
-	 * the registry, otherwise it is the url of the cheatsheet content file.
-	 */
-	public Properties createProperties(int currentItemNum, ArrayList items,
-			boolean buttonIsDown, ArrayList expandRestoreStates, String csID, String contentPath) {
-		Properties props = new Properties();
-		Hashtable subcompletedTable = new Hashtable(10);
-		Hashtable subskippedTable = new Hashtable(10);
-
-		int buttonState = 0;
-		if (buttonIsDown)
-			buttonState = 1;
-
-		props.put(IParserTags.ID, csID);
-		props.put(IParserTags.CURRENT, Integer.toString(currentItemNum));
-		if (contentPath != null) {
-			props.put(IParserTags.CONTENT_URL, contentPath);
-		}
-		ArrayList completedList = new ArrayList();
-		ArrayList expandedList = new ArrayList();
-
-		if (expandRestoreStates == null)
-			expandRestoreStates = new ArrayList();
-
-		// Assemble lists of expanded items and completed items.
-		for (int i = 0; i < items.size(); i++) {
-			ViewItem item = (ViewItem) items.get(i);
-			if (item.isCompleted()) {
-				completedList.add(Integer.toString(i));
-			}
-			if (item.isExpanded()) {
-				expandedList.add(Integer.toString(i));
-			}
-
-			if (item instanceof CoreItem) {
-				CoreItem withsubs = (CoreItem) item;
-				ArrayList compList = withsubs
-						.getListOfSubItemCompositeHolders();
-				if (compList != null) {
-					StringBuffer skippedsubItems = new StringBuffer();
-					StringBuffer completedsubItems = new StringBuffer();
-					for (int j = 0; j < compList.size(); j++) {
-						SubItemCompositeHolder sch = (SubItemCompositeHolder) compList
-								.get(j);
-						if (sch.isCompleted())
-							completedsubItems.append(Integer.toString(j) + ","); //$NON-NLS-1$
-						if (sch.isSkipped())
-							skippedsubItems.append(Integer.toString(j) + ","); //$NON-NLS-1$
-					}
-					if (completedsubItems.toString().length() > 0) {
-						String csi = completedsubItems.toString();
-						if (csi.endsWith(",")) //$NON-NLS-1$
-							csi = csi.substring(0, csi.length() - 1);
-						subcompletedTable.put(Integer.toString(i), csi);
-
-					}
-					if (skippedsubItems.toString().length() > 0) {
-						String csi = skippedsubItems.toString();
-						if (csi.endsWith(",")) //$NON-NLS-1$
-							csi = csi.substring(0, csi.length() - 1);
-						subskippedTable.put(Integer.toString(i), csi);
-					}
-				}
-			}
-		}
-
-		// put expanded item list, completed list, button state
-		props.put(IParserTags.COMPLETED, completedList);
-		props.put(IParserTags.EXPANDED, expandedList);
-		props.put(IParserTags.EXPANDRESTORE, expandRestoreStates);
-		props.put(IParserTags.BUTTON, Integer.toString(buttonState));
-		if (subcompletedTable != null)
-			props.put(IParserTags.SUBITEMCOMPLETED, subcompletedTable);
-		if (subskippedTable != null)
-			props.put(IParserTags.SUBITEMSKIPPED, subskippedTable);
-
-		return props;
-	}
-
-	/**
-	 * Method parses attribute from named node map. Returns value as string.
-	 */
-	protected String getAttributeWithName(NamedNodeMap map, String name) {
-		try {
-			return map.getNamedItem(name).getNodeValue();
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	public Path getStateFile(String csID) {
-		return getStateFile(csID, savePath);
-	}
-	
-	protected Path getStateFile(String csID, IPath rootPath) {
-		return new Path(rootPath.append(csID + ".xml").toOSString()); //$NON-NLS-1$
-	}
-
-	// Attempts to read an xml file from the provided url. Returns a Dom
-	// Document object if parses ok,
-	// returns null if the parse or read fails.
-	protected Document readXMLFile(URL url) {
-		InputStream is = null;
-		InputSource source = null;
-
-		try {
-			is = url.openStream();
-			if (is != null) {
-				source = new InputSource(is);
-			}
-		} catch (Exception e) {
-			return null;
-		}
-
-		if (source == null)
-			return null;
-
-		try {
-			DocumentBuilder documentBuilder = CheatSheetPlugin.getPlugin()
-					.getDocumentBuilder();
-			return documentBuilder.parse(source);
-		} catch (Exception e) {
-		} finally {
-			try {
-				if (is != null)
-					is.close();
-			} catch (IOException ioe) {
-			}
-		}
-
-		return null;
-	}
-	
-	/**
-	 * @param saveProperties
-	 * @param contentPath
-	 * @param csm
-	 */
-	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;
-        }
-		return CheatSheetPlugin.getPlugin().saveMemento(writeMemento, csID + DOT_XML);
-	}
-	
-	public IStatus saveToMemento(Properties properties, CheatSheetManager csm, IMemento writeMemento) {
-		
-		String csID = (String) properties.get(IParserTags.ID);
-		try {
-			writeMemento.putString(IParserTags.BUTTONSTATE, (String) properties
-					.get(IParserTags.BUTTON));
-			writeMemento.putString(IParserTags.ITEM, (String) properties.get(IParserTags.CURRENT));
-			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);
-			}
-
-			addListOfStringsToMemento(writeMemento,  properties, IParserTags.COMPLETED);
-			addListOfStringsToMemento(writeMemento,  properties, IParserTags.EXPANDED);
-			addListOfStringsToMemento(writeMemento,  properties, IParserTags.EXPANDRESTORE);
-
-			addMapToMemento(writeMemento,  csm.getData(), IParserTags.MANAGERDATA);
-			addMapToMemento(writeMemento,  (Map)properties.get(IParserTags.SUBITEMCOMPLETED), IParserTags.SUBITEMCOMPLETED);
-			addMapToMemento(writeMemento,  (Map)properties.get(IParserTags.SUBITEMSKIPPED), IParserTags.SUBITEMSKIPPED);
-
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_SAVING_STATEFILE_URL,
-					(new Object[] { csID }));
-			IStatus status = new Status(IStatus.ERROR,
-					ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK,
-					message, e);
-			return status;
-			//CheatSheetPlugin.getPlugin().getLog().log(status);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * @param csID The id of this cheatsheet
-	 * @return The state of this cheatsheet or null
-	 */
-	public Properties loadState(String csID) {
-		loadStatus = Status.OK_STATUS;
-		XMLMemento readMemento = CheatSheetPlugin.getPlugin().readMemento(csID + DOT_XML);
-		if (readMemento == null) {
-			return null;
-		}	
-		return loadFromMemento(readMemento);
-	}
-	
-	public Properties loadFromMemento(IMemento memento) {
-		Properties properties = new Properties();
-		properties.put(IParserTags.BUTTON, memento.getString(IParserTags.BUTTONSTATE));
-		properties.put(IParserTags.CURRENT, memento.getString(IParserTags.ITEM));
-		properties.put(IParserTags.ID, memento.getString(IParserTags.ID));
-		String contentURL = memento.getString(IParserTags.CONTENT_URL);
-		if (contentURL != null) {
-		    properties.put(IParserTags.CONTENT_URL, contentURL);
-		}
-
-		getListOfStringsFromMemento(memento,  properties, IParserTags.COMPLETED);
-		getListOfStringsFromMemento(memento,  properties, IParserTags.EXPANDED);
-		getListOfStringsFromMemento(memento,  properties, IParserTags.EXPANDRESTORE);
-
-		getMapFromMemento(memento,  properties, IParserTags.SUBITEMCOMPLETED);
-		getMapFromMemento(memento,  properties, IParserTags.SUBITEMSKIPPED);
-		getMapFromMemento(memento,  properties, IParserTags.MANAGERDATA);
-		return properties;
-	}
-
-	private void addListOfStringsToMemento(IMemento memento, Properties properties, String key) {
-		List list = (List)properties.get(key);
-		if (list == null) {
-			return;
-		}
-		for (Iterator iter = list.iterator(); iter.hasNext();) {
-			IMemento childMemento = memento.createChild(key);
-			childMemento.putString(IParserTags.ITEM,(String)iter.next());
-		}
-	}
-	
-
-	private void addMapToMemento(IMemento memento, Map map, String mapName) {
-		if (map == null) {
-			return;
-		}
-		for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
-			IMemento childMemento = memento.createChild(mapName);
-			String itemKey = (String)iter.next();
-			childMemento.putString(IParserTags.MANAGERDATAKEY,(itemKey));
-			childMemento.putString(IParserTags.MANAGERDATAVALUE,(String)map.get(itemKey));
-		}
-	}
-	
-	
-	private void getMapFromMemento(IMemento memento, Properties properties, String mapName) {
-		IMemento[] children = memento.getChildren(mapName);
-		Map map = new Hashtable();
-		for (int i = 0; i < children.length; i++) {
-			map.put(children[i].getString(IParserTags.MANAGERDATAKEY), 
-					children[i].getString(IParserTags.MANAGERDATAVALUE));
-		}	
-		properties.put(mapName, map);
-	}
-	
-	private void getListOfStringsFromMemento(IMemento memento, Properties properties, String key) {
-		IMemento[] children = memento.getChildren(key);
-		List list = new ArrayList();
-		for (int i = 0; i < children.length; i++) {
-			list.add(children[i].getString(IParserTags.ITEM));
-		}	
-		properties.put(key, list);
-	}
-
-	/**
-	 * Used to determine the status if loadStateFromMemento returned null
-	 * @return
-	 */
-	public IStatus getLoadStatus() {
-		return loadStatus;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java
deleted file mode 100644
index e7bec1d..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-
-public class ConditionalSubItem extends AbstractSubItem implements ISubItemItem {
-	private String condition;
-	private ArrayList subItems;
-	private SubItem selectedSubItem;
-
-	/**
-	 * Constructor for ConditionalSubItem.
-	 */
-	public ConditionalSubItem() {
-		super();
-	}
-	
-	public ConditionalSubItem(String condition) {
-		super();
-		this.condition = condition;
-	}
-	
-	/**
-	 * Returns the condition.
-	 * @return String
-	 */
-	public String getCondition() {
-		return condition;
-	}
-
-	/**
-	 * Sets the condition.
-	 * @param newCondition The new condition to set
-	 */
-	public void setCondition(String newCondition) {
-		this.condition = newCondition;
-	}
-
-	/**
-	 * @param subItem the SubItem to add.
-	 */
-	public void addSubItem(AbstractSubItem subItem) {
-		if(subItems == null) {
-			subItems = new ArrayList();
-		}
-		subItems.add(subItem);
-	}
-
-	/**
-	 * @return Returns the subItems.
-	 */
-	public ArrayList getSubItems() {
-		return subItems;
-	}
-
-	public SubItem getSelectedSubItem() {
-		return selectedSubItem;
-	}
-
-	public void setSelectedSubItem(CheatSheetManager csm) {
-		String conditionValue = csm.getVariableData(condition);
-
-		for (Iterator iter = subItems.iterator(); iter.hasNext();) {
-			SubItem subItem = (SubItem) iter.next();
-			if(subItem.getWhen() != null && subItem.getWhen().equals(conditionValue)) {
-				selectedSubItem = subItem;
-				break;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IActionItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IActionItem.java
deleted file mode 100644
index 2fca690..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IActionItem.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-public interface IActionItem {
-
-	/**
-	 * @return Returns the action.
-	 */
-	public Action getAction();
-	
-	/**
-	 * @param action The action to set.
-	 */
-	public void setAction(Action action);
-	
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ICheatSheet.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ICheatSheet.java
deleted file mode 100644
index c2e5ce0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ICheatSheet.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.data;
-
-// An interface which can represent either a simple cheatsheet or a composite cheatsheet.
-// The parser returns results of this type
-
-public interface ICheatSheet {
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IExecutableItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IExecutableItem.java
deleted file mode 100644
index 7063df5..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IExecutableItem.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.data;
-
-/**
- * Interface representing a reference to an executable element.
- * An executable element is an action or command
- */
-
-public interface IExecutableItem {
-	
-	/**
-	 * @return Returns the executable.
-	 */
-	public AbstractExecutable getExecutable();
-	
-	/**
-	 * @param executable executable item
-	 */
-	public void setExecutable(AbstractExecutable executable);
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IParserTags.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IParserTags.java
deleted file mode 100644
index fcd9780..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IParserTags.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-/**
- * Interface containing the constants used by the cheatsheet parser
- * to identify the tags used in the cheatsheet file.
- */
-public interface IParserTags {
-
-	/*
-	 * <!ELEMENT cheatsheet (intro, item+)>
-	 * <!ATTLIST cheatsheet
-	 *   title               CDATA #REQUIRED
-	 * >
-	 */
-	public static final String CHEATSHEET = "cheatsheet"; //$NON-NLS-1$
-	public static final String TITLE = "title"; //$NON-NLS-1$
-
-	/*
-	 * <!ELEMENT intro (description)>
-	 * <!ATTLIST intro
-	 *   contextId           CDATA #IMPLIED
-	 *   href                CDATA #IMPLIED
-	 * >
-	 */
-	public static final String INTRO = "intro"; //$NON-NLS-1$
-	public static final String CONTEXTID = "contextId"; //$NON-NLS-1$
-	public static final String HREF = "href"; //$NON-NLS-1$
-	
-	/*
-	 * <!ELEMENT description ()>
-	 * <!ATTLIST description
-	 * >
-	 */
-	public static final String DESCRIPTION = "description"; //$NON-NLS-1$
-	public static final String BOLD = "b"; //$NON-NLS-1$
-	public static final String BREAK = "br"; //$NON-NLS-1$
-	public static final String BOLD_START_TAG = "<b>"; //$NON-NLS-1$
-	public static final String BOLD_END_TAG = "</b>"; //$NON-NLS-1$
-	public static final String BREAK_TAG = "<br/>"; //$NON-NLS-1$
-	public static final String FORM_START_TAG = "<form><p>"; //$NON-NLS-1$
-	public static final String FORM_END_TAG = "</p></form>"; //$NON-NLS-1$
-	
-	
-	/*
-	 * <!ELEMENT item (description [action|perform-when] | (subitem|repeated-subitem|conditional-subitem)*)>
-	 * <!ATTLIST item
-	 *   title               CDATA #REQUIRED
-	 *   dialog              ("true" | "false") "false"
-	 *   skip                ("true" | "false") "false"
-	 *   contextId           CDATA #IMPLIED
-	 *   href                CDATA #IMPLIED
-	 * >
-	 */
-	public static final String ITEM = "item"; //$NON-NLS-1$
-	public static final String DIALOG = "dialog"; //$NON-NLS-1$
-	public static final String SKIP = "skip"; //$NON-NLS-1$
-
-	/*
-	 * <!ELEMENT subitem ( [action|perform-when] )>
-	 * <!ATTLIST subitem
-	 *   label               CDATA #REQUIRED
-	 *   skip                ("true" | "false") "false"
-	 *   when                CDATA #IMPLIED
-	 * >
-	 */
-	public static final String SUBITEM = "subitem"; //$NON-NLS-1$
-	public static final String LABEL = "label"; //$NON-NLS-1$
-	public static final String WHEN = "when"; //$NON-NLS-1$
-
-	/*
-	 * <!ELEMENT conditional-subitem (subitem+)>
-	 * <!ATTLIST conditional-subitem
-	 *   condition               CDATA #REQUIRED
-	 * >
-	 */
-	public static final String CONDITIONALSUBITEM = "conditional-subitem"; //$NON-NLS-1$
-	public static final String CONDITION = "condition"; //$NON-NLS-1$
-	
-	/*
-	 * <!ELEMENT repeated-subitem (subitem)>
-	 * <!ATTLIST repeated-subitem
-	 *   values               CDATA #REQUIRED
-	 * >
-	 */
-	public static final String REPEATEDSUBITM = "repeated-subitem"; //$NON-NLS-1$
-	public static final String VALUES = "values"; //$NON-NLS-1$
-
-	/*
-	 * <!ELEMENT action EMPTY>
-	 * <!ATTLIST action
-	 *   class               CDATA #REQUIRED
-	 *   pluginId            CDATA #REQUIRED
-	 *   param1              CDATA #IMPLIED
-	 *   ...
-	 *   param9              CDATA #IMPLIED
-	 *   confirm             ("true" | "false") "false"
-	 *   when                CDATA #IMPLIED
-	 * >
-	 */
-	public static final String ACTION = "action"; //$NON-NLS-1$
-	public static final String CLASS = "class"; //$NON-NLS-1$
-	public static final String PLUGINID = "pluginId"; //$NON-NLS-1$
-	public static final String PARAM = "param"; //$NON-NLS-1$
-	public static final String CONFIRM = "confirm"; //$NON-NLS-1$
-
-	/*
-	 * <!ELEMENT perform-when (action+)>
-	 * <!ATTLIST perform-when
-	 *   condition               CDATA #REQUIRED
-	 * >
-	 */
-	public static final String PERFORMWHEN = "perform-when"; //$NON-NLS-1$
-	
-	// Miscellaneous tags
-	public static final String COMMAND = "command"; //$NON-NLS-1$
-	public static final String SERIALIZATION = "serialization"; //$NON-NLS-1$
-	public static final String RETURNS = "returns"; //$NON-NLS-1$
-	public static final String ON_COMPLETION = "onCompletion"; //$NON-NLS-1$
-	public static final String CONTENT_URL = "contentURL"; //$NON-NLS-1$
-
-	// Constants for re-escaping XML characters
-	public static final String LESS_THAN = "&lt;"; //$NON-NLS-1$
-	public static final String GREATER_THAN = "&gt;"; //$NON-NLS-1$
-	public static final String AMPERSAND = "&amp;"; //$NON-NLS-1$
-	public static final String APOSTROPHE = "&apos;"; //$NON-NLS-1$
-	public static final String QUOTE = "&quot;"; //$NON-NLS-1$
-	
-
-	// Cheat Sheet state data key
-	public static final String ID = "id";//$NON-NLS-1$
-	public static final String MANAGERDATA = "CSMData";//$NON-NLS-1$
-	public static final String MANAGERDATAKEY = "key"; //$NON-NLS-1$
-	public static final String MANAGERDATAVALUE = "value"; //$NON-NLS-1$
-	public static final String COMPLETED ="completed"; //$NON-NLS-1$
-	public static final String CURRENT = "current"; //$NON-NLS-1$
-	public static final String SUBITEMCOMPLETED ="subitemcompleted"; //$NON-NLS-1$
-	public static final String SUBITEMSKIPPED ="subitemskipped"; //$NON-NLS-1$
-	public static final String EXPANDED = "expanded"; //$NON-NLS-1$
-	public static final String EXPANDRESTORE = "expandRestore"; //$NON-NLS-1$
-	public static final String BUTTON = "button"; //$NON-NLS-1$
-	public static final String BUTTONSTATE = "buttonstate"; //$NON-NLS-1$
-	public static final String PATH = "path"; //$NON-NLS-1$
-	public static final String CHEATSHEET_STATE_REFERENCE = "CHEATSHEET_STATE_REFERENCE"; //$NON-NLS-1$
-	public static final String CHEATSHEET_STATE = "cheatsheetState"; //$NON-NLS-1$
-	
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IPerformWhenItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IPerformWhenItem.java
deleted file mode 100644
index 6bf4464..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/IPerformWhenItem.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-public interface IPerformWhenItem {
-
-	/**
-	 * @return Returns the performWhen.
-	 */
-	public PerformWhen getPerformWhen();
-	
-	/**
-	 * @param performWhen The performWhen to set.
-	 */
-	public void setPerformWhen(PerformWhen performWhen);
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java
deleted file mode 100644
index b9c9842..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.util.ArrayList;
-
-public interface ISubItemItem {
-
-	/**
-	 * @param subItem the SubItem to add.
-	 */
-	public void addSubItem(AbstractSubItem subItem);
-
-	/**
-	 * @return Returns the subItems.
-	 */
-	public ArrayList getSubItems();
-	
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Intro.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Intro.java
deleted file mode 100644
index a11bdb8..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Intro.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-public class Intro {
-	private String contextId;
-	private String href;
-	private String description;
-
-	/**
-	 * Constructor for Intro.
-	 */
-	public Intro() {
-		super();
-	}
-	
-	public Intro(String description, String href, String contextId) {
-		super();
-		this.description = description;
-		this.href = href;
-		this.contextId = contextId;
-	}
-	
-	/**
-	 * Returns the contenxtId.
-	 * @return String
-	 */
-	public String getContextId() {
-		return contextId;
-	}
-
-	/**
-	 * Returns the helpLink.
-	 * @return String
-	 */
-	public String getHref() {
-		return href;
-	}
-
-	/**
-	 * Returns the description.
-	 * @return String
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Sets the contextId.
-	 * @param contextId The contextId to set
-	 */
-	public void setContextId(String contextId) {
-		this.contextId = contextId;
-	}
-
-	/**
-	 * Sets the helpLink.
-	 * @param helpLink The helpLink to set
-	 */
-	public void setHref(String helpLink) {
-		this.href = helpLink;
-	}
-
-	/**
-	 * Sets the description.
-	 * @param description The description to set
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java
deleted file mode 100644
index 7543a35..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-public class Item extends Intro implements IExecutableItem, IPerformWhenItem, ISubItemItem {
-	private String title;
-	private boolean skip;
-	private boolean dialog;
-	private ArrayList itemExtensions;
-	
-	private AbstractExecutable executable;
-	private PerformWhen performWhen;
-	
-	private ArrayList subItems;
-	private String completionMessage;
-
-	/**
-	 * Constructor for Item.
-	 */
-	public Item() {
-		super();
-	}
-	
-	public Item(String title, String description, String href, String contextId, boolean skip, boolean dialog) {
-		super(description, href, contextId);
-		this.title = title;
-		this.skip = skip;
-		this.dialog = dialog;
-	}
-	
-	/**
-	 * Returns the title.
-	 * @return String
-	 */
-	public String getTitle() {
-		return this.title;
-	}
-
-	/**
-	 * Returns whether this item is dynamic. An item is dynamic if it
-	 * has performWhen condition, conditionalSubItems or repeatedSubItems.
-	 *
-	 * @return <code>true</code> if this item is dynamic, and
-	 *  <code>false</code> for normal items
-	 */
-	public boolean isDynamic() {
-		if( performWhen != null || hasDynamicSubItems()) {
-			return true;
-		}
-
-		return false;
-	}
-
-	/**
-	 * Returns whether or not this item requires opening a dialog.
-	 * @return whether the item requires opening a dialog
-	 */
-	public boolean isDialog() {
-		return this.dialog;
-	}
-	
-	/**
-	 * Returns the skip.
-	 * @return boolean
-	 */
-	public boolean isSkip() {
-		return this.skip;
-	}
-
-	/**
-	 * Sets whether or not this item requires opening a dialog.
-	 * @param dialog whether the item requires opening a dialog
-	 */
-	public void setDialog(boolean dialog) {
-		this.dialog = dialog;
-	}
-	
-	/**
-	 * @param skip The skip to set.
-	 */
-	public void setSkip(boolean skip) {
-		this.skip = skip;
-	}
-
-	/**
-	 * Sets the title.
-	 * @param title The title to set
-	 */
-	public void setTitle(String title) {
-		this.title = title;
-	}
-
-	/**
-	 * Sets the item extensions for this item.
-	 * @param exts the extensions to set
-	 */
-	public void setItemExtensions(ArrayList exts){
-		this.itemExtensions = exts;	
-	}
-	
-	/**
-	 * Returns the item extensions, if any, for this item,.
-	 * @return list of the extensions or <code>null</code>
-	 */
-	public ArrayList getItemExtensions(){
-		return itemExtensions;
-	}
-	
-	/**
-	 * @return Returns the performWhen.
-	 */
-	public PerformWhen getPerformWhen() {
-		return performWhen;
-	}
-	
-	/**
-	 * @param performWhen The performWhen to set.
-	 */
-	public void setPerformWhen(PerformWhen performWhen) {
-		this.performWhen = performWhen;
-	}
-	
-	/**
-	 * @param subItem the SubItem to add.
-	 */
-	public void addSubItem(AbstractSubItem subItem) {
-		if(subItems == null) {
-			subItems = new ArrayList();
-		}
-		subItems.add(subItem);
-	}
-
-	/**
-	 * @return Returns the subItems.
-	 */
-	public ArrayList getSubItems() {
-		return subItems;
-	}
-	
-	private boolean hasDynamicSubItems() {
-		if( subItems != null) {
-			for (Iterator iter = subItems.iterator(); iter.hasNext();) {
-				AbstractSubItem subItem = (AbstractSubItem)iter.next();
-				if( subItem instanceof RepeatedSubItem ||
-					subItem instanceof ConditionalSubItem ||
-					subItem instanceof SubItem && ((SubItem)subItem).getPerformWhen() != null ) {
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	public AbstractExecutable getExecutable() {
-		return executable;
-	}
-
-	public void setExecutable(AbstractExecutable executable) {
-		this.executable = executable;	
-	}
-
-	public void setCompletionMessage(String message) {
-		this.completionMessage = message;	
-	}
-	
-	public String getCompletionMessage() {
-		return completionMessage;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java
deleted file mode 100644
index 1cc4bdd..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-
-public class PerformWhen implements IExecutableItem  {
-	private String condition;
-	private ArrayList executables;
-	private AbstractExecutable selectedExecutable;
-
-	/**
-	 * Constructor for PerformWhen.
-	 */
-	public PerformWhen() {
-		super();
-	}
-
-	public PerformWhen(String condition) {
-		super();
-		this.condition = condition;
-	}
-	
-	/**
-	 * Returns the condition.
-	 * @return String
-	 */
-	public String getCondition() {
-		return condition;
-	}
-
-	/**
-	 * Sets the condition.
-	 * @param newCondition The new condition to set
-	 */
-	public void setCondition(String newCondition) {
-		this.condition = newCondition;
-	}
-
-	/**
-	 * @return Returns the executables.
-	 */
-	public ArrayList getExecutables() {
-		return executables;
-	}
-	
-	/**
-	 * @param executable the AbstractExecutable to add.
-	 */
-	public void addExecutable(AbstractExecutable executable) {
-		if(executables == null) {
-			executables = new ArrayList();
-		}
-		executables.add(executable);
-	}
-
-
-	/**
-	 * This method always returns <code>null</code>, it is only here aid in parsing.
-	 * @return Returns the executables.
-	 */
-	public AbstractExecutable getExecutable() {
-		return null;
-	}
-
-	/**
-	 * Delegate to the addAbstractExecutable metod.
-	 * @param executable the AbstractExecutable to add.
-	 */
-	public void setExecutable(AbstractExecutable executable) {
-		addExecutable(executable);
-	}
-
-	public AbstractExecutable getSelectedExecutable() {
-		return selectedExecutable;
-	}
-
-	public void setSelectedExecutable(CheatSheetManager csm) {
-		String conditionValue = csm.getVariableData(condition);
-
-		for (Iterator iter = executables.iterator(); iter.hasNext();) {
-			AbstractExecutable executable = (AbstractExecutable) iter.next();
-			if(executable.getWhen() != null && executable.getWhen().equals(conditionValue)) {
-				selectedExecutable = executable;
-				break;
-			}
-		}
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java
deleted file mode 100644
index ad9cb27..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-import java.util.ArrayList;
-
-public class RepeatedSubItem extends AbstractSubItem implements ISubItemItem {
-	private String values;
-	private ArrayList subItems;
-
-	/**
-	 * Constructor for RepeatedSubItem.
-	 */
-	public RepeatedSubItem() {
-		super();
-	}
-	
-	public RepeatedSubItem(String values) {
-		super();
-		this.values = values;
-	}
-	
-	/**
-	 * Returns the values.
-	 * @return String
-	 */
-	public String getValues() {
-		return values;
-	}
-
-	/**
-	 * Sets the values.
-	 * @param newValues The new values to set
-	 */
-	public void setValues(String newValues) {
-		this.values = newValues;
-	}
-
-	/**
-	 * @param subItem the SubItem to add.
-	 */
-	public void addSubItem(AbstractSubItem subItem) {
-		if(subItems == null) {
-			subItems = new ArrayList();
-		}
-		subItems.add(subItem);
-	}
-
-	/**
-	 * Returns a list which will always only contain at most 1 entry.
-	 * @return Returns the subItems.
-	 */
-	public ArrayList getSubItems() {
-		return subItems;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/SubItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/SubItem.java
deleted file mode 100644
index 7e6b6c0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/SubItem.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.data;
-
-public class SubItem extends AbstractSubItem implements IExecutableItem, IPerformWhenItem {
-	
-	private String label;
-	private boolean skip;
-	private String when;
-
-	private AbstractExecutable executable;
-	private PerformWhen performWhen;
-
-	public SubItem() {
-		super();
-	}
-
-	/**
-	 * This method returns the label to be shown for the sub item.
-	 * @return the label
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * This method sets the label that will be shown for the sub item.
-	 * @param label the label to be shown
-	 */
-	public void setLabel(String string) {
-		label = string;
-	}
-
-	/**
-	 * This method returns the skip state for the sub item.
-	 * @return the label
-	 */
-	public boolean isSkip() {
-		return skip;
-	}
-
-	/**
-	 * This method sets whether the sub item can be skipped.
-	 * @param value the new value for skip
-	 */
-	public void setSkip(boolean value) {
-		skip = value;
-	}
-
-	/**
-	 * This method returns the when expression for the sub item.
-	 * @return the label
-	 */
-	public String getWhen() {
-		return when;
-	}
-
-	/**
-	 * This method sets the when expression for the sub item.
-	 * @param string the when expression to set
-	 */
-	public void setWhen(String string) {
-		when = string;
-	}
-
-	/**
-	 * @return Returns the action.
-	 */
-	public AbstractExecutable getExecutable() {
-		return executable;
-	}
-	
-	/**
-	 * @param Executable The Executable to set.
-	 */
-	public void setExecutable(AbstractExecutable executable) {
-		this.executable = executable;
-	}
-	
-	/**
-	 * @return Returns the performWhen.
-	 */
-	public PerformWhen getPerformWhen() {
-		return performWhen;
-	}
-	
-	/**
-	 * @param performWhen The performWhen to set.
-	 */
-	public void setPerformWhen(PerformWhen performWhen) {
-		this.performWhen = performWhen;
-	}
-}
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
deleted file mode 100644
index f2315ae..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
+++ /dev/null
@@ -1,632 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.dialogs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.ITriggerPoint;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetCollectionElement;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetCollectionSorter;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.model.BaseWorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-/**
- * Dialog to allow the user to select a cheat sheet from a list.
- */
-public class CheatSheetCategoryBasedSelectionDialog extends SelectionDialog
-		implements ISelectionChangedListener {
-	private IDialogSettings settings;
-
-	private CheatSheetCollectionElement cheatsheetCategories;
-
-	private CheatSheetElement currentSelection;
-
-	private TreeViewer treeViewer;
-
-	private Text desc;
-
-	private Button showAllButton;
-	
-	private Button selectRegisteredRadio;
-	
-	private Button selectFileRadio;
-	
-	private Text selectFileText;
-
-	private ActivityViewerFilter activityViewerFilter = new ActivityViewerFilter();
-
-	private boolean okButtonState;
-
-	// id constants
-
-	private final static String STORE_EXPANDED_CATEGORIES_ID = "CheatSheetCategoryBasedSelectionDialog.STORE_EXPANDED_CATEGORIES_ID"; //$NON-NLS-1$
-
-	private final static String STORE_SELECTED_CHEATSHEET_ID = "CheatSheetCategoryBasedSelectionDialog.STORE_SELECTED_CHEATSHEET_ID"; //$NON-NLS-1$
-	
-	private final static String STORE_RADIO_SETTING = "CheatSheetCategoryBasedSelectionDialog.STORE_RADIO_SETTING"; //$NON-NLS-1$
-	
-	private final static String STORE_CHEATSHEET_FILENAME = "CheatSheetCategoryBasedSelectionDialog.STORE_CHEATSHEET_FILENAME"; //$NON-NLS-1$
-
-	private Button browseFileButton;
-
-	private static class ActivityViewerFilter extends ViewerFilter {
-		private boolean hasEncounteredFilteredItem = false;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public boolean select(Viewer viewer, Object parentElement,
-				Object element) {
-			if (WorkbenchActivityHelper.filterItem(element)) {
-				setHasEncounteredFilteredItem(true);
-				return false;
-			}
-			return true;
-		}
-
-		/**
-		 * @return returns whether the filter has filtered an item
-		 */
-		public boolean getHasEncounteredFilteredItem() {
-			return hasEncounteredFilteredItem;
-		}
-
-		/**
-		 * @param sets
-		 *            whether the filter has filtered an item
-		 */
-		public void setHasEncounteredFilteredItem(
-				boolean hasEncounteredFilteredItem) {
-			this.hasEncounteredFilteredItem = hasEncounteredFilteredItem;
-		}
-	}
-
-	private class CheatsheetLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			if (obj instanceof WorkbenchAdapter) {
-				return ((WorkbenchAdapter) obj).getLabel(null);
-			}
-			return super.getText(obj);
-		}
-
-		public Image getImage(Object obj) {
-			if (obj instanceof CheatSheetElement) {
-				CheatSheetElement element = (CheatSheetElement)obj;
-				if (element.isComposite()) {
-					return CheatSheetPlugin.getPlugin().getImageRegistry().get(
-							ICheatSheetResource.COMPOSITE_OBJ);
-				}
-				return CheatSheetPlugin.getPlugin().getImageRegistry().get(
-						ICheatSheetResource.CHEATSHEET_OBJ);
-			}
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJ_FOLDER);
-		}
-	}
-
-	/**
-	 * Creates an instance of this dialog to display the a list of cheat sheets.
-	 * 
-	 * @param shell
-	 *            the parent shell
-	 */
-	public CheatSheetCategoryBasedSelectionDialog(Shell shell,
-			CheatSheetCollectionElement cheatsheetCategories) {
-		super(shell);
-
-		this.cheatsheetCategories = cheatsheetCategories;
-
-		setTitle(Messages.CHEAT_SHEET_SELECTION_DIALOG_TITLE);
-		setMessage(Messages.CHEAT_SHEET_SELECTION_DIALOG_MSG);
-
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Window.
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_VIEW));
-		//TODO need to add help context id
-		// WorkbenchHelp.setHelp(newShell,
-		// IHelpContextIds.WELCOME_PAGE_SELECTION_DIALOG);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		super.createButtonsForButtonBar(parent);
-
-		enableOKButton(okButtonState);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		IDialogSettings workbenchSettings = CheatSheetPlugin.getPlugin()
-				.getDialogSettings();
-		IDialogSettings dialogSettings = workbenchSettings
-				.getSection("CheatSheetCategoryBasedSelectionDialog");//$NON-NLS-1$
-		if (dialogSettings == null)
-			dialogSettings = workbenchSettings
-					.addNewSection("CheatSheetCategoryBasedSelectionDialog");//$NON-NLS-1$
-
-		setDialogSettings(dialogSettings);
-
-		// top level group
-		Composite outerContainer = (Composite) super.createDialogArea(parent);
-
-		GridLayout gridLayout = new GridLayout();
-		outerContainer.setLayout(gridLayout);
-		outerContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// Create label
-		createMessageArea(outerContainer);
-        
-		// Create radio button
-		selectRegisteredRadio = new Button(outerContainer, SWT.RADIO);
-		selectRegisteredRadio.setText(Messages.SELECTION_DIALOG_OPEN_REGISTERED);
-		
-		// category tree pane...create SWT tree directly to
-		// get single selection mode instead of multi selection.
-		Tree tree = new Tree(outerContainer, SWT.SINGLE | SWT.H_SCROLL
-				| SWT.V_SCROLL | SWT.BORDER);
-		treeViewer = new TreeViewer(tree);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = 300;
-		data.heightHint = 220;
-		treeViewer.getTree().setLayoutData(data);
-		treeViewer.setContentProvider(getCheatSheetProvider());
-		treeViewer.setLabelProvider(new CheatsheetLabelProvider());
-		treeViewer.setSorter(CheatSheetCollectionSorter.INSTANCE);
-		treeViewer.addFilter(activityViewerFilter);
-		treeViewer.addSelectionChangedListener(this);
-		treeViewer.setInput(cheatsheetCategories);
-
-		desc = new Text(outerContainer, SWT.MULTI | SWT.WRAP);
-		desc.setEditable(false);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = 100;
-		data.heightHint = 40;
-		desc.setLayoutData(data);
-
-		if (activityViewerFilter.getHasEncounteredFilteredItem())
-			createShowAllButton(outerContainer);
-
-		// Add double-click listener
-		treeViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				IStructuredSelection selection = (IStructuredSelection)event.getSelection();
-				Object obj = selection.getFirstElement();
-				if (obj instanceof CheatSheetCollectionElement) {
-					boolean state = treeViewer.getExpandedState(obj);
-					treeViewer.setExpandedState(obj, !state);
-				}
-				else {
-					okPressed();
-				}
-			}
-		});
-
-		
-        // Create radio button
-		selectFileRadio = new Button(outerContainer, SWT.RADIO);
-		selectFileRadio.setText(Messages.SELECTION_DIALOG_OPEN_FROM_FILE);
-		
-		Composite selectFileComposite = new Composite(outerContainer, SWT.NULL);
-		GridLayout selectFileLayout = new GridLayout();
-		selectFileLayout.numColumns = 2;
-		selectFileComposite.setLayout(selectFileLayout);
-		GridData sfCompositeData = new GridData(GridData.FILL_HORIZONTAL);
-		sfCompositeData.widthHint = 300;
-		selectFileComposite.setLayoutData(sfCompositeData);
-		selectFileText = new Text(selectFileComposite, SWT.BORDER);
-		GridData sfTextData = new GridData(GridData.FILL_HORIZONTAL);
-		selectFileText.setLayoutData(sfTextData);
-		browseFileButton = new Button(selectFileComposite, SWT.NULL);
-		browseFileButton.setText(Messages.SELECTION_DIALOG_FILEPICKER_BROWSE);
-		
-		restoreWidgetValues();
-		restoreFileSettings();
-
-		if (!treeViewer.getSelection().isEmpty())
-			// we only set focus if a selection was restored
-			treeViewer.getTree().setFocus();
-
-		Dialog.applyDialogFont(outerContainer);
-		selectFileText.addModifyListener(new FileTextListener());
-		browseFileButton.addSelectionListener(new BrowseListener());
-		selectRegisteredRadio.addSelectionListener(new RadioSelectionListener());
-		checkRadioButtons();
-		return outerContainer;
-	}
-	
-	private class RadioSelectionListener implements SelectionListener {
-
-		public void widgetSelected(SelectionEvent e) {
-			checkRadioButtons();			
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			// do nothing
-		}
-	}
-	
-	private class BrowseListener implements SelectionListener {
-
-		public void widgetSelected(SelectionEvent e) {
-			// Launch a file dialog to select a cheatsheet file
-			FileDialog fileDlg = new FileDialog(getShell());
-			fileDlg.setFilterExtensions(new String[]{"*.xml"}); //$NON-NLS-1$
-			fileDlg.setText(Messages.SELECTION_DIALOG_FILEPICKER_TITLE);
-			fileDlg.open();
-			String filename = fileDlg.getFileName();
-			if (filename != null) {				
-				IPath folderPath = new Path(fileDlg.getFilterPath());
-				IPath filePath = folderPath.append(filename);
-				selectFileText.setText(filePath.toOSString());
-				checkRadioButtons();
-			}
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			// do nothing			
-		}
-		
-	}
-	
-	private class FileTextListener implements ModifyListener {
-
-		public void modifyText(ModifyEvent e) {
-			setOkButton();
-		}	
-	}
-
-	/*
-	 * Check the state of the Radio buttons and disable those parts of teh UI that don't apply
-	 */
-	private void checkRadioButtons() {
-		selectFileText.setEnabled(selectFileRadio.getSelection());	
-		browseFileButton.setEnabled(selectFileRadio.getSelection());	
-		treeViewer.getTree().setEnabled(selectRegisteredRadio.getSelection());
-		setOkButton();
-	}
-
-	/**
-	 * Create a show all button in the parent.
-	 * 
-	 * @param parent
-	 *            the parent <code>Composite</code>.
-	 */
-	private void createShowAllButton(Composite parent) {
-		showAllButton = new Button(parent, SWT.CHECK);
-		showAllButton
-				.setText(Messages.CheatSheetCategoryBasedSelectionDialog_showAll);
-		showAllButton.addSelectionListener(new SelectionAdapter() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				if (showAllButton.getSelection()) {
-					treeViewer.resetFilters();
-				} else {
-					treeViewer.addFilter(activityViewerFilter);
-				}
-			}
-		});
-	}
-
-	/**
-	 * Method enableOKButton enables/diables the OK button for the dialog and
-	 * saves the state, allowing the enabling/disabling to occur even if the
-	 * button has not been created yet.
-	 * 
-	 * @param value
-	 */
-	private void enableOKButton(boolean value) {
-		Button button = getButton(IDialogConstants.OK_ID);
-
-		okButtonState = value;
-		if (button != null) {
-			button.setEnabled(value);
-		}
-	}
-
-	/**
-	 * Expands the cheatsheet categories in this page's category viewer that
-	 * were expanded last time this page was used. If a category that was
-	 * previously expanded no longer exists then it is ignored.
-	 */
-	protected CheatSheetCollectionElement expandPreviouslyExpandedCategories() {
-		String[] expandedCategoryPaths = settings
-				.getArray(STORE_EXPANDED_CATEGORIES_ID);
-		List categoriesToExpand = new ArrayList(expandedCategoryPaths.length);
-
-		for (int i = 0; i < expandedCategoryPaths.length; i++) {
-			CheatSheetCollectionElement category = cheatsheetCategories
-					.findChildCollection(new Path(expandedCategoryPaths[i]));
-			if (category != null) // ie.- it still exists
-				categoriesToExpand.add(category);
-		}
-
-		if (!categoriesToExpand.isEmpty())
-			treeViewer.setExpandedElements(categoriesToExpand.toArray());
-		return categoriesToExpand.isEmpty() ? null
-				: (CheatSheetCollectionElement) categoriesToExpand
-						.get(categoriesToExpand.size() - 1);
-	}
-
-	/**
-	 * Returns the content provider for this page.
-	 */
-	protected IContentProvider getCheatSheetProvider() {
-		// want to get the cheatsheets of the collection element
-		return new BaseWorkbenchContentProvider() {
-			public Object[] getChildren(Object o) {
-				if (o instanceof CheatSheetCollectionElement) {
-					Object[] cheatsheets = ((CheatSheetCollectionElement) o)
-							.getCheatSheets();
-					if (cheatsheets.length > 0)
-						return cheatsheets;
-				}
-				return super.getChildren(o);
-			}
-		};
-	}
-
-	/**
-	 * Returns the single selected object contained in the passed
-	 * selectionEvent, or <code>null</code> if the selectionEvent contains
-	 * either 0 or 2+ selected objects.
-	 */
-	protected Object getSingleSelection(ISelection selection) {
-		IStructuredSelection ssel = (IStructuredSelection) selection;
-		return ssel.size() == 1 ? ssel.getFirstElement() : null;
-	}
-
-	/**
-	 * The user selected either new cheatsheet category(s) or cheatsheet
-	 * element(s). Proceed accordingly.
-	 * 
-	 * @param newSelection
-	 *            ISelection
-	 */
-	public void selectionChanged(SelectionChangedEvent selectionEvent) {
-		Object obj = getSingleSelection(selectionEvent.getSelection());
-		if (obj instanceof CheatSheetCollectionElement) {
-			currentSelection = null;
-		} else {
-			currentSelection = (CheatSheetElement) obj;
-		}
-
-		if (currentSelection != null) {
-			desc.setText(currentSelection.getDescription());
-		} else {
-			desc.setText(""); //$NON-NLS-1$
-		}
-		setOkButton();
-	}
-	
-	private void setOkButton() {
-		if (selectRegisteredRadio.getSelection()) {
-			enableOKButton(currentSelection != null);
-		} else {
-			enableOKButton(selectFileText.getText().length() > 0);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void okPressed() {
-		if (selectFileRadio.getSelection()) {
-			setResultFromFile();
-		} else {
-			setResultFromTree();
-		}
-
-		// save our selection state
-		saveWidgetValues();
-
-		super.okPressed();
-	}
-
-	private void setResultFromTree() {
-		if (currentSelection != null) {
-			ArrayList result = new ArrayList(1);
-			ITriggerPoint triggerPoint = PlatformUI.getWorkbench()
-					.getActivitySupport().getTriggerPointManager()
-					.getTriggerPoint(ICheatSheetResource.TRIGGER_POINT_ID);
-			if (WorkbenchActivityHelper.allowUseOf(triggerPoint,
-					currentSelection)) {
-				result.add(currentSelection);
-				setResult(result);
-			}
-		}
-	}
-
-	private void setResultFromFile() {
-		// Use the filename without extension as the id of this cheatsheet
-		IPath filePath = new Path(selectFileText.getText());
-		String id = filePath.lastSegment();
-		int extensionIndex = id.indexOf('.');
-		if (extensionIndex > 0) {
-		    id = id.substring(0, extensionIndex);
-		}
-		// Use the id as the name
-		CheatSheetElement element = new CheatSheetElement(id);
-		element.setID(id);
-		element.setContentFile(selectFileText.getText());
-		setSelectionResult(new Object[]{element});
-	}
-
-	/**
-	 * Set self's widgets to the values that they held last time this page was
-	 * open
-	 * 
-	 */
-	protected void restoreWidgetValues() {
-		String[] expandedCategoryPaths = settings
-				.getArray(STORE_EXPANDED_CATEGORIES_ID);
-		if (expandedCategoryPaths == null)
-			return; // no stored values
-
-		CheatSheetCollectionElement category = expandPreviouslyExpandedCategories();
-		if (category != null)
-			selectPreviouslySelectedCheatSheet(category);
-	}
-	
-	/**
-	 * Restores the state of the radio button and file name fields
-	 */
-	private void restoreFileSettings() {
-	    final boolean isFileSelected = settings.getBoolean(STORE_RADIO_SETTING);
-		selectFileRadio.setSelection(isFileSelected);	
-		selectRegisteredRadio.setSelection(!isFileSelected);	
-		final String fileName = settings.get(STORE_CHEATSHEET_FILENAME);
-		if (fileName != null) {
-			selectFileText.setText(fileName);	
-		}
-	}
-
-	/**
-	 * Store the current values of self's widgets so that they can be restored
-	 * in the next instance of self
-	 * 
-	 */
-	public void saveWidgetValues() {
-		storeExpandedCategories();
-		storeSelectedCheatSheet();
-		storeFileSettings();
-	}
-
-	/**
-	 * Selects the cheatsheet category and cheatsheet in this page that were
-	 * selected last time this page was used. If a category or cheatsheet that
-	 * was previously selected no longer exists then it is ignored.
-	 */
-	protected void selectPreviouslySelectedCheatSheet(
-			CheatSheetCollectionElement category) {
-		String cheatsheetId = settings.get(STORE_SELECTED_CHEATSHEET_ID);
-		if (cheatsheetId == null)
-			return;
-		CheatSheetElement cheatsheet = category.findCheatSheet(cheatsheetId,
-				false);
-		if (cheatsheet == null)
-			return; // cheatsheet no longer exists, or has moved
-
-		treeViewer.setSelection(new StructuredSelection(cheatsheet));
-	}
-
-	/**
-	 * Set the dialog store to use for widget value storage and retrieval
-	 * 
-	 * @param settings
-	 *            IDialogSettings
-	 */
-	public void setDialogSettings(IDialogSettings settings) {
-		this.settings = settings;
-	}
-
-	/**
-	 * Stores the collection of currently-expanded categories in this page's
-	 * dialog store, in order to recreate this page's state in the next instance
-	 * of this page.
-	 */
-	protected void storeExpandedCategories() {
-		Object[] expandedElements = treeViewer.getExpandedElements();
-		String[] expandedElementPaths = new String[expandedElements.length];
-		for (int i = 0; i < expandedElements.length; ++i) {
-			expandedElementPaths[i] = ((CheatSheetCollectionElement) expandedElements[i])
-					.getPath().toString();
-		}
-		settings.put(STORE_EXPANDED_CATEGORIES_ID, expandedElementPaths);
-	}
-
-	/**
-	 * Stores the currently-selected category and cheatsheet in this page's
-	 * dialog store, in order to recreate this page's state in the next instance
-	 * of this page.
-	 */
-	protected void storeSelectedCheatSheet() {
-		CheatSheetElement element = null;
-
-		Object el = getSingleSelection(treeViewer.getSelection());
-		if (el == null)
-			return;
-
-		if (el instanceof CheatSheetElement) {
-			element = (CheatSheetElement) el;
-		} else
-			return;
-
-		settings.put(STORE_SELECTED_CHEATSHEET_ID, element.getID());
-	}
-	
-	/**
-	 * Stores the state of the radio button and file name fields
-	 */
-	private void storeFileSettings() {
-		settings.put(STORE_RADIO_SETTING, selectFileRadio.getSelection());	
-		settings.put(STORE_CHEATSHEET_FILENAME, selectFileText.getText());	
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/DialogIntegerValueConverter.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/DialogIntegerValueConverter.java
deleted file mode 100644
index e7f331e..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/DialogIntegerValueConverter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.handlers;
-
-import org.eclipse.core.commands.AbstractParameterValueConverter;
-import org.eclipse.core.commands.ParameterValueConversionException;
-
-/**
- * A command parameter value converter to convert between Integers and their
- * String representations for use in the open dialog commands.
- * 
- * @since 3.2
- */
-public class DialogIntegerValueConverter extends
-		AbstractParameterValueConverter {
-
-	public Object convertToObject(String parameterValue)
-			throws ParameterValueConversionException {
-
-		try {
-			int i = Integer.parseInt(parameterValue);
-			return new Integer(i);
-		} catch (NumberFormatException ex) {
-			throw new ParameterValueConversionException(
-					"error converting to integer: " + parameterValue); //$NON-NLS-1$
-		}
-	}
-
-	public String convertToString(Object parameterValue)
-			throws ParameterValueConversionException {
-
-		if (!(parameterValue instanceof Integer)) {
-			throw new ParameterValueConversionException(
-					"value for conversion must be an Integer"); //$NON-NLS-1$
-		}
-
-		Integer i = (Integer) parameterValue;
-		return Integer.toString(i.intValue());
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetHandler.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetHandler.java
deleted file mode 100644
index 8d022f8..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.cheatsheets.OpenCheatSheetAction;
-import org.eclipse.ui.internal.cheatsheets.actions.CheatSheetCategoryBasedSelectionAction;
-
-/**
- * Opens the cheatsheet identified by the parameter, or if no parameter is given
- * opens the dialog that allows the user to choose a cheatsheet.
- * 
- * @since 3.2
- */
-public class OpenCheatSheetHandler extends AbstractHandler {
-
-	private static final String PARAM_ID_CHEAT_SHEET_ID = "cheatSheetId"; //$NON-NLS-1$
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		String cheatSheetId = event.getParameter(PARAM_ID_CHEAT_SHEET_ID);
-
-		if (cheatSheetId == null) {
-			CheatSheetCategoryBasedSelectionAction action = new CheatSheetCategoryBasedSelectionAction();
-			action.run();
-		} else {
-			OpenCheatSheetAction action = new OpenCheatSheetAction(cheatSheetId);
-			action.run();
-		}
-
-		return null;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetURLHandler.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetURLHandler.java
deleted file mode 100644
index 42b3ac0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenCheatSheetURLHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.handlers;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.cheatsheets.OpenCheatSheetAction;
-
-/**
- * Opens a cheatsheet given an id, name and a URL to a cheat sheet content file.
- * 
- * @since 3.2
- */
-public class OpenCheatSheetURLHandler extends AbstractHandler {
-
-	private static final String PARAM_ID_CHEAT_SHEET_ID = "cheatSheetId"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_NAME = "name"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_URL = "url"; //$NON-NLS-1$
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		String cheatSheetId = event.getParameter(PARAM_ID_CHEAT_SHEET_ID);
-		if (cheatSheetId == null) {
-			throw new ExecutionException("missing cheatSheetId parameter"); //$NON-NLS-1$
-		}
-
-		String name = event.getParameter(PARAM_ID_NAME);
-		if (name == null) {
-			throw new ExecutionException("missing name parameter"); //$NON-NLS-1$
-		}
-
-		String urlText = event.getParameter(PARAM_ID_URL);
-		if (urlText == null) {
-			throw new ExecutionException("missing url parameter"); //$NON-NLS-1$
-		}
-
-		URL url;
-		try {
-			url = new URL(urlText);
-		} catch (MalformedURLException ex) {
-			throw new ExecutionException("malformed url: " + urlText, ex); //$NON-NLS-1$
-		}
-
-		OpenCheatSheetAction action = new OpenCheatSheetAction(cheatSheetId,
-				name, url);
-		action.run();
-
-		return null;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenInputDialogHandler.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenInputDialogHandler.java
deleted file mode 100644
index f0bbc63..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenInputDialogHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A command handler to open an <code>InputDialog</code> and return the
- * result.
- * 
- * @since 3.2
- */
-public class OpenInputDialogHandler extends AbstractHandler {
-
-	private static final String PARAM_ID_TITLE = "title"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_MESSAGE = "message"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_INITIAL_VALUE = "initialValue"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_CANCEL_RETURNS = "cancelReturns"; //$NON-NLS-1$
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		String title = event.getParameter(PARAM_ID_TITLE);
-		String message = event.getParameter(PARAM_ID_MESSAGE);
-		String initialValue = event.getParameter(PARAM_ID_INITIAL_VALUE);
-
-		IWorkbenchWindow activeWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		Shell shell = (activeWindow != null) ? activeWindow.getShell() : null;
-
-		InputDialog dialog = new InputDialog(shell, title, message,
-				initialValue, null);
-		int returnCode = dialog.open();
-		
-		if (returnCode == Window.CANCEL) {
-			String cancelReturns = event.getParameter(PARAM_ID_CANCEL_RETURNS);
-			if (cancelReturns != null)
-				return cancelReturns;
-			else
-				throw new ExecutionException("dialog canceled"); //$NON-NLS-1$
-		}
-		
-		return dialog.getValue();
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java
deleted file mode 100644
index 6dc7cd7..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.handlers;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A command handler to open a <code>MessageDialog</code> and return the
- * result.
- * 
- * @since 3.2
- */
-public class OpenMessageDialogHandler extends AbstractHandler {
-
-	private static final String PARAM_ID_TITLE = "title"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_MESSAGE = "message"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_IMAGE_TYPE = "imageType"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_DEFAULT_INDEX = "defaultIndex"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_BUTTON_LABEL_PREFIX = "buttonLabel"; //$NON-NLS-1$
-
-	private static final int BUTTON_LABEL_COUNT = 4;
-	
-	private static final String PARAM_ID_CANCEL_RETURNS = "cancelReturns"; //$NON-NLS-1$
-
-	private static final int CANCEL_RETURN_CODE = -1;
-	
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		String title = event.getParameter(PARAM_ID_TITLE);
-		String message = event.getParameter(PARAM_ID_MESSAGE);
-
-		int imageType = MessageDialog.NONE;
-		if (event.getParameter(PARAM_ID_IMAGE_TYPE) != null) {
-			Integer imageTypeInteger = (Integer) event
-					.getObjectParameterForExecution(PARAM_ID_IMAGE_TYPE);
-			imageType = imageTypeInteger.intValue();
-		}
-
-		int defaultValue = 0;
-		if (event.getParameter(PARAM_ID_DEFAULT_INDEX) != null) {
-			Integer defaultValueInteger = (Integer) event
-					.getObjectParameterForExecution(PARAM_ID_DEFAULT_INDEX);
-			defaultValue = defaultValueInteger.intValue();
-		}
-
-		String[] buttonLabels = collectButtonLabels(event);
-
-		IWorkbenchWindow activeWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		Shell shell = (activeWindow != null) ? activeWindow.getShell() : null;
-
-		MessageDialog dialog = new MessageDialog(shell, title, null, message,
-				imageType, buttonLabels, defaultValue);
-		int returnCode = dialog.open();
-		
-		if (returnCode == CANCEL_RETURN_CODE) {
-			String cancelReturns = event.getParameter(PARAM_ID_CANCEL_RETURNS);
-			if (cancelReturns != null)
-				return cancelReturns;
-			else
-				throw new ExecutionException("dialog canceled"); //$NON-NLS-1$
-		}
-		
-		return buttonLabels[returnCode];
-	}
-
-	private String[] collectButtonLabels(ExecutionEvent event) {
-
-		ArrayList buttonLabelList = new ArrayList();
-
-		for (int i = 0; i < BUTTON_LABEL_COUNT; i++) {
-			String buttonLabelParamId = PARAM_ID_BUTTON_LABEL_PREFIX
-					+ Integer.toString(i);
-			String buttonLabel = event.getParameter(buttonLabelParamId);
-
-			if (buttonLabel == null) {
-				break;
-			}
-
-			buttonLabelList.add(buttonLabel);
-		}
-
-		return (String[]) buttonLabelList.toArray(new String[buttonLabelList
-				.size()]);
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java
deleted file mode 100644
index c5b0e31..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * Category provides for hierarchical grouping of elements registered in the
- * registry. One extension normally defines a category, and other reference it
- * via its ID.
- * <p>
- * A category may specify its parent category in order to achieve hierarchy.
- * </p>
- */
-public class Category implements IWorkbenchAdapter, IPluginContribution,
-		IAdaptable {
-	/**
-	 * Name of the miscellaneous category
-	 */
-	public final static String MISC_NAME = Messages.CATEGORY_OTHER;
-
-	/**
-	 */
-	public final static String MISC_ID = "org.eclipse.ui.cheatsheets.otherCategory"; //$NON-NLS-1$
-
-	private String id;
-
-	private String name;
-
-	private String[] parentPath;
-
-	private ArrayList elements;
-
-	private IConfigurationElement configurationElement;
-
-	private String pluginId;
-
-	/**
-	 * Creates an instance of <code>Category</code> as a miscellaneous
-	 * category.
-	 */
-	public Category() {
-		this.id = MISC_ID;
-		this.name = MISC_NAME;
-		this.pluginId = MISC_ID; // TODO: remove hack for bug 55172
-	}
-
-	/**
-	 * Creates an instance of <code>Category</code> with an ID and label.
-	 * 
-	 * @param id
-	 *            the unique identifier for the category
-	 * @param label
-	 *            the presentation label for this category
-	 */
-	public Category(String id, String label) {
-		this.id = id;
-		this.name = label;
-	}
-
-	/**
-	 * Creates an instance of <code>Category</code> using the information from
-	 * the specified configuration element.
-	 * 
-	 * @param configElement
-	 *            the <code>IConfigurationElement<code> containing
-	 * 		the ID, label, and optional parent category path.
-	 * @throws WorkbenchException if the ID or label is <code>null</code
-	 */
-	public Category(IConfigurationElement configElement)
-			throws WorkbenchException {
-		id = configElement.getAttribute("id"); //$NON-NLS-1$
-
-		configurationElement = configElement;
-		if (id == null || getLabel() == null)
-			throw new WorkbenchException("Invalid category: " + id); //$NON-NLS-1$
-	}
-
-	/**
-	 * Add an element to this category.
-	 * 
-	 * @param element
-	 *            the element to add
-	 */
-	public void addElement(Object element) {
-		if (elements == null)
-			elements = new ArrayList(5);
-		elements.add(element);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAdaptable.
-	 */
-	public Object getAdapter(Class adapter) {
-		if (adapter == IWorkbenchAdapter.class)
-			return this;
-		else if (adapter == IConfigurationElement.class)
-			return configurationElement;
-		else
-			return null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWorkbenchAdapter.
-	 */
-	public Object[] getChildren(Object o) {
-		return getElements().toArray();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWorkbenchAdapter.
-	 */
-	public ImageDescriptor getImageDescriptor(Object object) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWorkbenchAdapter.
-	 */
-	public String getLabel(Object o) {
-		return getLabel();
-	}
-
-	/**
-	 * Return the id for this category.
-	 * 
-	 * @return the id
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Return the label for this category.
-	 * 
-	 * @return the label
-	 */
-	public String getLabel() {
-		return configurationElement == null ? name : configurationElement
-				.getAttribute("name"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the parent path for this category.
-	 * 
-	 * @return the parent path
-	 */
-	public String[] getParentPath() {
-		if (parentPath != null)
-			return parentPath;
-
-		String unparsedPath = getRawParentPath();
-		if (unparsedPath != null) {
-			StringTokenizer stok = new StringTokenizer(unparsedPath, "/"); //$NON-NLS-1$
-			parentPath = new String[stok.countTokens()];
-			for (int i = 0; stok.hasMoreTokens(); i++) {
-				parentPath[i] = stok.nextToken();
-			}
-		}
-
-		return parentPath;
-	}
-
-	/**
-	 * Return the unparsed parent path. May be <code>null</code>.
-	 * 
-	 * @return the unparsed parent path or <code>null</code>
-	 */
-	public String getRawParentPath() {
-		return configurationElement == null ? null : configurationElement
-				.getAttribute("parentCategory"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the root path for this category.
-	 * 
-	 * @return the root path
-	 */
-	public String getRootPath() {
-		String[] path = getParentPath();
-		if (path != null && path.length > 0)
-			return path[0];
-
-		return id;
-	}
-
-	/**
-	 * Return the elements contained in this category.
-	 * 
-	 * @return the elements
-	 */
-	public ArrayList getElements() {
-		return elements;
-	}
-
-	/**
-	 * Return whether a given object exists in this category.
-	 * 
-	 * @param o
-	 *            the object to search for
-	 * @return whether the object is in this category
-	 */
-	public boolean hasElement(Object o) {
-		if (elements == null)
-			return false;
-		if (elements.isEmpty())
-			return false;
-		return elements.contains(o);
-	}
-
-	/**
-	 * Return whether this category has child elements.
-	 * 
-	 * @return whether this category has child elements
-	 */
-	public boolean hasElements() {
-		if (elements != null)
-			return !elements.isEmpty();
-
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object o) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.activities.support.IPluginContribution#getLocalId()
-	 */
-	public String getLocalId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.activities.support.IPluginContribution#getPluginId()
-	 */
-	public String getPluginId() {
-		return configurationElement == null ? pluginId : configurationElement
-				.getContributor().getName();
-	}
-
-	/**
-	 * Clear all elements from this category.
-	 * 
-	 * @since 3.1
-	 */
-	public void clear() {
-		if (elements != null) {
-			elements.clear();
-		}
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java
deleted file mode 100644
index dcdfcd7..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.model.AdaptableList;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-/**
- * Instances of this class are a collection of CheatSheetCollectionElements,
- * thereby facilitating the definition of tree structures composed of 
- * these elements. Instances also store a list of cheatsheets.
- */
-public class CheatSheetCollectionElement extends AdaptableList implements IPluginContribution {
-	private String pluginId;
-	private String id;
-	private String name;
-	private CheatSheetCollectionElement parent;
-	private AdaptableList cheatsheets = new AdaptableList();
-
-	/**
-	 * Creates a new <code>CheatSheetCollectionElement</code>.  Parent can be null.
-	 *
-	 * @param name java.lang.String
-	 */
-	public CheatSheetCollectionElement(String pluginId, String id, String name, CheatSheetCollectionElement parent) {
-		this.name = name;
-		this.pluginId = pluginId;
-		this.id = id;
-		this.parent = parent;
-	}
-
-	/**
-	 * Adds a cheatsheet collection to this collection.
-	 */
-	public AdaptableList add(IAdaptable a) {
-		if (a instanceof CheatSheetElement) {
-			cheatsheets.add(a);
-		} else {
-			super.add(a);
-		}
-		return this;
-	}
-
-	/**
-	 * Returns the cheatsheet collection child object corresponding to the
-	 * passed path (relative to this object), or <code>null</code> if
-	 * such an object could not be found.
-	 *
-	 * @param searchPath org.eclipse.core.runtime.IPath
-	 * @return CheatSheetCollectionElement
-	 */
-	public CheatSheetCollectionElement findChildCollection(IPath searchPath) {
-		Object[] children = getChildren(null);
-		String searchString = searchPath.segment(0);
-		for (int i = 0; i < children.length; ++i) {
-			CheatSheetCollectionElement currentCategory = (CheatSheetCollectionElement) children[i];
-			if (currentCategory.getLabel(null).equals(searchString)) {
-				if (searchPath.segmentCount() == 1)
-					return currentCategory;
-
-				return currentCategory.findChildCollection(searchPath.removeFirstSegments(1));
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns this collection's associated cheatsheet object corresponding to the
-	 * passed id, or <code>null</code> if such an object could not be found.
-	 */
-	public CheatSheetElement findCheatSheet(String searchId, boolean recursive) {
-		Object[] cheatsheets = getCheatSheets();
-		for (int i = 0; i < cheatsheets.length; ++i) {
-			CheatSheetElement currentCheatSheet = (CheatSheetElement) cheatsheets[i];
-			if (currentCheatSheet.getID().equals(searchId))
-				return currentCheatSheet;
-		}
-		if (!recursive)
-			return null;
-		for (Iterator iterator = children.iterator(); iterator.hasNext();) {
-			CheatSheetCollectionElement child = (CheatSheetCollectionElement) iterator.next();
-			CheatSheetElement result = child.findCheatSheet(searchId, true);
-			if (result != null)
-				return result;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns an object which is an instance of the given class
-	 * associated with this object. Returns <code>null</code> if
-	 * no such object can be found.
-	 */
-	public Object getAdapter(Class adapter) {
-		if (adapter == IWorkbenchAdapter.class) {
-			return this;
-		}
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/**
-	 * Returns the unique ID of this element.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Returns the label for this collection.
-	 */
-	public String getLabel(Object o) {
-		return name;
-	}
-
-	/**
-	 * Returns the logical parent of the given object in its tree.
-	 */
-	public Object getParent(Object o) {
-		return parent;
-	}
-
-	/**
-	 * Returns a path representing this collection's ancestor chain.
-	 */
-	public IPath getPath() {
-		if (parent == null)
-			return new Path(ICheatSheetResource.EMPTY_STRING);
-
-		return parent.getPath().append(name);
-	}
-
-	/**
-	 * Returns this collection element's associated collection of cheatsheets.
-	 */
-	public Object[] getCheatSheets() {
-		return cheatsheets.getChildren();
-	}
-
-	/**
-	 * Returns true if this element has no children and no cheatsheets.
-	 */
-	public boolean isEmpty() {
-		return size() == 0 && cheatsheets.size() == 0;
-	}
-
-	/**
-	 * Sets this collection's unique id.
-	 */
-	public void setId(java.lang.String newId) {
-		id = newId;
-	}
-
-	/**
-	 * Sets the collection of cheatsheets associated with this collection element.
-	 */
-	public void setCheatSheets(AdaptableList value) {
-		cheatsheets = value;
-	}
-
-	/**
-	 * For debugging purposes.
-	 */
-	public String toString() {
-		StringBuffer buf = new StringBuffer("CheatSheetCollection, "); //$NON-NLS-1$
-		buf.append(children.size());
-		buf.append(" children, "); //$NON-NLS-1$
-		buf.append(cheatsheets.size());
-		buf.append(" cheatsheets"); //$NON-NLS-1$
-		return buf.toString();
-	}
-
-	public String getLocalId() {
-		return getId();
-	}
-
-	public String getPluginId() {
-		return pluginId;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionSorter.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionSorter.java
deleted file mode 100644
index 5ade19f..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionSorter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import com.ibm.icu.text.Collator;
-
-import org.eclipse.jface.viewers.*;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-/**
- *	A Viewer element sorter that sorts Elements by their name attribute.
- *	Note that capitalization differences are not considered by this
- *	sorter, so a < B < c.
- */
-public class CheatSheetCollectionSorter extends ViewerSorter {
-	public final static CheatSheetCollectionSorter INSTANCE = new CheatSheetCollectionSorter();
-	private Collator collator = Collator.getInstance();
-
-	/**
-	 * Creates an instance of <code>NewWizardCollectionSorter</code>.  Since this
-	 * is a stateless sorter, it is only accessible as a singleton; the private
-	 * visibility of this constructor ensures this.
-	 */
-	private CheatSheetCollectionSorter() {
-		super();
-	}
-
-	/**
-	 * The 'compare' method of the sort operation.
-	 *
-	 * @return  the value <code>0</code> if the argument o1 is equal to o2;
-	 * 			a value less than <code>0</code> if o1 is less than o2;
-	 *			and a value greater than <code>0</code> if o1 is greater than o2.
-	 */
-	public int compare(Viewer viewer, Object o1, Object o2) {
-		String name1 = ((WorkbenchAdapter)o1).getLabel(o1);
-		String name2 = ((WorkbenchAdapter)o2).getLabel(o2);
-
-		if (name1.equals(name2))
-			return 0;
-
-		return collator.compare(name1, name2);
-	}
-
-	/**
-	 *	Return true if this sorter is affected by a property 
-	 *	change of propertyName on the specified element.
-	 */
-	public boolean isSorterProperty(Object object, String propertyId) {
-		return propertyId.equals(IBasicPropertyConstants.P_TEXT);
-	}
-}
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
deleted file mode 100644
index 9b0f95f..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.cheatsheets.CheatSheetListener;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.model.WorkbenchAdapter;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.osgi.framework.Bundle;
-
-/**
- *	Instances represent registered cheatsheets or cheatsheets opened using the content file.
- */
-public class CheatSheetElement extends WorkbenchAdapter implements IAdaptable, IPluginContribution {
-	private String contentFile;
-	private String id;
-	private String name;
-	private String description;
-	private IConfigurationElement configurationElement;
-	private String listenerClass;
-	private boolean composite;
-	private boolean registered = false;
-
-	/**
-	 *	Create a new instance of this class
-	 *
-	 *	@param name java.lang.String
-	 */
-	public CheatSheetElement(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * Returns an object which is an instance of the given class
-	 * associated with this object. Returns <code>null</code> if
-	 * no such object can be found.
-	 */
-	public Object getAdapter(Class adapter) {
-		if (adapter == IWorkbenchAdapter.class) {
-			return this;
-		}
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/**
-	 * 
-	 * @return IConfigurationElement
-	 */
-	public IConfigurationElement getConfigurationElement() {
-		return configurationElement;
-	}
-
-	/**
-	 *	Answer the contentFile parameter of this element
-	 *
-	 *	@return java.lang.String
-	 */
-	public String getContentFile() {
-		return contentFile;
-	}
-
-	/**
-	 *	Answer the description parameter of this element
-	 *
-	 *	@return java.lang.String
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 *	Answer the id as specified in the extension.
-	 *
-	 *	@return java.lang.String
-	 */
-	public String getID() {
-		return id;
-	}
-
-	/**
-	 * Returns the name of this cheatsheet element.
-	 */
-	public String getLabel(Object element) {
-		return name;
-	}
-
-	/**
-	 * Returns the listener class name of this cheatsheet element.
-	 */
-	public String getListenerClass() {
-		return listenerClass;
-	}
-
-	/**
-	 * 
-	 * @param newConfigurationElement IConfigurationElement
-	 */
-	public void setConfigurationElement(IConfigurationElement newConfigurationElement) {
-		configurationElement = newConfigurationElement;
-	}
-
-	/**
-	 *	Set the contentFile parameter of this element
-	 *
-	 *	@param value the URL of the content file
-	 */
-	public void setContentFile(String value) {
-		contentFile = value;
-	}
-
-	/**
-	 *	Set the description parameter of this element
-	 *
-	 *	@param value java.lang.String
-	 */
-	public void setDescription(String value) {
-		description = value;
-	}
-
-	/**
-	 *	Set the id parameter of this element
-	 *
-	 *	@param value java.lang.String
-	 */
-	public void setID(String value) {
-		id = value;
-	}
-
-	/**
-	 * Set the listener class name of this element.
-	 */
-	public void setListenerClass(String value) {
-		listenerClass = value;
-	}
-
-	public CheatSheetListener createListenerInstance() {
-		if(listenerClass == null || configurationElement == null) {
-			return null;
-		}
-
-		Class extClass = null;
-		CheatSheetListener listener = null;
-		String pluginId = configurationElement.getContributor().getName();
-
-		try {
-			Bundle bundle = Platform.getBundle(pluginId);
-			extClass = bundle.loadClass(listenerClass);
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_LOADING_CLASS, (new Object[] {listenerClass}));
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-		}
-		try {
-			if (extClass != null) {
-				listener = (CheatSheetListener) extClass.newInstance();
-			}
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_CREATING_CLASS, (new Object[] {listenerClass}));
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-		}
-		
-		if (listener != null){
-			return listener;
-		}
-
-		return null;
-	}
-
-	public String getLocalId() {
-		return id;
-	}
-
-	public String getPluginId() {
-		return configurationElement.getContributor().getName();
-	}
-	
-	public void setComposite(boolean composite) {
-		this.composite = composite;
-	}
-
-	public boolean isComposite() {
-		return composite;
-	}
-
-	/**
-	 * Get a URL which is saved with the state so the cheatsheet can later be 
-	 * reopened from the state file.
-	 * @return null if the cheatsheet was opened from the registry otherwise
-	 * the URL of the content file.
-	 */
-	public String getRestorePath() {
-		if (!registered) {
-		    return contentFile;
-		}
-		return null;
-	}
-
-	public void setRegistered(boolean registered) {
-		this.registered = registered;
-	}
-
-	public boolean isRegistered() {
-		return registered;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java
deleted file mode 100644
index d11bf81..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import java.lang.reflect.Constructor;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.cheatsheets.AbstractItemExtensionElement;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.model.*;
-import org.osgi.framework.Bundle;
-
-/**
- *	Instances represent registered cheat sheet item extensions.
- */
-public class CheatSheetItemExtensionElement extends WorkbenchAdapter implements IAdaptable {
-	private String className;
-	private String itemAttribute;
-	private IConfigurationElement configurationElement;
-	private final Class[] stringArray = { String.class };
-
-	/**
-	 *	Create a new instance of this class
-	 *
-	 */
-	public CheatSheetItemExtensionElement() {
-	}
-
-	/**
-	 * Returns an object which is an instance of the given class
-	 * associated with this object. Returns <code>null</code> if
-	 * no such object can be found.
-	 */
-	public Object getAdapter(Class adapter) {
-		if (adapter == IWorkbenchAdapter.class) {
-			return this;
-		}
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/**
-	 * 
-	 * @return IConfigurationElement
-	 */
-	public IConfigurationElement getConfigurationElement() {
-		return configurationElement;
-	}
-
-	/**
-	 *	Answer the classname parameter of this element
-	 *
-	 *	@return java.lang.String
-	 */
-	public String getClassName() {
-		return className;
-	}
-
-	/**
-	 *	Answer the itemAttribute parameter of this element
-	 *
-	 *	@return java.lang.String
-	 */
-	public String getItemAttribute() {
-		return itemAttribute;
-	}
-
-	/**
-	 * 
-	 * @param newConfigurationElement IConfigurationElement
-	 */
-	public void setConfigurationElement(IConfigurationElement newConfigurationElement) {
-		configurationElement = newConfigurationElement;
-	}
-
-	/**
-	 *	Set the className parameter of this element
-	 *
-	 *	@param value java.lang.String
-	 */
-	public void setClassName(String value) {
-		className = value;
-	}
-
-	/**
-	 *	Set the itemAttribute parameter of this element
-	 *
-	 *	@param value java.lang.String
-	 */
-	public void setItemAttribute(String value) {
-		itemAttribute = value;
-	}
-
-	public AbstractItemExtensionElement createInstance() {
-		Class extClass = null;
-		AbstractItemExtensionElement extElement = null;
-		String pluginId = configurationElement.getContributor().getName();
-
-		try {
-			Bundle bundle = Platform.getBundle(pluginId);
-			extClass = bundle.loadClass(className);
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_LOADING_CLASS, (new Object[] {className}));
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-		}
-		try {
-			if (extClass != null) {
-				Constructor c = extClass.getConstructor(stringArray);
-				Object[] parameters = { itemAttribute };
-				extElement = (AbstractItemExtensionElement) c.newInstance(parameters);
-			}
-		} catch (Exception e) {
-			String message = NLS.bind(Messages.ERROR_CREATING_CLASS, (new Object[] {className}));
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-		}
-		
-		if (extElement != null){
-			return extElement;
-		}
-
-		return null;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java
deleted file mode 100644
index 15bd0b8..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.core.commands.IParameterValues;
-
-/**
- * Provides the parameter values for the open cheat sheet command.
- * 
- * @since 3.2
- */
-public class CheatSheetParameterValues implements IParameterValues {
-
-	public Map getParameterValues() {
-		Map values = new TreeMap();
-
-		CheatSheetCollectionElement cheatSheetCollection = (CheatSheetCollectionElement) CheatSheetRegistryReader
-				.getInstance().getCheatSheets();
-		populateValues(values, cheatSheetCollection);
-
-		return values;
-	}
-
-	private void populateValues(Map values,
-			CheatSheetCollectionElement cheatSheetCollection) {
-
-		Object[] cheatsheets = cheatSheetCollection.getCheatSheets();
-		for (int i = 0; i < cheatsheets.length; i++) {
-			Object cheatsheet = cheatsheets[i];
-			if (cheatsheet instanceof CheatSheetElement) {
-				CheatSheetElement element = (CheatSheetElement) cheatsheet;
-				values.put(element.getLabel(null), element.getID());
-			}
-		}
-
-		Object[] children = cheatSheetCollection.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Object child = children[i];
-			if (child instanceof CheatSheetCollectionElement) {
-				populateValues(values, (CheatSheetCollectionElement) child);
-			}
-		}
-	}
-
-}
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
deleted file mode 100644
index 83f6f09..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
+++ /dev/null
@@ -1,685 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.model.AdaptableList;
-
-/**
- *  Instances access the registry that is provided at creation time
- *  in order to determine the contained CheatSheet Contents
- */
-public class CheatSheetRegistryReader extends RegistryReader implements IRegistryChangeListener {
-
-	private class CategoryNode {
-		private Category category;
-		private String path;
-		public CategoryNode(Category cat) {
-			category = cat;
-			path = ICheatSheetResource.EMPTY_STRING;
-			String[] categoryPath = category.getParentPath();
-			if (categoryPath != null) {
-				for (int nX = 0; nX < categoryPath.length; nX++) {
-					path += categoryPath[nX] + '/';
-				}
-			}
-			path += cat.getId();
-		}
-		public Category getCategory() {
-			return category;
-		}
-		public String getPath() {
-			return path;
-		}
-	}
-
-	/**
-     * Represents a taskEditor entry in the registry
-	 */
-	public class TaskEditorNode {
-		private String className;
-		private String iconPath;
-		private String id;
-		private String pluginId;
-		public void setClassName(String className) {
-			this.className = className;
-		}
-		public String getClassName() {
-			return className;
-		}
-		public void setIconPath(String iconPath) {
-			this.iconPath = iconPath;
-		}
-		public String getIconPath() {
-			return iconPath;
-		}
-		public void setId(String id) {
-			this.id = id;
-		}
-		public String getId() {
-			return id;
-		}
-		public void setPluginId(String pluginId) {
-			this.pluginId = pluginId;
-		}
-		public String getPluginId() {
-			return pluginId;
-		}
-	}
-	
-	/**
-     * Represents a taskExplorer entry in the registry
-	 */
-	public class TaskExplorerNode {
-		private String className;
-		private String iconPath;
-		private String name;
-		private String id;
-		private String pluginId;
-		public void setClassName(String className) {
-			this.className = className;
-		}
-		public String getClassName() {
-			return className;
-		}
-		public void setIconPath(String iconPath) {
-			this.iconPath = iconPath;
-		}
-		public String getIconPath() {
-			return iconPath;
-		}
-		public void setName(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setId(String id) {
-			this.id = id;
-		}
-		public String getId() {
-			return id;
-		}
-		public void setPluginId(String pluginId) {
-			this.pluginId = pluginId;
-		}
-		public String getPluginId() {
-			return pluginId;
-		}
-	}
-
-	// constants
-	private final static String ATT_CATEGORY = "category"; //$NON-NLS-1$
-	public final static String ATT_CONTENTFILE = "contentFile"; //$NON-NLS-1$
-	protected final static String ATT_ICON = "icon"; //$NON-NLS-1$
-	protected final static String ATT_ID = "id"; //$NON-NLS-1$
-	protected final static String ATT_LISTENERCLASS = "listener"; //$NON-NLS-1$
-	protected final static String ATT_NAME = "name"; //$NON-NLS-1$
-	protected final static String ATT_CLASS = "class"; //$NON-NLS-1$
-	private final static String ATT_COMPOSITE = "composite"; //$NON-NLS-1$
-	private final static String CATEGORY_SEPARATOR = "/"; //$NON-NLS-1$
-	private final static String ATT_ITEM_ATTRIBUTE = "itemAttribute"; //$NON-NLS-1$
-	private static CheatSheetRegistryReader instance;
-	private final static String TAG_CATEGORY = "category"; //$NON-NLS-1$
-	public final static String TAG_CHEATSHEET = "cheatsheet"; //$NON-NLS-1$
-	protected final static String TAG_ITEM_EXTENSION = "itemExtension"; //$NON-NLS-1$
-	protected final static String TAG_TASK_EDITOR = "taskEditor"; //$NON-NLS-1$
-	protected final static String TAG_TASK_EXPLORER = "taskExplorer"; //$NON-NLS-1$
-	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$
-	
-    /**
-	 * Returns a list of cheatsheets, project and not.
-	 *
-	 * The return value for this method is cached since computing its value
-	 * requires non-trivial work.  
-	 */
-	public static CheatSheetRegistryReader getInstance() {
-		if (instance == null) {
-			instance = new CheatSheetRegistryReader();
-			IExtensionRegistry xregistry = Platform.getExtensionRegistry();
-			xregistry.addRegistryChangeListener(instance, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID);
-		}
-
-		return instance;
-	}
-
-	protected ArrayList cheatsheetItemExtensions;
-	protected AdaptableList cheatsheets;
-	private ArrayList deferCategories = null;
-	private ArrayList deferCheatSheets = null;
-	private final String csItemExtension = "cheatSheetItemExtension"; //$NON-NLS-1$
-	protected Map taskExplorers = new HashMap();
-	protected Map taskEditors = new HashMap();
-
-	/**
-	 *	Create an instance of this class.
-	 */
-	private CheatSheetRegistryReader() {
-	}
-
-	/**
-	 * Adds new cheatsheet to the provided collection. Override to
-	 * provide more logic.
-	 * <p>
-	 * This implementation uses a defering strategy.  For more info see
-	 * <code>readCheatSheets</code>.
-	 * </p>
-	 */
-	protected void addNewElementToResult(CheatSheetElement element, IConfigurationElement config, AdaptableList result) {
-		deferCheatSheet(element);
-	}
-
-	/**
-	 * Returns a new CheatSheetElement configured according to the parameters
-	 * contained in the passed Registry.  
-	 *
-	 * May answer null if there was not enough information in the Extension to create 
-	 * an adequate cheatsheet
-	 */
-	protected CheatSheetElement createCheatSheetElement(IConfigurationElement element) {
-		// CheatSheetElements must have a name attribute
-		String nameString = element.getAttribute(ATT_NAME);
-		if (nameString == null) {
-			logMissingAttribute(element, ATT_NAME);
-			return null;
-		}
-		CheatSheetElement result = new CheatSheetElement(nameString);
-		if (initializeCheatSheet(result, element))
-			return result; // ie.- initialization was successful
-
-		return null;
-	}
-
-	/**
-	 *	Create and answer a new CheatSheetCollectionElement, configured as a
-	 *	child of <code>parent</code>
-	 *
-	 *	@return org.eclipse.ui.internal.model.CheatSheetCollectionElement
-	 *	@param parent org.eclipse.ui.internal.model.CheatSheetCollectionElement
-	 *	@param childName java.lang.String
-	 */
-	protected CheatSheetCollectionElement createCollectionElement(CheatSheetCollectionElement parent, String pluginId, String id, String label) {
-		CheatSheetCollectionElement newElement = new CheatSheetCollectionElement(pluginId, id, label, parent);
-
-		parent.add(newElement);
-		return newElement;
-	}
-
-	/**
-	 * Creates empty element collection. Overrider to fill
-	 * initial elements, if needed.
-	 */
-	protected AdaptableList createEmptyCheatSheetCollection() {
-		return new CheatSheetCollectionElement(null, "root", "root", null); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * Stores a category element for deferred addition.
-	 */
-	private void deferCategory(IConfigurationElement config) {
-		// Create category.
-		Category category = null;
-		try {
-			category = new Category(config);
-		} catch (CoreException e) {
-			CheatSheetPlugin.getPlugin().getLog().log(e.getStatus());
-			return;
-		}
-
-		// Defer for later processing.
-		if (deferCategories == null)
-			deferCategories = new ArrayList(20);
-		deferCategories.add(category);
-	}
-
-	/**
-	 * Stores a cheatsheet element for deferred addition.
-	 */
-	private void deferCheatSheet(CheatSheetElement element) {
-		if (deferCheatSheets == null)
-			deferCheatSheets = new ArrayList(50);
-		deferCheatSheets.add(element);
-	}
-
-	/**
-	 *	Returns the first cheatsheet
-	 *  with a given id.
-	 */
-	public CheatSheetElement findCheatSheet(String id) {
-		Object[] cheatsheetsList = getCheatSheets().getChildren();
-		for (int nX = 0; nX < cheatsheetsList.length; nX++) {
-			CheatSheetCollectionElement collection = (CheatSheetCollectionElement) cheatsheetsList[nX];
-			CheatSheetElement element = collection.findCheatSheet(id, true);
-			if (element != null)
-				return element;
-		}
-		return null;
-	}
-	
-	/**
-	 *	Returns the first task editor
-	 *  with a given id.
-	 */
-	public TaskEditorNode findTaskEditor(String id) {
-		if (cheatsheets == null) {
-		    readCheatSheets(); // Ensure that the registry has been read
-		}
-		return (TaskEditorNode)taskEditors.get(id);
-	}
-	
-	/**
-	 *	Returns the first task explorer
-	 *  with a given id.
-	 */
-	public TaskExplorerNode findTaskExplorer(String id) {
-		if (cheatsheets == null) {
-		    readCheatSheets(); // Ensure that the registry has been read
-		}
-		return (TaskExplorerNode)taskExplorers.get(id);
-	}
-	
-	/**
-	 * Get the list of explorer ids
-	 * @return an iterator for the explorer ids
-	 */
-	public String[] getExplorerIds() {
-		if (cheatsheets == null) {
-		    readCheatSheets(); // Ensure that the registry has been read
-		}
-		Set keys = taskExplorers.keySet();
-		return (String[]) keys.toArray(new String[keys.size()]);
-	}
-
-	/**
-	 * Finishes the addition of categories.  The categories are sorted and
-	 * added in a root to depth traversal.
-	 */
-	private void finishCategories() {
-		// If no categories just return.
-		if (deferCategories == null)
-			return;
-
-		// Sort categories by flattened name.
-		CategoryNode[] flatArray = new CategoryNode[deferCategories.size()];
-		for (int i = 0; i < deferCategories.size(); i++) {
-			flatArray[i] = new CategoryNode((Category) deferCategories.get(i));
-		}
-		Sorter sorter = new Sorter() {
-			private Collator collator = Collator.getInstance();
-
-			public boolean compare(Object o1, Object o2) {
-				String s1 = ((CategoryNode) o1).getPath();
-				String s2 = ((CategoryNode) o2).getPath();
-				return collator.compare(s2, s1) > 0;
-			}
-		};
-		Object[] sortedCategories = sorter.sort(flatArray);
-
-		// Add each category.
-		for (int nX = 0; nX < sortedCategories.length; nX++) {
-			Category cat = ((CategoryNode) sortedCategories[nX]).getCategory();
-			finishCategory(cat);
-		}
-
-		// Cleanup.
-		deferCategories = null;
-	}
-
-	/**
-	 * Save new category definition.
-	 */
-	private void finishCategory(Category category) {
-		CheatSheetCollectionElement currentResult = (CheatSheetCollectionElement) cheatsheets;
-
-		String[] categoryPath = category.getParentPath();
-		CheatSheetCollectionElement parent = currentResult; // ie.- root
-
-		// Traverse down into parent category.	
-		if (categoryPath != null) {
-			for (int i = 0; i < categoryPath.length; i++) {
-				CheatSheetCollectionElement tempElement = getChildWithID(parent, categoryPath[i]);
-				if (tempElement == null) {
-					// The parent category is invalid.  By returning here the
-					// category will be dropped and any cheatsheet within the category
-					// will be added to the "Other" category.
-					return;
-				}
-				parent = tempElement;
-			}
-		}
-
-		// If another category already exists with the same id ignore this one.
-		Object test = getChildWithID(parent, category.getId());
-		if (test != null)
-			return;
-
-		if (parent != null)
-			createCollectionElement(parent, category.getPluginId(), category.getId(), category.getLabel());
-	}
-
-	/**
-	 *	Insert the passed cheatsheet element into the cheatsheet collection appropriately
-	 *	based upon its defining extension's CATEGORY tag value
-	 *
-	 *	@param element CheatSheetElement
-	 *	@param extension 
-	 *	@param currentResult CheatSheetCollectionElement
-	 */
-	private void finishCheatSheet(CheatSheetElement element, IConfigurationElement config, AdaptableList result) {
-		CheatSheetCollectionElement currentResult = (CheatSheetCollectionElement) result;
-		StringTokenizer familyTokenizer = new StringTokenizer(getCategoryStringFor(config), CATEGORY_SEPARATOR);
-
-		// use the period-separated sections of the current CheatSheet's category
-		// to traverse through the NamedSolution "tree" that was previously created
-		CheatSheetCollectionElement currentCollectionElement = currentResult; // ie.- root
-		boolean moveToOther = false;
-
-		while (familyTokenizer.hasMoreElements()) {
-			CheatSheetCollectionElement tempCollectionElement = getChildWithID(currentCollectionElement, familyTokenizer.nextToken());
-
-			if (tempCollectionElement == null) { // can't find the path; bump it to uncategorized
-				moveToOther = true;
-				break;
-			}
-			currentCollectionElement = tempCollectionElement;
-		}
-
-		if (moveToOther)
-			moveElementToUncategorizedCategory(currentResult, element);
-		else
-			currentCollectionElement.add(element);
-	}
-
-	/**
-	 * Finishes the addition of cheatsheets.  The cheatsheets are processed and categorized.
-	 */
-	private void finishCheatSheets() {
-		if (deferCheatSheets != null) {
-			Iterator iter = deferCheatSheets.iterator();
-			while (iter.hasNext()) {
-				CheatSheetElement cheatsheet = (CheatSheetElement) iter.next();
-				IConfigurationElement config = cheatsheet.getConfigurationElement();
-				finishCheatSheet(cheatsheet, config, cheatsheets);
-			}
-			deferCheatSheets = null;
-		}
-	}
-
-	/**
-	 *	Return the appropriate category (tree location) for this CheatSheet.
-	 *	If a category is not specified then return a default one.
-	 */
-	protected String getCategoryStringFor(IConfigurationElement config) {
-		String result = config.getAttribute(ATT_CATEGORY);
-		if (result == null)
-			result = UNCATEGORIZED_CHEATSHEET_CATEGORY;
-
-		return result;
-	}
-
-	/**
-	 * Returns a list of cheatsheets, project and not.
-	 *
-	 * The return value for this method is cached since computing its value
-	 * requires non-trivial work.  
-	 */
-	public AdaptableList getCheatSheets() {
-		if (cheatsheets == null)
-			readCheatSheets();
-		return cheatsheets;
-	}
-
-	/**
-	 *	Go through the children of  the passed parent and answer the child
-	 *	with the passed name.  If no such child is found then return null.
-	 *
-	 *	@return org.eclipse.ui.internal.model.CheatSheetCollectionElement
-	 *	@param parent org.eclipse.ui.internal.model.CheatSheetCollectionElement
-	 *	@param childName java.lang.String
-	 */
-	protected CheatSheetCollectionElement getChildWithID(CheatSheetCollectionElement parent, String id) {
-		Object[] children = parent.getChildren();
-		for (int i = 0; i < children.length; ++i) {
-			CheatSheetCollectionElement currentChild = (CheatSheetCollectionElement) children[i];
-			if (currentChild.getId().equals(id))
-				return currentChild;
-		}
-		return null;
-	}
-
-	/**
-	 *	Initialize the passed element's properties based on the contents of
-	 *	the passed registry.  Answer a boolean indicating whether the element
-	 *	was able to be adequately initialized.
-	 *
-	 *	@return boolean
-	 *	@param element CheatSheetElement
-	 *	@param extension Extension
-	 */
-	protected boolean initializeCheatSheet(CheatSheetElement element, IConfigurationElement config) {
-		element.setID(config.getAttribute(ATT_ID));
-		element.setDescription(getDescription(config));
-		element.setConfigurationElement(config);
-		element.setRegistered(true);
-
-		String contentFile = config.getAttribute(ATT_CONTENTFILE);
-		if (contentFile != null) {
-			element.setContentFile(contentFile);
-		}
-
-		// ensure that a contentfile was specified
-		if (element.getConfigurationElement() == null || element.getContentFile() == null) {
-			logMissingAttribute(config, ATT_CONTENTFILE);
-			return false;
-		}
-
-		String listenerClass = config.getAttribute(ATT_LISTENERCLASS);
-		if (listenerClass != null) {
-			element.setListenerClass(listenerClass);
-		}
-		String composite = config.getAttribute(ATT_COMPOSITE);
-		if (composite != null) {
-			element.setComposite(composite.equalsIgnoreCase(trueString));
-		}
-		return true;
-	}
-
-	/**
-	 *	Moves given element to "Other" category, previously creating one if missing.
-	 */
-	protected void moveElementToUncategorizedCategory(CheatSheetCollectionElement root, CheatSheetElement element) {
-		CheatSheetCollectionElement otherCategory = getChildWithID(root, UNCATEGORIZED_CHEATSHEET_CATEGORY);
-
-		if (otherCategory == null)
-			otherCategory = createCollectionElement(root, null, UNCATEGORIZED_CHEATSHEET_CATEGORY, UNCATEGORIZED_CHEATSHEET_CATEGORY_LABEL);
-
-		otherCategory.add(element);
-	}
-
-	/**
-	 * Removes the empty categories from a cheatsheet collection. 
-	 */
-	private void pruneEmptyCategories(CheatSheetCollectionElement parent) {
-		Object[] children = parent.getChildren();
-		for (int nX = 0; nX < children.length; nX++) {
-			CheatSheetCollectionElement child = (CheatSheetCollectionElement) children[nX];
-			pruneEmptyCategories(child);
-		}
-	}
-
-	/**
-	 * Reads the cheatsheets in a registry.  
-	 * <p>
-	 * This implementation uses a defering strategy.  All of the elements 
-	 * (categories, cheatsheets) are read.  The categories are created as the read occurs. 
-	 * The cheatsheets are just stored for later addition after the read completes.
-	 * This ensures that cheatsheet categorization is performed after all categories
-	 * have been read.
-	 * </p>
-	 */
-	protected void readCheatSheets() {
-		IExtensionRegistry xregistry = Platform.getExtensionRegistry();
-
-		if (cheatsheets == null) {
-			cheatsheets = createEmptyCheatSheetCollection();
-			readRegistry(xregistry, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, CHEAT_SHEET_CONTENT);
-		}
-
-		finishCategories();
-		finishCheatSheets();
-
-		if (cheatsheets != null) {
-			CheatSheetCollectionElement parent = (CheatSheetCollectionElement) cheatsheets;
-			pruneEmptyCategories(parent);
-		}
-	}
-
-	public ArrayList readItemExtensions() {
-		if (cheatsheetItemExtensions == null) {
-			cheatsheetItemExtensions = new ArrayList();
-
-			IExtensionRegistry xregistry = Platform.getExtensionRegistry();
-			//Now read the cheat sheet extensions.
-			readRegistry(xregistry, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, csItemExtension);
-		}
-
-		return cheatsheetItemExtensions;
-	}
-
-	private void createItemExtensionElement(IConfigurationElement element) {
-		String className = element.getAttribute(ATT_CLASS);
-		String itemAttribute = element.getAttribute(ATT_ITEM_ATTRIBUTE);
-
-		// ensure that a class was specified
-		if (className == null) {
-			logMissingAttribute(element, ATT_CLASS);
-			return;
-		}
-		// ensure that a itemAttribute was specified
-		if (itemAttribute == null) {
-			logMissingAttribute(element, ATT_ITEM_ATTRIBUTE);
-			return;
-		}
-
-		CheatSheetItemExtensionElement itemExtensionElement = new CheatSheetItemExtensionElement();
-		itemExtensionElement.setClassName(className);
-		itemExtensionElement.setItemAttribute(itemAttribute);
-		itemExtensionElement.setConfigurationElement(element);
-
-		cheatsheetItemExtensions.add(itemExtensionElement);		
-	}
-	
-	/*
-	 * Get a required attribute. Log an error if it has no value.
-	 */
-	private String getAndCheckAttribute(IConfigurationElement element, String name) {
-		String result = element.getAttribute(name);
-		if (result == null) {
-			logMissingAttribute(element, name);
-		}
-		return result;
-	}
-	
-	private void createTaskExplorerElement(IConfigurationElement element) {
-		String icon = element.getAttribute(ATT_ICON);
-		String className = getAndCheckAttribute(element, ATT_CLASS);
-		String name = getAndCheckAttribute(element, ATT_NAME);
-		String id = getAndCheckAttribute(element, ATT_ID);
-		String pluginId = element.getContributor().getName();
-		if (id != null && className != null && name != null ) {
-			TaskExplorerNode node = new TaskExplorerNode();
-            node.setId(id);
-			node.setIconPath(icon);
-			node.setClassName(className);
-			node.setName(name);
-			node.setPluginId(pluginId);
-			taskExplorers.put(id, node);
-		} 
-	}
-
-	private void createTaskEditorElement(IConfigurationElement element) {
-		String icon = getAndCheckAttribute(element, ATT_ICON);
-		String className = getAndCheckAttribute(element, ATT_CLASS);
-		String id = getAndCheckAttribute(element, ATT_ID);
-		String pluginId = element.getContributor().getName();
-		if (id != null && className != null && icon != null ) {
-			TaskEditorNode node = new TaskEditorNode();
-            node.setId(id);
-			node.setIconPath(icon);
-			node.setClassName(className);
-			node.setPluginId(pluginId);
-			taskEditors.put(id, node);
-		} 
-	}
-
-	/**
-	 * Implement this method to read element attributes.
-	 */
-	protected boolean readElement(IConfigurationElement element) {
-		if (element.getName().equals(TAG_CATEGORY)) {
-			deferCategory(element);
-			return true;
-		} else if (element.getName().equals(TAG_ITEM_EXTENSION)) {
-			createItemExtensionElement(element);
-			return true;
-		} else if (element.getName().equals(TAG_TASK_EDITOR)) {
-			createTaskEditorElement(element);
-			return true;
-		} else if (element.getName().equals(TAG_TASK_EXPLORER)) {
-			createTaskExplorerElement(element);
-			return true;
-		} else {
-			if (!element.getName().equals(TAG_CHEATSHEET))
-				return false;
-
-			CheatSheetElement cheatsheet = createCheatSheetElement(element);
-			if (cheatsheet != null)
-				addNewElementToResult(cheatsheet, element, cheatsheets);
-			return true;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IRegistryChangeListener#registryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
-	 */
-	public void registryChanged(IRegistryChangeEvent event) {
-		IExtensionDelta[] cheatSheetDeltas = event.getExtensionDeltas(ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, CHEAT_SHEET_CONTENT);
-		if (cheatSheetDeltas.length > 0) {
-			// reset the list of cheat sheets, it will be build on demand
-			cheatsheets = null;
-		}
-
-		IExtensionDelta[] itemExtensionDeltas = event.getExtensionDeltas(ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, csItemExtension);
-		if (itemExtensionDeltas.length > 0) {
-			// reset the list of cheat sheets item extensions, it will be build on demand
-			cheatsheetItemExtensions = null;
-		}
-	}
-	
-	public void stop() {
-		IExtensionRegistry xregistry = Platform.getExtensionRegistry();
-		xregistry.removeRegistryChangeListener(instance);
-
-		instance = null;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/RegistryReader.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/RegistryReader.java
deleted file mode 100644
index 4f01ddc..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/RegistryReader.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.internal.cheatsheets.*;
-
-/**
- *	Template implementation of a registry reader that creates objects
- *	representing registry contents. Typically, an extension
- * contains one element, but this reader handles multiple
- * elements per extension.
- *
- * To start reading the extensions from the registry for an
- * extension point, call the method <code>readRegistry</code>.
- *
- * To read children of an IConfigurationElement, call the
- * method <code>readElementChildren</code> from your implementation
- * of the method <code>readElement</code>, as it will not be
- * done by default.
- */
-public abstract class RegistryReader {
-	protected static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	/**
-	 * The constructor.
-	 */
-	/*package*/ RegistryReader() {
-	}
-
-	/**
-	 * This method extracts description as a subelement of
-	 * the given element.
-	 * @return description string if defined, or empty string
-	 * if not.
-	 */
-	/*package*/ String getDescription(IConfigurationElement config) {
-		IConfigurationElement[] children = config.getChildren(TAG_DESCRIPTION);
-		if (children.length >= 1) {
-			return children[0].getValue();
-		}
-		return ICheatSheetResource.EMPTY_STRING;
-	}
-
-	/**
-	 * Logs the error in the workbench log using the provided
-	 * text and the information in the configuration element.
-	 */
-	private void logError(IConfigurationElement element, String text) {
-		IExtension extension = element.getDeclaringExtension();
-		StringBuffer buf = new StringBuffer();
-		buf.append("Plugin " + extension.getContributor().getName() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-2$//$NON-NLS-1$
-		buf.append("\n" + text); //$NON-NLS-1$
-
-		IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, buf.toString(), null);
-		CheatSheetPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * Logs a very common registry error when a required attribute is missing.
-	 */
-	/*package*/ void logMissingAttribute(IConfigurationElement element, String attributeName) {
-		logError(element, "Required attribute '" + attributeName + "' not defined"); //$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	/**
-	 * Logs a registry error when the configuration element is unknown.
-	 */
-	private void logUnknownElement(IConfigurationElement element) {
-		logError(element, "Unknown extension tag found: " + element.getName()); //$NON-NLS-1$
-	}
-
-	/**
-	 *	Apply a reproducable order to the list of extensions
-	 * provided, such that the order will not change as
-	 * extensions are added or removed.
-	 */
-	private IExtension[] orderExtensions(IExtension[] extensions) {
-		// By default, the order is based on plugin id sorted
-		// in ascending order. The order for a plugin providing
-		// more than one extension for an extension point is
-		// dependent in the order listed in the XML file.
-		Sorter sorter = new Sorter() {
-			public boolean compare(Object extension1, Object extension2) {
-				String s1 = ((IExtension) extension1).getContributor().getName().toUpperCase();
-				String s2 = ((IExtension) extension2).getContributor().getName().toUpperCase();
-				//Return true if elementTwo is 'greater than' elementOne
-				return s2.compareTo(s1) > 0;
-			}
-		};
-
-		Object[] sorted = sorter.sort(extensions);
-		IExtension[] sortedExtension = new IExtension[sorted.length];
-		System.arraycopy(sorted, 0, sortedExtension, 0, sorted.length);
-		return sortedExtension;
-	}
-
-	/**
-	 * Implement this method to read element's attributes.
-	 * If children should also be read, then implementor
-	 * is responsible for calling <code>readElementChildren</code>.
-	 * Implementor is also responsible for logging missing 
-	 * attributes.
-	 *
-	 * @return true if element was recognized, false if not.
-	 */
-	/*package*/ abstract boolean readElement(IConfigurationElement element);
-
-	/**
-	 * Read the element's children. This is called by
-	 * the subclass' readElement method when it wants
-	 * to read the children of the element.
-	 */
-	/*package*/ void readElementChildren(IConfigurationElement element) {
-		readElements(element.getChildren());
-	}
-
-	/**
-	 * Read each element one at a time by calling the
-	 * subclass implementation of <code>readElement</code>.
-	 *
-	 * Logs an error if the element was not recognized.
-	 */
-	private void readElements(IConfigurationElement[] elements) {
-		for (int i = 0; i < elements.length; i++) {
-			if (!readElement(elements[i]))
-				logUnknownElement(elements[i]);
-		}
-	}
-
-	/**
-	 * Read one extension by looping through its
-	 * configuration elements.
-	 */
-	private void readExtension(IExtension extension) {
-		readElements(extension.getConfigurationElements());
-	}
-
-	/**
-	 *	Start the registry reading process using the
-	 * supplied plugin ID and extension point.
-	 */
-	/*package*/ void readRegistry(IExtensionRegistry registry, String pluginId, String extensionPoint) {
-		IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPoint);
-		if (point != null) {
-			IExtension[] extensions = point.getExtensions();
-			extensions = orderExtensions(extensions);
-			for (int i = 0; i < extensions.length; i++)
-				readExtension(extensions[i]);
-		}
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Sorter.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Sorter.java
deleted file mode 100644
index aac1df8..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Sorter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.registry;
-
-/**
- *	The SortOperation takes a collection of objects and returns
- *	a sorted collection of these objects.  Concrete instances of this
- *	class provide the criteria for the sorting of the objects based on
- *	the type of the objects.
- */
-public abstract class Sorter {
-	/**
-	 *	Returns true if elementTwo is 'greater than' elementOne
-	 *	This is the 'ordering' method of the sort operation.
-	 *	Each subclass overides this method with the particular
-	 *	implementation of the 'greater than' concept for the 
-	 *	objects being sorted.
-	 */
-	/*package*/ abstract boolean compare(Object elementOne, Object elementTwo);
-
-	/**
-	 *	Sort the objects in sorted collection and return that collection.
-	 */
-	private Object[] quickSort(Object[] sortedCollection, int left, int right) {
-		int originalLeft = left;
-		int originalRight = right;
-		Object mid = sortedCollection[(left + right) / 2];
-
-		do {
-			while (compare(sortedCollection[left], mid))
-				left++;
-			while (compare(mid, sortedCollection[right]))
-				right--;
-			if (left <= right) {
-				Object tmp = sortedCollection[left];
-				sortedCollection[left] = sortedCollection[right];
-				sortedCollection[right] = tmp;
-				left++;
-				right--;
-			}
-		}
-		while (left <= right);
-
-		if (originalLeft < right)
-			sortedCollection = quickSort(sortedCollection, originalLeft, right);
-		if (left < originalRight)
-			sortedCollection = quickSort(sortedCollection, left, originalRight);
-
-		return sortedCollection;
-	}
-
-	/**
-	 *	Return a new sorted collection from this unsorted collection.
-	 *	Sort using quick sort.
-	 */
-	/*package*/ Object[] sort(Object[] unSortedCollection) {
-		int size = unSortedCollection.length;
-		Object[] sortedCollection = new Object[size];
-
-		//copy the array so can return a new sorted collection	
-		System.arraycopy(unSortedCollection, 0, sortedCollection, 0, size);
-		if (size > 1)
-			quickSort(sortedCollection, 0, size - 1);
-
-		return sortedCollection;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java
deleted file mode 100644
index d9ba0b0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-/**
- * The default state manager for a cheat sheet. The data will be saved and restored 
- * using a file in metadata whose name is derived from the id
- */
-
-package org.eclipse.ui.internal.cheatsheets.state;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheetSaveHelper;
-import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-
-/**
- * The default state manager saves the state in an xml file whose name is the
- * same as the id of the cheatsheet.
- */
-
-public class DefaultStateManager implements ICheatSheetStateManager {
-
-	private CheatSheetSaveHelper saveHelper = new CheatSheetSaveHelper();
-	private Properties props;
-	private CheatSheetElement element;
-	private boolean propertiesRead = false;
-
-	public Properties getProperties() {
-		if (!propertiesRead) {
-			props = saveHelper.loadState(element.getID());
-			propertiesRead = true;
-		}
-		return props;
-	}
-
-	public CheatSheetManager getCheatSheetManager() {	
-		CheatSheetManager result = new CheatSheetManager(element);
-		if (getProperties() != null) {
-		    result.setData((Hashtable) getProperties().get(IParserTags.MANAGERDATA));
-		}
-		return result;
-	}
-
-	public void setElement(CheatSheetElement element) {
-		this.element = element;
-	}
-
-	public IStatus saveState(Properties properties, CheatSheetManager manager) {
-		return saveHelper.saveState(properties, manager);
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/ICheatSheetStateManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/ICheatSheetStateManager.java
deleted file mode 100644
index 2b46a66..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/ICheatSheetStateManager.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.state;
-
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-
-/**
- * This interface is an abstraction of the state saving functions for a cheat sheet.
- * Depending on how a cheat sheet is opened the state may be opened from
- * a memento passed in, a file whose name is determined from the id of the
- * cheat sheet, or in the case of a tray dialog it is passed using an object.
- */
-
-public interface ICheatSheetStateManager {
-	
-	/**
-	 * Will be called before any of the functions to get or save state
-	 * @param element
-	 */
-	public void setElement(CheatSheetElement element);
-
-	/**
-	 * Load the properties from the state file/memento/memory
-	 */
-	public Properties getProperties();
-
-	/**
-	 * Load the cheat sheet manager from state file/memento/memory
-	 */
-	public CheatSheetManager getCheatSheetManager();
-	
-	/**
-	 * Save the properties and the cheat sheet manager
-	 * @param properties
-	 * @param manager
-	 * @return
-	 */
-	public IStatus saveState(Properties properties, CheatSheetManager manager);
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java
deleted file mode 100644
index 1665c51..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.state;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheetSaveHelper;
-import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-
-/**
- * A state manager used to open a cheat sheet whose state comes from a memento.
- * This is used by the children of composite cheat sheets.
- */
-
-public class MementoStateManager implements ICheatSheetStateManager {
-
-	private IMemento memento;
-	private CheatSheetElement element;
-	private CheatSheetSaveHelper saveHelper = new CheatSheetSaveHelper();
-	private Properties props;
-	private ICheatSheetManager parentCsm;
-
-	/**
-	 * @param memento The memento which will be used to initialize the state. May be
-	 * null to indicate that the state should be initialized.
-	 */
-	public MementoStateManager(IMemento memento, ICheatSheetManager parentCsm) {
-		this.memento = memento;
-		this.parentCsm = parentCsm;
-	}
-
-	/**
-	 * Load properties from the memento.
-	 */
-	public Properties getProperties() {
-		if (memento == null) {
-			return null;
-		}
-		if (props == null) {
-			props = saveHelper.loadFromMemento(memento);
-		}
-		return props;
-	}
-
-	public CheatSheetManager getCheatSheetManager() {
-		CheatSheetManager result = new CheatSheetManager(element);
-		if (getProperties() != null) {
-		    result.setData((Hashtable) getProperties().get(IParserTags.MANAGERDATA));
-		}
-		result.setParent(parentCsm);
-		return result;
-	}
-
-	public void setElement(CheatSheetElement element) {
-		this.element = element;
-	}
-
-	public IStatus saveState(Properties properties, CheatSheetManager manager) {
-		// The real save will use a memento, this is an empty method
-		return Status.OK_STATUS;
-	}
-
-}
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
deleted file mode 100644
index 81b3974..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/TrayStateManager.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.cheatsheets.state;
-
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
-
-/**
- * A state manager used to pass cheat sheet state to and from a tray dialog.
- * It does not save any data to a file, it just acts as a conduit between 
- * two different CheatSheetViewers
- */
-
-public class TrayStateManager implements ICheatSheetStateManager {
-
-	private Properties properties;
-	private CheatSheetManager manager;
-
-	public Properties getProperties() {
-		return properties;
-	}
-
-	public void setElement(CheatSheetElement element) {
-        // element not used
-	}
-
-	public CheatSheetManager getCheatSheetManager() {
-		return manager;
-	}
-
-	/**
-	 * Save the properties and cheat sheet manager locally so they can be passed
-	 * to and from a cheat sheet viewer in a tray dialog.
-	 */
-	public IStatus saveState(Properties properties, CheatSheetManager manager) {
-        this.properties = properties;
-		this.manager = manager;
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetEvent.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetEvent.java
deleted file mode 100644
index be48243..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetEvent.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import org.eclipse.ui.cheatsheets.ICheatSheetEvent;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-
-public class CheatSheetEvent implements ICheatSheetEvent {
-	int type;
-	String cheatsheetID;
-	ICheatSheetManager csm;
-
-
-	public CheatSheetEvent(int eventType, String id, ICheatSheetManager csm) {
-		super();
-		this.csm = csm;
-		this.type = eventType;
-		this.cheatsheetID = id;
-	}
-
-	/**
-	 * @return
-	 */
-	public int getEventType() {
-		return type;
-	}
-
-	/**
-	 * @return
-	 */
-	public String getCheatSheetID() {
-		return cheatsheetID;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.cheatsheets.events.ICheatSheetEvent#getCheatSheetManager()
-	 */
-	public ICheatSheetManager getCheatSheetManager() {
-		return csm;
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetExpandRestoreAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetExpandRestoreAction.java
deleted file mode 100644
index 33d90cd..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetExpandRestoreAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.cheatsheets.*;
-
-/**
- * Action used to enable / disable method filter properties
- */
-public class CheatSheetExpandRestoreAction extends Action {
-	private CheatSheetViewer viewer;
-	private boolean collapsed = false;
-
-	private ImageDescriptor collapseImage;
-	private ImageDescriptor expandImage;
-	private ImageDescriptor disabledImage;
-
-	public CheatSheetExpandRestoreAction(String title, boolean initValue, CheatSheetViewer viewer) {
-		super(title);
-		this.viewer = viewer;
-
-		IPath path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append("collapse_expand_all.gif");//$NON-NLS-1$
-		collapseImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);
-		path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_DLCL).append("collapse_expand_all.gif");//$NON-NLS-1$
-		disabledImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);
-		path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append("expandall.gif");//$NON-NLS-1$
-		expandImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);
-		setDisabledImageDescriptor(disabledImage);
-		setCollapsed(initValue);
-	}
-	
-	/*
-	 * @see Action#actionPerformed
-	 */
-	public void run() {
-		viewer.toggleExpandRestore();	
-	}
-	
-	public boolean isCollapsed() {
-		return collapsed;
-	}
-
-	public void setCollapsed(boolean value) {
-		super.setChecked(value);
-		collapsed = value;
-		if(value) {
-			setToolTipText(Messages.RESTORE_ALL_TOOLTIP);
-			setImageDescriptor(expandImage);
-		} else {
-			setToolTipText(Messages.COLLAPSE_ALL_BUT_CURRENT_TOOLTIP);
-			setImageDescriptor(collapseImage);
-		}
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetHelpPart.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetHelpPart.java
deleted file mode 100644
index 479cf8e..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetHelpPart.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.help.ui.internal.views.IHelpPart;
-import org.eclipse.help.ui.internal.views.ReusableHelpPart;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.state.ICheatSheetStateManager;
-
-/**
- * A help part wrapper that contains a cheat sheet. This is used to display
- * cheat sheets inside the ReusableHelpPart.
- */
-public class CheatSheetHelpPart extends AbstractFormPart implements IHelpPart {
-	
-	public static final String ID = "cheatsheet-page"; //$NON-NLS-1$
-	
-	private CheatSheetViewer viewer;
-	private String id;
-	
-	/**
-	 * Constructs a new part.
-	 * 
-	 * @param parent the parent Composite that will contain the widgets
-	 * @param toolkit the form toolkit to use for creating the widgets
-	 * @param tbm the toolbar we will contribute to
-	 * @param id the unique id of the cheatsheet to display in the part
-	 */
-	public CheatSheetHelpPart(Composite parent, FormToolkit toolkit, IToolBarManager tbm, CheatSheetElement content, ICheatSheetStateManager trayManager) {
-		id = content.getID();
-		viewer = new CheatSheetViewer(true);
-		viewer.createPartControl(parent);
-		viewer.setContent(content, trayManager);
-		contributeToToolBar(tbm);
-	}
-
-	/**
-	 * Contributes any actions we have to the toolbar.
-	 * 
-	 * @param tbm the toolbar to contribute to
-	 */
-	private void contributeToToolBar(IToolBarManager tbm) {
-		IPath path = CheatSheetPlugin.ICONS_PATH.append(CheatSheetPlugin.T_ELCL).append("collapseall.gif");//$NON-NLS-1$
-		ImageDescriptor collapseImage = CheatSheetPlugin.createImageDescriptor(CheatSheetPlugin.getPlugin().getBundle(), path);
-		CheatSheetExpandRestoreAction expandRestoreAction = new CheatSheetExpandRestoreAction(Messages.COLLAPSE_ALL_BUT_CURRENT_TOOLTIP, false, viewer);
-		expandRestoreAction.setToolTipText(Messages.COLLAPSE_ALL_BUT_CURRENT_TOOLTIP);
-		expandRestoreAction.setImageDescriptor(collapseImage);
-		tbm.insertBefore("back", expandRestoreAction); //$NON-NLS-1$
-		tbm.insertBefore("back", new Separator()); //$NON-NLS-1$
-		viewer.setExpandRestoreAction(expandRestoreAction);
-	}
-	
-	/**
-	 * This part doesn't require a context menu.
-	 */
-	public boolean fillContextMenu(IMenuManager manager) {
-		return false;
-	}
-	
-	/**
-	 * Returns the part's top Control.
-	 */
-	public Control getControl() {
-		return viewer.getControl();
-	}
-	
-	/**
-	 * This part doesn't use any global actions.
-	 */
-	public IAction getGlobalAction(String id) {
-		return null;
-	}
-	
-	/**
-	 * Returns the part's unique identifier.
-	 * 
-	 * @param the unique id for the part
-	 */
-	public String getId() {
-		return id;
-	}
-	
-	/**
-	 * Returns whether or not this part contains the given Control, which
-	 * is in focus.
-	 * 
-	 * @param control the Control in focus
-	 */
-	public boolean hasFocusControl(Control control) {
-		return viewer.hasFocusControl(control);
-	}
-	
-	/**
-	 * Initializes the part.
-	 */
-	public void init(ReusableHelpPart parent, String id, IMemento memento) {
-		this.id = id;
-	}
-
-	/**
-	 * No filtering required.
-	 */
-	public void refilter() {
-	}
-	
-	/**
-	 * The cheat sheet automatically saves its state; no action required.
-	 */
-	public void saveState(IMemento memento) {
-	}
-	
-	/**
-	 * Sets the visibility of the part.
-	 * 
-	 * @param whether or not the part should be visible
-	 */
-	public void setVisible(boolean visible) {
-		viewer.getControl().setVisible(visible);
-	}
-	
-	/**
-	 * No action needed for this part here.
-	 */
-	public void stop() {
-	}
-	
-	/**
-	 * No action needed for this part here.
-	 */
-	public void toggleRoleFilter() {
-	}
-}
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
deleted file mode 100644
index 1945123..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.ui.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-
-/**
- * Cheat sheet manager class.  Manages cheat sheet data and optional listner.
- */
-public class CheatSheetManager implements ICheatSheetManager {
-
-	private static final String PARENT_PREFIX = "parent."; //$NON-NLS-1$
-	private static final String VARIABLE_END = "}"; //$NON-NLS-1$
-	private static final String VARIABLE_BEGIN = "${"; //$NON-NLS-1$
-	private String cheatsheetID;
-	private List listeners;
-	private Map dataTable = null;
-	private ICheatSheetManager parent;
-	
-	public CheatSheetManager(CheatSheetElement element) {
-		cheatsheetID = element.getID();
-		listeners = new ArrayList();
-		CheatSheetListener listener = element.createListenerInstance();
-		if (listener != null) {
-			addListener(listener);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.cheatsheets.ICheatSheetManager#getCheatSheetID()
-	 */
-	public String getCheatSheetID() {
-		return cheatsheetID;
-	}
-
-	public void fireEvent(int eventType) {
-		// Send an event to every listener
-		for (Iterator iterator = listeners.iterator();iterator.hasNext();) {
-		    ICheatSheetEvent event = new CheatSheetEvent(eventType, cheatsheetID, this);
-		    CheatSheetListener listener = (CheatSheetListener)iterator.next();
-		    listener.cheatSheetEvent(event);
-		}
-	}
-
-	/**
-	 * returns the hashtable with all manager data stored.
-	 */
-	public Map getData() {
-		return dataTable;
-	}
-	
-	/**
-	 * Initialize all variables
-	 * @param data a map containg values for all variables
-	 */
-	public void setData(Map data) {
-		dataTable = data;
-	}
-
-	public String getData(String key) {
-		if (dataTable == null)
-			return null;
-		return (String) dataTable.get(key);
-	}
-	
-	/**
-	 * Similar to get data except that if the key is prefixed with "parent."
-	 * get the data from the parent
-	 * @param qualifiedKey
-	 * @return The data for this key
-	 */
-	public String getDataQualified(String qualifiedKey) {
-		if (qualifiedKey.startsWith(PARENT_PREFIX) && parent != null) {
-			return parent.getData(qualifiedKey.substring(PARENT_PREFIX.length()));
-		} else {
-			return getData(qualifiedKey);
-		}
-	}
-
-	public String getVariableData(String variable) {
-		String result = variable;
-		if(variable != null && variable.startsWith(VARIABLE_BEGIN) && variable.endsWith(VARIABLE_END)) {
-			result = variable.substring(2,variable.length()-1);
-			result = getDataQualified(result);
-		}
-		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.
-     */
-	public String performVariableSubstitution(String input)
-	{
-		String remaining = input;
-		String output = ""; //$NON-NLS-1$
-		while (remaining.length() > 0) {
-			int varIndex = remaining.indexOf(VARIABLE_BEGIN);
-			int endIndex = remaining.indexOf(VARIABLE_END, varIndex + 1);
-			if (varIndex < 0 || endIndex < 0) {
-				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());
-			}
-		}
-		return output;
-	}
-
-	/*package*/ void setData(Hashtable data) {
-		dataTable = data;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.cheatsheets.ICheatSheetManager#setData(java.lang.String, java.lang.String)
-	 */
-	public void setData(String key, String data) {
-		if (key == null) {
-			throw new IllegalArgumentException();
-		}
-
-		if(data == null && dataTable != null) {
-			dataTable.remove(key);
-			return;
-		}
-
-		if (dataTable == null) {
-			dataTable = new Hashtable(30);
-		}
-
-		dataTable.put(key, data);
-	}
-	
-	/**
-	 * Similar to setData except that if the key is prefixed by "parent." 
-	 * set the data in the parent.
-	 * @param qualifiedKey A key which may be prefixed by parent.
-	 * @param data The value to set
-	 */
-	public void setDataQualified(String qualifiedKey, String data) {
-		if (qualifiedKey == null) {
-			throw new IllegalArgumentException();
-		}
-		if (qualifiedKey.startsWith(PARENT_PREFIX) && parent != null) {
-			parent.setData(qualifiedKey.substring(PARENT_PREFIX.length()), data);
-		} else {
-			setData(qualifiedKey, data);
-		}
-	}
-
-	/**
-	 * Add a listener for cheatsheet events
-	 * @param listener
-	 */
-	public void addListener(CheatSheetListener listener) {
-		if (listener != null) {
-		    listeners.add(listener);
-		}
-	}
-
-	public ICheatSheetManager getParent() {
-		return parent;
-	}
-	
-	public void setParent(ICheatSheetManager parent) {
-		this.parent = parent;
-	}
-
-	public Set getKeySet() {
-		if (dataTable == null) {
-			return new HashSet();
-		} else {
-		    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
deleted file mode 100644
index 7e33b6c..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.HyperlinkGroup;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetStopWatch;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.actions.IMenuContributor;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheet;
-
-public class CheatSheetPage extends Page implements IMenuContributor {
-	// Colors
-	private Color introColor;
-	private Color activeColor;
-
-	private Color inactiveColor1;
-	private Color inactiveColor2;
-
-	private CheatSheet cheatSheet;
-
-	private ArrayList viewItemList;
-
-	private CheatSheetViewer viewer;
-
-	public CheatSheetPage(CheatSheet cheatSheet, ArrayList viewItemList,
-			CheatSheetViewer cheatSheetViewer) {
-		super();
-		this.cheatSheet = cheatSheet;
-		this.viewItemList = viewItemList;
-		this.viewer = cheatSheetViewer;
-	}
-
-	public void createPart(Composite parent) {
-		CheatSheetStopWatch.startStopWatch("CheatSheetPage.createPart()"); //$NON-NLS-1$		
-		super.createPart(parent);
-		HyperlinkGroup hyperlinkGroup = toolkit.getHyperlinkGroup();
-		hyperlinkGroup.setActiveBackground(null);
-		hyperlinkGroup.setBackground(null);
-		hyperlinkGroup.setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER);
-		
-		CheatSheetStopWatch
-				.printLapTime(
-						"CheatSheetPage.createPart()", "Time in CheatSheetPage.createInfoArea() after super.createInfoArea(): "); //$NON-NLS-1$ //$NON-NLS-2$
-		IntroItem intro = new IntroItem(this, cheatSheet.getIntroItem(),
-				introColor, viewer);
-		CheatSheetStopWatch
-				.printLapTime(
-						"CheatSheetPage.createPart()", "Time in CheatSheetPage.createInfoArea() after new IntroItem(): "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		intro.setBold(true);
-		viewItemList.add(intro);
-
-		CheatSheetStopWatch
-				.printLapTime(
-						"CheatSheetPage.createInfoArea()", "Time in CheatSheetPage.createPart() before add loop: "); //$NON-NLS-1$ //$NON-NLS-2$
-		// Get the content info from the parser. This makes up all items except
-		// the intro item.
-		ArrayList items = cheatSheet.getItems();
-		for (int i = 0; i < items.size(); i++) {
-			Color color = (i % 2) == 0 ? getInactiveColor1() : getInactiveColor2();
-
-			CoreItem coreItem = new CoreItem(this,
-					(org.eclipse.ui.internal.cheatsheets.data.Item) items
-							.get(i), color, viewer);
-			viewItemList.add(coreItem);
-		}
-		CheatSheetStopWatch
-				.printLapTime(
-						"CheatSheetPage.createInfoArea()", "Time in CheatSheetPage.createPart(): "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private Color getInactiveColor2() {
-		return inactiveColor2;
-	}
-
-	private Color getInactiveColor1() {
-		return inactiveColor1;
-	}
-
-	/**
-	 * Creates the cheatsheet's title areawhich will consists of a title and
-	 * image.
-	 * 
-	 * @param parent
-	 *            the SWT parent for the title area composite
-	 */
-	protected String getTitle() {
-		if (cheatSheet != null && cheatSheet.getTitle() != null)
-			return cheatSheet.getTitle();
-		return ICheatSheetResource.EMPTY_STRING;
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (getInactiveColor1() != null)
-			getInactiveColor1().dispose();
-		if (getInactiveColor2() != null)
-			getInactiveColor2().dispose();
-
-		if (activeColor != null)
-			activeColor.dispose();
-		
-		if (introColor != null)
-			introColor.dispose();
-		inactiveColor1 = null;
-		inactiveColor2 = null;
-		activeColor = null;
-		introColor = null;
-	}
-
-	protected void init(Display display) {
-		super.init(display);
-		computeColors(display);
-	}
-
-	private void computeColors(Display display) {
-		RGB rgb;
-		RGB white = new RGB(255, 255, 255);
-		RGB black = new RGB(0, 0, 0);
-		
-		if (isReverseVideo()) {
-			computeReverseVideoColors(display);
-			return;
-		}
-
-		if (toolkit.getColors().isWhiteBackground()) {
-			rgb = toolkit.getColors().getSystemColor(SWT.COLOR_LIST_SELECTION);
-			// active color is selection + 80% white
-			rgb = FormColors.blend(rgb, white, 20);
-			// test for bounds
-			if (FormColors.testTwoPrimaryColors(rgb, 245, 256)) {
-				// too bright - tone down 20%
-				rgb = FormColors.blend(rgb, black, 80);
-			} else if (FormColors.testAnyPrimaryColor(rgb, 170, 191)) {
-				// too dark - brighten 15%
-				rgb = FormColors.blend(rgb, white, 85);
-			} else if (FormColors.testAnyPrimaryColor(rgb, 190, 215)) {
-				// too dark - brighten 10%
-				rgb = FormColors.blend(rgb, white, 90);
-			}
-			// final check - if gray
-			if (Math.abs(rgb.blue-rgb.green) <5 && 
-					Math.abs(rgb.blue-rgb.red)<5 && 
-					Math.abs(rgb.green-rgb.red)<5) {
-				// blend with blue
-				rgb = FormColors.blend(rgb, new RGB(100, 100, 255), 90);
-			}
-			activeColor = new Color(display, rgb);
-
-			// alternate color is widget background + 40% white
-			rgb = toolkit.getColors().getSystemColor(
-					SWT.COLOR_WIDGET_BACKGROUND);
-			rgb = FormColors.blend(rgb, white, 60);
-			// test for bounds
-			if (FormColors.testTwoPrimaryColors(rgb, 209, 220)) {
-				// too dark - add 30% white
-				rgb = FormColors.blend(rgb, white, 70);
-			} else if (FormColors.testTwoPrimaryColors(rgb, 209, 230)) {
-				// too dark - add 20% white
-				rgb = FormColors.blend(rgb, white, 80);
-			}
-			inactiveColor1 = new Color(display, rgb);
-		} else {
-			// colored background
-			rgb = toolkit.getColors().getSystemColor(SWT.COLOR_LIST_SELECTION);
-			// active color is selection + 70% white
-			rgb = FormColors.blend(rgb, white, 30);
-			// If these values are in the range of 201 to 220, then decrease
-			// white by 20%
-			if (FormColors.testTwoPrimaryColors(rgb, 200, 221))
-				rgb = FormColors.blend(rgb, black, 80);
-			// If these values are in the range of 221 to 240, then decrease
-			// white by 40%
-			else if (FormColors.testTwoPrimaryColors(rgb, 222, 241))
-				rgb = FormColors.blend(rgb, black, 60);
-			// If these values are in the range of 241 to 255, then decrease
-			// white by 70%
-			else if (FormColors.testTwoPrimaryColors(rgb, 240, 256))
-				rgb = FormColors.blend(rgb, black, 30);
-			activeColor = new Color(display, rgb);
-
-			// alternate color is widget background + 40% white
-			rgb = toolkit.getColors().getSystemColor(
-					SWT.COLOR_WIDGET_BACKGROUND);
-			rgb = FormColors.blend(rgb, white, 60);
-			// If these values are in the range of 201 to 215, then decrease
-			// white by 10%
-			if (FormColors.testTwoPrimaryColors(rgb, 200, 216))
-				rgb = FormColors.blend(rgb, black, 90);
-			// If these values are in the range of 216 to 220, then decrease
-			// white by 20%
-			else if (FormColors.testTwoPrimaryColors(rgb, 215, 221))
-				rgb = FormColors.blend(rgb, black, 80);
-			// If these values are in the range of 221 to 230, then decrease
-			// white by 40%
-			else if (FormColors.testTwoPrimaryColors(rgb, 220, 231))
-				rgb = FormColors.blend(rgb, black, 60);
-			// If these values are in the range of 231 to 255, then decrease
-			// white by 60%
-			else if (FormColors.testTwoPrimaryColors(rgb, 230, 256))
-				rgb = FormColors.blend(rgb, black, 40);
-			inactiveColor1 = new Color(display, rgb);
-		}
-		rgb = activeColor.getRGB();
-		rgb = FormColors.blend(rgb, white, 40);
-		introColor = new Color(display, rgb);
-		inactiveColor2 = new Color(display, backgroundColor.getRGB());
-	}
-
-	private void computeReverseVideoColors(Display display) {
-        Color background = toolkit.getColors().getBackground();
-		RGB white = new RGB(255, 255, 255);
-        // 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 ); 
-	}
-	
-	private boolean isReverseVideo() {
-        Color bg = toolkit.getColors().getBackground();
-		return ((bg.getBlue() + bg.getRed() + bg.getGreen()) < 380);
-	}
-
-	public void initialized() {
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
-			item.initialized();
-		}
-	}
-
-	public Color getActiveColor() {
-		return activeColor;
-	}
-
-	public ScrolledForm getForm() {
-		return form;
-	}
-
-	public FormToolkit getToolkit() {
-		return toolkit;
-	}
-	
-	private int contributeRestartItem(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.PUSH, index++);
-		item.setText(Messages.RESTART_MENU);
-		item.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_RETURN));
-		
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				viewer.restart();
-			}
-		});
-		return index;
-	}
-
-	public int contributeToViewMenu(Menu menu, int index) {
-		return contributeRestartItem(menu, index);
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetView.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetView.java
deleted file mode 100644
index 14fdd58..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetView.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetStopWatch;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.actions.CheatSheetMenu;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.eclipse.ui.part.ViewPart;
-
-public class CheatSheetView extends ViewPart {
-	
-	private boolean actionBarContributed = false;
-	private CheatSheetExpandRestoreAction expandRestoreAction;
-	private Action copyAction;
-	private CheatSheetViewer viewer;
-	private IMemento memento;
-	
-	private void contributeToActionBars() {
-		IActionBars bars = getViewSite().getActionBars();
-		IMenuManager menuManager = bars.getMenuManager();
-		IToolBarManager tbmanager = bars.getToolBarManager();
-	
-		expandRestoreAction = new CheatSheetExpandRestoreAction(Messages.COLLAPSE_ALL_BUT_CURRENT_TOOLTIP, false, viewer);
-		
-		copyAction = new Action("copy") { //$NON-NLS-1$
-			public void run() {
-				viewer.copy();
-			}
-		};
-		copyAction.setEnabled(false);
-		tbmanager.add(expandRestoreAction);
-		bars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
-
-		viewer.setExpandRestoreAction(expandRestoreAction);
-		viewer.setCopyAction(copyAction);
-	
-		CheatSheetMenu cheatsheetMenuMenuItem = new CheatSheetMenu();
-		menuManager.add(cheatsheetMenuMenuItem);
-
-		cheatsheetMenuMenuItem.setMenuContributor(viewer);
-	}
-
-
-	/**
-	 * Creates the SWT controls for this workbench part.
-	 * <p>
-	 * Clients should not call this method (the workbench calls this method at
-	 * appropriate times).
-	 * </p>
-	 * <p>
-	 * For implementors this is a multi-step process:
-	 * <ol>
-	 *   <li>Create one or more controls within the parent.</li>
-	 *   <li>Set the parent layout as needed.</li>
-	 *   <li>Register any global actions with the <code>IActionService</code>.</li>
-	 *   <li>Register any popup menus with the <code>IActionService</code>.</li>
-	 *   <li>Register a selection provider with the <code>ISelectionService</code>
-	 *     (optional). </li>
-	 * </ol>
-	 * </p>
-	 *
-	 * @param parent the parent control
-	 */
-	public void createPartControl(Composite parent) {
-		CheatSheetStopWatch.startStopWatch("CheatSheetView.createPartControl"); //$NON-NLS-1$
-
-		viewer = new CheatSheetViewer(false);
-		viewer.createPartControl(parent);
-	
-		if (!actionBarContributed) {
-			contributeToActionBars();
-			actionBarContributed = true;
-		}
-		CheatSheetStopWatch.printLapTime("CheatSheetView.createPartControl", "Time in CheatSheetView.createPartControl() before restoreState: "); //$NON-NLS-1$ //$NON-NLS-2$
-		if (memento != null) {
-			restoreState(memento);
-		}
-
-		CheatSheetStopWatch.printTotalTime("CheatSheetView.createPartControl", "Time in CheatSheetView.createPartControl(): "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-	}
-	
-	public CheatSheetElement getContent() {
-		if(viewer != null) {
-			return viewer.getContent();
-		}
-		return null;
-	}
-
-	public String getCheatSheetID() {
-		if(viewer != null) {
-			return viewer.getCheatSheetID();
-		}
-		return null;
-	}
-
-	/*
-	 * Returns the CheatSheetViewer contained in this view.
-	 */
-	public CheatSheetViewer getCheatSheetViewer() {
-		return viewer;
-	}
-	
-	/* (non-Javadoc)
-	 * Initializes this view with the given view site.  A memento is passed to
-	 * the view which contains a snapshot of the views state from a previous
-	 * session.  Where possible, the view should try to recreate that state
-	 * within the part controls.
-	 * <p>
-	 * This implementation will ignore the memento and initialize the view in
-	 * a fresh state.  Subclasses may override the implementation to perform any
-	 * state restoration as needed.
-	 */
-	public void init(IViewSite site, IMemento memento) throws PartInitException {
-		init(site);
-		this.memento = memento;
-	}
-
-	/**
-	 * Restore the view state
-	 */
-	private void restoreState(IMemento memento) {
-		IMemento contentMemento = memento.getChild(ICheatSheetResource.MEMENTO);
-		if (contentMemento != null) {
-			String id = contentMemento.getString(ICheatSheetResource.MEMENTO_ID);
-			String name = contentMemento.getString(ICheatSheetResource.MEMENTO_NAME);
-			
-			// Using an if/else if here because at a point in time there was a different
-			// attribute used. As a result an if/else could cause setInput(null) to be
-			// invoked but this would throw an IllegalArgumentException. 
-			if(name != null) {
-				try {
-				URL fileURL = new URL(contentMemento.getString(ICheatSheetResource.MEMENTO_URL));
-				setInput(id, name, fileURL);
-				} catch (MalformedURLException mue) {
-				}
-			} else if (id != null) {
-				setInput(id);
-			}
-
-		}
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on IViewPart.
-	 */
-	public void saveState(IMemento memento) {
-		if(viewer != null) {
-			CheatSheetElement element = viewer.getContent();
-
-			if(element == null) {
-				// Currently no cheat sheet is being displayed so just return 
-				return;
-			}
-
-			IMemento contentMemento = memento.createChild(ICheatSheetResource.MEMENTO);
-
-			CheatSheetElement tempElement = CheatSheetRegistryReader.getInstance().findCheatSheet(element.getID());
-			if(tempElement != null) {
-				contentMemento.putString(ICheatSheetResource.MEMENTO_ID, element.getID());
-			} else {
-				contentMemento.putString(ICheatSheetResource.MEMENTO_ID, element.getID());
-				contentMemento.putString(ICheatSheetResource.MEMENTO_NAME, element.getLabel(null));
-				contentMemento.putString(ICheatSheetResource.MEMENTO_URL, element.getContentFile());
-			}
-
-			// Make sure the current cheat sheet is saved
-			viewer.saveCurrentSheet();
-		}
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {		
-		if(viewer != null) {
-			viewer.setFocus();
-		}
-	}
-	
-	public void setInput(String id) {
-		CheatSheetStopWatch.startStopWatch("CheatSheetView.setInput"); //$NON-NLS-1$
-
-		if(viewer != null) {
-			viewer.setInput(id);
-		}
-
-		CheatSheetStopWatch.printTotalTime("CheatSheetView.setInput", "Time in CheatSheetView.setInput(String id): "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void setInput(String id, String name, URL url) {
-		if(viewer != null) {
-			viewer.setInput(id, name, url);
-		}
-	}
-}
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
deleted file mode 100644
index 3c830c9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
+++ /dev/null
@@ -1,1204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.help.ui.internal.views.HelpTray;
-import org.eclipse.help.ui.internal.views.IHelpPartPage;
-import org.eclipse.help.ui.internal.views.ReusableHelpPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.cheatsheets.CheatSheetListener;
-import org.eclipse.ui.cheatsheets.ICheatSheetEvent;
-import org.eclipse.ui.cheatsheets.ICheatSheetViewer;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetStopWatch;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.actions.IMenuContributor;
-import org.eclipse.ui.internal.cheatsheets.composite.model.CompositeCheatSheetModel;
-import org.eclipse.ui.internal.cheatsheets.composite.views.CompositeCheatSheetPage;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheet;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheetParser;
-import org.eclipse.ui.internal.cheatsheets.data.CheatSheetSaveHelper;
-import org.eclipse.ui.internal.cheatsheets.data.ICheatSheet;
-import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
-import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
-import org.eclipse.ui.internal.cheatsheets.state.DefaultStateManager;
-import org.eclipse.ui.internal.cheatsheets.state.ICheatSheetStateManager;
-import org.eclipse.ui.internal.cheatsheets.state.TrayStateManager;
-import org.osgi.framework.Bundle;
-
-public class CheatSheetViewer implements ICheatSheetViewer, IMenuContributor {
-
-	//CS Elements
-	private CheatSheetElement contentElement;
-	private URL contentURL;
-	private String currentID;
-	private int currentItemNum;
-	// Used to indicate if an invalid cheat sheet id was specified via setInput.
-	private boolean invalidCheatSheetId = false;
-	// Used to indicate if a null cheat sheet id was specified via setInput.
-	private boolean nullCheatSheetId = false;
-
-	private CheatSheetParser parser;
-	private ICheatSheet model;
-	private CheatSheetManager manager;
-	private CheatSheetSaveHelper saveHelper;
-
-	private CheatSheetExpandRestoreAction expandRestoreAction;
-	private Action copyAction;
-
-	//ITEMS
-	private ViewItem currentItem;
-
-	//Lists
-	private ArrayList expandRestoreList = new ArrayList();
-	private ArrayList viewItemList = new ArrayList();
-
-	//Composites
-	protected Composite control;
-
-	private Cursor busyCursor;
-	
-	// The page currently displayed, may be a CheatSheetPage, CompositeCheatSheetPage
-	// or ErrorPage
-	private Page currentPage;  
-	private Label howToBegin;
-	private boolean inDialog;
-	private Listener listener;
-	
-	private ICheatSheetStateManager stateManager; // The state manager to use when saving
-	private ICheatSheetStateManager preTrayManager; // The state manager in use before a tray was opened
-	private String restorePath;
-	/**
-	 * The constructor.
-	 * 
-	 * @param inDialog whether or not this viewer will be placed in a modal dialog
-	 */
-	public CheatSheetViewer(boolean inDialog) {
-		currentItemNum = -1;
-		this.inDialog = inDialog;
-		saveHelper = new CheatSheetSaveHelper();
-	}
-
-	public void advanceIntroItem() {
-		resetItemState();
-		/* LP-item event */
-		// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_DEACTIVATED, introItem);
-
-		currentItemNum = 1;
-		ViewItem nextItem = getViewItemAtIndex(currentItemNum);
-		if (nextItem.item.isDynamic()) {
-			nextItem.handleButtons();
-		}
-		nextItem.setAsCurrentActiveItem();
-		/* LP-item event */
-		// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_ACTIVATED, nextItem);
-		collapseAllButCurrent(false);
-		
-		saveCurrentSheet();
-	}
-
-	/**
-	 * Reset the state of all the items in this cheatsheet
-	 */
-	private void resetItemState() {
-		IntroItem introItem = (IntroItem) getViewItemAtIndex(0);
-		boolean isStarted = introItem.isCompleted();
-
-		expandRestoreList = new ArrayList();
-		if(expandRestoreAction != null)
-			expandRestoreAction.setCollapsed(false);
-
-		clearBackgrounds();
-		clearIcons();
-		collapseAllButtons();
-		if(isStarted)
-			initManager();
-
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
-			if (item instanceof CoreItem) {
-				CoreItem c = (CoreItem) item;
-				ArrayList l = c.getListOfSubItemCompositeHolders();
-				if (l != null)
-					for (int j = 0; j < l.size(); j++) {
-						((SubItemCompositeHolder) l.get(j)).setSkipped(false);
-						((SubItemCompositeHolder) l.get(j)).setCompleted(false);
-					}
-			}
-		}
-
-		if (isStarted)
-			getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_RESTARTED);
-		else
-			getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_STARTED);
-
-		isStarted = true;
-		introItem.setAsNormalCollapsed();
-		introItem.setComplete();
-		introItem.setRestartImage();
-	}
-
-	/*package*/ 
-	/*
-	 * This function can do one of three things
-	 * 1. If this item has a completion message which has not been displayed, display it
-	 * 2. Otherwise if this is the final item return to the introduction
-	 * 3. If neither condition 1 or 2 is satisfied move to the next item
-	 */
-	void advanceItem(ImageHyperlink link, boolean markAsCompleted) {
-		currentItem = (ViewItem) link.getData();
-		int indexNextItem = getIndexOfItem(currentItem) +1;
-		boolean isFinalItem = indexNextItem >= viewItemList.size();
-		
-		if (markAsCompleted 
-				&& currentItem.hasCompletionMessage() 
-				&& !currentItem.isCompletionMessageExpanded()) {
-			currentItem.setCompletionMessageExpanded(isFinalItem);
-			currentItem.setComplete();
-			if (isFinalItem) {
-				getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_COMPLETED);
-			}
-			saveCurrentSheet();
-			return;
-		}
-
-		if (indexNextItem < currentItemNum) {
-			ViewItem vi = getViewItemAtIndex(currentItemNum);
-			vi.setAsNormalNonCollapsed();
-		}
-		if (currentItem != null) {
-			//set that item to it's original color.
-			currentItem.setAsNormalCollapsed();
-			//set that item as complete.
-			if (markAsCompleted) {
-				if (!currentItem.isCompleted()) {
-				    currentItem.setComplete();
-				}
-				/* LP-item event */
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_COMPLETED, currentItem);
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_DEACTIVATED, currentItem);
-			} else {
-				currentItem.setSkipped();
-				/* LP-item event */
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_SKIPPED, currentItem);
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_DEACTIVATED, currentItem);
-			}
-		}
-		if (!isFinalItem) {
-			ViewItem nextItem = getViewItemAtIndex(indexNextItem);
-			currentItemNum = indexNextItem;
-			if (nextItem != null) {
-				//Handle lazy button instantiation here.
-				if (nextItem.item.isDynamic()) {
-					((CoreItem) nextItem).handleButtons();
-				}
-				nextItem.setAsCurrentActiveItem();
-				/* LP-item event */
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_ACTIVATED, nextItem);
-				currentItem = nextItem;
-			}
-
-			FormToolkit.ensureVisible(currentItem.getMainItemComposite());
-		} else if (indexNextItem == viewItemList.size()) {
-			if (!currentItem.isCompletionMessageExpanded()) { // The event will already have been fired
-			    getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_COMPLETED);
-			}
-			showIntroItem();
-		}
-
-		saveCurrentSheet();
-	}
-
-	private void showIntroItem() {
-		ViewItem item = getViewItemAtIndex(0);
-		item.setAsCurrentActiveItem();
-	}
-
-	/*package*/ void advanceSubItem(ImageHyperlink link, boolean markAsCompleted, int subItemIndex) {
-		Label l = null;
-		ArrayList list = null;
-		SubItemCompositeHolder sich = null;
-		CoreItem ciws = null;
-
-		currentItem = (ViewItem) link.getData();
-
-		if (currentItem instanceof CoreItem)
-			ciws = (CoreItem) currentItem;
-
-		if (ciws != null) {
-			list = ciws.getListOfSubItemCompositeHolders();
-			sich = (SubItemCompositeHolder) list.get(subItemIndex);
-			l = sich.getIconLabel();
-		}
-
-		if (l != null) {
-			if (markAsCompleted) {
-				l.setImage(((ViewItem) ciws).getCompleteImage());
-				sich.setCompleted(true);
-				sich.setSkipped(false);
-				/* LP-subitem event */
-				// fireManagerSubItemEvent(ICheatSheetItemEvent.ITEM_COMPLETED, ciws, subItemID);
-			} else {
-				l.setImage(((ViewItem) ciws).getSkipImage());
-				sich.setSkipped(true);
-				sich.setCompleted(false);
-				/* LP-subitem event */
-				// fireManagerSubItemEvent(ICheatSheetItemEvent.ITEM_SKIPPED, ciws, subItemID);
-			}
-			ciws.refreshItem();
-		}
-
-		boolean allAttempted = checkAllAttempted(list);
-		boolean anySkipped = checkContainsSkipped(list);
-
-		if (allAttempted && !anySkipped) {
-			advanceItem(link, true);
-			return;
-		} else if (allAttempted && anySkipped) {
-			advanceItem(link, false);
-			return;
-		}
-
-		FormToolkit.ensureVisible(currentItem.getMainItemComposite());
-		saveCurrentSheet();
-	}
-
-	private boolean checkAllAttempted(ArrayList list) {
-		for (int i = 0; i < list.size(); i++) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) list.get(i);
-			if (s.isCompleted() || s.isSkipped()) {
-				continue;
-			}
-			return false;
-		}
-		return true;
-	}
-
-	private boolean checkContainsSkipped(ArrayList list) {
-		for (int i = 0; i < list.size(); i++) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) list.get(i);
-			if (s.isSkipped()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean loadState() {
-		try {
-			Properties props = stateManager.getProperties();
-
-			manager = stateManager.getCheatSheetManager();
-	
-			// There is a bug which causes the background of the buttons to
-			// remain white, even though the color is set. So instead of calling
-			// clearBackgrounds() only the following line should be needed. D'oh!
-			// ((ViewItem) viewItemList.get(0)).setOriginalColor();
-			clearBackgrounds();
-	
-			if (props == null) {
-				getViewItemAtIndex(0).setAsCurrentActiveItem();
-				/* LP-item event */
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_ACTIVATED, items[0]);
-				return true;
-			}
-	
-			boolean buttonIsDown = (Integer.parseInt((String) props.get(IParserTags.BUTTON)) == 0) ? false : true;
-			int itemNum = Integer.parseInt((String) props.get(IParserTags.CURRENT));
-			ArrayList completedStatesList = (ArrayList) props.get(IParserTags.COMPLETED);
-			ArrayList expandedStatesList = (ArrayList) props.get(IParserTags.EXPANDED);
-			expandRestoreList = (ArrayList) props.get(IParserTags.EXPANDRESTORE);
-			String cid = (String) props.get(IParserTags.ID);
-			Hashtable completedSubItems = (Hashtable) props.get(IParserTags.SUBITEMCOMPLETED);
-			Hashtable skippedSubItems = (Hashtable) props.get(IParserTags.SUBITEMSKIPPED);
-	
-			ArrayList completedSubItemsItemList = new ArrayList();
-			ArrayList skippedSubItemsItemList = new ArrayList();
-	
-			Enumeration e = completedSubItems.keys();
-			while (e.hasMoreElements())
-				completedSubItemsItemList.add(e.nextElement());
-	
-			Enumeration e2 = skippedSubItems.keys();
-			while (e2.hasMoreElements())
-				skippedSubItemsItemList.add(e2.nextElement());
-	
-			if (cid != null)
-				currentID = cid;
-	
-			if (itemNum >= 0) {
-				currentItemNum = itemNum;
-				
-				currentItem = getViewItemAtIndex(itemNum);
-	
-				CheatSheetStopWatch.startStopWatch("CheatSheetViewer.checkSavedState()"); //$NON-NLS-1$
-				for (int i = 0; i < viewItemList.size(); i++) {
-	
-					ViewItem item = getViewItemAtIndex(i);
-					if (i > 0 && item.item.isDynamic() && i <= currentItemNum) {
-						 item.handleButtons();
-						 item.setOriginalColor();
-					}
-	
-					if (completedStatesList.contains(Integer.toString(i))) {
-						item.setComplete();
-						item.setRestartImage();
-					} else {
-						if (i < currentItemNum) {
-							item.setSkipped();
-						}
-					}
-					if (expandedStatesList.contains(Integer.toString(i))) {
-						item.setExpanded();
-					} else {
-						item.setCollapsed();
-					}
-					if (i > currentItemNum) {
-						item.setButtonsCollapsed();
-						item.setCompletionMessageCollapsed();
-					} else {
-						item.setButtonsExpanded();
-						if (i >currentItemNum || item.isCompleted()) {
-						    item.setCompletionMessageExpanded(i + 1 >= viewItemList.size());
-					    } else {
-							item.setCompletionMessageCollapsed();
-					    }
-					}
-					if (expandRestoreList.contains(Integer.toString(i))) {
-						item.setCollapsed();
-					}
-					if (completedSubItemsItemList.contains(Integer.toString(i))) {
-						String subItemNumbers = (String) completedSubItems.get(Integer.toString(i));
-						StringTokenizer st = new StringTokenizer(subItemNumbers, ","); //$NON-NLS-1$
-						if (item instanceof CoreItem) {
-							CoreItem coreitemws = (CoreItem) item;
-							ArrayList subItemCompositeHolders = coreitemws.getListOfSubItemCompositeHolders();
-		                    if (subItemCompositeHolders != null) {
-								while (st.hasMoreTokens()) {
-									String token = st.nextToken();
-									((SubItemCompositeHolder) subItemCompositeHolders.get(Integer.parseInt(token))).setCompleted(true);
-									((SubItemCompositeHolder) subItemCompositeHolders.get(Integer.parseInt(token))).getIconLabel().setImage(item.getCompleteImage());
-									ArrayList l = subItemCompositeHolders;
-									SubItemCompositeHolder s = (SubItemCompositeHolder) l.get(Integer.parseInt(token));
-									if (s != null && s.getStartButton() != null) {
-										s.getStartButton().setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_RESTART));
-										s.getStartButton().setToolTipText(Messages.RESTART_TASK_TOOLTIP);
-									}
-		
-								}
-		                    }
-						}
-					}
-					if (skippedSubItemsItemList.contains(Integer.toString(i))) {
-						String subItemNumbers = (String) skippedSubItems.get(Integer.toString(i));
-						StringTokenizer st = new StringTokenizer(subItemNumbers, ","); //$NON-NLS-1$
-						if (item instanceof CoreItem) {
-							CoreItem coreitemws = (CoreItem) item;
-							while (st.hasMoreTokens()) {
-								String token = st.nextToken();
-								((SubItemCompositeHolder) coreitemws.getListOfSubItemCompositeHolders().get(Integer.parseInt(token))).setSkipped(true);
-								((SubItemCompositeHolder) coreitemws.getListOfSubItemCompositeHolders().get(Integer.parseInt(token))).getIconLabel().setImage(item.getSkipImage());
-							}
-						}
-					}
-					CheatSheetStopWatch.printLapTime("CheatSheetViewer.checkSavedState()", "Time in CheatSheetViewer.checkSavedState() after loop #"+i+": "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				}
-				CheatSheetStopWatch.printLapTime("CheatSheetViewer.checkSavedState()", "Time in CheatSheetViewer.checkSavedState() after loop: "); //$NON-NLS-1$ //$NON-NLS-2$
-	
-				if (buttonIsDown) {
-					if(expandRestoreAction != null)
-						expandRestoreAction.setCollapsed(true);
-				}
-				
-				// If the last item is the current one and it is complete then
-				// we should collapse the last item and set the focus on intro.
-				// For all other cases, set the current item as the active item.
-				if(viewItemList.size()-1 == itemNum && currentItem.isCompleted()) {
-					currentItem.setCollapsed();
-					getViewItemAtIndex(0).getMainItemComposite().setFocus();
-					
-					// The cheat sheet has been restored but is also completed so fire both events
-					getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_RESTORED);
-					getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_COMPLETED);
-				} else {
-					currentItem.setAsCurrentActiveItem();
-	
-					// If the intro item is completed, than the cheat sheet has been restored.
-					if(getViewItemAtIndex(0).isCompleted())
-						getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_RESTORED);
-				}
-	
-				/* LP-item event */
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_ACTIVATED, currentItem);
-			} else {
-				getViewItemAtIndex(0).setAsCurrentActiveItem();
-				/* LP-item event */
-				// fireManagerItemEvent(ICheatSheetItemEvent.ITEM_ACTIVATED, items[0]);
-			}
-	
-			FormToolkit.ensureVisible(currentItem.getMainItemComposite());
-			return true;
-		} catch(Exception e) {
-			// An exception while restoring the saved state data usually only occurs if
-			// the cheat sheet has been modified since this previous execution. This most
-			// often occurs during development of cheat sheets and as such an end user is
-			// not as likely to encounter this.
-			
-			boolean reset = MessageDialog.openConfirm(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), 
-					Messages.CHEATSHEET_STATE_RESTORE_FAIL_TITLE,
-					Messages.CHEATSHEET_STATE_RESET_CONFIRM);
-
-			if (reset) {
-				restart();
-				return true;
-			} 
-			
-			// Log the exception
-			String stateFile = saveHelper.getStateFile(currentID).toOSString();
-			String message = NLS.bind(Messages.ERROR_APPLYING_STATE_DATA_LOG, (new Object[] {stateFile, currentID}));
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, e);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-
-			// Set the currentID to null so it is not saved during internalDispose()
-			currentID = null;
-
-			internalDispose();
-
-			// Reinitialize a few variables because there is no currentItem or currentPage now
-			contentURL = null;
-			currentItem = null;
-			currentItemNum = -1;
-			currentPage = null;
-			expandRestoreList = new ArrayList();
-			viewItemList = new ArrayList();
-			
-			// Create the errorpage to show the user
-			createErrorPage(Messages.ERROR_APPLYING_STATE_DATA);
-
-			return false;
-		}
-	}
-
-	private void clearBackgrounds() {
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
-			item.setOriginalColor();
-		}
-	}
-
-	private void clearIcons() {
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
-			item.setOriginalColor();
-			if (item.isCompleted() || item.isExpanded() || item.isSkipped())
-					item.setIncomplete();
-		}
-	}
-
-	private void collapseAllButCurrent(boolean fromAction) {
-		expandRestoreList = new ArrayList();
-		try {
-			ViewItem current = getViewItemAtIndex(currentItemNum);
-			for (ListIterator iter = viewItemList.listIterator(viewItemList.size()); iter.hasPrevious();) {
-				ViewItem item = (ViewItem) iter.previous();
-				if (item != current && item.isExpanded()) {
-					item.setCollapsed();
-					if (fromAction)
-						expandRestoreList.add(Integer.toString(getIndexOfItem(item)));
-				}
-			}
-		} catch (Exception e) {
-		}
-	}
-
-	private void collapseAllButtons() {
-		for (Iterator iter = viewItemList.listIterator(1); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
-			item.setButtonsCollapsed();
-			item.setCompletionMessageCollapsed();
-		}
-	}
-
-	private void createErrorPage(String message) {
-		setCollapseExpandButtonEnabled(false);
-		if(message != null) {
-			currentPage = new ErrorPage(message);
-		} else {
-			currentPage = new ErrorPage();
-		}
-		currentPage.createPart(control);
-		control.layout(true);
-	}
-
-	/**
-	 * Creates the SWT controls for this workbench part.
-	 * <p>
-	 * Clients should not call this method (the workbench calls this method at
-	 * appropriate times).
-	 * </p>
-	 * <p>
-	 * For implementors this is a multi-step process:
-	 * <ol>
-	 *   <li>Create one or more controls within the parent.</li>
-	 *   <li>Set the parent layout as needed.</li>
-	 *   <li>Register any global actions with the <code>IActionService</code>.</li>
-	 *   <li>Register any popup menus with the <code>IActionService</code>.</li>
-	 *   <li>Register a selection provider with the <code>ISelectionService</code>
-	 *     (optional). </li>
-	 * </ol>
-	 * </p>
-	 *
-	 * @param parent the parent control
-	 */
-	public void createPartControl(Composite parent) {
-		control = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 0;
-		layout.horizontalSpacing = 0;
-		layout.numColumns = 1;
-		control.setLayout(layout);
-
-		control.addDisposeListener(new DisposeListener(){
-			public void widgetDisposed(DisposeEvent e) {
-				dispose();
-			}
-		});
-		
-		/*
-		 * org.eclipse.help.ui is an optional dependency; only perform this
-		 * step is this plugin is present.
-		 */
-		if (!inDialog && (Platform.getBundle("org.eclipse.help.ui") != null)) { //$NON-NLS-1$
-			listener = new Listener() {
-				public void handleEvent(Event event) {
-					if (isTrayDialog(event.widget)) {
-						dialogOpened((TrayDialog)((Shell)event.widget).getData());
-					}
-				}
-			};
-			Display.getCurrent().addFilter(SWT.Show, listener);
-		}
-
-		howToBegin = new Label(control, SWT.WRAP);
-		howToBegin.setText(Messages.INITIAL_VIEW_DIRECTIONS);
-		howToBegin.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Display display = parent.getDisplay();
-
-		busyCursor = new Cursor(display, SWT.CURSOR_WAIT);
-
-		if(contentElement != null) {
-			initCheatSheetView();
-		}
-	}
-
-	/**
-	 * Called when any TrayDialog is opened. The viewer must react by disabling
-	 * itself and moving the cheat sheet to the dialog's tray if the current item
-	 * was flagged as one that opens a modal dialog.
-	 * 
-	 * @param dialog the dialog that was opened
-	 */
-	private void dialogOpened(TrayDialog dialog) {
-		if (isInDialogItem()) {
-			HelpTray tray = (HelpTray)dialog.getTray();
-			if (tray == null) {
-				tray = new HelpTray();
-				dialog.openTray(tray);
-			}
-			ReusableHelpPart helpPart = tray.getHelpPart();
-			IHelpPartPage page = helpPart.createPage(CheatSheetHelpPart.ID, null, null);
-			page.setVerticalSpacing(0);
-			page.setHorizontalMargin(0);
-			ICheatSheetStateManager trayManager = new TrayStateManager();
-			preTrayManager = stateManager;
-			stateManager = trayManager;
-			saveCurrentSheet();      // Save the state into the tray manager
-			helpPart.addPart(CheatSheetHelpPart.ID, new CheatSheetHelpPart(helpPart.getForm().getForm().getBody(), helpPart.getForm().getToolkit(), page.getToolBarManager(), contentElement, trayManager));
-			page.addPart(CheatSheetHelpPart.ID, true);
-			helpPart.addPage(page);
-			helpPart.showPage(CheatSheetHelpPart.ID);
-			
-			/*
-			 * Disable the viewer until the tray is closed, then show it again.
-			 */
-			control.setVisible(false);
-			Display.getCurrent().removeFilter(SWT.Show, listener);
-
-			helpPart.getControl().addListener(SWT.Dispose, new Listener() {
-				public void handleEvent(Event event) {
-					control.setVisible(true);
-					Display.getCurrent().addFilter(SWT.Show, listener);
-					if (preTrayManager != null) {
-						loadState();   // Load from the tray manager
-						stateManager = preTrayManager;
-						preTrayManager = null;
-					}
-				}
-			});
-		}
-	}
-
-	/**
-	 * Disposes of this cheat sheet viewer.
-	 */
-	private void dispose() {
-		if (listener != null) {
-			Display.getCurrent().removeFilter(SWT.Show, listener);
-		}
-		internalDispose();
-		if (busyCursor != null)
-			busyCursor.dispose();
-	}
-
-	/*
-	 * Returns the cheat sheet being viewed. 
-	 */
-	public ICheatSheet getCheatSheet() {
-		return model;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.cheatsheets.ICheatSheetViewer#getCheatSheetID()
-	 */
-	public String getCheatSheetID() {
-		if(getContent() != null) {
-			return getContent().getID();
-		}
-		
-		return null;
-	}
-
-	/**
-	 * Returns the current content.
-	 *
-	 * @return CheatSheetElement
-	 */
-	/*package*/ CheatSheetElement getContent() {
-		return contentElement;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.cheatsheets.ICheatSheetViewer#getControl()
-	 */
-	public Control getControl() {
-		return control;
-	}
-
-	private int getIndexOfItem(ViewItem item) {
-		int index = viewItemList.indexOf(item);
-		if(index != -1) {
-			return index;
-		}
-		return 0;
-	}
-
-	/*package*/ CheatSheetManager getManager() {
-		if (manager == null) {
-			getNewManager();
-		}
-		return manager;
-	}
-
-	private CheatSheetManager getNewManager(){
-		manager = new CheatSheetManager(contentElement);
-		return manager;
-	}
-	
-	private CheatSheetManager initManager(){
-		CheatSheetManager csManager = getManager();
-		csManager.setData(new Hashtable());
-		return csManager;
-	}
-
-	private ViewItem getViewItemAtIndex(int index) {
-		if (viewItemList != null && !viewItemList.isEmpty()) {
-			return (ViewItem) viewItemList.get(index);
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns whether or not this viewer contains the given Control, which
-	 * is currently in focus.
-	 * 
-	 * @param control the Control currently in focus
-	 * @return whether this viewer contains the given Control or not
-	 */
-	public boolean hasFocusControl(Control control) {
-		return (control == this.control) || (currentPage.getControl() == control);
-	}
-	
-	private void initCheatSheetView() {
-		CheatSheetStopWatch.startStopWatch("CheatSheetViewer.initCheatSheetView()"); //$NON-NLS-1$
-		//Re-initialize list to store items collapsed by expand/restore action on c.s. toolbar.
-		expandRestoreList = new ArrayList();
-
-		// re set that action to turned off.
-		if(expandRestoreAction != null)
-			expandRestoreAction.setCollapsed(false);
-
-		//reset current item to be null; next item too.
-		currentItem = null;
-		currentItemNum = 0;
-		viewItemList = new ArrayList();
-
-		// Reset the page variable
-		currentPage = null;
-		
-		if(howToBegin != null) {
-			howToBegin.dispose();
-			howToBegin = null;
-		}
-		
-		// read our contents, if there are problems reading the file an error page should be created.
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() before readFile() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-		boolean parsedOK = readFile();
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after readFile() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-		if(!parsedOK){
-			// If a null cheat sheet id was specified, return leaving the cheat sheet empty.
-			if(nullCheatSheetId) {
-				return;
-			}
-
-			// Exception thrown during parsing.
-			// Something is wrong with the Cheat sheet content file at the xml level.
-			if(invalidCheatSheetId) {
-				createErrorPage(Messages.ERROR_CHEATSHEET_DOESNOT_EXIST);
-			} else {
-				createErrorPage(null);
-			}
-			return;
-		}
-		
-		control.setRedraw(false);
-		if (model instanceof CheatSheet) {	
-		    currentPage = new CheatSheetPage((CheatSheet)model, viewItemList, this);
-		    setCollapseExpandButtonEnabled(true);
-		} else if (model instanceof CompositeCheatSheetModel) {
-			CompositeCheatSheetModel compositeCheatSheetModel = ((CompositeCheatSheetModel)model);
-			compositeCheatSheetModel.setId(currentID);
-			currentPage = new CompositeCheatSheetPage(compositeCheatSheetModel);
-			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$
-
-	    if (model instanceof CheatSheet) {	
-			CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after fireEvent() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-	
-			if(!loadState()) {
-				// An error occurred when apply the saved state data.
-				control.setRedraw(true);
-				control.layout();
-				return;
-			}
-
-			getManager().fireEvent(ICheatSheetEvent.CHEATSHEET_OPENED);
-	    }
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after checkSavedState() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		currentPage.initialized();
-		control.setRedraw(true);
-		control.layout();
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after layout() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		if (currentItem != null && !currentItem.isCompleted())
-			currentItem.getMainItemComposite().setFocus();
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() at end of method: "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private void internalDispose() {
-		if(manager != null)
-			manager.fireEvent(ICheatSheetEvent.CHEATSHEET_CLOSED);
-       
-		saveCurrentSheet();
-
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
-			item.dispose();
-		}
-
-		if(currentPage != null) {
-			currentPage.dispose();
-		}
-	}
-
-	/**
-	 * Returns whether or not the currently active item requires opening a
-	 * modal dialog.
-	 * 
-	 * @return whether the current item opens a modal dialog
-	 */
-	private boolean isInDialogItem() {
-		ViewItem item = getViewItemAtIndex(currentItemNum);
-		if (item != null) {
-			return item.getItem().isDialog();
-		}
-		return false;
-	}
-	
-	/**
-	 * Returns whether or not this cheat sheet viewer is inside a modal
-	 * dialog.
-	 * 
-	 * @return whether this viewer is inside a modal dialog
-	 */
-	public boolean isInDialogMode() {
-		return inDialog;
-	}
-	
-	/**
-	 * Returns whether the given widget is a TrayDialog.
-	 * 
-	 * @param widget the widget to check
-	 * @return whether or not the widget is a TrayDialog
-	 */
-	private boolean isTrayDialog(Widget widget) {
-		return (widget instanceof Shell && ((Shell)widget).getData() instanceof TrayDialog);
-	}
-
-	/**
-	* Read the contents of the welcome page
-	*/
-	private boolean readFile() {
-		if(parser == null)
-			parser = new CheatSheetParser();
-		// If the cheat sheet was registered then
-		// search for a specific type - composite or simple
-		int cheatSheetKind = CheatSheetParser.ANY;
-		if (contentElement.isRegistered()) { 
-			if (contentElement.isComposite()) {
-				cheatSheetKind = CheatSheetParser.COMPOSITE_ONLY;
-			} else {
-				cheatSheetKind = CheatSheetParser.SIMPLE_ONLY;
-			}
-		}
-		model = parser.parse(contentURL, cheatSheetKind);
-		return model == null ? false : true;
-	}
-
-	private void restoreExpandStates() {
-		try {
-			for (int i = 0; i < expandRestoreList.size(); i++) {
-				int index = Integer.parseInt(((String) expandRestoreList.get(i)));
-				ViewItem item = getViewItemAtIndex(index);
-				if (!item.isExpanded()) {
-					item.setExpanded();
-				}
-			}
-			expandRestoreList = null;
-		} catch (Exception e) {
-		}
-	}
-	
-	/*package*/ void runPerformExecutable(ImageHyperlink link) {
-		link.setCursor(busyCursor);
-		currentItem = (ViewItem) link.getData();
-		CoreItem coreItem = (CoreItem) currentItem;
-
-		if (coreItem != null) {
-			IStatus status = coreItem.runExecutable(getManager());
-			if ( status.isOK() && !coreItem.hasConfirm()) {					
-				coreItem.setRestartImage();
-				//set that item as complete.
-				advanceItem(link, true);
-				saveCurrentSheet();
-			}
-			if ( status.getSeverity() == IStatus.ERROR) {
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-			    org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), null, null, status);								
-			}
-		}
-
-		link.setCursor(null);
-	}
-
-	/*package*/ void runSubItemPerformExecutable(ImageHyperlink link, int subItemIndex) {
-		CoreItem coreItem = null;
-		link.setCursor(busyCursor);
-		currentItem = (ViewItem) link.getData();
-		coreItem = (CoreItem) currentItem;
-
-		try {
-			if (coreItem != null) {
-				if (coreItem.runSubItemExecutable(getManager(), subItemIndex) == ViewItem.VIEWITEM_ADVANCE && !coreItem.hasConfirm(subItemIndex)) {
-					ArrayList l = coreItem.getListOfSubItemCompositeHolders();
-					SubItemCompositeHolder s = (SubItemCompositeHolder) l.get(subItemIndex);
-					s.getStartButton().setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_RESTART));
-					s.getStartButton().setToolTipText(Messages.RESTART_TASK_TOOLTIP);
-					advanceSubItem(link, true, subItemIndex);
-					saveCurrentSheet();
-				}
-			}
-		} catch (RuntimeException e) {
-			IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.ERROR_RUNNING_ACTION, e);
-			CheatSheetPlugin.getPlugin().getLog().log(status);
-			org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), null, null, status);
-		} finally {
-			link.setCursor(null);
-		}
-	}
-
-	/*package*/ void saveCurrentSheet() {
-		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);
-			    }
-			} else if (currentPage instanceof CompositeCheatSheetPage) {
-				((CompositeCheatSheetPage)currentPage).saveState();
-			}
-		}
-	}
-	
-	private boolean getExpandRestoreActionState() {
-		boolean expandRestoreActionState = false;
-		if(expandRestoreAction != null)
-			expandRestoreActionState = expandRestoreAction.isCollapsed();
-		return expandRestoreActionState;	
-	}
-
-	/*package*/ void setContent(CheatSheetElement element, ICheatSheetStateManager inputStateManager) {
-		CheatSheetStopWatch.startStopWatch("CheatSheetViewer.setContent(CheatSheetElement element)"); //$NON-NLS-1$
-		
-		// Cleanup previous contents
-		internalDispose();
-
-		// Set the current content to new content
-		contentElement = element;
-		stateManager = inputStateManager;	
-		stateManager.setElement(element);
-
-		currentID = null;
-		contentURL = null;
-		if (element != null) {
-			currentID = element.getID();
-			restorePath = element.getRestorePath();
-	
-			Bundle bundle = null;
-			if(element != null && element.getConfigurationElement() != null)
-				try{
-					String pluginId = element.getConfigurationElement().getContributor().getName();
-					bundle = Platform.getBundle(pluginId);
-				} catch (Exception e) {
-					// do nothing
-				}
-			if (bundle != null) {
-				contentURL = FileLocator.find(bundle, new Path(element.getContentFile()), null);
-			}
-	
-			if (contentURL == null) {
-				try {
-					contentURL = new URL(element.getContentFile());
-				} catch (MalformedURLException mue) {
-				}
-			}
-		}
-
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.setContent(CheatSheetElement element)", "Time in CheatSheetViewer.setContent() before initCheatSheetView() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-		// Initialize the view with the new contents
-		if (control != null) {
-			initCheatSheetView();
-		}
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.setContent(CheatSheetElement element)", "Time in CheatSheetViewer.setContent() after initCheatSheetView() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/*package*/ void setExpandRestoreAction(CheatSheetExpandRestoreAction action) {
-		expandRestoreAction = action;
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		//need this to have current item selected. (Assumes that when you reactivate the view you will work with current item.)
-		if (currentItem != null)
-			currentItem.getMainItemComposite().setFocus();
-	}
-	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.cheatsheets.ICheatSheetViewer#setInput(java.lang.String)
-	 */
-	public void setInput(String id) {
-		setInput(id, new DefaultStateManager());
-	}
-
-	public void setInput(String id, ICheatSheetStateManager inputStateManager) {
-		CheatSheetStopWatch.startStopWatch("CheatSheetViewer.setInput(String id)"); //$NON-NLS-1$
-
-		CheatSheetElement element = null;
-
-		if(id == null) {
-			nullCheatSheetId = true;
-		} else {
-			nullCheatSheetId = false;
-
-			element = CheatSheetRegistryReader.getInstance().findCheatSheet(id);
-			if(element == null) {
-				String message = NLS.bind(Messages.ERROR_INVALID_CHEATSHEET_ID, (new Object[] {id}));
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, null);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-				invalidCheatSheetId = true;
-			} else {
-				invalidCheatSheetId = false;
-			}
-		}
-
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.setInput(String id)", "Time in CheatSheetViewer.setInput(String id) before setContent() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-		setContent(element, inputStateManager);
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.setInput(String id)", "Time in CheatSheetViewer.setInput(String id) after setContent() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// Update most recently used cheat sheets list.
-		CheatSheetPlugin.getPlugin().getCheatSheetHistory().add(element);
-		CheatSheetStopWatch.printLapTime("CheatSheetViewer.setInput(String id)", "Time in CheatSheetViewer.setInput(String id) after getCheatSheetHistory() call: "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.cheatsheets.ICheatSheetViewer#setInput(java.lang.String, java.lang.String, java.net.URL)
-	 */
-	public void setInput(String id, String name, URL url) {
-		setInput(id, name, url, new DefaultStateManager());
-	}
-	
-	public void setInput(String id, String name, URL url, ICheatSheetStateManager inputStateManager) {
-		if (id == null || name == null || url == null) {
-			throw new IllegalArgumentException();
-		}
-		CheatSheetElement element = new CheatSheetElement(name);
-		element.setID(id);
-		element.setContentFile(url.toString());
-
-		nullCheatSheetId = false;
-		invalidCheatSheetId = false;
-		setContent(element, inputStateManager);
-	}
-	
-    /*package*/ void toggleExpandRestore() {
-		if(expandRestoreAction == null)
-			return;
-
-		if (expandRestoreAction.isCollapsed()) {
-			restoreExpandStates();
-			expandRestoreAction.setCollapsed(false);
-		} else {
-			collapseAllButCurrent(true);
-			expandRestoreAction.setCollapsed(true);
-		}
-
-	}
-
-	public Action getCopyAction() {
-		return copyAction;
-	}
-
-	public void setCopyAction(Action copyAction) {
-		this.copyAction = copyAction;
-	}
-	
-	public void copy() {
-		if (currentItem!=null)
-			currentItem.copy();
-	}
-
-	public void addListener(CheatSheetListener listener) {
-		getManager().addListener(listener);		
-	}
-
-	public int contributeToViewMenu(Menu menu, int index) {
-		if (currentPage instanceof IMenuContributor) {
-			return ((IMenuContributor)currentPage).contributeToViewMenu(menu, index);
-		}
-		return index;
-	}
-	
-	public void restart() {
-		resetItemState();
-		currentItemNum = 0;
-		collapseAllButCurrent(false);
-		IntroItem introItem = (IntroItem) getViewItemAtIndex(0);
-		introItem.setIncomplete();
-		showIntroItem();		
-	}
-
-	public void saveState(IMemento memento) {
-		if (currentPage instanceof CheatSheetPage) {
-			Properties properties = saveHelper.createProperties(currentItemNum, viewItemList, getExpandRestoreActionState(), expandRestoreList, currentID, restorePath);
-		    saveHelper.saveToMemento(properties, getManager(), memento);
-		}
-	}
-
-	public void reset(Map cheatSheetData) {
-		if (currentPage instanceof CheatSheetPage) {
-			restart();
-			getManager().setData(cheatSheetData);
-		} else if (currentPage instanceof CompositeCheatSheetPage) {
-			((CompositeCheatSheetPage)currentPage).restart(cheatSheetData);
-		}		
-	}
-	
-	/*
-	 * Show the collapse/expand button if we have access to the toolbar
-	 */
-	private void setCollapseExpandButtonEnabled(boolean enable) {
-		if (expandRestoreAction != null) {
-			expandRestoreAction.setEnabled(enable);
-		}
-	}
-
-}
\ No newline at end of file
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
deleted file mode 100644
index f73352b..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.data.AbstractExecutable;
-import org.eclipse.ui.internal.cheatsheets.data.AbstractSubItem;
-import org.eclipse.ui.internal.cheatsheets.data.ConditionalSubItem;
-import org.eclipse.ui.internal.cheatsheets.data.Item;
-import org.eclipse.ui.internal.cheatsheets.data.RepeatedSubItem;
-import org.eclipse.ui.internal.cheatsheets.data.SubItem;
-
-public class CoreItem extends ViewItem {
-	protected boolean buttonsHandled = false;
-
-	private ArrayList listOfSubItemCompositeHolders;
-
-	/**
-	 * Constructor for CoreItem.
-	 * @param parent
-	 * @param contentItem
-	 */
-	public CoreItem(CheatSheetPage page, Item item, Color itemColor, CheatSheetViewer viewer) {
-		super(page, item, itemColor, viewer);
-	}
-
-	private void createButtonComposite() {
-		buttonComposite = page.getToolkit().createComposite(bodyWrapperComposite);
-		GridLayout buttonlayout = new GridLayout(1, false);
-		buttonlayout.marginHeight = 2;
-		buttonlayout.marginWidth = 2;
-		buttonlayout.verticalSpacing = 2;
-
-		TableWrapData buttonData = new TableWrapData(TableWrapData.FILL);
-
-		buttonComposite.setLayout(buttonlayout);
-		buttonComposite.setLayoutData(buttonData);
-		buttonComposite.setBackground(itemColor);
-
-	}
-	
-
-	private void createButtons(AbstractExecutable executable) {
-		/*
-		 * When the cheat sheet is displayed in a dialog's tray, hide
-		 * the executable that was just invoked to open the dialog.
-		 */
-		boolean inDialog = isInDialogMode();
-		boolean isDialogAction = getItem().isDialog();
-		boolean hideAction = isDialogAction && inDialog;
-		if (executable != null && !hideAction) {
-			final ImageHyperlink startButton = createButtonWithText(buttonComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_START), this, itemColor, Messages.PERFORM_TASK_TOOLTIP);
-			startButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-			page.getToolkit().adapt(startButton, true, true);
-			startButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					viewer.runPerformExecutable(startButton);
-				}
-			});
-		}
-		if (item.isSkip()) {
-			final ImageHyperlink skipButton = createButtonWithText(buttonComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_SKIP), this, itemColor, Messages.SKIP_TASK_TOOLTIP);
-			page.getToolkit().adapt(skipButton, true, true);
-			skipButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					viewer.advanceItem(skipButton, false);
-				}
-			});
-		}
-		if (executable == null || executable.isConfirm()) {
-			final ImageHyperlink completeButton = createButtonWithText(buttonComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_COMPLETE), this, itemColor, Messages.COMPLETE_TASK_TOOLTIP);
-			page.getToolkit().adapt(completeButton, true, true);
-			completeButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					viewer.advanceItem(completeButton, true);
-				}
-			});
-		}
-	}
-
-	private void createSubItemButtonComposite() {
-		buttonComposite = page.getToolkit().createComposite(bodyWrapperComposite);
-		
-		TableWrapLayout xbuttonlayout = new TableWrapLayout();
-		xbuttonlayout.numColumns = 6;
-
-		TableWrapData xbuttonData = new TableWrapData(TableWrapData.FILL);
-
-		buttonComposite.setLayout(xbuttonlayout);
-		buttonComposite.setLayoutData(xbuttonData);
-		buttonComposite.setBackground(itemColor);
-	}
-
-	private void createSubItemButtons(SubItem sub, String thisValue, int index) {
-		int added = 0;
-		
-		//Spacer label added.
-		Label checkDoneLabel = page.getToolkit().createLabel(buttonComposite, null);
-		checkDoneLabel.setBackground(itemColor);
-		added++;
-
-		//Now add the label.
-		String labelText = null;
-		if( thisValue != null ) {
-			labelText = performLineSubstitution(sub.getLabel(), "${this}", thisValue); //$NON-NLS-1$
-		} else {
-			labelText = sub.getLabel();
-		}
-		Label label = page.getToolkit().createLabel(buttonComposite, labelText, SWT.WRAP);
-		label.setBackground(itemColor);
-		added++;
-
-		AbstractExecutable subExecutable = null;
-		if(sub.getPerformWhen() != null) {
-			sub.getPerformWhen().setSelectedExecutable(viewer.getManager());
-			subExecutable = sub.getPerformWhen().getSelectedExecutable();
-		} else {
-			subExecutable = sub.getExecutable();
-		}
-		
-		final int fi = index;
-		ImageHyperlink startButton = null;
-		if (subExecutable != null) {
-			added++;
-			startButton = createButton(buttonComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_START), this, itemColor, Messages.PERFORM_TASK_TOOLTIP);
-			final ImageHyperlink finalStartButton = startButton;
-			page.getToolkit().adapt(startButton, true, true);
-			startButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					viewer.runSubItemPerformExecutable(finalStartButton, fi);
-				}
-			});
-		}
-		if (sub.isSkip()) {
-			added++;
-			final ImageHyperlink skipButton = createButton(buttonComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_SKIP), this, itemColor, Messages.SKIP_TASK_TOOLTIP);
-			page.getToolkit().adapt(skipButton, true, true);
-			skipButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					viewer.advanceSubItem(skipButton, false, fi);
-				}
-			});
-		}
-		if (subExecutable == null || subExecutable.isConfirm()) {
-			added++;
-			final ImageHyperlink completeButton = createButton(buttonComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_COMPLETE), this, itemColor, Messages.COMPLETE_TASK_TOOLTIP);
-			page.getToolkit().adapt(completeButton, true, true);
-			completeButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					viewer.advanceSubItem(completeButton, true, fi);
-				}
-			});
-		}
-
-		while (added < 6) {
-			// Add filler labels as needed to complete the row
-			Label filler = page.getToolkit().createLabel(buttonComposite, null);
-			filler.setBackground(itemColor);
-			added++;
-		}
-		listOfSubItemCompositeHolders.add(new SubItemCompositeHolder(checkDoneLabel, startButton, thisValue, sub));
-	}
-
-	private AbstractExecutable getExecutable() {
-		AbstractExecutable executable = item.getExecutable();
-		if(executable == null) {
-			if(item.getPerformWhen() != null){
-				executable = item.getPerformWhen().getSelectedExecutable();
-			}
-		}
-		return executable;
-	}
-
-	private AbstractExecutable getExecutable(int index) {
-		if (item.getSubItems() != null && item.getSubItems().size()>0 && listOfSubItemCompositeHolders != null) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) listOfSubItemCompositeHolders.get(index);
-			if(s != null) {
-				SubItem subItem = s.getSubItem();
-				AbstractExecutable executable = subItem.getExecutable();
-				if(executable == null) {
-					if(subItem.getPerformWhen() != null){
-						executable = subItem.getPerformWhen().getSelectedExecutable();
-					}
-				}
-				return executable;
-			}
-		}
-		return null;
-	}
-
-	public ArrayList getListOfSubItemCompositeHolders() {
-		return listOfSubItemCompositeHolders;
-	}
-
-	private ImageHyperlink getStartButton() {
-		if(buttonComposite != null) {
-			Control[] controls = buttonComposite.getChildren();
-			for (int i = 0; i < controls.length; i++) {
-				Control control = controls[i];
-				if(control instanceof ImageHyperlink) {
-					String toolTipText = control.getToolTipText();
-					if( toolTipText != null &&
-						(toolTipText.equals(Messages.PERFORM_TASK_TOOLTIP) ||
-						 toolTipText.equals(Messages.RESTART_TASK_TOOLTIP))) {
-						return (ImageHyperlink)control;
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.ui.internal.cheatsheets.ViewItem#handleButtons()
-	 */
-	/*package*/ void handleButtons() {
-		if(item.isDynamic()) {
-			handleDynamicButtons();
-			return;
-		} else if( item.getSubItems() != null && item.getSubItems().size() > 0) {
-			try{
-				handleSubButtons();
-			}catch(Exception e){
-				//Need to log exception here. 
-				IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.LESS_THAN_2_SUBITEMS, e);
-				CheatSheetPlugin.getPlugin().getLog().log(status);
-				org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), Messages.LESS_THAN_2_SUBITEMS, null, status);
-			}
-		}
-
-		if (buttonsHandled)
-			return;
-
-		createButtonComposite();
-		createButtons(item.getExecutable());
-		buttonsHandled = true;
-	}
-
-	private void handleDynamicButtons() {
-		if( item.getSubItems() != null && item.getSubItems().size() > 0 ) {
-			handleDynamicSubItemButtons();
-		} else if( item.getPerformWhen() != null ) {
-			handlePerformWhenButtons();
-		}
-	}
-
-	private void handleDynamicSubItemButtons() {
-		boolean refreshRequired = false;
-		if(buttonComposite != null) {
-			Control[] children = buttonComposite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				Control control = children[i];
-				control.dispose();
-			}
-			
-			refreshRequired = true;
-		} else {
-			createSubItemButtonComposite();
-		}
-
-		//Instantiate the list to store the sub item composites.
-		listOfSubItemCompositeHolders = new ArrayList(20);
-
-		//loop throught the number of sub items, make a new composite for each sub item.
-		//Add the spacer, the label, then the buttons that are applicable for each sub item.
-		int i=0;
-		for (Iterator iter = item.getSubItems().iterator(); iter.hasNext(); i++) {
-			AbstractSubItem subItem = (AbstractSubItem)iter.next();
-			if( subItem instanceof RepeatedSubItem ) {
-
-				//Get the sub item to add.
-				RepeatedSubItem repeatedSubItem = (RepeatedSubItem)subItem;
-				String values = repeatedSubItem.getValues();
-				values = viewer.getManager().getVariableData(values);
-				if(values == null || values.length() <= 0 || (values.startsWith("${") && values.endsWith("}"))) { //$NON-NLS-1$ //$NON-NLS-2$
-					String message = NLS.bind(Messages.ERROR_DATA_MISSING_LOG, (new Object[] {repeatedSubItem.getValues()}));
-					IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, null);
-					CheatSheetPlugin.getPlugin().getLog().log(status);
-
-					status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.ERROR_DATA_MISSING, null);
-					CheatSheetPlugin.getPlugin().getLog().log(status);
-					org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), null, null, status);
-					break;
-				}
-
-				SubItem sub = (SubItem)repeatedSubItem.getSubItems().get(0);
-				
-				StringTokenizer tokenizer = new StringTokenizer(values, ","); //$NON-NLS-1$
-				while(tokenizer.hasMoreTokens()) {
-					String value = tokenizer.nextToken();
-					createSubItemButtons(sub, value, i++);
-				}
-				
-				// Decrement the counter by because the outer loop increments it prior to the next iteration
-				i--;
-			} else if( subItem instanceof ConditionalSubItem ) {
-				//Get the sub item to add.
-				ConditionalSubItem sub = (ConditionalSubItem)subItem;
-
-				sub.setSelectedSubItem(viewer.getManager());
-				SubItem selectedSubItem = sub.getSelectedSubItem();
-
-				if(selectedSubItem == null) {
-					String message = NLS.bind(Messages.ERROR_CONDITIONAL_DATA_MISSING_LOG, (new Object[] {sub.getCondition(), getItem().getTitle()}));
-					IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, null);
-					CheatSheetPlugin.getPlugin().getLog().log(status);
-
-					status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, Messages.ERROR_DATA_MISSING, null);
-					CheatSheetPlugin.getPlugin().getLog().log(status);
-					org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), null, null, status);
-					break;
-				}
-
-				createSubItemButtons(selectedSubItem, null, i);
-			} else if( subItem instanceof SubItem ) {
-				createSubItemButtons((SubItem)subItem, null, i);
-			}
-		}
-
-		if(refreshRequired) {
-			refresh(buttonComposite);
-		}
-	}
-
-	private void handlePerformWhenButtons() {
-		boolean refreshRequired = false;
-
-		if(buttonComposite != null) {
-			Control[] controls = buttonComposite.getChildren();
-			for (int i = 0; i < controls.length; i++) {
-				Control control = controls[i];
-				if(control instanceof ImageHyperlink) {
-					control.dispose();
-				}
-			}
-			
-			refreshRequired = true;
-		} else {
-			createButtonComposite();
-		}
-
-		item.getPerformWhen().setSelectedExecutable(viewer.getManager());
-		AbstractExecutable performExecutable = item.getPerformWhen().getSelectedExecutable();
-
-		createButtons(performExecutable);
-		
-		if(refreshRequired) {
-			refresh(buttonComposite);
-		}
-	}
-
-	private void handleSubButtons() throws Exception {
-		if (buttonsHandled)
-			return;
-		//Instantiate the list to store the sub item composites.
-		listOfSubItemCompositeHolders = new ArrayList(20);
-
-		ArrayList sublist = item.getSubItems();
-		
-		if(sublist == null || sublist.size()<=1)
-			throw new Exception(Messages.LESS_THAN_2_SUBITEMS);
-		
-		createSubItemButtonComposite();
-
-		//loop throught the number of sub items, make a new composite for each sub item.
-		//Add the spacer, the label, then the buttons that are applicable for each sub item.
-		for (int i = 0; i < sublist.size(); i++) {
-			createSubItemButtons((SubItem)sublist.get(i), null, i);
-		}
-		buttonsHandled = true;
-	}
-	
-	/*package*/
-	boolean hasConfirm() {
-		AbstractExecutable executable = getExecutable();
-
-		if (executable == null || executable.isConfirm()) {
-			return true;
-		}
-		return false;
-	}
-
-	/*package*/
-	boolean hasConfirm(int index) {
-		AbstractExecutable executable = getExecutable(index);
-
-		if (executable == null || executable.isConfirm()) {
-			return true;
-		}
-		return false;
-	}
-
-	public String performLineSubstitution(String line, String variable, String value) {
-		StringBuffer buffer = new StringBuffer(line.length());
-
-		StringDelimitedTokenizer tokenizer = new StringDelimitedTokenizer(line, variable);
-		boolean addValue = false;
-
-		while (tokenizer.hasMoreTokens()) {
-			if (addValue) {
-				buffer.append(value);
-			}
-			buffer.append(tokenizer.nextToken());
-			addValue = true;
-		}
-		if (tokenizer.endsWithDelimiter()) {
-			buffer.append(value);
-		}
-
-		return buffer.toString();
-	}
-	
-	/*package*/
-	IStatus runExecutable(CheatSheetManager csm) {
-		return runExecutable(getExecutable(), csm);	
-	}
-	
-	IStatus runExecutable(AbstractExecutable executable, CheatSheetManager csm) {
-		if(executable != null) {
-			return executable.execute(csm);
-		} 
-		return Status.OK_STATUS;
-	}
-
-	/*package*/
-	byte runSubItemExecutable(CheatSheetManager csm, int index) {
-		if (item.getSubItems() != null && item.getSubItems().size()>0 && listOfSubItemCompositeHolders != null) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) listOfSubItemCompositeHolders.get(index);
-			if(s != null) {
-				AbstractExecutable executable = getExecutable(index);
-
-				if(executable != null) {
-					try {
-						if(s.getThisValue() != null) {
-							csm.setData("this", s.getThisValue()); //$NON-NLS-1$
-						}
-						IStatus status = runExecutable(executable, csm);
-						if ( status.isOK()) {					
-							return VIEWITEM_ADVANCE;
-						}
-						if ( status.getSeverity() == IStatus.ERROR) {
-							CheatSheetPlugin.getPlugin().getLog().log(status);
-						    org.eclipse.jface.dialogs.ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), null, null, status);								
-						}
-						return VIEWITEM_DONOT_ADVANCE;
-					} finally {
-						if(s.getThisValue() != null) {
-							csm.setData("this", null); //$NON-NLS-1$
-						}
-					}
-				}
-			}
-		}
-		return VIEWITEM_ADVANCE;
-	}
-
-	/*package*/void setButtonsHandled(boolean handled){
-		buttonsHandled = handled;
-	}
-	
-	/*package*/ void setIncomplete() {
-		super.setIncomplete();
-			
-		//check for sub items and reset their icons.
-		ArrayList l = getListOfSubItemCompositeHolders();
-		if(l != null){
-			for(int j=0; j<l.size(); j++){
-				SubItemCompositeHolder s = (SubItemCompositeHolder)l.get(j);
-				if(s.isCompleted() || s.isSkipped())
-					s.getIconLabel().setImage(null);
-				if(s.startButton != null) {
-					s.getStartButton().setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_START));	
-					s.getStartButton().setToolTipText(Messages.PERFORM_TASK_TOOLTIP);
-				}
-			}					
-		}	
-	}
-
-	/*package*/ void setRestartImage() {
-		ImageHyperlink startButton = getStartButton();
-		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);
-		}
-	}
-
-	/*package*/ void setStartImage() {
-		ImageHyperlink startButton = getStartButton();
-		if (startButton != null) {
-			startButton.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_START));
-			if (startButton.getText() != null) {
-			    startButton.setText(Messages.PERFORM_TASK_TOOLTIP);
-			}
-		    startButton.setToolTipText(Messages.PERFORM_TASK_TOOLTIP);
-		}
-	}
-
-	boolean hasCompletionMessage() {
-		return item.getCompletionMessage() != null;
-	}
-	
-	
-	/*
-	 * (non-Javadoc)
-	 * Create a composite to hold the message defined in an onCompletion element
-	 * and a button to advance to the next step or return to the introduction if 
-	 * this is the last step.
-	 */
-	void createCompletionComposite(boolean isFinalItem) {
-		String completionMessage = viewer.getManager().performVariableSubstitution
-		    (item.getCompletionMessage());
-		if (completionMessage != null) {
-			Color backgroundColor = bodyWrapperComposite.getBackground();
-			completionComposite = page.getToolkit().createComposite(
-					bodyWrapperComposite);
-			TableWrapLayout completionlayout = new TableWrapLayout();
-			completionlayout.numColumns = 1;
-
-			TableWrapData completionData = new TableWrapData(TableWrapData.FILL);
-
-			completionComposite.setLayout(completionlayout);
-			completionComposite.setLayoutData(completionData);
-			completionComposite.setBackground(backgroundColor);
-
-			Label completionLabel = page.getToolkit().createLabel(completionComposite,
-					completionMessage, SWT.WRAP);
-			completionLabel.setBackground(backgroundColor);
-			final ImageHyperlink completeButton = createButtonWithText(
-					completionComposite,
-					getCompletionButtonIcon(isFinalItem),
-					this, 
-					backgroundColor, 
-					getCompletionButtonTooltip(isFinalItem));
-			page.getToolkit().adapt(completeButton, true, true);
-			completeButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					viewer.advanceItem(completeButton, true);
-				}
-			});
-			completionComposite.setVisible(false);
-			// The line below is necessary because without it the color of
-			// the composite containing the button does not get set
-			setBackgroundColor(completionComposite, backgroundColor);
-			refresh(completionComposite);
-		}
-	}
-
-	private Image getCompletionButtonIcon(boolean isFinalItem) {
-		if (isFinalItem) {
-			return CheatSheetPlugin
-			.getPlugin()
-			.getImage(
-					ICheatSheetResource.CHEATSHEET_RETURN);
-		}
-		return CheatSheetPlugin
-				.getPlugin()
-				.getImage(
-						ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_COMPLETE);
-	}
-	
-	private String getCompletionButtonTooltip(boolean isFinalItem) {
-		if (isFinalItem) {
-			return Messages.RETURN_TO_INTRO_TOOLTIP;
-		}
-		return Messages.ADVANCE_TASK_TOOLTIP;	
-	}
-	
-	private void refresh(Composite composite) {
-		composite.layout();
-		getMainItemComposite().layout();
-		page.getForm().reflow(true);
-	}
-	
-	public void refreshItem() {
-		if (buttonComposite != null) {
-			refresh(buttonComposite);
-		}
-	}
-		
-}
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
deleted file mode 100644
index 6dc6bc9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.internal.cheatsheets.*;
-
-public class ErrorPage extends Page {
-
-	private String message;
-	
-	public ErrorPage() {
-	}
-
-	public ErrorPage(String errorMessage) {
-		this.message = errorMessage;
-	}
-
-	public void createPart(Composite parent) {
-		super.createPart(parent);
-		String errorString = null;
-		if(message == null) {
-			errorString = Messages.ERROR_PAGE_MESSAGE;
-		} else {
-			errorString = message;
-		}
-		Label errorLabel = toolkit.createLabel(form.getBody(), errorString, SWT.WRAP);
-		errorLabel.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-	}
-
-	/**
-	 * Creates the cheatsheet's title areawhich will consists
-	 * of a title and image.
-	 *
-	 * @param parent the SWT parent for the title area composite
-	 */
-	protected String getTitle() {
-		return Messages.ERROR_LOADING_CHEATSHEET_CONTENT;
-	}
-
-	public void initialized() {
-		// No initialization required
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/IntroItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/IntroItem.java
deleted file mode 100644
index 19136dd..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/IntroItem.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.widgets.*;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.data.Item;
-
-public class IntroItem extends ViewItem {
-	private ImageHyperlink startButton;
-
-	/**
-	 * Constructor for IntroItem.
-	 * @param parent
-	 * @param contentItem
-	 */
-	public IntroItem(CheatSheetPage page, Item contentItem, Color itemColor, CheatSheetViewer viewer) {
-		super(page, contentItem, itemColor, viewer);
-	}
-
-
-	/*package*/ void setStartImage() {
-		startButton.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_TASK_START));
-		startButton.setText(Messages.START_CHEATSHEET_TOOLTIP);
-		startButton.setToolTipText(Messages.START_CHEATSHEET_TOOLTIP);
-//		startButton.setFAccessibleName(startButton.getToolTipText());
-	}
-
-	/*package*/ void setRestartImage() {
-		startButton.setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_RETURN));
-		startButton.setText(Messages.RESTART_CHEATSHEET_TOOLTIP);
-		startButton.setToolTipText(Messages.RESTART_CHEATSHEET_TOOLTIP);
-//		startButton.setFAccessibleName(startButton.getToolTipText());
-	}
-
-	/**
-	 * @see org.eclipse.ui.internal.cheatsheets.data.ViewItem#handleButtons(Composite)
-	 */
-	/*package*/ void handleButtons() {
-		buttonComposite = page.getToolkit().createComposite(bodyWrapperComposite);
-		GridLayout buttonlayout = new GridLayout(4, false);
-		buttonlayout.marginHeight = 2;
-		buttonlayout.marginWidth = 2;
-		buttonlayout.verticalSpacing = 2;
-
-		TableWrapData buttonData = new TableWrapData(TableWrapData.FILL);
-
-		buttonComposite.setLayout(buttonlayout);
-		buttonComposite.setLayoutData(buttonData);
-		buttonComposite.setBackground(itemColor);
-		Label filllabel = page.getToolkit().createLabel(buttonComposite, null);
-		filllabel.setBackground(itemColor);
-		GridData filldata = new GridData();
-		filldata.widthHint = 16;
-		filllabel.setLayoutData(filldata);
-
-		startButton = createButtonWithText(buttonComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.COMPOSITE_TASK_START), this, itemColor, Messages.START_CHEATSHEET_TOOLTIP);
-		startButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-		page.getToolkit().adapt(startButton, true, true);
-		startButton.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				viewer.advanceIntroItem();
-			}
-		});
-	}
-
-	boolean hasCompletionMessage() {
-		return false;
-	}
-
-	void createCompletionComposite(boolean isFinalItem) {
-		// Not called	
-	}
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/NoopAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/NoopAction.java
deleted file mode 100644
index a46e457..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/NoopAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class NoopAction extends Action {
-
-	/**
-	 * Constructor for NoopAction.
-	 */
-	protected NoopAction() {
-		super();
-	}
-
-	/**
-	 * Constructor for NoopAction.
-	 * @param text
-	 */
-	protected NoopAction(String text) {
-		super(text);
-	}
-
-	/**
-	 * Constructor for NoopAction.
-	 * @param text
-	 * @param image
-	 */
-	protected NoopAction(String text, ImageDescriptor image) {
-		super(text, image);
-	}
-
-
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/Page.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/Page.java
deleted file mode 100644
index 69ed0ab..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/Page.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetStopWatch;
-
-public abstract class Page {
-	protected final static int HORZ_SCROLL_INCREMENT = 20;
-
-	protected final static int VERT_SCROLL_INCREMENT = 20;
-
-	// Colors
-	protected Color backgroundColor;
-
-	private Color[] colorArray;
-
-	protected FormToolkit toolkit;
-
-	protected ScrolledForm form;
-
-	public Page() {
-	}
-
-	public Control getControl() {
-		return form;
-	}
-
-	public void createPart(Composite parent) {
-		init(parent.getDisplay());
-		CheatSheetStopWatch.startStopWatch("Page.createInfoArea()"); //$NON-NLS-1$
-		CheatSheetStopWatch
-				.printLapTime(
-						"Page.createInfoArea()", "Time in Page.createInfoArea() after new FormToolkit(): "); //$NON-NLS-1$ //$NON-NLS-2$
-		form = toolkit.createScrolledForm(parent);
-		form.setData("novarrows", Boolean.TRUE); //$NON-NLS-1$
-		form.setText(getTitle());
-		form.setDelayedReflow(true);
-		CheatSheetStopWatch
-				.printLapTime(
-						"Page.createInfoArea()", "Time in Page.createInfoArea() after createScrolledForm(): "); //$NON-NLS-1$ //$NON-NLS-2$
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 10;
-		form.setLayoutData(gd);
-		CheatSheetStopWatch
-				.printLapTime(
-						"Page.createInfoArea()", "Time in Page.createInfoArea() after setLayoutData(): "); //$NON-NLS-1$ //$NON-NLS-2$
-		TableWrapLayout layout = new TableWrapLayout();
-		CheatSheetStopWatch
-				.printLapTime(
-						"Page.createInfoArea()", "Time in Page.createInfoArea() after new FormTableWrapLayout(): "); //$NON-NLS-1$ //$NON-NLS-2$
-		layout.numColumns = 2;
-		layout.verticalSpacing = 3;
-		form.getBody().setLayout(layout);
-
-		CheatSheetStopWatch
-				.printLapTime(
-						"Page.createInfoArea()", "Time in Page.createInfoArea() end of method: "); //$NON-NLS-1$ //$NON-NLS-2$		
-	}
-
-	/**
-	 * Creates the cheatsheet's title areawhich will consists of a title and
-	 * image.
-	 * 
-	 * @param parent
-	 *            the SWT parent for the title area composite
-	 */
-	/*
-	 * private void createTitleArea(Composite parent) { // Message label final
-	 * CLabel messageLabel = new CLabel(parent, SWT.NONE);
-	 * messageLabel.setBackground(colorArray, new int[] { 85, 100 }, true);
-	 * 
-	 * messageLabel.setText(getTitle());
-	 * messageLabel.setFont(JFaceResources.getHeaderFont()); GridData ldata =
-	 * new GridData(GridData.FILL_HORIZONTAL); ldata.grabExcessHorizontalSpace =
-	 * true; messageLabel.setLayoutData(ldata);
-	 * 
-	 * final IPropertyChangeListener fontListener = new
-	 * IPropertyChangeListener() { public void
-	 * propertyChange(PropertyChangeEvent event) { if
-	 * (JFaceResources.HEADER_FONT.equals(event.getProperty())) {
-	 * messageLabel.setFont(JFaceResources.getHeaderFont()); } } };
-	 * 
-	 * messageLabel.addDisposeListener(new DisposeListener() { public void
-	 * widgetDisposed(DisposeEvent event) {
-	 * JFaceResources.getFontRegistry().removeListener(fontListener); } });
-	 * 
-	 * JFaceResources.getFontRegistry().addListener(fontListener);
-	 * 
-	 * GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-	 * messageLabel.setLayoutData(gridData); }
-	 */
-
-	public void dispose() {
-		if (form != null) {
-			form.dispose();
-		}
-		if (colorArray != null) {
-			for (int i = 0; i < colorArray.length; i++) {
-				if (colorArray[i] != null)
-					colorArray[i].dispose();
-			}
-		}
-		if (toolkit != null) {
-			toolkit.dispose();
-		}
-		form = null;
-		toolkit = null;
-		colorArray = null;
-	}
-
-	protected void init(Display display) {
-		toolkit = new FormToolkit(display);
-		backgroundColor = toolkit.getColors().getBackground();
-	}
-
-	protected abstract String getTitle();
-
-	public abstract void initialized();
-	
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/StringDelimitedTokenizer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/StringDelimitedTokenizer.java
deleted file mode 100644
index c7f9d66..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/StringDelimitedTokenizer.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-public class StringDelimitedTokenizer {
-
-	private String str;
-	private String delimiter;
-	private int delimiterLength;
-	private int currentPosition;
-	private int maxPosition;
-
-	public StringDelimitedTokenizer(String str, String delim) {
-		currentPosition = 0;
-		this.str = str;
-		this.delimiter = delim;
-		maxPosition = this.str.length();
-		delimiterLength = this.delimiter.length();
-	}
-
-	public int countTokens() {
-		int count = 0;
-		int startPosition = 0;
-
-		while (startPosition < maxPosition && startPosition != -1) {
-			startPosition = str.indexOf(delimiter, startPosition);
-			if (startPosition != -1) {
-				startPosition += delimiterLength;
-			}
-			count++;
-		}
-
-		return count;
-	}
-
-	public boolean endsWithDelimiter() {
-		return str.endsWith(delimiter);
-	}
-
-	public boolean hasMoreTokens() {
-		return (currentPosition < maxPosition);
-	}
-
-	public String nextToken() {
-		int position = str.indexOf(delimiter, currentPosition);
-		String token = null;
-		if (position == -1) {
-			token = str.substring(currentPosition);
-			currentPosition = maxPosition;
-		} else {
-			token = str.substring(currentPosition, position);
-			currentPosition = position + delimiterLength;
-		}
-		return token;
-	}
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/SubItemCompositeHolder.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/SubItemCompositeHolder.java
deleted file mode 100644
index 1d4b17f..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/SubItemCompositeHolder.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.internal.cheatsheets.data.SubItem;
-
-public class SubItemCompositeHolder {
-	private Label iconLabel;
-	private boolean skipped;
-	private boolean completed;
-	protected ImageHyperlink startButton;
-	private String thisValue;
-	private SubItem subItem;
-	
-	/**
-	 * 
-	 */
-	/*package*/ SubItemCompositeHolder(Label l, ImageHyperlink startb, String thisValue, SubItem subItem) {
-		super();
-		iconLabel = l;
-		startButton = startb;
-		this.thisValue = thisValue;
-		this.subItem = subItem;
-	}
-
-	/**
-	 * @return Label
-	 */
-	/*package*/ Label getIconLabel() {
-		return iconLabel;
-	}
-
-	/**
-	 * @return
-	 */
-	public boolean isCompleted() {
-		return completed;
-	}
-
-	/**
-	 * @return
-	 */
-	public boolean isSkipped() {
-		return skipped;
-	}
-
-	/**
-	 * @param b
-	 */
-	/*package*/ void setCompleted(boolean b) {
-		completed = b;
-	}
-
-	/**
-	 * @param b
-	 */
-	/*package*/ void setSkipped(boolean b) {
-		skipped = b;
-	}
-
-	/**
-	 * @return
-	 */
-	/*package*/ ImageHyperlink getStartButton() {
-		return startButton;
-	}
-
-	/**
-	 * @return Returns the thisValue.
-	 */
-	public String getThisValue() {
-		return thisValue;
-	}
-
-	/**
-	 * @param thisValue The thisValue to set.
-	 */
-	public void setThisValue(String thisValue) {
-		this.thisValue = thisValue;
-	}
-
-	/**
-	 * @return Returns the subItem.
-	 */
-	public SubItem getSubItem() {
-		return subItem;
-	}
-
-	/**
-	 * @param subItem The subItem to set.
-	 */
-	public void setSubItem(SubItem subItem) {
-		this.subItem = subItem;
-	}
-}
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
deleted file mode 100644
index 67c37df..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
+++ /dev/null
@@ -1,619 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.cheatsheets.views;
-
-import java.util.ArrayList;
-
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IContext;
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.cheatsheets.AbstractItemExtensionElement;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
-import org.eclipse.ui.internal.cheatsheets.CheatSheetStopWatch;
-import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
-import org.eclipse.ui.internal.cheatsheets.Messages;
-import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
-import org.eclipse.ui.internal.cheatsheets.data.Item;
-
-public abstract class ViewItem {
-
-	public final static byte VIEWITEM_ADVANCE = 0;
-	public final static byte VIEWITEM_DONOT_ADVANCE = 1;
-	private Composite bodyComp;
-
-	protected FormText bodyText;
-	protected FormText completionText;
-//	protected Label bodyText;
-	protected Composite bodyWrapperComposite;
-	protected Composite buttonComposite;
-	protected Composite completionComposite;
-
-	private boolean buttonExpanded = true;
-	private boolean completionMessageExpanded = false;
-	private Label checkDoneLabel;
-	private boolean completed = false;
-
-	protected Item item;
-
-	// Colors
-	protected Color itemColor;
-
-	private boolean isSkipped = false;
-	private ExpandableComposite mainItemComposite;
-
-	private Composite parent;
-	protected CheatSheetViewer viewer;
-	protected CheatSheetPage page;
-	private Composite titleComposite;
-	private boolean bold = true;
-	private Font boldFont;
-	private Font regularFont;
-	private boolean initialized = false;
-
-	/**
-	 * Constructor for ViewItem.
-	 */
-	public ViewItem(CheatSheetPage page, Item item, Color itemColor, CheatSheetViewer viewer) {
-		super();
-		this.page = page;
-		this.parent = page.getForm().getBody();
-		this.item = item;
-		this.itemColor = itemColor;
-		this.viewer = viewer;
-		addItem();
-	}
-
-	//Adds the item to the main composite.
-	private void addItem() {
-		CheatSheetStopWatch.startStopWatch("ViewItem.addItem()"); //$NON-NLS-1$
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after getBannerBackground: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		//		Set up the main composite for the item.******************************************
-		checkDoneLabel = page.getToolkit().createLabel(parent, " "); //$NON-NLS-1$
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after create checkDoneLabel: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		mainItemComposite = page.getToolkit().createSection(parent, ExpandableComposite.TWISTIE|ExpandableComposite.COMPACT);
-		mainItemComposite.setBackground(itemColor);
-		mainItemComposite.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		String title = item.getTitle();
-		if (title != null) {
-			mainItemComposite.setText(title);
-		}
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after create mainItemComposite: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		
-		mainItemComposite.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				page.getForm().reflow(true);
-			}
-		});
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after addExpansionListener: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// handle item extensions here
-		// check number of extensions for this item and adjust layout accordingly
-		int number = 0;
-		ArrayList itemExts = item.getItemExtensions();
-
-		if((itemExts != null && itemExts.size() > 0) || item.getContextId() != null || item.getHref() != null) {
-			// Set up the title composite for the item.
-			titleComposite = page.getToolkit().createComposite(mainItemComposite);
-			titleComposite.setBackground(itemColor);
-		}
-
-		if(itemExts != null) {
-			for (int g = 0; g < itemExts.size(); g++) {
-				AbstractItemExtensionElement[] eea = (AbstractItemExtensionElement[]) itemExts.get(g);
-				number += eea.length;
-				for (int x = 0; x < eea.length; x++) {
-					eea[x].createControl(titleComposite);
-				}
-			}
-		}
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after create item extensions: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// don't add the help icon unless there is a context id or help link
-		if(item.getContextId() != null || item.getHref() != null) {
-			// adjust the layout count
-			number++;
-			ImageHyperlink helpButton = createButton(titleComposite, CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_HELP), this, itemColor, Messages.HELP_BUTTON_TOOLTIP);
-			page.getToolkit().adapt(helpButton, true, true);
-			helpButton.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					// If we have a context id, handle this first and ignore an hrefs
-					if(item.getContextId() != null) {
-						openInfopop(e.widget);
-					} else {
-						// We only have an href, so let's open it in the help system
-						openHelpTopic();
-					}
-				}
-			});
-		}
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after create help button: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		if(number > 0) {
-			mainItemComposite.setTextClient(titleComposite);
-			GridLayout layout = new GridLayout(number, false);
-			GridData data = new GridData(GridData.FILL_BOTH);
-	
-			titleComposite.setLayout(layout);
-			titleComposite.setLayoutData(data);
-			layout.marginWidth = 0;
-			layout.marginHeight = 0;
-			layout.verticalSpacing = 0;
-		}
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after setTextClient: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		//Body wrapper here.   this composite will be hidden and shown as appropriate.
-		bodyWrapperComposite = page.getToolkit().createComposite(mainItemComposite);
-		mainItemComposite.setClient(bodyWrapperComposite);
-		TableWrapLayout wrapperLayout = new TableWrapLayout();
-		bodyWrapperComposite.setLayout(wrapperLayout);
-		bodyWrapperComposite.setBackground(itemColor);
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after create bodyWrapperComposite: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		bodyText = page.getToolkit().createFormText(bodyWrapperComposite, false);
-		bodyText.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				Action copyAction = viewer.getCopyAction();
-				if (copyAction!=null)
-					copyAction.setEnabled(bodyText.canCopy());
-			}
-		});
-		bodyText.addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent e) {
-				Action copyAction = viewer.getCopyAction();
-				if (copyAction!=null)
-					copyAction.setEnabled(bodyText.canCopy());
-			}
-			public void focusLost(FocusEvent e) {
-				Action copyAction = viewer.getCopyAction();
-				if (copyAction!=null)
-					copyAction.setEnabled(false);
-			}
-		});
-//		bodyText = toolkit.createLabel(bodyWrapperComposite, item.getDescription(), SWT.WRAP);
-		bodyText.setText(item.getDescription(), item.getDescription().startsWith(IParserTags.FORM_START_TAG), false);
-
-		//Set up the body text portion here.		
-		bodyText.setBackground(itemColor);
-		bodyText.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after create FormText: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		//Handle the sub-steps and regular buttons here.
-		//First Check to see if there is sub steps.  If there is, don't create the button comp,
-		//As it will be handled by the CoreItemWithSubs.
-		//If there is no sub steps, create a button composite and Pass it to CoreItem using the handleButtons.
-
-		if(!item.isDynamic()) {
-			handleButtons();
-		}
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after handleButtons(): "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		setButtonsCollapsed();
-		setCollapsed();
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after setting buttons and item collapsed: "); //$NON-NLS-1$ //$NON-NLS-2$
-
-		boldFont = mainItemComposite.getFont();
-		FontData[] fontDatas = boldFont.getFontData();
-		for (int i = 0; i < fontDatas.length; i++) {
-			fontDatas[i].setStyle(fontDatas[i].getStyle() ^ SWT.BOLD);
-		}
-		regularFont = new Font(mainItemComposite.getDisplay(), fontDatas);
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after font initlization: "); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		setBold(false);
-		CheatSheetStopWatch.printLapTime("ViewItem.addItem()", "Time in addItem() after setBold: "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-
-	protected ImageHyperlink createButtonWithText(Composite parent, Image image, ViewItem item, Color color, String linkText) {
-		ImageHyperlink button = page.getToolkit().createImageHyperlink(parent, SWT.NULL);
-		button.setImage(image);
-		button.setData(item);
-		button.setBackground(color);
-		button.setText(linkText);
-		button.setToolTipText(linkText);
-		return button;
-	}
-
-	protected ImageHyperlink createButton(Composite parent, Image image, ViewItem item, Color color, String toolTipText) {
-		ImageHyperlink button = new ImageHyperlink(parent, SWT.NULL);
-		page.getToolkit().adapt(button, true, true);
-		button.setImage(image);
-		button.setData(item);
-		button.setBackground(color);
-		button.setToolTipText(toolTipText);
-//		button.setFAccessibleDescription(bodyText.getText());
-//		button.setFAccessibleName(button.getToolTipText());
-
-		return button;
-	}
-
-	public void dispose() {
-		if (checkDoneLabel != null)
-			checkDoneLabel.dispose();
-		if (bodyText != null)
-			bodyText.dispose();
-		if (buttonComposite != null)
-			buttonComposite.dispose();
-		if (completionComposite != null) 
-			completionComposite.dispose();
-		if (bodyComp != null)
-			bodyComp.dispose();
-		if (bodyWrapperComposite != null)
-			bodyWrapperComposite.dispose();
-		if (mainItemComposite != null)
-			mainItemComposite.dispose();
-		if (titleComposite != null)
-			titleComposite.dispose();
-		if (regularFont != null)
-			regularFont.dispose();
-
-		ArrayList itemExts = item.getItemExtensions();
-		if (itemExts != null) {
-			for (int g = 0; g < itemExts.size(); g++) {
-				AbstractItemExtensionElement[] eea = (AbstractItemExtensionElement[]) itemExts.get(g);
-				for (int x = 0; x < eea.length; x++) {
-					eea[x].dispose();
-				}
-			}
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	/*package*/
-	Image getCompleteImage() {
-		return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_COMPLETE);
-	}
-
-	/**
-	 * @return
-	 */
-	public Item getItem() {
-		return item;
-	}
-
-	/**
-	 * Returns the mainItemComposite.
-	 * @return Composite
-	 */
-	/*package*/
-	Composite getMainItemComposite() {
-		return mainItemComposite;
-	}
-
-	/**
-	 * @return
-	 */
-	/*package*/
-	Image getSkipImage() {
-		return CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_SKIP);
-	}
-
-	//Adds the buttons to the buttonComposite.
-	/*package*/
-	abstract void handleButtons();
-
-	/*package*/
-	boolean isBold() {
-		return bold;
-	}
-
-	/**
-	 * Returns the completed.
-	 * @return boolean
-	 */
-	public boolean isCompleted() {
-		return completed;
-	}
-
-	public boolean isExpanded() {
-		return mainItemComposite.isExpanded();
-	}
-	
-	public boolean isCompletionMessageExpanded() {
-	    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
-	 */
-	public boolean isInDialogMode() {
-		return viewer.isInDialogMode();
-	}
-	
-	/*package*/
-	boolean isSkipped() {
-		return isSkipped;
-	}
-
-	/**
-	 * Open a help topic
-	 */
-	private void openHelpTopic() {
-		if (item == null || item.getHref() == null) {
-			return;
-		}
-
-		PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(item.getHref());
-	}
-
-	/**
-	 * Open an infopop
-	 */
-	private void openInfopop(Widget widget) {
-		if (item == null || item.getContextId() == null) {
-			return;
-		}
-
-		IContext context = HelpSystem.getContext(item.getContextId());
-
-		if (context != null) {
-			// determine a location in the upper right corner of the widget
-			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);
-		}
-	}
-
-	public void setAsCurrentActiveItem() {
-		setColorAsCurrent(true);
-		setButtonsExpanded();
-		setExpanded();
-		setBold(true);
-		mainItemComposite.setFocus();
-	}
-
-	/*package*/
-	void setAsNormalCollapsed() {
-		setBold(false);
-		setColorAsCurrent(false);
-		if (mainItemComposite.isExpanded())
-			setCollapsed();
-	}
-
-	/*package*/
-	void setAsNormalNonCollapsed() {
-		setColorAsCurrent(false);
-		setBold(false);
-	}
-
-	private void setBodyColor(Color color) {
-		mainItemComposite.setBackground(color);
-		setBackgroundColor(bodyWrapperComposite, color);
-		setBackgroundColor(buttonComposite, color);
-		setBackgroundColor(completionComposite, color);
-	}
-	
-	/*
-	 * Set the background color of this composite and its children.
-	 * If the composite is null do nothing.
-	 */
-	protected void setBackgroundColor(Composite composite, Color color) {
-		if (composite != null) {
-			composite.setBackground(color);
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				children[i].setBackground(color);
-			}
-		}
-	}
-
-	/*package*/
-	void setBold(boolean value) {
-		if(value) {
-			mainItemComposite.setFont(boldFont);
-			if(initialized)
-				mainItemComposite.layout();
-		} else {
-			mainItemComposite.setFont(regularFont);
-			if(initialized)
-				mainItemComposite.layout();
-		}
-		bold = value;
-	}
-	
-	//collapses the item
-	/*package*/
-	void setButtonsCollapsed() {
-
-		if (buttonComposite != null)
-			if (buttonExpanded) {
-				buttonComposite.setVisible(false);
-
-				buttonExpanded = false;
-			}
-
-	}
-	
-	//expands the item
-	/*package*/
-	void setButtonsExpanded() {
-
-		if (!buttonExpanded) {
-			buttonComposite.setVisible(true);
-
-			buttonExpanded = true;
-
-			if(initialized) {
-				FormToolkit.ensureVisible(getMainItemComposite());
-			}
-		}
-	}
-	
-	protected void setCompletionMessageExpanded(boolean isFinalItem) {
-		if (hasCompletionMessage()) {
-			if (completionComposite == null) {
-				createCompletionComposite(isFinalItem);
-			}
-			if (!completionMessageExpanded) {
-				completionComposite.setVisible(true);
-				completionMessageExpanded = true;
-			}
-		}
-	}
-	
-	abstract void createCompletionComposite(boolean isFinalItem);
-
-	protected void setCompletionMessageCollapsed() {
-		if (completionComposite != null) {
-			if (completionMessageExpanded) {				
-				completionComposite.dispose();
-				completionComposite = null;
-				page.getForm().reflow(true);
-			}
-		}
-		completionMessageExpanded = false;
-	}
-
-	//collapses the item
-	/*package*/
-	void setCollapsed() {
-		if (mainItemComposite.isExpanded()) {
-			mainItemComposite.setExpanded(false);
-			if(initialized) {
-				page.getForm().reflow(true);
-				FormToolkit.ensureVisible(getMainItemComposite());
-			}
-		}
-	}
-
-	private void setColorAsCurrent(boolean active) {
-		if (active) {
-			setTitleColor(page.getActiveColor());
-			setBodyColor(page.getActiveColor());
-		} else {
-			setTitleColor(itemColor);
-			setBodyColor(itemColor);
-		}
-	}
-
-	//marks the item as complete.
-	/*package*/
-	void setComplete() {
-		completed = true;		
-		checkDoneLabel.setImage(getCompleteImage());
-
-		if(initialized) {
-			checkDoneLabel.getParent().layout();
-		}
-	}
-
-	//expands the item
-	/*package*/
-	void setExpanded() {
-		if (!mainItemComposite.isExpanded()) {
-			mainItemComposite.setExpanded(true);
-			if(initialized) {
-				page.getForm().reflow(true);
-				FormToolkit.ensureVisible(getMainItemComposite());
-			}
-		}
-	}
-
-	/*package*/
-	void setIncomplete() {
-		checkDoneLabel.setImage(null);
-		completed = false;
-		setStartImage();
-	}
-
-	/**
-	 * Sets the itemColor.
-	 * @param itemColor The itemColor to set
-	 */
-	/*package*/
-	void setItemColor(Color itemColor) {
-		this.itemColor = itemColor;
-	}
-
-	/*package*/
-	void setOriginalColor() {
-		setTitleColor(itemColor);
-		setBodyColor(itemColor);
-		setBold(false);
-	}
-
-	/*package*/
-	abstract void setRestartImage();
-
-	/*package*/
-	void setSkipped() {
-		isSkipped = true;
-		checkDoneLabel.setImage(getSkipImage());
-
-		if(initialized) {
-			checkDoneLabel.getParent().layout();
-		}
-	}
-	/*package*/
-	abstract void setStartImage();
-
-	private void setTitleColor(Color bg) {
-		if(titleComposite != null) {
-			titleComposite.setBackground(bg);
-
-			Control[] titlechildren = titleComposite.getChildren();
-			for (int i = 0; i < titlechildren.length; i++) {
-				titlechildren[i].setBackground(bg);
-			}
-		}
-	}
-
-	public void initialized() {
-		initialized = true;
-	}
-	
-	public boolean canCopy() {
-		return (bodyText!=null && !bodyText.isDisposed())?bodyText.canCopy():false;
-	}
-	public void copy() {
-		if (bodyText!=null && !bodyText.isDisposed())
-			bodyText.copy();
-	}
-	
-	abstract boolean hasCompletionMessage();
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheet.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheet.java
deleted file mode 100644
index f13d0c9..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheet.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.provisional.cheatsheets;
-
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-
-/**
- * Interface representing a composite cheatsheet. 
- * A composite cheat sheet has a single root task, each task may have 
- * zero or more children.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-
-public interface ICompositeCheatSheet {
-	
-	/**
-	 * The ID of the task explorer that should be the
-	 * default for this composite cheat sheet. Can be null.
-	 * @return the task explorer identifier or <code>null</code> if
-	 * the view's default should be used.
-	 */
-	String getTaskExplorerId();
-	
-	/**
-	 * The root task of this composite cheat sheet
-	 * @return the root task object
-	 */
-	ICompositeCheatSheetTask getRootTask();
-	
-	/**
-	 * Get the manager which allows data to be shared between tasks.
-	 * @return the CheatSheetManager for this composite cheat cheet. May not be null.
-	 */
-	ICheatSheetManager getCheatSheetManager();
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheetTask.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheetTask.java
deleted file mode 100644
index 0a731c0..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ICompositeCheatSheetTask.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.provisional.cheatsheets;
-
-import java.util.Dictionary;
-
-/**
- * A task within a composite cheat sheet.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-
-public interface ICompositeCheatSheetTask {
-	/**
-	 * The constant that indicates that the task has not been
-	 * processed yet.
-	 */
-	public static final int NOT_STARTED = 0;
-	/**
-	 * The constant that indicates that the task is in progress.
-	 */
-	public static final int IN_PROGRESS = 1;
-	/**
-	 * The constant that indicates that the task has been skipped.
-	 */
-	public static final int SKIPPED = 2;
-	/**
-	 * The constant that indicates that the task has been completed.
-	 */
-	public static final int COMPLETED = 3;
-	/**
-	 * @return the unique identifier of this task.
-	 */
-	public String getId();
-	/**
-	 * @return the translatable name of the task.
-	 */
-	public String getName();
-	/**
-	 * Returns the kind of the task editor or task group.
-	 * @return task editor kind or <code>null</code> if no editor
-	 * is assoticated with this task.
-	 */
-	public String getKind();
-	/**
-	 * The task parameters are used to configure the
-	 * task editor with data meaningful to an editor of this kind.
-	 * @return the parameter names and values as specified in the
-	 * composite cheatsheet content file.
-	 */
-	public Dictionary getParameters();	
-	/**
-	 * Returns the description of the task. 
-	 * @return a plain String, or XML markup that can 
-	 * be understood by FormText widget.
-	 * @see org.eclipse.ui.forms.widgets.FormText
-	 */
-	public String getDescription();
-	
-	/**
-	 * Gets the text to be displayed when this task is completed
-	 * @return a plain String, or XML markup that can 
-	 * be understood by FormText widget.
-	 * @see org.eclipse.ui.forms.widgets.FormText
-	 */
-	public String getCompletionMessage();
-	
-	/**
-	 * Get the subtasks of this task. Each subtask may be
-	 * a task group or editable task. If the task is an editable task
-	 * there will be no children and an empty array will be returned.
-	 * @return an array of subtasks for this task
-	 */
-	public ICompositeCheatSheetTask [] getSubtasks();
-	
-	/**
-	 * get the tasks which are required to be completed 
-	 * before this task is started. 
-	 * @return an array of tasks that must be completed
-	 * before this task can be started.  The array will be
-	 * empty if this tasks is independent of other tasks.
-	 */
-	public ICompositeCheatSheetTask [] getRequiredTasks();
-
-	/**
-	 * Determine whether the required tasks for this task have
-	 * all been completed.
-	 * @return true if there are noi required tasks or all required 
-	 * tasks have been completed.
-	 */
-	public boolean requiredTasksCompleted();
-	
-	/**
-	 * Get the state of this task
-	 * @return NOT_STARTED, IN_PROGRESS, SKIPPED or COMPLETED.
-	 */
-	public int getState();
-	
-	/**
-	 * Get the enclosing composite cheat sheet
-	 * @return the composite cheat sheet which contains this task
-	 */
-	public ICompositeCheatSheet getCompositeCheatSheet();
-	
-	/**
-	 * Get the parent task group
-	 * @return The task group which contains this task or <code>null</code> 
-	 * if this is the root of the composite cheat sheet.
-	 */
-	public ITaskGroup getParent();
-
-	/**
-	 * Test whether this task can be skipped. Skippable tasks are optional
-	 * tasks which are identified in the content file by having the attribute
-	 * <code>skip = "true"</code>. Only skippable tasks can be skipped.
-	 * @return true if this task has the skip attribute set to true in the 
-	 * content file.
-	 */
-	public boolean isSkippable();
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/IEditableTask.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/IEditableTask.java
deleted file mode 100644
index 0640af5..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/IEditableTask.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.provisional.cheatsheets;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-/**
- * An editable task within a composite cheatsheet. An editable task is associated
- * with a task editor and the task editor is responsible for completing the task.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-
-public interface IEditableTask extends ICompositeCheatSheetTask {
-	
-	/**
-	 * Set the state of this task to COMPLETED
-	 */
-	public void complete();
-	
-	/**
-	 * Gets a URL which can be used to open the content file for this 
-	 * task if the content file can be specified by a path relative to
-	 * the content file for the composite cheat sheet which contains it.
-	 * @param path a relative path
-	 * @throws MalformedURLException 
-	 * @return a URL which represents a location relative to the
-	 * location of the content file for the composite cheat sheet.
-	 */
-	public URL getInputUrl(String path) throws MalformedURLException;
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ITaskGroup.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ITaskGroup.java
deleted file mode 100644
index 050ba97..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/ITaskGroup.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.provisional.cheatsheets;
-
-/**
- * A group of tasks within a composite cheatsheet. Each taskGroup will have
- * children. It does not have an editor and its state is determined from the
- * state of its children.
- * * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-
-public interface ITaskGroup extends ICompositeCheatSheetTask {
-	
-	/**
-	 * A task kind of <b>set</b> indicates that this task is complete when
-	 * all subtasks have been completed.
-	 */
-	public static final String SET = "set"; //$NON-NLS-1$
-	
-	/**
-	 * A task kind of <b>set</b> indicates that this task is complete when
-	 * all subtasks have been completed. The subtasks must be completed in 
-	 * order.
-	 */
-	public static final String SEQUENCE = "sequence"; //$NON-NLS-1$
-	
-	/**
-	 * A task kind of <b>choice</b> indicates that this task is complete when
-	 * any of its children has been completed.
-	 */
-	public static final String CHOICE = "choice"; //$NON-NLS-1$
-	
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskEditor.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskEditor.java
deleted file mode 100644
index 5b8ed96..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskEditor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.provisional.cheatsheets;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * An editor which provides the UI for a task within a composite cheat sheet.
- * A task editor is responsible for saving the state of the task whenever
- * it changes.
- * 
- */
-
-public abstract class TaskEditor {
-
-	/**
-	 * Creates the widget
-	 * @param parent
-	 * @param toolkit
-	 */
-	public abstract void createControl(Composite parent, FormToolkit toolkit);
-
-	/**
-	 * @return the Control created by a previous call to CreateControl()
-	 */
-	public abstract Control getControl();
-
-	/**
-	 * Starts editing the provided task. The editor is responsible
-	 * for saving its state. createControl() will always be called before setInput().
-	 * @param task The task associated with this editor
-	 * @param memento The state of this task saved from a previous invocation. 
-	 * The memento will be <b>null</b> if the task has not been previously started
-	 * or if it is being restarted. If the editor is being restored from a previous
-	 * session the memento will contain the last saved state.
-	 */
-	public abstract void setInput(IEditableTask task, IMemento memento);
-
-	/**
-	 * Saves the object state within a memento.
-	 *
-	 * @param memento a memento to receive the object state
-	 */
-	public abstract void saveState(IMemento memento);
-
-}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskExplorer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskExplorer.java
deleted file mode 100644
index 899345d..0000000
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/provisional/cheatsheets/TaskExplorer.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.provisional.cheatsheets;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * Classes that extend this class are responsible for rendering the
- * hierarchy of tasks in the composite cheat sheet. They must support task
- * selection via the selection provider, be able to accept focus, and create
- * control when asked.
- */
-
-public abstract class TaskExplorer {
-	/**
-	 * @return the id of this TaskExplorer which must match the id used in the
-	 *         extension point
-	 */
-	public abstract String getId();
-
-	/**
-	 * Create a control which will display the structure of the composite cheat
-	 * sheet and allow tasks within the composite cheat sheet to be selected.
-	 * 
-	 * @param parent
-	 * @param toolkit
-	 */
-	public abstract void createControl(Composite parent, FormToolkit toolkit);
-
-	/**
-	 * Get the control created by a previous call to createControl
-	 * 
-	 * @return the task explorer control
-	 */
-	public abstract Control getControl();
-
-	/**
-	 * Called when the explorer gains focus.
-	 */
-	public abstract void setFocus();
-
-	/**
-	 * Get the selection provider for this explorer. The selections returned by
-	 * the selection provider should represent IGuideTasks.
-	 * 
-	 * @return the selection provider for the task explorer
-	 */
-	public abstract ISelectionProvider getSelectionProvider();
-
-	/**
-	 * Sets the composite cheat sheet to be displayed. createControl will
-	 * already have been called.
-	 * 
-	 * @param compositeCheatSheet
-	 */
-	public abstract void setCompositeCheatSheet(ICompositeCheatSheet compositeCheatSheet);
-
-	/**
-	 * Called after this explorer is no longer in use. Any resources should be
-	 * disposed of at this point.
-	 */
-	public abstract void dispose();
-
-	/**
-	 * Called when the state of a task changes and the representation of the
-	 * task may need to be redrawn.
-	 * 
-	 * @param task
-	 */
-	public abstract void taskUpdated(ICompositeCheatSheetTask task);
-
-	/**
-	 * Called to set the provided selection and optionally reveal it
-	 * if the scroll bars are active and the selected tasks
-	 * are partially or fully hidden.
-	 * 
-	 * @param selection the new selection
-	 * @param reveal if <code>true</code>, expose the task if hidden;
-	 * otherwise, just select.
-	 */	
-	public abstract void setSelection(ISelection selection, boolean reveal);
-}
diff --git a/org.eclipse.ui.intro.universal/.classpath b/org.eclipse.ui.intro.universal/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/org.eclipse.ui.intro.universal/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.ui.intro.universal/.cvsignore b/org.eclipse.ui.intro.universal/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.ui.intro.universal/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.ui.intro.universal/.options b/org.eclipse.ui.intro.universal/.options
deleted file mode 100644
index 8de8a48..0000000
--- a/org.eclipse.ui.intro.universal/.options
+++ /dev/null
@@ -1,24 +0,0 @@
-# Debugging options for the org.eclipse.ui.intro.universal.
-
-# Master flag for all org.eclipse.ui.intro.universal plugin debug options.
-org.eclipse.ui.intro.universal/debug = true
-
-# Enable logging of information messages in the plugin. By default, info
-# messages are not logged. Setting this option to true will enable logging
-# trace information messages.
-org.eclipse.ui.intro.universal/trace/logInfo = true
-
-# Enable logging of performance messages in the plugin. By default, performance
-# messages are not logged. Setting this option to true will enable logging
-# trace information messages. (note: enabling info logging does not enable
-# this flag.)
-org.eclipse.ui.intro.universal/trace/logPerformance = false
-
-# Performance flags used by the Performance framework to report failures 
-# of specific thresholds.  
-
-# Time to create and display the full Intro view.
-# org.eclipse.ui.intro/perf/createView = 1000
-
-# Time needed to switch between Intro standby states.
-# org.eclipse.ui.intro/perf/setStandbyState = 300
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/.project b/org.eclipse.ui.intro.universal/.project
deleted file mode 100644
index 28c971b..0000000
--- a/org.eclipse.ui.intro.universal/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.intro.universal</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF b/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF
deleted file mode 100644
index e4bb218..0000000
--- a/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin_name
-Bundle-SymbolicName: org.eclipse.ui.intro.universal;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Vendor: %provider_name
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.intro.universal;x-internal:=true,
- org.eclipse.ui.intro.universal
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.intro;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Bundle-Activator: org.eclipse.ui.internal.intro.universal.UniversalIntroPlugin
-Bundle-ClassPath: universal.jar
diff --git a/org.eclipse.ui.intro.universal/about.html b/org.eclipse.ui.intro.universal/about.html
deleted file mode 100644
index 83e9930..0000000
--- a/org.eclipse.ui.intro.universal/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>March 23, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/build.properties b/org.eclipse.ui.intro.universal/build.properties
deleted file mode 100644
index f73afb4..0000000
--- a/org.eclipse.ui.intro.universal/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-bin.includes = plugin.xml,\
-               themes/,\
-               plugin.properties,\
-               introContent.xml,\
-               icons/,\
-               META-INF/,\
-               .options,\
-               about.html,\
-               universal.jar
-src.includes = about.html,\
-               .options
-jars.compile.order = universal.jar
-source.universal.jar = src/
-output.universal.jar = bin/
diff --git a/org.eclipse.ui.intro.universal/icons/full/elcl16/configure.gif b/org.eclipse.ui.intro.universal/icons/full/elcl16/configure.gif
deleted file mode 100644
index 8304a2b..0000000
--- a/org.eclipse.ui.intro.universal/icons/full/elcl16/configure.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/icons/full/obj16/extension_obj.gif b/org.eclipse.ui.intro.universal/icons/full/obj16/extension_obj.gif
deleted file mode 100644
index 7f3f595..0000000
--- a/org.eclipse.ui.intro.universal/icons/full/obj16/extension_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/icons/full/obj16/icallout_obj.gif b/org.eclipse.ui.intro.universal/icons/full/obj16/icallout_obj.gif
deleted file mode 100644
index f52d86a..0000000
--- a/org.eclipse.ui.intro.universal/icons/full/obj16/icallout_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/icons/full/obj16/ihigh_obj.gif b/org.eclipse.ui.intro.universal/icons/full/obj16/ihigh_obj.gif
deleted file mode 100644
index f99bdc3..0000000
--- a/org.eclipse.ui.intro.universal/icons/full/obj16/ihigh_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/icons/full/obj16/ilow_obj.gif b/org.eclipse.ui.intro.universal/icons/full/obj16/ilow_obj.gif
deleted file mode 100644
index a6815bc..0000000
--- a/org.eclipse.ui.intro.universal/icons/full/obj16/ilow_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/icons/full/obj16/image_obj.gif b/org.eclipse.ui.intro.universal/icons/full/obj16/image_obj.gif
deleted file mode 100644
index 830be0e..0000000
--- a/org.eclipse.ui.intro.universal/icons/full/obj16/image_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/icons/full/obj16/inew_obj.gif b/org.eclipse.ui.intro.universal/icons/full/obj16/inew_obj.gif
deleted file mode 100644
index b1526e9..0000000
--- a/org.eclipse.ui.intro.universal/icons/full/obj16/inew_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/icons/welcome_item.gif b/org.eclipse.ui.intro.universal/icons/welcome_item.gif
deleted file mode 100644
index 311f57f..0000000
--- a/org.eclipse.ui.intro.universal/icons/welcome_item.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/introContent.xml b/org.eclipse.ui.intro.universal/introContent.xml
deleted file mode 100644
index 0f3ed98..0000000
--- a/org.eclipse.ui.intro.universal/introContent.xml
+++ /dev/null
@@ -1,255 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!-- 
-	A content file for the Universal Welcome
--->
-<introContent>
-	<!-- Root page -->
-	<page id="root" alt-style="$theme$/swt/root.properties" style="$theme$/html/root.css" style-id="page">
-		<anchor id="head-anchor"/>
-        <title style-id="intro-header">$introTitle$</title>
-        <group id="links-background">
-           <group id="page-links" computed="true"/>
-        </group>
-        <group id="action-links" computed="true">
-        </group>        
-        <group id="branding">
-        	<img src="$introBrandingImage$" alt="$introBrandingImageText$"/>
-        </group>
-		<!-- General purpose groups for adding additional content -->
-		<group id="extra-group1" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group5" filteredFrom="swt"><anchor id="anchor"/></group>
-    </page>
-	
-	<!-- Standby page -->
-    <page id="standby" alt-style="$theme$/swt/standby.properties" style="$theme$/html/standby.css" style-id="page">
-   		<anchor id="head-anchor"/>
-        <title style-id="intro-header">$introTitle$</title>
-        <group id="links-background">
-            <group id="page-links" computed="true">
-            </group>
-        </group>
-        <group id="action-links" computed="true">
-        </group>        
-        <group id="branding">
-        	<img src="$introBrandingImage$" alt="$introBrandingImageText$"/>
-        </group>
-		<!-- General-purpose groups for additional content -->
-		<group id="extra-group1" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>		
-    </page>    
-    
-	<!-- Overview page -->
-    <page id="overview" style="$theme$/html/overview.css" alt-style="$theme$/swt/overview.properties" style-id="page">
-   		<anchor id="head-anchor"/>
-        <title style-id="intro-header">$introTitle$</title> 
-        <group id="extra-group1" filteredFrom="swt"/>
-		<!-- navigation -->
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links" computed="true">
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-		<!-- content -->
-        <group id="page-content">
-            <group id="content-header" label="Overview" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">Overview</text>
-            <text style-id="page-description" id="page-description">Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular. It provides a feature-rich development environment that allows the developer to efficiently create tools that integrate seamlessly into the Eclipse Platform.</text>
-			<!-- panes -->
- 			<group id="top-left" computed="true"/>
-			<group id="top-right" computed="true"/>
-			<group id="content-divider" filteredFrom="swt"/>		
-			<group id="bottom-left" computed="true"/>
-			<group id="bottom-right" computed="true"/>
-        </group>
-		<!-- extra groups for additional effects -->
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>
-    </page>
-    
-    <!-- Tutorials page -->
-	<page id="tutorials" style="$theme$/html/tutorials.css" alt-style="$theme$/swt/tutorials.properties" style-id="page">
-		<anchor id="head-anchor"/>
-        <title style-id="intro-header">$introTitle$</title>	
-        <group id="extra-group1" filteredFrom="swt"/>
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links" computed="true">
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-        <group id="page-content">
-            <group id="content-header" label="Tutorials" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">Tutorials</text>
-            <text style-id="page-description" id="page-description">Learn how to be productive using Eclipse by completing end-to-end tutorials that will guide you along the way.</text>
- 			<group id="top-left" computed="true"/>
-			<group id="top-right" computed="true"/>
-			<group id="content-divider" filteredFrom="swt"/>		
-			<group id="bottom-left" computed="true"/>
-			<group id="bottom-right" computed="true"/>
-        </group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>
-    </page>
-    
-    <!-- Samples page -->
-	 <page id="samples" style="$theme$/html/samples.css" alt-style="$theme$/swt/samples.properties" style-id="page">
- 		<anchor id="head-anchor"/>
-        <title style-id="intro-header">$introTitle$</title> 
-        <group id="extra-group1" filteredFrom="swt"/>
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links" computed="true">
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-        <group id="page-content">
-            <group id="content-header" label="Samples" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">Samples</text>
-            <text style-id="page-description" id="page-description">Explore Eclipse by installing prefabricated samples (may require Internet connection).</text>
- 			<group id="top-left" computed="true"/>
-			<group id="top-right" computed="true"/>
-			<group id="content-divider" filteredFrom="swt"/>		
-			<group id="bottom-left" computed="true"/>
-			<group id="bottom-right" computed="true"/>
-        </group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>		 
-    </page>
-
-	<!-- What's New page -->
-    <page id="whatsnew" style="$theme$/html/whatsnew.css" alt-style="$theme$/swt/whatsnew.properties" style-id="page">
-		<anchor id="head-anchor"/>    
-        <title style-id="intro-header">$introTitle$</title> 
-        <group id="extra-group1" filteredFrom="swt"/>
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links" computed="true">
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-        <group id="page-content">
-            <group id="content-header" label="What's New" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">What's New</text>
- 			<group id="top-left" computed="true"/>
-			<group id="top-right" computed="true"/>
-			<group id="content-divider" filteredFrom="swt"/>			
-			<group id="bottom-left" computed="true"/>
-			<group id="bottom-right" computed="true"/>
-        </group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>		
-    </page>
-    
-    <!-- First Steps page -->
-    <page id="firststeps" style="$theme$/html/firststeps.css" alt-style="$theme$/swt/firststeps.properties" style-id="page">
-		<anchor id="head-anchor"/>
-        <title style-id="intro-header">$introTitle$</title> 
-        <group id="extra-group1" filteredFrom="swt"/>
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links" computed="true">
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-        <group id="page-content">
-            <group id="content-header" label="First Steps" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">First Steps</text>
- 			<group id="top-left" computed="true"/>
-			<group id="top-right" computed="true"/>
-			<group id="content-divider" filteredFrom="swt"/>				
-			<group id="bottom-left" computed="true"/>
-			<group id="bottom-right" computed="true"/>
-        </group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>		
-    </page>
-    
-    <!-- Web resources page -->
-    <page id="webresources" style="$theme$/html/webresources.css" alt-style="$theme$/swt/webresources.properties" style-id="page">
-		<anchor id="head-anchor"/>    
-        <title style-id="intro-header">$introTitle$</title> 
-        <group id="extra-group1" filteredFrom="swt"/>
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links" computed="true">
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-        <group id="page-content">
-            <group id="content-header" label="Web Resources" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">Web Resources</text>
- 			<group id="top-left" computed="true"/>
-			<group id="top-right" computed="true"/>
-			<group id="content-divider" filteredFrom="swt"/>			
-			<group id="bottom-left" computed="true"/>
-			<group id="bottom-right" computed="true"/>
-        </group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>		
-    </page>
-    
-    
-    <!-- Migrate page -->
-    <page id="migrate" style="$theme$/html/migrate.css" alt-style="$theme$/swt/migrate.properties" style-id="page">
-		<anchor id="head-anchor"/>    
-        <title style-id="intro-header">$introTitle$</title> 
-        <group id="extra-group1" filteredFrom="swt"/>
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links" computed="true">
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-        <group id="page-content">
-            <group id="content-header" label="Migrate" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">Migrate</text>
- 			<group id="top-left" computed="true"/>
-			<group id="top-right" computed="true"/>
-			<group id="content-divider" filteredFrom="swt"/>			
-			<group id="bottom-left" computed="true"/>
-			<group id="bottom-right" computed="true"/>
-        </group>
-		<group id="extra-group2" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group3" filteredFrom="swt"><anchor id="anchor"/></group>
-		<group id="extra-group4" filteredFrom="swt"><anchor id="anchor"/></group>		
-    </page>
-</introContent>
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/plugin.properties b/org.eclipse.ui.intro.universal/plugin.properties
deleted file mode 100644
index aae315a..0000000
--- a/org.eclipse.ui.intro.universal/plugin.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# ==============================================
-# Universal Welcome plugin.xml properties file
-# ==============================================
-
-plugin_name = Universal Welcome
-provider_name = Eclipse.org
-
-theme.name.circles = Circles
-theme.name.purpleMesh = Purple Mesh (Classic Eclipse)
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/plugin.xml b/org.eclipse.ui.intro.universal/plugin.xml
deleted file mode 100644
index 1e80eba..0000000
--- a/org.eclipse.ui.intro.universal/plugin.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- ========== Extension Points ================= -->
-<!-- =============================================================================== -->
-<!-- Extension point: org.eclipse.ui.intro.config                                    -->
-<!-- Extension-point for contributing a configuration to a Customizable Intro Part.  -->
-<!--                                                                                 -->
-<!-- =============================================================================== -->
-<!-- ================================================================================= -->
-<!-- Extension point: org.eclipse.ui.intro.configExtension                             -->
-<!-- Extension-point for contributing an extension to an existing intro configuration  -->
-<!--                                                                                   -->
-<!-- ================================================================================= -->
-   
-   <extension
-         point="org.eclipse.ui.intro">
-      <intro
-            class="org.eclipse.ui.intro.config.CustomizableIntroPart"
-            icon="$nl$/icons/welcome_item.gif"
-            id="org.eclipse.ui.intro.universal"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.intro.config">
-      <config
-            configurer="org.eclipse.ui.internal.intro.universal.UniversalIntroConfigurer"
-            content="$nl$/introContent.xml"
-            id="org.eclipse.ui.intro.universalConfig"
-            introId="org.eclipse.ui.intro.universal">
-         <presentation
-               home-page-id="root" standby-page-id="standby">
-              <implementation
-                  style="$theme$/html/shared.css,themes/shared/html/shared.css"
-                  kind="html"
-                  os="win32,linux,macosx">
-            </implementation>
-            <implementation
-                  kind="swt">
-            </implementation>
-            <launchBar
-               	location="fastview" 
-            	bg="$launchbarBackground$"
-            	computed="true">
-            </launchBar>
-         </presentation>
-      </config>
-   </extension>
-   <extension
-         point="org.eclipse.ui.intro.configExtension">
-      <theme
-            default="true"
-            id="org.eclipse.ui.intro.universal.circles"
-            name="%theme.name.circles"
-            path="$nl$/themes/circles"
-            previewImage="themes/circles/preview.png">
-            <property name="workbenchAsRootLink"
-            		value="true"/>
-            		<!--
-            <property name="launchbarBackground"
-            		value="#a1c2cb"/>
-            		-->
-            <property name="launchbarOverviewIcon"
-            		  value="$theme$graphics/launchbar/overview16.png"/>
-            <property name="launchbarFirststepsIcon"
-            		  value="$theme$graphics/launchbar/firststeps16.png"/>
-            <property name="launchbarTutorialsIcon"
-            		  value="$theme$graphics/launchbar/tutorials16.png"/>
-            <property name="launchbarSamplesIcon"
-            		  value="$theme$graphics/launchbar/samples16.png"/>
-            <property name="launchbarWhatsnewIcon"
-            		  value="$theme$graphics/launchbar/whatsnew16.png"/>
-            <property name="launchbarMigrateIcon"
-            		  value="$theme$graphics/launchbar/migrate16.png"/>
-            <property name="launchbarWebresourcesIcon"
-            		  value="$theme$graphics/launchbar/webresources16.png"/>
-      </theme>
-      <theme
-            id="org.eclipse.ui.intro.universal.purpleMesh"
-            name="%theme.name.purpleMesh"
-            path="$nl$/themes/purpleMesh"
-            previewImage="themes/purpleMesh/preview.png">
-            <property name="launchbarBackground"
-            		value="#c6c3e8"/>
-            <property name="capitalizeTitles"
-            		value="true"/>
-            <property name="launchbarOverviewIcon"
-            		  value="$theme$graphics/launchbar/overview.gif"/>
-            <property name="launchbarFirststepsIcon"
-            		  value="$theme$graphics/launchbar/firststeps16.png"/>
-            <property name="launchbarTutorialsIcon"
-            		  value="$theme$graphics/launchbar/tutorials.gif"/>
-            <property name="launchbarSamplesIcon"
-            		  value="$theme$graphics/launchbar/samples.gif"/>
-            <property name="launchbarWhatsnewIcon"
-            		  value="$theme$graphics/launchbar/whatsnew.gif"/>
-            <property name="launchbarMigrateIcon"
-            		  value="$theme$graphics/launchbar/migrate16.png"/>
-            <property name="launchbarWebresourcesIcon"
-            		  value="$theme$graphics/launchbar/webresources16.png"/>
-      </theme>
-   </extension>
-</plugin>
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/BaseData.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/BaseData.java
deleted file mode 100644
index b1653d6..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/BaseData.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.PrintWriter;
-
-public abstract class BaseData {
-
-	private GroupData parent;
-	protected String id;
-
-	protected void setParent(GroupData gd) {
-		this.parent = gd;
-	}
-
-	public GroupData getParent() {
-		return parent;
-	}
-	
-	public abstract void write(PrintWriter writer, String indent);
-
-	public String getId() {
-		return id;
-	}
-}
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizeAction.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizeAction.java
deleted file mode 100644
index 811b7fe..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizeAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.preference.PreferenceNode;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.intro.IIntroSite;
-
-
-public class CustomizeAction extends Action {
-
-	public static final String P_PAGE_ID = "pageId"; //$NON-NLS-1$
-	private IIntroSite site;
-	private IConfigurationElement element;
-	
-	public CustomizeAction(IIntroSite site, IConfigurationElement element) {
-		this.site = site;
-		this.element = element;
-	}
-	
-	public void run() {
-		String pageId = IntroPlugin.getDefault().getIntroModelRoot().getCurrentPageId();
-		run(pageId);
-	}
-
-	public static IConfigurationElement getPageElement() {
-		IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(
-				"org.eclipse.ui.preferencePages"); //$NON-NLS-1$
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (element.getName().equals("page")) { //$NON-NLS-1$
-				String att = element.getAttribute("class"); //$NON-NLS-1$
-				if (att != null
-						&& att.equals("org.eclipse.ui.intro.universal.ExtensionFactory:welcomeCustomization")) { //$NON-NLS-1$
-					return element;
-				}
-			}
-		}
-		return null;
-	}
-
-	private void run(String pageId) {
-		PreferenceManager pm = new PreferenceManager();
-		IPreferenceNode node = createPreferenceNode(pageId);
-		pm.addToRoot(node);
-		IWorkbenchWindow window = site.getWorkbenchWindow();
-		PreferenceDialog dialog = new PreferenceDialog(window.getShell(), pm);
-		dialog.open();
-	}
-
-	private IPreferenceNode createPreferenceNode(final String pageId) {
-		if (element == null)
-			return null;
-		String id = element.getAttribute("id"); //$NON-NLS-1$
-		String label = element.getAttribute("name"); //$NON-NLS-1$
-		String className = "org.eclipse.ui.internal.intro.shared.WelcomeCustomizationPreferencePage"; //$NON-NLS-1$
-		if (id == null || label == null || className == null)
-			return null;
-		return new PreferenceNode(id, label, null, className) {
-
-			public void createPage() {
-				WelcomeCustomizationPreferencePage page = new WelcomeCustomizationPreferencePage();
-		        page.setTitle(getLabelText());
-				page.setCurrentPage(pageId);
-				setPage(page);
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionData.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionData.java
deleted file mode 100644
index d2a583b..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionData.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.PrintWriter;
-
-public class ExtensionData extends BaseData {
-
-	public static final int HIDDEN = -1;
-
-	public static final int CALLOUT = 0;
-
-	public static final int LOW = 1;
-
-	public static final int MEDIUM = 2;
-
-	public static final int HIGH = 3;
-
-	public static final int NEW = 4;
-
-	private String name;
-
-	private int fImportance = LOW;
-
-	private boolean implicit = false;
-
-	public static final String[] IMPORTANCE_TABLE = {
-			IUniversalIntroConstants.CALLOUT, IUniversalIntroConstants.LOW,
-			IUniversalIntroConstants.MEDIUM, IUniversalIntroConstants.HIGH,
-			IUniversalIntroConstants.NEW };
-
-	public static final String[] IMPORTANCE_STYLE_TABLE = {
-			IUniversalIntroConstants.STYLE_CALLOUT,
-			IUniversalIntroConstants.STYLE_LOW,
-			IUniversalIntroConstants.STYLE_MEDIUM,
-			IUniversalIntroConstants.STYLE_HIGH,
-			IUniversalIntroConstants.STYLE_NEW };
-
-	public static final String[] IMPORTANCE_NAME_TABLE = {
-			org.eclipse.ui.internal.intro.universal.Messages.ExtensionData_callout,
-			Messages.ExtensionData_low, Messages.ExtensionData_medium,
-			Messages.ExtensionData_high, Messages.ExtensionData_new };
-
-	public ExtensionData(String id, String name) {
-		this(id, name, IUniversalIntroConstants.LOW, false);
-	}
-
-	public ExtensionData(String id, String name, int importance) {
-		this.id = id;
-		this.name = name;
-		this.fImportance = importance;
-		this.implicit = false;
-	}
-
-	public boolean isImplicit() {
-		return implicit;
-	}
-
-	public ExtensionData(String id, String name, String importance,
-			boolean implicit) {
-		this.id = id;
-		this.name = name;
-		this.implicit = implicit;
-		if (importance != null) {
-			if (importance.equals(IUniversalIntroConstants.HIGH))
-				fImportance = HIGH;
-			else if (importance.equals(IUniversalIntroConstants.MEDIUM))
-				fImportance = MEDIUM;
-			else if (importance.equals(IUniversalIntroConstants.LOW))
-				fImportance = LOW;
-			else if (importance.equals(IUniversalIntroConstants.CALLOUT))
-				fImportance = CALLOUT;
-			else if (importance.equals(IUniversalIntroConstants.NEW))
-				fImportance = NEW;
-			else if (importance.equals(IUniversalIntroConstants.HIDDEN))
-				fImportance = HIDDEN;
-		}
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public int getImportance() {
-		return fImportance;
-	}
-
-	public void setImportance(int newValue) {
-		fImportance = newValue;
-	}
-
-	public boolean isHidden() {
-		return fImportance == HIDDEN;
-	}
-
-	String getImportanceAttributeValue() {
-		return IMPORTANCE_TABLE[fImportance];
-	}
-
-	public String toString() {
-		return name != null ? name : id;
-	}
-
-	public void write(PrintWriter writer, String indent) {
-		writer.print(indent);
-		writer.print("<extension id=\"" + id + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-		if (!isHidden())
-			writer
-					.println(" importance=\"" + getImportanceAttributeValue() + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$
-		else
-			writer.println("/>"); //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionDataTransfer.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionDataTransfer.java
deleted file mode 100644
index b40df01..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/ExtensionDataTransfer.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.eclipse.swt.dnd.ByteArrayTransfer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TransferData;
-
-
-public class ExtensionDataTransfer extends ByteArrayTransfer {
-
-	private static final String MYTYPENAME = "ExtensionData"; //$NON-NLS-1$
-	private static final int MYTYPEID = registerType(MYTYPENAME);
-	private static ExtensionDataTransfer _instance = new ExtensionDataTransfer();
-
-	public static ExtensionDataTransfer getInstance() {
-		return _instance;
-	}
-
-	protected String[] getTypeNames() {
-		return new String[] { MYTYPENAME };
-	}
-
-	protected int[] getTypeIds() {
-		return new int[] { MYTYPEID };
-	}
-
-	public void javaToNative(Object object, TransferData transferData) {
-		if (!checkMyType(object) || !isSupportedType(transferData)) {
-			DND.error(DND.ERROR_INVALID_DATA);
-		}
-		BaseData[] myTypes = (BaseData[]) object;
-		try {
-			// write data to a byte array and then ask super to convert to pMedium
-			ByteArrayOutputStream out = new ByteArrayOutputStream();
-			DataOutputStream writeOut = new DataOutputStream(out);
-			for (int i = 0, length = myTypes.length; i < length; i++) {
-				BaseData bd = myTypes[i];
-				boolean separator = bd instanceof SeparatorData;
-				writeOut.writeBoolean(separator);
-				byte[] buffer = bd.getId().getBytes();
-				writeOut.writeInt(bd.getId().length());
-				writeOut.write(buffer);
-				if (bd instanceof ExtensionData) {
-					ExtensionData ed = (ExtensionData)bd;
-					writeOut.writeInt(ed.getName().length());
-					buffer = ed.getName().getBytes();
-					writeOut.write(buffer);
-					writeOut.writeInt(ed.getImportance());
-				}
-			}
-			byte[] buffer = out.toByteArray();
-			writeOut.close();
-			super.javaToNative(buffer, transferData);
-		} catch (IOException e) {
-		}
-	}
-
-	public Object nativeToJava(TransferData transferData) {
-		if (isSupportedType(transferData)) {
-			byte[] buffer = (byte[]) super.nativeToJava(transferData);
-			if (buffer == null)
-				return null;
-
-			BaseData[] myData = new BaseData[0];
-			try {
-				ByteArrayInputStream in = new ByteArrayInputStream(buffer);
-				DataInputStream readIn = new DataInputStream(in);
-				while (readIn.available() > 4) {
-					boolean separator;
-					int importance=0;
-					String id;
-					String name=null;
-					separator = readIn.readBoolean();
-					int size = readIn.readInt();
-					byte[] buff = new byte[size];
-					readIn.read(buff);
-					id = new String(buff);
-					if (!separator) {
-						size = readIn.readInt();
-						buff = new byte[size];
-						readIn.read(buff);
-						name = new String(buff);
-						importance = readIn.readInt();
-					}
-
-					BaseData[] newMyData = new BaseData[myData.length + 1];
-					System.arraycopy(myData, 0, newMyData, 0, myData.length);
-					if (separator)
-						newMyData[myData.length] = new SeparatorData(id);
-					else
-						newMyData[myData.length] = new ExtensionData(id, name, importance);
-					myData = newMyData;
-				}
-				readIn.close();
-			} catch (IOException ex) {
-				return null;
-			}
-			return myData;
-		}
-
-		return null;
-	}
-
-
-	boolean checkMyType(Object object) {
-		if (object == null || !(object instanceof BaseData[]) || ((BaseData[]) object).length == 0) {
-			return false;
-		}
-		BaseData[] myTypes = (BaseData[]) object;
-		for (int i = 0; i < myTypes.length; i++) {
-			if (myTypes[i] == null || myTypes[i].getId() == null || myTypes[i] instanceof ExtensionData && ((ExtensionData)myTypes[i]).getName() == null)
-				return false;
-		}
-		return true;
-	}
-
-	protected boolean validate(Object object) {
-		return checkMyType(object);
-	}
-}
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/GroupData.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/GroupData.java
deleted file mode 100644
index f3a7c59..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/GroupData.java
+++ /dev/null
@@ -1,211 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import org.eclipse.ui.intro.config.IntroElement;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class GroupData {
-	boolean fDefault=false;
-	private String path;
-	private ArrayList children = new ArrayList();
-	
-	public GroupData(String path, boolean defaultGroup) {
-		fDefault = defaultGroup;
-		this.path = path;
-	}
-
-	public GroupData(Element element) {
-		if (element.getNodeName().equals("hidden")) //$NON-NLS-1$
-			path = IUniversalIntroConstants.HIDDEN;
-		else
-			path = element.getAttribute("path"); //$NON-NLS-1$
-		NodeList children = element.getChildNodes();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				if (child.getNodeName().equals("extension")) { //$NON-NLS-1$
-					loadExtension((Element) child);
-				}
-				else if (child.getNodeName().equals("separator")) {//$NON-NLS-1$" 
-					loadSeparator((Element)child);
-				}
-			}
-		}
-		String df = element.getAttribute("default"); //$NON-NLS-1$
-		if (df!=null && df.equalsIgnoreCase("true")) //$NON-NLS-1$
-			fDefault = true;
-	}
-	
-	public boolean isHidden() {
-		return (path.equals(IUniversalIntroConstants.HIDDEN));
-	}
-	
-	public boolean isDefault() {
-		return fDefault;
-	}
-
-	public void addAnchors(ArrayList result) {
-		for (int i = 0; i < children.size(); i++) {
-			BaseData edata = (BaseData) children.get(i);
-			String id = edata.getId();
-			IntroElement element = null;
-			String tagName="anchor"; //$NON-NLS-1$
-			if (edata instanceof SeparatorData)
-				tagName = "hr"; //$NON-NLS-1$
-			element = new IntroElement(tagName);
-			element.setAttribute("id", id); //$NON-NLS-1$
-			result.add(element);
-		}
-	}
-	
-	public void add(BaseData ed) {
-		children.add(ed);
-		ed.setParent(this);
-	}
-	public void add(int index, BaseData ed) {
-		children.add(index, ed);
-		ed.setParent(this);
-	}
-	public void remove(BaseData ed) {
-		children.remove(ed);
-		ed.setParent(null);
-	}
-	
-	public void addImplicitExtension(String id, String name) {
-		ExtensionData ed = new ExtensionData(id, name, IUniversalIntroConstants.LOW, true);
-		add(ed);
-	}
-	
-	private void loadSeparator(Element element) {
-		String id = element.getAttribute("id"); //$NON-NLS-1$
-		SeparatorData sd = new SeparatorData(id);
-		add(sd);
-	}
-
-	private void loadExtension(Element element) {
-		String id = element.getAttribute("id"); //$NON-NLS-1$
-		String name = element.getAttribute("name"); //$NON-NLS-1$
-		String importance = element.getAttribute("importance"); //$NON-NLS-1$
-		ExtensionData ed = new ExtensionData(id, name, importance, false);
-		add(ed);
-	}
-	
-	public BaseData[] getChildren() {
-		return (BaseData[])children.toArray(new BaseData[children.size()]);
-	}
-
-	public int getExtensionCount() {
-		int count=0;
-		for (int i=0; i<children.size(); i++) {
-			BaseData data = (BaseData)children.get(i);
-			if (data instanceof ExtensionData)
-				count++;
-		}
-		return count;
-	}
-/*
-	public ExtensionData[] getExtensions() {
-		ArrayList result = new ArrayList();
-		for (int i=0; i<children.size(); i++) {
-			BaseData data = (BaseData)children.get(i);
-			if (data instanceof ExtensionData)
-				result.add(data);
-		}
-		return (ExtensionData[]) result.toArray(new ExtensionData[result.size()]);
-	}
-	*/
-
-	public String getPath() {
-		return path;
-	}
-
-	public boolean contains(String id) {
-		return find(id)!=null;
-	}
-	
-	BaseData find(String extensionId) {
-		for (int i = 0; i < children.size(); i++) {
-			BaseData data = (BaseData) children.get(i);
-			if (data.getId().equals(extensionId))
-				return data;
-		}
-		return null;
-	}
-
-	public int getIndexOf(BaseData ed) {
-		return children.indexOf(ed);
-	}
-	
-	public int getIndexOf(String baseId) {
-		for (int i = 0; i < children.size(); i++) {
-			BaseData bd = (BaseData) children.get(i);
-			if (bd.getId().equals(baseId))
-				return i;
-		}
-		return -1;
-	}
-	
-	public boolean canMoveUp(BaseData ed) {
-		int index = children.indexOf(ed);
-		return (index>0);
-	}
-	
-	public boolean canMoveDown(BaseData ed) {
-		int index = children.indexOf(ed);
-		return (index!= -1 && index < children.size()-1);
-	}
-	
-	public void moveUp(BaseData ed) {
-		int index = children.indexOf(ed);
-		BaseData swapped = (BaseData)children.get(index-1);
-		children.set(index, swapped);
-		children.set(index-1, ed);
-	}
-
-	public void moveDown(BaseData ed) {
-		int index = children.indexOf(ed);
-		BaseData swapped = (BaseData)children.get(index+1);
-		children.set(index, swapped);
-		children.set(index+1, ed);		
-	}
-	
-	public void addSeparator(BaseData after) {
-		SeparatorData sd = new SeparatorData();
-		sd.id = ""+sd.hashCode(); //$NON-NLS-1$
-		if (after!=null) {
-			int index = children.indexOf(after);
-			if (index!= -1) {
-				children.add(index+1, sd);
-				return;
-			}
-		}
-		children.add(sd);
-	}
-	
-	public void write(PrintWriter writer, String indent) {
-		writer.print(indent);
-		if (isHidden())
-			writer.print("<hidden>"); //$NON-NLS-1$
-		else {
-			writer.print("<group path=\""+path+"\"");  //$NON-NLS-1$ //$NON-NLS-2$
-			if (fDefault)
-				writer.println(" default=\"true\">"); //$NON-NLS-1$
-			else
-				writer.println(">"); //$NON-NLS-1$
-		}
-		for (int i=0; i<children.size(); i++) {
-			BaseData ed = (BaseData)children.get(i);
-			ed.write(writer, indent+"   "); //$NON-NLS-1$
-		}
-		writer.print(indent);
-		if (isHidden())
-			writer.println("</hidden>"); //$NON-NLS-1$
-		else
-			writer.println("</group>"); //$NON-NLS-1$
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index fedc8d4..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IUniversalIntroConstants.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.universal;
-
-
-public interface IUniversalIntroConstants {
-
-    // 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$
-
-    // 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$
-
-    // 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$
-
-    // 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$
-    
-    // Universal Welcome
-    
-	String LOW = "low"; //$NON-NLS-1$
-	String MEDIUM = "medium"; //$NON-NLS-1$
-	String HIGH = "high"; //$NON-NLS-1$
-	String CALLOUT = "callout"; //$NON-NLS-1$
-	String HIDDEN = "hidden"; //$NON-NLS-1$
-	String NEW = "new"; //$NON-NLS-1$
-	
-	String STYLE_LOW = "importance-low"; //$NON-NLS-1$
-	String STYLE_MEDIUM = "importance-medium"; //$NON-NLS-1$
-	String STYLE_HIGH = "importance-high"; //$NON-NLS-1$
-	String STYLE_CALLOUT = "importance-callout"; //$NON-NLS-1$
-	String STYLE_NEW = "importance-new"; //$NON-NLS-1$
-	String DEFAULT_ANCHOR = "defaultAnchor"; //$NON-NLS-1$
-	String DEFAULT_CONTENT_PATH = "/page-content/bottom-left/"+DEFAULT_ANCHOR; //$NON-NLS-1$
-	// Page ids
-	String ID_ROOT = "root"; //$NON-NLS-1$
-	String ID_STANDBY = "standby"; //$NON-NLS-1$
-	String ID_OVERVIEW = "overview";//$NON-NLS-1$
-	String ID_TUTORIALS = "tutorials";//$NON-NLS-1$
-	String ID_SAMPLES = "samples";//$NON-NLS-1$
-	String ID_FIRSTSTEPS = "firststeps";//$NON-NLS-1$
-	String ID_WHATSNEW = "whatsnew";//$NON-NLS-1$
-	String ID_MIGRATE = "migrate";//$NON-NLS-1$
-	String ID_WEBRESOURCES = "webresources";//$NON-NLS-1$
-	String ID_WORKBENCH = "workbench"; //$NON-NLS-1$
-	
-	// Page DIV ids
-	String DIV_PAGE_LINKS = "page-links"; //$NON-NLS-1$
-	String DIV_ACTION_LINKS = "action-links"; //$NON-NLS-1$
-	String DIV_LAYOUT_TOP_LEFT = "top-left";  //$NON-NLS-1$
-	String DIV_LAYOUT_TOP_RIGHT = "top-right"; //$NON-NLS-1$
-	String DIV_LAYOUT_BOTTOM_LEFT = "bottom-left"; //$NON-NLS-1$
-	String DIV_LAYOUT_BOTTOM_RIGHT = "bottom-right"; //$NON-NLS-1$
-
-	// Product intro variables 
-	String VAR_INTRO_BACKGROUND_IMAGE = "INTRO_BACKGROUND_IMAGE"; //$NON-NLS-1$
-	String VAR_INTRO_ROOT_PAGES = "INTRO_ROOT_PAGES"; //$NON-NLS-1$
-	String VAR_INTRO_DATA = "INTRO_DATA";  //$NON-NLS-1$
-	String VAR_WORKBENCH_AS_ROOT_LINK="workbenchAsRootLink"; //$NON-NLS-1$
-	
-	//Page table properties
-	String P_IMPORTANCE = "importance"; //$NON-NLS-1$
-	String P_NAME = "name"; //$NON-NLS-1$
-	
-	//Theme property constants
-	String LAUNCHBAR_OVERVIEW_ICON = "launchbarOverviewIcon"; //$NON-NLS-1$
-	String LAUNCHBAR_FIRSTSTEPS_ICON = "launchbarFirststepsIcon"; //$NON-NLS-1$
-	String LAUNCHBAR_TUTORIALS_ICON = "launchbarTutorialsIcon"; //$NON-NLS-1$
-	String LAUNCHBAR_SAMPLES_ICON = "launchbarSamplesIcon"; //$NON-NLS-1$
-	String LAUNCHBAR_WHATSNEW_ICON = "launchbarWhatsnewIcon"; //$NON-NLS-1$
-	String LAUNCHBAR_MIGRATE_ICON = "launchbarMigrateIcon"; //$NON-NLS-1$
-	String LAUNCHBAR_WEBRESOURCES_ICON = "launchbarWebresourcesIcon"; //$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
deleted file mode 100644
index 7089ab0..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/IntroData.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.intro.impl.model.loader.IntroContentParser;
-import org.eclipse.ui.internal.intro.universal.util.BundleUtil;
-import org.eclipse.ui.internal.intro.universal.util.Log;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-
-public class IntroData {
-	private String productId;
-	private Hashtable pages=new Hashtable();
-	private boolean active;
-	
-	public IntroData(String productId, String fileNameOrData, boolean active) {
-		this.productId = productId;
-		this.active = active;
-		if (fileNameOrData!=null)
-			initialize(fileNameOrData);
-	}
-	
-	public String getProductId() {
-		return productId;
-	}
-	
-	public PageData getPage(String pageId) {
-		return (PageData)pages.get(pageId);
-	}
-
-	public boolean isActive() {
-		return active;
-	}
-
-	private void initialize(String fileNameOrData) {
-		Document doc = parse(fileNameOrData);
-		if (doc == null)
-			return;
-		Element root = doc.getDocumentElement();
-		NodeList pages = root.getChildNodes();
-		for (int i = 0; i < pages.getLength(); i++) {
-			Node node = pages.item(i);
-			if (node.getNodeType() == Node.ELEMENT_NODE && node.getNodeName().equals("page")) { //$NON-NLS-1$
-				loadPage((Element) node);
-			}
-		}
-	}
-
-	private void loadPage(Element page) {
-		PageData pd = new PageData(page);
-		pages.put(pd.getId(), pd);
-	}
-	
-	public void addImplicitContent() {
-		IConfigurationElement [] elements = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.ui.intro.configExtension"); //$NON-NLS-1$
-		for (int i=0; i<elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (element.getName().equals("configExtension")) { //$NON-NLS-1$
-				String cid = element.getAttribute("configId"); //$NON-NLS-1$
-				if (cid!=null && cid.equals("org.eclipse.ui.intro.universalConfig")) { //$NON-NLS-1$
-					addCandidate(element);
-				}
-			}
-		}
-	}
-
-	private void addCandidate(IConfigurationElement element) {
-		String fileName = element.getAttribute("content"); //$NON-NLS-1$
-		if (fileName==null)
-			return;
-		String bundleId = element.getDeclaringExtension().getNamespaceIdentifier();
-		Bundle bundle = Platform.getBundle(bundleId);
-		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 = (PageData)pages.get(pageId);
-	    if (pd==null) {
-	    	pd = new PageData(pageId);
-	    	pages.put(pageId, pd);
-	    }
-	    pd.addImplicitExtension(id, name);
-	}
-
-	private Document parse(String fileNameOrData) {
-		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();
-
-			if (fileNameOrData.charAt(0)=='<') {
-				//This is actual content, not the file name
-				StringReader reader = new StringReader(fileNameOrData);
-				document = parser.parse(new InputSource(reader));
-			}
-			else
-				document = parser.parse(fileNameOrData);
-			return document;
-
-		} catch (SAXParseException spe) {
-			StringBuffer buffer = new StringBuffer("IntroData 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);
-
-		} 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 (IOException ioe) {
-			Log.error(ioe.getMessage(), ioe);
-		}
-		return null;
-	}
-	
-	public void write(PrintWriter writer) {
-		writer.println("<?xml version=\"1.0\" encoding=\"utf-8\" ?>"); //$NON-NLS-1$
-		writer.println("<extensions>"); //$NON-NLS-1$
-		for (Enumeration keys = pages.keys(); keys.hasMoreElements();) {
-			String id = (String)keys.nextElement();
-			PageData pd = (PageData)pages.get(id);
-			pd.write(writer, "   "); //$NON-NLS-1$
-		}
-		writer.println("</extensions>"); //$NON-NLS-1$
-	}
-}
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
deleted file mode 100644
index ba28594..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.universal;
-
-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$
-
-    static {
-        initializeMessages(INTRO_RESOURCE_BUNDLE, Messages.class);
-    }
-
-    // Misc
-    // -------
-	public static String SharedIntroConfigurer_overview_name;
-	public static String SharedIntroConfigurer_overview_alt;
-	public static String SharedIntroConfigurer_overview_tooltip;
-	public static String SharedIntroConfigurer_firststeps_name;
-	public static String SharedIntroConfigurer_firststeps_alt;
-	public static String SharedIntroConfigurer_firststeps_tooltip;
-	public static String SharedIntroConfigurer_tutorials_name;
-	public static String SharedIntroConfigurer_tutorials_alt;
-	public static String SharedIntroConfigurer_tutorials_tooltip;
-	public static String SharedIntroConfigurer_samples_name;
-	public static String SharedIntroConfigurer_samples_alt;
-	public static String SharedIntroConfigurer_samples_tooltip;
-	public static String SharedIntroConfigurer_whatsnew_name;
-	public static String SharedIntroConfigurer_whatsnew_alt;
-	public static String SharedIntroConfigurer_whatsnew_tooltip;
-	public static String SharedIntroConfigurer_migrate_name;
-	public static String SharedIntroConfigurer_migrate_alt;
-	public static String SharedIntroConfigurer_migrate_tooltip;
-	public static String SharedIntroConfigurer_webresources_name;
-	public static String SharedIntroConfigurer_webresources_alt;
-	public static String SharedIntroConfigurer_webresources_tooltip;
-	public static String SharedIntroConfigurer_workbench_name;
-	public static String SharedIntroConfigurer_workbench_alt;
-	public static String SharedIntroConfigurer_workbench_tooltip;
-	public static String SharedIntroConfigurer_overview_nav;
-	public static String SharedIntroConfigurer_firststeps_nav;
-	public static String SharedIntroConfigurer_tutorials_nav;
-	public static String SharedIntroConfigurer_samples_nav;
-	public static String SharedIntroConfigurer_whatsnew_nav;
-	public static String SharedIntroConfigurer_migrate_nav;
-	public static String SharedIntroConfigurer_webresources_nav;
-	public static String WelcomeCustomizationPreferencePage_available;
-	public static String WelcomeCustomizationPreferencePage_left;
-	public static String WelcomeCustomizationPreferencePage_right;
-	public static String WelcomeCustomizationPreferencePage_background;
-	public static String WelcomeCustomizationPreferencePage_preview;
-	public static String WelcomeCustomizationPreferencePage_rootpages;
-	public static String WelcomeCustomizationPreferencePage_overview;
-	public static String WelcomeCustomizationPreferencePage_firststeps;
-	public static String WelcomeCustomizationPreferencePage_tutorials;
-	public static String WelcomeCustomizationPreferencePage_samples;
-	public static String WelcomeCustomizationPreferencePage_whatsnew;
-	public static String WelcomeCustomizationPreferencePage_webresources;
-	public static String WelcomeCustomizationPreferencePage_migrate;
-	public static String WelcomeCustomizationPreferencePage_applyToAll;
-	public static String ExtensionData_callout;
-	public static String ExtensionData_low;
-	public static String ExtensionData_medium;
-	public static String ExtensionData_high;
-	public static String ExtensionData_new;
-	public static String WelcomeCustomizationPreferencePage_serialize;
-	public static String WelcomeCustomizationPreferencePage_serializeTitle;
-	public static String WelcomeCustomizationPreferencePage_up;
-	public static String WelcomeCustomizationPreferencePage_down;
-	public static String WelcomeCustomizationPreferencePage_moveTo;
-	public static String WelcomeCustomizationPreferencePage_menu_available;
-	public static String WelcomeCustomizationPreferencePage_menu_top_left;
-	public static String WelcomeCustomizationPreferencePage_menu_top_right;
-	public static String WelcomeCustomizationPreferencePage_menu_bottom_left;
-	public static String WelcomeCustomizationPreferencePage_menu_bottom_right;	
-	public static String WelcomeCustomizationPreferencePage_browse;
-	public static String WelcomeCustomizationPreferencePage_browseTitle;
-	public static String SharedIntroConfigurer_customize_label;
-	public static String SharedIntroConfigurer_customize_text;
-	public static String WelcomeCustomizationPreferencePage_pageDesc;
-	public static String WelcomeCustomizationPreferencePage_horizontalSeparator;
-	public static String WelcomeCustomizationPreferencePage_addSeparator;
-	public static String WelcomeCustomizationPreferencePage_removeSeparator;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.properties b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.properties
deleted file mode 100644
index 9b80104..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/Messages.properties
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# ==============================================
-# Universal Welcome plugin properties file
-# ==============================================
-
-# Configurer
-SharedIntroConfigurer_overview_name=Overview
-SharedIntroConfigurer_overview_alt=Overview
-SharedIntroConfigurer_overview_tooltip=Find out what Eclipse is all about
-SharedIntroConfigurer_firststeps_name=First Steps
-SharedIntroConfigurer_firststeps_alt=First Steps
-SharedIntroConfigurer_firststeps_tooltip=Make first steps
-SharedIntroConfigurer_tutorials_name=Tutorials
-SharedIntroConfigurer_tutorials_alt=Tutorials
-SharedIntroConfigurer_tutorials_tooltip=Go through tutorials
-SharedIntroConfigurer_samples_name=Samples
-SharedIntroConfigurer_samples_alt=Samples
-SharedIntroConfigurer_samples_tooltip=Try out the samples
-SharedIntroConfigurer_whatsnew_name=What's New
-SharedIntroConfigurer_whatsnew_alt=What's New
-SharedIntroConfigurer_whatsnew_tooltip=Find out what is new
-SharedIntroConfigurer_migrate_name=Migrate
-SharedIntroConfigurer_migrate_alt=Migrate
-SharedIntroConfigurer_migrate_tooltip=Migrate to the new release
-SharedIntroConfigurer_customize_label=Customize
-SharedIntroConfigurer_webresources_name=Web Resources
-SharedIntroConfigurer_webresources_alt=Web Resources
-SharedIntroConfigurer_webresources_tooltip=Read more on the Web
-SharedIntroConfigurer_workbench_name = Workbench
-SharedIntroConfigurer_workbench_alt = Go to the workbench
-SharedIntroConfigurer_workbench_tooltip = Go to the workbench
-SharedIntroConfigurer_overview_nav=Overview
-SharedIntroConfigurer_firststeps_nav=First Steps
-SharedIntroConfigurer_customize_text=Customize page
-SharedIntroConfigurer_tutorials_nav=Tutorials
-SharedIntroConfigurer_samples_nav=Samples
-SharedIntroConfigurer_whatsnew_nav=What's New
-SharedIntroConfigurer_migrate_nav=Migrate
-SharedIntroConfigurer_webresources_nav=Web Resources
-
-# Preference page
-WelcomeCustomizationPreferencePage_left= Left Column:
-WelcomeCustomizationPreferencePage_up= Move Up
-WelcomeCustomizationPreferencePage_down=Move Down
-WelcomeCustomizationPreferencePage_right= Right Column:
-WelcomeCustomizationPreferencePage_browse=Browse...
-WelcomeCustomizationPreferencePage_browseTitle=Select the background image file
-WelcomeCustomizationPreferencePage_preview= Preview:
-WelcomeCustomizationPreferencePage_samples= Samples
-WelcomeCustomizationPreferencePage_migrate= Migrate
-WelcomeCustomizationPreferencePage_moveTo=Move To
-WelcomeCustomizationPreferencePage_available= Available Extensions:
-WelcomeCustomizationPreferencePage_background= Home Page Theme:
-WelcomeCustomizationPreferencePage_firststeps= First Steps
-WelcomeCustomizationPreferencePage_applyToAll=Apply settings to all the products sharing this workbench
-WelcomeCustomizationPreferencePage_menu_top_right= Top Right
-WelcomeCustomizationPreferencePage_webresources= Web Resources
-WelcomeCustomizationPreferencePage_addSeparator=Add Separator
-WelcomeCustomizationPreferencePage_removeSeparator=Remove
-WelcomeCustomizationPreferencePage_menu_bottom_left=Bottom Left
-WelcomeCustomizationPreferencePage_menu_bottom_right=Bottom Right
-WelcomeCustomizationPreferencePage_horizontalSeparator=[Horizontal separator]
-WelcomeCustomizationPreferencePage_rootpages= Root Pages:
-WelcomeCustomizationPreferencePage_overview= Overview
-WelcomeCustomizationPreferencePage_tutorials= Tutorials
-WelcomeCustomizationPreferencePage_whatsnew= What's New
-WelcomeCustomizationPreferencePage_pageDesc=Use drag and drop to position extensions on the page.
-WelcomeCustomizationPreferencePage_serialize = Save As...
-WelcomeCustomizationPreferencePage_menu_top_left=Top Left
-WelcomeCustomizationPreferencePage_serializeTitle=Save the page layout data as a file
-WelcomeCustomizationPreferencePage_menu_available=Available
-
-#Importance levels
-ExtensionData_callout=Callout
-ExtensionData_low=Low
-ExtensionData_medium=Medium
-ExtensionData_high=High
-ExtensionData_new=New
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/PageData.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/PageData.java
deleted file mode 100644
index 96c6c14..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/PageData.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class PageData {
-	public static final String P_TOP_LEFT = "page-content/top-left"; //$NON-NLS-1$
-	public static final String P_TOP_RIGHT = "page-content/top-right"; //$NON-NLS-1$
-	public static final String P_BOTTOM_LEFT = "page-content/bottom-left"; //$NON-NLS-1$
-	public static final String P_BOTTOM_RIGHT = "page-content/bottom-right"; //$NON-NLS-1$
-
-	private String id;
-	private ArrayList groups = new ArrayList();
-	private GroupData hidden=null;
-	
-	public PageData(String id) {
-		this.id = id;
-	}
-	
-	public PageData(Element page) {
-		this.id = page.getAttribute("id"); //$NON-NLS-1$
-		NodeList children = page.getChildNodes();
-		for (int i=0; i<children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType()==Node.ELEMENT_NODE) {
-				Element element = (Element)child;
-				if (element.getNodeName().equals("group")) { //$NON-NLS-1$
-					addGroup(element, false);
-				}
-				else if (element.getNodeName().equals(IUniversalIntroConstants.HIDDEN)) {
-					addGroup(element, true);
-				}
-			}
-		}
-	}
-	
-	public void add(GroupData gd) {
-		if (gd.isHidden())
-			hidden = gd;
-		else
-			groups.add(gd);
-	}
-
-	public void addAnchors(ArrayList result, String groupId) {
-		GroupData group = findGroup(groupId);
-		if (group==null) return;
-		group.addAnchors(result);
-	}
-
-	public String resolvePath(String extensionId) {
-		if (isHidden(extensionId))
-			return null;
-		GroupData ddata = null;
-		for (int i=0; i<groups.size(); i++) {
-			GroupData gdata = (GroupData)groups.get(i);
-			if (gdata.isDefault())
-				ddata=gdata;
-			if (gdata.contains(extensionId)) {
-				IPath resolvedPath = new Path(id);
-				resolvedPath = resolvedPath.append(gdata.getPath());
-				resolvedPath = resolvedPath.append(extensionId);
-				return resolvedPath.toString();
-			}
-		}
-		// resolve as default
-		IPath resolvedPath = new Path(id).append(ddata.getPath());
-		resolvedPath = resolvedPath.append(IUniversalIntroConstants.DEFAULT_ANCHOR);
-		return resolvedPath.toString();
-	}
-	
-	public boolean isHidden(String extensionId) {
-		return hidden!=null && hidden.contains(extensionId);
-	}
-	
-	public GroupData findGroup(String groupId) {
-		if (groupId.equals(IUniversalIntroConstants.HIDDEN))
-			return hidden;
-		for (int i=0; i<groups.size(); i++) {
-			GroupData gdata = (GroupData)groups.get(i);
-			IPath path = new Path(gdata.getPath());
-			if (path.lastSegment().equals(groupId))
-				return gdata;
-		}
-		return null;
-	}
-	
-	private void addGroup(Element element, boolean hide) {
-		GroupData gd = new GroupData(element);
-		if (hide) hidden = gd;
-		else
-			groups.add(gd);
-	}
-	
-	public void addImplicitExtension(String extensionId, String name) {
-		ExtensionData ed = findExtension(extensionId, true);
-		if (ed!=null) {
-			// see if name needs to be supplied
-			if (ed.getName()==null || ed.getName().length()==0)
-				ed.setName(name);
-			return;
-		}
-		GroupData gd = findDefaultGroup();
-		if (gd==null && groups.size()==0) {
-			// add bottoms as the default group
-			gd = new GroupData(P_BOTTOM_LEFT, true);
-			groups.add(gd);
-			groups.add(new GroupData(P_BOTTOM_RIGHT, true));
-		}
-		gd.addImplicitExtension(extensionId, name);
-	}
-
-	private GroupData findDefaultGroup() {
-		GroupData defaultGroup = null;
-		for (int i=0; i<groups.size(); i++) {
-			GroupData gd = (GroupData)groups.get(i);
-			if (gd.isDefault()) {
-				if (defaultGroup==null)
-					defaultGroup = gd;
-				else
-					if (defaultGroup.getExtensionCount()>gd.getExtensionCount())
-						defaultGroup = gd;
-			}
-		}
-		return defaultGroup;
-	}
-	
-	public String getId() {
-		return id;
-	}
-	
-	public ExtensionData findExtension(String extensionId, boolean checkHidden) {
-		for (int i=0; i<groups.size(); i++) {
-			GroupData gdata = (GroupData)groups.get(i);
-			ExtensionData ed = find(gdata, extensionId);
-			if (ed!=null)
-				return ed;
-		}
-		// check the hidden
-		if (checkHidden && hidden!=null)
-			return find (hidden, extensionId);
-		return null;
-	}
-		
-	private ExtensionData find(GroupData gd, String extensionId) {
-		BaseData bd = gd.find(extensionId);
-		if (bd!=null && bd instanceof ExtensionData)
-			return (ExtensionData)bd;
-		return null;
-	}
-
-	public String resolveExtension(String extensionId) {
-		// check the explicit groups
-		for (int i=0; i<groups.size(); i++) {
-			GroupData gdata = (GroupData)groups.get(i);
-			if (gdata.contains(extensionId)) {
-				return id+"/"+gdata.getPath()+"/"+extensionId;  //$NON-NLS-1$//$NON-NLS-2$
-			}
-		}
-		// check the hidden
-		if (hidden!=null && hidden.contains(extensionId))
-			return null;
-		// create the default: pick the last group
-		if (groups.size()==0) return null;
-		GroupData last = (GroupData)groups.get(groups.size()-1);
-		return id + "/" + last.getPath() + "/" + IUniversalIntroConstants.DEFAULT_ANCHOR;  //$NON-NLS-1$//$NON-NLS-2$
-	}
-	
-	public void write(PrintWriter writer, String indent) {
-		writer.print(indent);
-		String indent2 = indent+"   "; //$NON-NLS-1$
-		writer.println("<page id=\""+id+"\">");  //$NON-NLS-1$//$NON-NLS-2$
-		for (int i=0; i<groups.size(); i++) {
-			GroupData gd = (GroupData)groups.get(i);
-			gd.write(writer, indent2);
-		}
-		if (hidden!=null)
-			hidden.write(writer, indent2);
-		writer.print(indent);
-		writer.println("</page>"); //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/SeparatorData.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/SeparatorData.java
deleted file mode 100644
index fce07c0..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/SeparatorData.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.PrintWriter;
-
-public class SeparatorData extends BaseData {
-	
-	public SeparatorData() {
-	}
-	
-	public SeparatorData(String id) {
-		this.id = id;
-	}
-
-	public void write(PrintWriter writer, String indent) {
-		writer.print(indent);
-		writer.print("<separator id=\""); //$NON-NLS-1$
-		writer.print(id);
-		writer.println("\"/>"); //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroConfigurer.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroConfigurer.java
deleted file mode 100644
index 69889fc..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroConfigurer.java
+++ /dev/null
@@ -1,495 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.internal.intro.universal.util.ImageUtil;
-import org.eclipse.ui.intro.IIntroSite;
-import org.eclipse.ui.intro.config.IntroConfigurer;
-import org.eclipse.ui.intro.config.IntroElement;
-import org.osgi.framework.Bundle;
-
-/**
- * This class provides for dynamic configuration of the shared intro
- * implementation based on the data file associated with the product.
- * 
- * @since 3.2
- */
-
-public class UniversalIntroConfigurer extends IntroConfigurer implements
-		IUniversalIntroConstants {
-	private ArrayList introData = new ArrayList();
-
-	public UniversalIntroConfigurer() {
-		loadData();
-	}
-
-	public String getVariable(String variableName) {
-		IProduct product = Platform.getProduct();
-		if (product != null) {
-			// try product property first
-			String value = getProductProperty(product, variableName);
-			if (value != null) {
-				value = resolveVariable(product.getDefiningBundle(), value);
-				return value;
-			}
-			// nothing - try preferences
-			Preferences prefs = UniversalIntroPlugin.getDefault()
-					.getPluginPreferences();
-			// try to prefix with a preduct id first
-			String key = product.getId() + "_" + variableName; //$NON-NLS-1$
-			value = prefs.getString(key);
-			if (value.length() == 0) {
-				// try direct variable name
-				key = variableName;
-				value = prefs.getString(key);
-			}
-			if (value.length() > 0)
-				value = resolveVariable(product.getDefiningBundle(), value);
-			else {
-				// pass it to the theme
-				value = getThemeProperty(variableName);
-			}
-			return value;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.intro.config.IntroConfigurer#getMixinStyle(java.lang.String)
-	 */
-	public String getMixinStyle(String pageId, String extensionId) {
-		if (introData.size() > 0) {
-			// TODO getting the active product one only
-			// Eventually we should consult the data from all the products
-			IntroData idata = (IntroData) introData.get(0);
-			PageData pdata = idata.getPage(pageId);
-			if (pdata != null) {
-				ExtensionData ed = pdata.findExtension(extensionId, false);
-				if (ed!=null) {
-					int importance = ed.getImportance();
-					if (importance != ExtensionData.HIDDEN)
-						return ExtensionData.IMPORTANCE_STYLE_TABLE[importance];
-				}
-			}
-		}
-		return null;
-	}
-
-	private String resolveVariable(Bundle bundle, String value) {
-		if (value != null) {
-			String path = null;
-			if (value.startsWith("intro:")) { //$NON-NLS-1$
-				bundle = UniversalIntroPlugin.getDefault().getBundle();
-				path = value.substring(6);
-			} else if (value.startsWith("product:")) { //$NON-NLS-1$
-				path = value.substring(8);
-			} else
-				return value;
-			try {
-				URL url = bundle.getEntry(path);
-				if (url != null) {
-					URL localURL = FileLocator.toFileURL(url);
-					return localURL.toString();
-				}
-			} catch (IOException e) {
-				// just use the value as-is
-				return value;
-			}
-		}
-		return null;
-	}
-
-	private String getProductProperty(IProduct product, String variableName) {
-		String value = product.getProperty(variableName);
-		if (value == null) {
-			// return default values
-			if (variableName.equals(VAR_INTRO_BACKGROUND_IMAGE))
-				return "css/graphics/root/welcomebckgrd.jpg"; //$NON-NLS-1$
-		}
-		return value;
-	}
-
-	public IntroElement[] getGroupChildren(String pageId, String groupId) {
-		if (pageId.equals(ID_ROOT)) {
-			if (groupId.equals(DIV_PAGE_LINKS))
-				return getRootPageLinks(false);
-			if (groupId.equals(DIV_ACTION_LINKS))
-				return getRootPageActionLinks(false);
-		} else if (pageId.equals(ID_STANDBY)) {
-			if (groupId.equals(DIV_PAGE_LINKS))
-				return getRootPageLinks(true);
-			if (groupId.equals(DIV_ACTION_LINKS))
-				return getRootPageActionLinks(true);
-		} else {
-			// other pages
-			if (groupId.equals(DIV_PAGE_LINKS))
-				return getNavLinks(pageId);
-			if (groupId.equals(DIV_LAYOUT_TOP_LEFT)
-					|| groupId.equals(DIV_LAYOUT_TOP_RIGHT)
-					|| groupId.equals(DIV_LAYOUT_BOTTOM_LEFT)
-					|| groupId.equals(DIV_LAYOUT_BOTTOM_RIGHT))
-				return getContent(pageId, groupId);
-		}
-		return new IntroElement[0];
-	}
-
-	public IntroElement[] getLaunchBarShortcuts() {
-		ArrayList links = new ArrayList();
-		String ids = getVariable(VAR_INTRO_ROOT_PAGES);
-		if (ids != null) {
-			StringTokenizer stok = new StringTokenizer(ids, ","); //$NON-NLS-1$
-			while (stok.hasMoreTokens()) {
-				String id = stok.nextToken().trim();
-				IntroElement page = createLaunchBarShortcut(id);
-				if (page != null)
-					links.add(page);
-			}
-		}
-		return (IntroElement[]) links.toArray(new IntroElement[links.size()]);
-	}
-
-	private IntroElement[] getRootPageLinks(boolean standby) {
-		ArrayList links = new ArrayList();
-		String ids = getVariable(VAR_INTRO_ROOT_PAGES);
-		if (ids != null) {
-			StringTokenizer stok = new StringTokenizer(ids, ","); //$NON-NLS-1$
-			while (stok.hasMoreTokens()) {
-				String id = stok.nextToken().trim();
-				IntroElement page = createRootPageLink(id, standby);
-				if (page != null)
-					links.add(page);
-			}
-		}
-		// add workbench link if so configured by the theme
-		String wb = getVariable(VAR_WORKBENCH_AS_ROOT_LINK);
-		if (wb!=null && wb.equalsIgnoreCase("true")) { //$NON-NLS-1$
-			IntroElement page = createRootPageLink(ID_WORKBENCH, standby);
-			if (page !=null)
-				links.add(page);
-		}
-		return (IntroElement[]) links.toArray(new IntroElement[links.size()]);
-	}
-
-	private IntroElement[] getRootPageActionLinks(boolean standby) {
-		String wb = getVariable(VAR_WORKBENCH_AS_ROOT_LINK);
-		// only create the workbench link if 
-		// not already configured as a root link
-		if (wb==null || !wb.equalsIgnoreCase("true")) { //$NON-NLS-1$
-			IntroElement page = createRootPageLink(ID_WORKBENCH, standby);
-			if (page !=null)
-				return new IntroElement[] { page };
-		}
-		return new IntroElement [0];
-	}
-
-	private IntroElement[] getNavLinks(String pageId) {
-		ArrayList links = new ArrayList();
-		String ids = getVariable(VAR_INTRO_ROOT_PAGES);
-		if (ids != null) {
-			StringTokenizer stok = new StringTokenizer(ids, ","); //$NON-NLS-1$
-			int [] counter = new int [1];
-			while (stok.hasMoreTokens()) {
-				String id = stok.nextToken().trim();
-				IntroElement page = createNavLink(id, pageId, counter);
-				if (page != null)
-					links.add(page);
-			}
-		}
-		return (IntroElement[]) links.toArray(new IntroElement[links.size()]);
-	}
-
-	private IntroElement createRootPageLink(String id, boolean standby) {
-
-		if (id.equals(ID_OVERVIEW))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_overview_name,
-					createPageURL(id, standby),
-					id,
-					"overview_img", "$theme$/graphics/root/overview.gif", Messages.SharedIntroConfigurer_overview_alt, //$NON-NLS-1$ //$NON-NLS-2$
-					Messages.SharedIntroConfigurer_overview_tooltip, "left"); //$NON-NLS-1$
-		if (id.equals(ID_FIRSTSTEPS))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_firststeps_name,
-					createPageURL(id, standby),
-					id,
-					"firststeps_img", "$theme$/graphics/root/firststeps.gif", Messages.SharedIntroConfigurer_firststeps_alt, //$NON-NLS-1$ //$NON-NLS-2$
-					Messages.SharedIntroConfigurer_firststeps_tooltip, "left"); //$NON-NLS-1$
-		if (id.equals(ID_TUTORIALS))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_tutorials_name,
-					createPageURL(id, standby),
-					id,
-					"tutorials_img", "$theme$/graphics/root/tutorials.gif", Messages.SharedIntroConfigurer_tutorials_alt, //$NON-NLS-1$ //$NON-NLS-2$
-					Messages.SharedIntroConfigurer_tutorials_tooltip, "left"); //$NON-NLS-1$
-		if (id.equals(ID_SAMPLES))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_samples_name,
-					createPageURL(id, standby),
-					id,
-					"samples_img", "$theme$/graphics/root/samples.gif", Messages.SharedIntroConfigurer_samples_alt, Messages.SharedIntroConfigurer_samples_tooltip, "right"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		if (id.equals(ID_WHATSNEW))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_whatsnew_name,
-					createPageURL(id, standby),
-					id,
-					"whatsnew_img", "$theme$/graphics/root/whatsnew.gif", Messages.SharedIntroConfigurer_whatsnew_alt, //$NON-NLS-1$ //$NON-NLS-2$
-					Messages.SharedIntroConfigurer_whatsnew_tooltip, "right"); //$NON-NLS-1$
-		if (id.equals(ID_MIGRATE))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_migrate_name,
-					createPageURL(id, standby),
-					id,
-					"migrate_img", "$theme$/graphics/root/migrate.gif", Messages.SharedIntroConfigurer_migrate_alt, Messages.SharedIntroConfigurer_migrate_tooltip, "right"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		if (id.equals(ID_WEBRESOURCES))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_webresources_name,
-					createPageURL(id, standby),
-					id,
-					"webresources_img", "css/graphics/root/webresources.gif", //$NON-NLS-1$ //$NON-NLS-2$
-					Messages.SharedIntroConfigurer_webresources_alt,
-					Messages.SharedIntroConfigurer_webresources_tooltip,
-					"right"); //$NON-NLS-1$
-		if (id.equals(ID_WORKBENCH))
-			return createRootLink(
-					Messages.SharedIntroConfigurer_workbench_name,
-					"http://org.eclipse.ui.intro/switchToLaunchBar", //$NON-NLS-1$
-					id,
-					"workbench_img", "css/graphics/root/workbench.gif", //$NON-NLS-1$ //$NON-NLS-2$
-					Messages.SharedIntroConfigurer_workbench_alt,
-					Messages.SharedIntroConfigurer_workbench_tooltip,
-					"right"); //$NON-NLS-1$
-		return null;
-	}
-
-	private IntroElement createNavLink(String id, String pageId, int [] counter) {
-		if (id.equals(ID_OVERVIEW))
-			return createNavLink(Messages.SharedIntroConfigurer_overview_nav,
-					createPageURL(id, false), id, "left nav_link"+(++counter[0])); //$NON-NLS-1$ 
-		if (id.equals(ID_FIRSTSTEPS))
-			return createNavLink(Messages.SharedIntroConfigurer_firststeps_nav,
-					createPageURL(id, false), id, "left  nav_link"+(++counter[0])); //$NON-NLS-1$
-		if (id.equals(ID_TUTORIALS))
-			return createNavLink(Messages.SharedIntroConfigurer_tutorials_nav,
-					createPageURL(id, false), id, "left nav_link"+(++counter[0])); //$NON-NLS-1$
-		if (id.equals(ID_SAMPLES))
-			return createNavLink(Messages.SharedIntroConfigurer_samples_nav,
-					createPageURL(id, false), id, "right nav_link"+(++counter[0])); //$NON-NLS-1$
-		if (id.equals(ID_WHATSNEW))
-			return createNavLink(Messages.SharedIntroConfigurer_whatsnew_nav,
-					createPageURL(id, false), id, "right nav_link"+(++counter[0])); //$NON-NLS-1$
-		if (id.equals(ID_MIGRATE))
-			return createNavLink(Messages.SharedIntroConfigurer_migrate_nav,
-					createPageURL(id, false), id, "right nav_link"+(++counter[0])); //$NON-NLS-1$
-		if (id.equals(ID_WEBRESOURCES))
-			return createNavLink(
-					Messages.SharedIntroConfigurer_webresources_nav,
-					createPageURL(id, false), id, "right nav_link"+(++counter[0])); //$NON-NLS-1$
-		return null;
-	}
-
-	private String createPageURL(String id, boolean standby) {
-		String url = "http://org.eclipse.ui.intro/showPage?id=" + id; //$NON-NLS-1$
-		if (standby)
-			url += "&standby=false"; //$NON-NLS-1$
-		return url;
-	}
-
-	private IntroElement createLaunchBarShortcut(String id) {
-		if (id.equals(ID_OVERVIEW))
-			return createShortcutLink(
-					getThemeProperty(LAUNCHBAR_OVERVIEW_ICON), Messages.SharedIntroConfigurer_overview_nav, 
-					id);
-		if (id.equals(ID_FIRSTSTEPS))
-			return createShortcutLink(
-					getThemeProperty(LAUNCHBAR_FIRSTSTEPS_ICON), Messages.SharedIntroConfigurer_firststeps_nav, 
-					id);
-		if (id.equals(ID_TUTORIALS))
-			return createShortcutLink(
-					getThemeProperty(LAUNCHBAR_TUTORIALS_ICON), Messages.SharedIntroConfigurer_tutorials_nav, 
-					id);
-		if (id.equals(ID_SAMPLES))
-			return createShortcutLink(
-					getThemeProperty(LAUNCHBAR_SAMPLES_ICON), Messages.SharedIntroConfigurer_samples_nav, 
-					id);
-		if (id.equals(ID_WHATSNEW))
-			return createShortcutLink(
-					getThemeProperty(LAUNCHBAR_WHATSNEW_ICON), Messages.SharedIntroConfigurer_whatsnew_nav, 
-					id);
-		if (id.equals(ID_MIGRATE))
-			return createShortcutLink(
-					getThemeProperty(LAUNCHBAR_MIGRATE_ICON), Messages.SharedIntroConfigurer_migrate_nav, 
-					id);
-		if (id.equals(ID_WEBRESOURCES))
-			return createShortcutLink(
-					getThemeProperty(LAUNCHBAR_WEBRESOURCES_ICON), Messages.SharedIntroConfigurer_webresources_nav, 
-					id);
-		return null;
-	}
-
-	private IntroElement createRootLink(String name, String url, String id,
-			String imgId, String imgSrc, String imgAlt, String imgText,
-			String styleId) {
-		IntroElement element = new IntroElement("link"); //$NON-NLS-1$
-		element.setAttribute("label", name); //$NON-NLS-1$
-		element.setAttribute("url", url); //$NON-NLS-1$
-		element.setAttribute("id", id); //$NON-NLS-1$
-		element.setAttribute("style-id", styleId);//$NON-NLS-1$
-		IntroElement img = new IntroElement("img"); //$NON-NLS-1$
-		img.setAttribute("id", imgId); //$NON-NLS-1$
-		img.setAttribute("style-id", "content-img"); //$NON-NLS-1$ //$NON-NLS-2$
-		// img.setAttribute("src", imgSrc); //$NON-NLS-1$
-		img.setAttribute("alt", imgAlt); //$NON-NLS-1$
-		IntroElement text = new IntroElement("text"); //$NON-NLS-1$
-		text.setValue(imgText);
-		element.addChild(img);
-		element.addChild(text);
-		return element;
-	}
-
-	private IntroElement createNavLink(String label, String url, String id,
-			String styleId) {
-		IntroElement element = new IntroElement("link"); //$NON-NLS-1$
-		element.setAttribute("label", label); //$NON-NLS-1$
-		element.setAttribute("url", url); //$NON-NLS-1$
-		element.setAttribute("id", id); //$NON-NLS-1$
-		element.setAttribute("style-id", styleId); //$NON-NLS-1$
-		return element;
-	}
-
-	private IntroElement createShortcutLink(String icon, String tooltip,
-			String id) {
-		IntroElement element = new IntroElement("shortcut"); //$NON-NLS-1$
-		element.setAttribute("icon", icon); //$NON-NLS-1$
-		element.setAttribute("tooltip", tooltip); //$NON-NLS-1$
-		element.setAttribute("url", createPageURL(id, false)); //$NON-NLS-1$
-		return element;
-	}
-
-	private void loadData() {
-		// add intro data for this product first
-		String dataFile = getVariable(VAR_INTRO_DATA);
-		String pid = Platform.getProduct().getId();
-		if (dataFile != null)
-			introData.add(new IntroData(pid, dataFile, true));
-		IConfigurationElement[] products = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(
-						"org.eclipse.core.runtime.products"); //$NON-NLS-1$
-		for (int i = 0; i < products.length; i++) {
-			IConfigurationElement product = products[i];
-			IExtension extension = product.getDeclaringExtension();
-			String uid = extension.getUniqueIdentifier();
-			// skip this product
-			if (pid.equals(uid))
-				continue;
-			addIntroDataFor(uid, product);
-		}
-	}
-
-	private void addIntroDataFor(String pid, IConfigurationElement product) {
-		IConfigurationElement[] children = product.getChildren("property"); //$NON-NLS-1$
-		for (int i = 0; i < children.length; i++) {
-			IConfigurationElement child = children[i];
-			String name = child.getAttribute("name"); //$NON-NLS-1$
-			if (name != null && name.equals(VAR_INTRO_DATA)) {
-				String value = child.getAttribute("value"); //$NON-NLS-1$
-				String bid = child.getDeclaringExtension()
-						.getNamespaceIdentifier();
-				Bundle bundle = Platform.getBundle(bid);
-				if (bundle != null) {
-					String dataFile = resolveVariable(bundle, value);
-					introData.add(new IntroData(pid, dataFile, false));
-				}
-			}
-		}
-	}
-
-	private IntroElement[] getContent(String pageId, String groupId) {
-		ArrayList result = new ArrayList();
-		if (introData.size() > 0) {
-			// TODO getting the active product one only
-			// Eventually we should consult the data from all the products
-			IntroData idata = (IntroData) introData.get(0);
-			PageData pdata = idata.getPage(pageId);
-			if (pdata != null) {
-				pdata.addAnchors(result, groupId);
-			}
-		}
-		// Add the fallback anchor
-		IntroElement fallback = new IntroElement("anchor"); //$NON-NLS-1$
-		fallback.setAttribute("id", DEFAULT_ANCHOR); //$NON-NLS-1$
-		result.add(fallback);
-		return (IntroElement[]) result.toArray(new IntroElement[result.size()]);
-	}
-
-	public String resolvePath(String extensionId, String path) {
-		boolean extensionRelativePath = false;
-		IPath ipath = new Path(path);
-		String pageId = ipath.segment(0);
-		String s2 = ipath.segment(1);
-		if (!s2.equals("@")) //$NON-NLS-1$
-			extensionRelativePath = true;
-		if (introData.size() > 0) {
-			// TODO getting the active product one only
-			// Eventually we should consult the data from all the products
-			IntroData idata = (IntroData) introData.get(0);
-			PageData pdata = idata.getPage(pageId);
-			if (pdata != null) {
-				String resolvedPath = pdata.resolvePath(extensionId);
-				if (extensionRelativePath) {
-					// not done - use the resolved extension path
-					// to complete the source path
-					IPath p2 = new Path(resolvedPath);
-					IPath p1 = ipath.removeFirstSegments(2);
-					// remove the last anchor and append the
-					// relative path from the extension
-					resolvedPath = p2.removeLastSegments(1).append(p1)
-							.toString();
-				}
-				return resolvedPath;
-			}
-		} else {
-			// use fallback anchor
-			return pageId + DEFAULT_CONTENT_PATH;
-		}
-		return null;
-	}
-
-	public void init(IIntroSite site, Map themeProperties) {
-		super.init(site, themeProperties);
-		IConfigurationElement element = CustomizeAction.getPageElement();
-		if (element == null)
-			return;
-		Action customizeAction = new CustomizeAction(site, element);
-		customizeAction.setText(Messages.SharedIntroConfigurer_customize_label);
-		customizeAction
-				.setToolTipText(Messages.SharedIntroConfigurer_customize_text);
-		customizeAction.setImageDescriptor(ImageUtil
-				.createImageDescriptor("full/elcl16/configure.gif")); //$NON-NLS-1$
-		site.getActionBars().getToolBarManager().appendToGroup(TB_ADDITIONS,
-				customizeAction);
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 17db0df..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/UniversalIntroPlugin.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.universal;
-
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.intro.universal.util.Log;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * Intro main plugin.
- */
-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;
-
-    // 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;
-    
-    /**
-     * The constructor.
-     */
-    public UniversalIntroPlugin() {
-        super();
-    }
-
-    /**
-     * 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 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());
-    }
-
-    /**
-     * 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());
-    }
-    
-    public ImageRegistry getVolatileImageRegistry() {
-    	if (volatileImageRegistry==null) {
-    		volatileImageRegistry = createImageRegistry();
-    		initializeImageRegistry(volatileImageRegistry);
-    	}
-    	return volatileImageRegistry;
-    }
-    
-    public void resetVolatileImageRegistry() {
-    	if (volatileImageRegistry!=null) {
-    		volatileImageRegistry.dispose();
-    		volatileImageRegistry = null;
-    	}
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-     */
-    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$
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-     */
-    public void stop(BundleContext context) throws Exception {
-    	resetVolatileImageRegistry();
-        super.stop(context);
-    }
-
-    public long gettUICreationStartTime() {
-        return 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
deleted file mode 100644
index 30655cb..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/WelcomeCustomizationPreferencePage.java
+++ /dev/null
@@ -1,1139 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.ui.internal.intro.universal;
-
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerDropAdapter;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.universal.util.BundleUtil;
-import org.eclipse.ui.internal.intro.universal.util.ImageUtil;
-import org.eclipse.ui.internal.intro.universal.util.Log;
-import org.eclipse.ui.intro.IIntroManager;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.config.CustomizableIntroPart;
-import org.eclipse.ui.intro.config.IIntroURL;
-import org.eclipse.ui.intro.config.IntroURLFactory;
-import org.osgi.framework.Bundle;
-
-
-public class WelcomeCustomizationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage,
-		IExecutableExtension {
-
-	private static final String INTRO_ROOT_PAGES = "INTRO_ROOT_PAGES"; //$NON-NLS-1$
-	private static final String INTRO_DATA = "INTRO_DATA"; //$NON-NLS-1$
-	private static final String INTRO_THEME = "INTRO_THEME"; //$NON-NLS-1$
-	private TabFolder tabFolder;
-	private String firstPageId;
-	private Composite pageContainer;
-	private TableViewer themes;
-	private TableViewer available;
-	private TableViewer topLeft;
-	private TableViewer topRight;
-	private TableViewer bottomLeft;
-	private TableViewer bottomRight;
-	private CheckboxTableViewer rootPages;
-	private ArrayList introRootPages = new ArrayList();
-	private ArrayList themeList = new ArrayList();
-	private IntroTheme introTheme;
-	private String introThemeId;
-	private IntroData introData;
-	private Canvas themePreview;
-	private TableContentProvider contentProvider;
-	private TableLabelProvider labelProvider;
-	private Button applyToAll;
-	private Image extensionImage;
-	private Image themeImage;
-	private Image ihighImage;
-	private Image ilowImage;
-	private Image inewImage;
-	private Image icalloutImage;
-	private static final Transfer[] TRANSFER_TYPES = new Transfer[] { ExtensionDataTransfer.getInstance() };
-
-
-	private static final RootPage ROOT_PAGE_TABLE[] = new RootPage[] {
-			new RootPage(IUniversalIntroConstants.ID_OVERVIEW,
-					Messages.WelcomeCustomizationPreferencePage_overview),
-			new RootPage(IUniversalIntroConstants.ID_FIRSTSTEPS,
-					Messages.WelcomeCustomizationPreferencePage_firststeps),
-			new RootPage(IUniversalIntroConstants.ID_TUTORIALS,
-					Messages.WelcomeCustomizationPreferencePage_tutorials),
-			new RootPage(IUniversalIntroConstants.ID_SAMPLES,
-					Messages.WelcomeCustomizationPreferencePage_samples),
-			new RootPage(IUniversalIntroConstants.ID_WHATSNEW,
-					Messages.WelcomeCustomizationPreferencePage_whatsnew),
-			new RootPage(IUniversalIntroConstants.ID_WEBRESOURCES,
-					Messages.WelcomeCustomizationPreferencePage_webresources),
-			new RootPage(IUniversalIntroConstants.ID_MIGRATE,
-					Messages.WelcomeCustomizationPreferencePage_migrate) };
-
-	static class RootPage {
-
-		public String id;
-		public String name;
-
-		public RootPage(String id, String name) {
-			this.id = id;
-			this.name = name;
-		}
-
-		public boolean equals(Object obj) {
-			if (obj == this)
-				return true;
-			if (obj == null)
-				return false;
-			if (obj instanceof RootPage) {
-				RootPage page = (RootPage) obj;
-				return page.id.equals(id) && page.name.equals(name);
-			}
-			return false;
-		}
-
-		public String toString() {
-			return name;
-		}
-	}
-
-	class TableContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			if (inputElement == ROOT_PAGE_TABLE)
-				return ROOT_PAGE_TABLE;
-			if (inputElement instanceof GroupData) {
-				return ((GroupData) inputElement).getChildren();
-			}
-			if (inputElement == themes) {
-				return themeList.toArray();
-			}
-			return new Object[0];
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-
-	class TableDragSourceListener implements DragSourceListener {
-
-		TableViewer viewer;
-		BaseData[] sel;
-
-		public TableDragSourceListener(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public void dragStart(DragSourceEvent event) {
-			IStructuredSelection ssel = (IStructuredSelection) viewer.getSelection();
-			if (ssel.size() > 0) {
-				event.doit = true;
-			} else {
-				event.doit = false;
-			}
-		};
-
-		public void dragSetData(DragSourceEvent event) {
-			IStructuredSelection ssel = (IStructuredSelection) viewer.getSelection();
-			BaseData[] array = new BaseData[ssel.size()];
-			int i = 0;
-			for (Iterator iter = ssel.iterator(); iter.hasNext();) {
-				array[i++] = (BaseData) iter.next();
-			}
-			event.data = array;
-			sel = array;
-		}
-
-		public void dragFinished(DragSourceEvent event) {
-			if (event.detail == DND.DROP_MOVE) {
-				GroupData gd = (GroupData) viewer.getInput();
-				for (int i = 0; i < sel.length; i++) {
-					BaseData ed = sel[i];
-					gd.remove(ed);
-				}
-				viewer.refresh();
-				updateColumnSizes(viewer);
-			}
-			sel = null;
-		}
-	}
-
-	class TableDropTargetListener extends ViewerDropAdapter {
-
-		public TableDropTargetListener(TableViewer viewer) {
-			super(viewer);
-		}
-
-		public boolean performDrop(Object data) {
-			BaseData target = (BaseData) getCurrentTarget();
-			int loc = getCurrentLocation();
-			GroupData gd = (GroupData) getViewer().getInput();
-			if (gd == null)
-				gd = createTargetGd(getViewer());
-			BaseData[] sel = (BaseData[]) data;
-
-			int index = target != null ? gd.getIndexOf(target) : -1;
-			int startingIndex = getStartIndex(gd, sel);
-			if (target != null) {
-				if (loc == LOCATION_AFTER
-						|| (loc == LOCATION_ON && startingIndex != -1 && startingIndex < index))
-					index++;
-				else if (index > 0 && loc == LOCATION_BEFORE)
-					index--;
-			}
-
-			for (int i = 0; i < sel.length; i++) {
-				BaseData ed = sel[i];
-				if (index == -1)
-					gd.add(ed);
-				else
-					gd.add(index++, ed);
-			}
-			if (getViewer().getInput() != null)
-				getViewer().refresh();
-			else
-				getViewer().setInput(gd);
-			updateColumnSizes((TableViewer) getViewer());
-			return true;
-		}
-
-		private int getStartIndex(GroupData gd, BaseData[] sel) {
-			for (int i = 0; i < sel.length; i++) {
-				BaseData ed = sel[i];
-				int index = gd.getIndexOf(ed.getId());
-				if (index != -1)
-					return index;
-			}
-			return -1;
-		}
-
-		public boolean validateDrop(Object target, int operation, TransferData transferType) {
-			return ExtensionDataTransfer.getInstance().isSupportedType(transferType);
-		}
-	}
-
-	class TableLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		public String getText(Object obj) {
-			if (obj instanceof RootPage) {
-				return ((RootPage) obj).name;
-			}
-			if (obj instanceof ExtensionData) {
-				ExtensionData ed = (ExtensionData) obj;
-				String name = ed.getName();
-				if (name != null && name.length() > 0)
-					return name;
-				return ed.getId();
-			}
-			if (obj instanceof SeparatorData) {
-				return Messages.WelcomeCustomizationPreferencePage_horizontalSeparator;
-			}
-			if (obj instanceof IntroTheme) {
-				IntroTheme bg = (IntroTheme) obj;
-				return bg.getName();
-			}
-			return super.getText(obj);
-		}
-
-		public Image getImage(Object obj) {
-			if (obj instanceof ExtensionData) {
-				ExtensionData ed = (ExtensionData) obj;
-				switch (ed.getImportance()) {
-				case ExtensionData.HIGH:
-					return ihighImage;
-				case ExtensionData.LOW:
-					return ilowImage;
-				case ExtensionData.NEW:
-					return inewImage;
-				case ExtensionData.CALLOUT:
-					return icalloutImage;
-				}
-				return extensionImage;
-			}
-			if (obj instanceof IntroTheme)
-				return themeImage;
-			return null;
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if (columnIndex == 0)
-				return getImage(element);
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			if (columnIndex == 1 || element instanceof IntroTheme || element instanceof RootPage)
-				return getText(element);
-			return null;
-		}
-	}
-
-	class IntroTheme {
-		IConfigurationElement element;
-		Image previewImage;
-
-		public String getName() {
-			return element.getAttribute("name"); //$NON-NLS-1$
-		}
-
-		public String getId() {
-			return element.getAttribute("id"); //$NON-NLS-1$
-		}
-
-		public IntroTheme(IConfigurationElement element) {
-			this.element = element;
-		}
-		
-		public Image getPreviewImage() {
-			if (previewImage==null) {
-				String path = element.getAttribute("previewImage"); //$NON-NLS-1$
-				if (path!=null) {
-				    String bid = element.getDeclaringExtension().getNamespaceIdentifier();
-				    Bundle bundle = Platform.getBundle(bid);
-				    if (bundle!=null) {
-				    	ImageDescriptor desc = ImageUtil.createImageDescriptor(bundle, path);
-				    	previewImage = desc.createImage();
-				    }
-				}
-			}
-			return previewImage;
-		}
-		
-		public void dispose() {
-			if (previewImage!=null) {
-				previewImage.dispose();
-				previewImage=null;
-			}
-		}
-	}
-
-	public WelcomeCustomizationPreferencePage() {
-	}
-
-	public WelcomeCustomizationPreferencePage(String title) {
-		super(title);
-	}
-
-	public WelcomeCustomizationPreferencePage(String title, ImageDescriptor image) {
-		super(title, image);
-	}
-
-	protected Control createContents(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		container.setLayoutData(data);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		container.setLayout(layout);
-		tabFolder = new TabFolder(container, SWT.TOP);
-		tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
-		tabFolder.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				TabItem[] selection = tabFolder.getSelection();
-				onTabChange(selection[0]);
-			}
-		});
-		applyToAll = new Button(container, SWT.CHECK);
-		applyToAll.setText(Messages.WelcomeCustomizationPreferencePage_applyToAll);
-		contentProvider = new TableContentProvider();
-		labelProvider = new TableLabelProvider();
-		if (isCustomizationMode()) {
-			Button serialize = new Button(container, SWT.PUSH);
-			serialize.setText(Messages.WelcomeCustomizationPreferencePage_serialize);
-			serialize.addSelectionListener(new SelectionAdapter() {
-
-				public void widgetSelected(SelectionEvent e) {
-					doSerializeState();
-				}
-			});
-		}
-		extensionImage = ImageUtil.createImage("full/obj16/extension_obj.gif"); //$NON-NLS-1$
-		ihighImage = ImageUtil.createImage("full/obj16/ihigh_obj.gif"); //$NON-NLS-1$
-		ilowImage = ImageUtil.createImage("full/obj16/ilow_obj.gif"); //$NON-NLS-1$
-		inewImage = ImageUtil.createImage("full/obj16/inew_obj.gif"); //$NON-NLS-1$
-		icalloutImage = ImageUtil.createImage("full/obj16/icallout_obj.gif"); //$NON-NLS-1$
-		themeImage = ImageUtil.createImage("full/obj16/image_obj.gif"); //$NON-NLS-1$
-		addPages();
-		org.eclipse.jface.dialogs.Dialog.applyDialogFont(container);
-		return container;
-	}
-
-	private void doSerializeState() {
-		FileDialog fd = new FileDialog(getShell(), SWT.SAVE);
-		fd.setText(Messages.WelcomeCustomizationPreferencePage_serializeTitle);
-		String fileName = fd.open();
-		if (fileName != null) {
-			try {
-				FileWriter writer = new FileWriter(fileName);
-				PrintWriter pwriter = new PrintWriter(writer);
-				introData.write(pwriter);
-				pwriter.close();
-			} catch (IOException e) {
-				// show an error dialog in addition
-				Log.error("Error while saving the intro data file", e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	private boolean isCustomizationMode() {
-		/*
-		 * String[] args = Platform.getApplicationArgs(); for (int i = 0; i < args.length; i++) { if
-		 * (args[i].equalsIgnoreCase("-welcomeCustomization")) //$NON-NLS-1$ return true; } return
-		 * false;
-		 */
-		return true;
-	}
-
-	public void init(IWorkbench workbench) {
-	}
-
-	private void addPages() {
-		loadData(false);
-		addHomePage();
-		createPageContainer();
-		addRootPages();
-		updateWidgetsFromData();
-		selectFirstPage();
-	}
-
-	private void addRootPages() {
-		addPage(IUniversalIntroConstants.ID_OVERVIEW);
-		addPage(IUniversalIntroConstants.ID_FIRSTSTEPS);
-		addPage(IUniversalIntroConstants.ID_TUTORIALS);
-		addPage(IUniversalIntroConstants.ID_SAMPLES);
-		addPage(IUniversalIntroConstants.ID_WHATSNEW);
-		addPage(IUniversalIntroConstants.ID_WEBRESOURCES);
-		addPage(IUniversalIntroConstants.ID_MIGRATE);
-	}
-
-	private void createPageContainer() {
-		pageContainer = new Composite(tabFolder, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		//layout.horizontalSpacing = 10;
-		pageContainer.setLayout(layout);
-		layout.numColumns = 4;
-		//layout.makeColumnsEqualWidth = true;
-		Label label;
-		label = new Label(pageContainer, SWT.WRAP);
-		label.setText(Messages.WelcomeCustomizationPreferencePage_pageDesc);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan = 4;
-		label.setLayoutData(gd);
-		label = new Label(pageContainer, SWT.SEPARATOR | SWT.HORIZONTAL);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan = 4;
-		label.setLayoutData(gd);
-		label = new Label(pageContainer, SWT.NULL);
-		label.setText(Messages.WelcomeCustomizationPreferencePage_available);
-		gd = new GridData();
-		label.setLayoutData(gd);
-		label = new Label(pageContainer, SWT.SEPARATOR | SWT.VERTICAL);
-		gd = new GridData(GridData.VERTICAL_ALIGN_FILL);
-		gd.verticalSpan = 3;
-		gd.widthHint = 10;
-		label.setLayoutData(gd);
-		
-		label = new Label(pageContainer, SWT.NULL);
-		label.setText(Messages.WelcomeCustomizationPreferencePage_left);
-		label = new Label(pageContainer, SWT.NULL);
-		label.setText(Messages.WelcomeCustomizationPreferencePage_right);
-		available = createTableViewer(pageContainer, "hidden"); //$NON-NLS-1$
-		available.setSorter(new ViewerSorter());
-		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		gd.verticalSpan = 2;
-		gd.widthHint = 100;
-		//gd.horizontalSpan = 2;
-		available.getControl().setLayoutData(gd);
-
-		topLeft = createTableViewer(pageContainer, "top-left"); //$NON-NLS-1$
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 100;
-		topLeft.getControl().setLayoutData(gd);
-
-		topRight = createTableViewer(pageContainer, "top-right"); //$NON-NLS-1$
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 100;
-		topRight.getControl().setLayoutData(gd);
-
-		//label = new Label(pageContainer, SWT.NULL);
-		//label.setText(Messages.WelcomeCustomizationPreferencePage_bottom);
-		bottomLeft = createTableViewer(pageContainer, "bottom-left"); //$NON-NLS-1$
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 100;
-		bottomLeft.getControl().setLayoutData(gd);
-		
-		bottomRight = createTableViewer(pageContainer, "bottom-right"); //$NON-NLS-1$
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 100;
-		bottomRight.getControl().setLayoutData(gd);
-	}
-
-	private void updatePageContainer(String pageId, PageData pd) {
-		if (pageId == null)
-			return;
-		refreshQuadrant(topLeft, pd, IUniversalIntroConstants.DIV_LAYOUT_TOP_LEFT);
-		refreshQuadrant(topRight, pd, IUniversalIntroConstants.DIV_LAYOUT_TOP_RIGHT);
-		refreshQuadrant(bottomLeft, pd, IUniversalIntroConstants.DIV_LAYOUT_BOTTOM_LEFT);
-		refreshQuadrant(bottomRight, pd, IUniversalIntroConstants.DIV_LAYOUT_BOTTOM_RIGHT);
-		refreshQuadrant(available, pd, IUniversalIntroConstants.HIDDEN);
-	}
-
-	private void refreshQuadrant(TableViewer viewer, PageData pd, String quadrant) {
-		GroupData gd = pd!=null?pd.findGroup(quadrant):null;
-		viewer.setInput(gd);
-		if (gd!=null)
-			updateColumnSizes(viewer);
-	}
-
-	private void onTabChange(TabItem item) {
-		String id = (String) item.getData();
-		if (item.getControl() == pageContainer)
-			updatePageContainer(id, (PageData) item.getData("pageData")); //$NON-NLS-1$
-	}
-
-	private void loadData(boolean fromDefault) {
-		IProduct product = Platform.getProduct();
-		if (product == null)
-			return;
-		String pid = product.getId();
-		introRootPages.clear();
-		Preferences prefs = UniversalIntroPlugin.getDefault().getPluginPreferences();
-		Preferences iprefs = IntroPlugin.getDefault().getPluginPreferences();
-		// 1. Root pages
-		// try product-qualified value first
-		String key = pid + "_" + INTRO_ROOT_PAGES; //$NON-NLS-1$
-		String rootPages = fromDefault ? prefs.getDefaultString(key) : prefs.getString(key);
-		if (rootPages.length() == 0) {
-			rootPages = fromDefault ? prefs.getDefaultString(INTRO_ROOT_PAGES) : prefs
-					.getString(INTRO_ROOT_PAGES);
-		}
-		if (rootPages.length() > 0) {
-			StringTokenizer stok = new StringTokenizer(rootPages, ","); //$NON-NLS-1$
-			while (stok.hasMoreTokens()) {
-				String tok = stok.nextToken().trim();
-				introRootPages.add(tok);
-			}
-		}
-		// 3. Active theme
-		key = pid + "_" + INTRO_THEME; //$NON-NLS-1$
-		String value = fromDefault ? iprefs.getDefaultString(key) : iprefs.getString(key);
-		if (value.length() == 0) {
-			key = INTRO_THEME;
-			value = fromDefault ? iprefs.getDefaultString(key) : iprefs.getString(key);
-		}
-		if (value.length() > 0)
-			introThemeId = value;
-		// 4. Intro data
-		key = pid + "_" + INTRO_DATA; //$NON-NLS-1$
-		value = fromDefault ? prefs.getDefaultString(key) : prefs.getString(key);
-		if (value.length() == 0) {
-			key = INTRO_DATA;
-			value = fromDefault ? prefs.getDefaultString(key) : prefs.getString(key);
-		}
-		if (value.length() == 0)
-			value = null;
-		if (value != null && value.startsWith("product:")) //$NON-NLS-1$
-			value = value.substring(8);
-		value = BundleUtil.getResolvedResourceLocation(value, product.getDefiningBundle());
-		introData = new IntroData(pid, value, true);
-		introData.addImplicitContent();
-	}
-
-	public void dispose() {
-		themeList.clear();
-		extensionImage.dispose();
-		ihighImage.dispose();
-		ilowImage.dispose();
-		inewImage.dispose();
-		icalloutImage.dispose();
-		themeImage.dispose();
-		super.dispose();
-	}
-
-	private void updateIntroThemeFromData() {
-		if (introThemeId != null) {
-			for (int i = 0; i < themeList.size(); i++) {
-				IntroTheme theme = (IntroTheme) themeList.get(i);
-				if (theme.getId().equals(introThemeId)) {
-					introTheme = theme;
-					break;
-				}
-			}
-		}
-		updateThemePreview();
-	}
-
-	private void updateWidgetsFromData() {
-		// sync up intro background part
-		updateIntroThemeFromData();
-		// sync up the root page checklist
-		rootPages.setInput(ROOT_PAGE_TABLE);
-		ArrayList selected = new ArrayList();
-		for (int i = 0; i < ROOT_PAGE_TABLE.length; i++) {
-			String id = ROOT_PAGE_TABLE[i].id;
-			if (introRootPages.contains(id))
-				selected.add(ROOT_PAGE_TABLE[i]);
-		}
-		rootPages.setCheckedElements(selected.toArray());
-	}
-
-	private void updateThemePreview() {
-		themes.setInput(themes);
-		if (introTheme != null)
-			themes.setSelection(new StructuredSelection(introTheme), true);
-		themePreview.redraw();
-	}
-
-	public boolean performOk() {
-		saveData();
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-
-			public void run() {
-				restartIntro();
-			}
-		});
-		return true;
-	}
-
-	/**
-	 * Remember the current page, close intro, reopen it and show the saved page.
-	 * 
-	 */
-	private void restartIntro() {
-		IIntroManager manager = PlatformUI.getWorkbench().getIntroManager();
-		IIntroPart part = manager.getIntro();
-		if (part != null && part instanceof CustomizableIntroPart) {
-			IntroModelRoot modelRoot = IntroPlugin.getDefault().getIntroModelRoot();
-			String currentPageId = modelRoot.getCurrentPageId();
-			IWorkbenchWindow window = part.getIntroSite().getWorkbenchWindow();
-			boolean standby = manager.isIntroStandby(part);
-			PlatformUI.getWorkbench().getIntroManager().closeIntro(part);
-			IntroPlugin.getDefault().resetVolatileImageRegistry();
-			UniversalIntroPlugin.getDefault().resetVolatileImageRegistry();
-			part = PlatformUI.getWorkbench().getIntroManager().showIntro(window, standby);
-			if (part != null) {
-				StringBuffer url = new StringBuffer();
-				url.append("http://org.eclipse.ui.intro/showPage?id="); //$NON-NLS-1$
-				url.append(currentPageId);
-				IIntroURL introURL = IntroURLFactory.createIntroURL(url.toString());
-				if (introURL != null)
-					introURL.execute();
-			}
-		}
-	}
-
-	protected void performDefaults() {
-		loadData(true);
-		// Dispose all the root page tabs
-		TabItem[] items = tabFolder.getItems();
-		for (int i = 0; i < items.length; i++) {
-			if (items[i].getData("pageData") != null) //$NON-NLS-1$
-				items[i].dispose();
-		}
-		// Add them back in based on the checked state
-		addRootPages();
-		updateWidgetsFromData();
-		// Get the items again
-		items = tabFolder.getItems();
-		// Select root
-		onTabChange(items[0]);
-		super.performDefaults();
-	}
-
-	private void saveData() {
-		Preferences prefs = UniversalIntroPlugin.getDefault().getPluginPreferences();
-		Preferences iprefs = IntroPlugin.getDefault().getPluginPreferences();
-		boolean toAll = applyToAll.getSelection();
-		IProduct product = Platform.getProduct();
-		if (product == null)
-			return;
-		String pid = product.getId();
-		StringBuffer sbuf = new StringBuffer();
-		for (int i = 0; i < introRootPages.size(); i++) {
-			if (i > 0)
-				sbuf.append(","); //$NON-NLS-1$
-			sbuf.append((String) introRootPages.get(i));
-		}
-		String key = pid + "_" + INTRO_ROOT_PAGES; //$NON-NLS-1$
-		prefs.setValue(key, sbuf.toString());
-		if (toAll) {
-			key = INTRO_ROOT_PAGES;
-			prefs.setValue(key, sbuf.toString());
-		}
-		// store page layouts
-		StringWriter writer = new StringWriter();
-		PrintWriter pwriter = new PrintWriter(writer);
-		introData.write(pwriter);
-		pwriter.close();
-		String value = writer.toString();
-		key = pid + "_" + INTRO_DATA; //$NON-NLS-1$
-		prefs.setValue(key, value);
-		if (toAll) {
-			key = INTRO_DATA;
-			prefs.setValue(key, value);
-		}
-		if (introTheme != null) {
-			key = pid + "_" + INTRO_THEME; //$NON-NLS-1$
-			value = introTheme.getId();
-			iprefs.setValue(key, value);
-		}
-		if (toAll) {
-			key = INTRO_THEME;
-			iprefs.setValue(key, value);
-		}
-		UniversalIntroPlugin.getDefault().savePluginPreferences();
-		IntroPlugin.getDefault().savePluginPreferences();
-	}
-
-	private void addHomePage() {
-		TabItem item = new TabItem(tabFolder, SWT.NULL);
-		item.setText("Home"); //$NON-NLS-1$
-		Composite container = new Composite(tabFolder, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		container.setLayout(layout);
-		Label label = new Label(container, SWT.NULL);
-		label.setText(Messages.WelcomeCustomizationPreferencePage_background);
-		GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		//gd.horizontalSpan = 2;
-		label.setLayoutData(gd);
-		label = new Label(container, SWT.NULL);
-		label.setText(Messages.WelcomeCustomizationPreferencePage_preview);
-		themes = new TableViewer(container, SWT.BORDER);
-		themes.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		themes.setContentProvider(contentProvider);
-		themes.setLabelProvider(labelProvider);
-		themes.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				Object sel = ((StructuredSelection) e.getSelection()).getFirstElement();
-				introTheme = (IntroTheme) sel;
-				themePreview.redraw();
-			}
-		});
-		loadThemes();
-		/*
-		Button browse = new Button(container, SWT.PUSH);
-		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		browse.setLayoutData(gd);
-		browse.setText(Messages.WelcomeCustomizationPreferencePage_browse);
-		browse.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				doBrowseBackground();
-			}
-		});
-		*/
-		themePreview = new Canvas(container, SWT.NULL);
-		gd = new GridData();
-		gd.widthHint = 160+20;
-		gd.heightHint = 120+20;
-		themePreview.setLayoutData(gd);
-		themePreview.addPaintListener(new PaintListener() {
-
-			public void paintControl(PaintEvent e) {
-				if (introTheme == null)
-					return;
-				Image bgImage = introTheme.getPreviewImage();
-				if (bgImage == null)
-					return;
-				//Rectangle carea = themePreview.getClientArea();
-				Rectangle ibounds = bgImage.getBounds();
-				e.gc.drawImage(bgImage, 0, 0, ibounds.width, ibounds.height, 10, 10, 160, 120);
-			}
-		});
-		label = new Label(container, SWT.NULL);
-		label.setText(Messages.WelcomeCustomizationPreferencePage_rootpages);
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		label.setLayoutData(gd);
-		rootPages = CheckboxTableViewer.newCheckList(container, SWT.BORDER);
-		rootPages.setContentProvider(contentProvider);
-		rootPages.setLabelProvider(labelProvider);
-		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		gd.horizontalSpan = 2;
-		rootPages.getControl().setLayoutData(gd);
-		rootPages.addCheckStateListener(new ICheckStateListener() {
-
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				RootPage page = (RootPage) event.getElement();
-				boolean checked = event.getChecked();
-				onPageChecked(page.id, checked);
-			}
-		});
-		item.setControl(container);
-	}
-	
-	private void loadThemes() {
-		IConfigurationElement [] elements = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.ui.intro.configExtension"); //$NON-NLS-1$
-		for (int i=0; i<elements.length; i++) {
-			if (elements[i].getName().equals("theme")) { //$NON-NLS-1$
-				themeList.add(new IntroTheme(elements[i]));
-			}
-		}
-	}
-
-	private void addPage(String id) {
-		if (!getRootPageSelected(id))
-			return;
-		TabItem item = new TabItem(tabFolder, SWT.NULL);
-		item.setText(getRootPageName(id));
-		item.setControl(pageContainer);
-		item.setData(id);
-		PageData pd = introData.getPage(id);
-		item.setData("pageData", pd); //$NON-NLS-1$
-	}
-
-	private void onPageChecked(String id, boolean checked) {
-		TabItem[] items = tabFolder.getItems();
-		if (checked) {
-			for (int i = 0; i < items.length; i++) {
-				TabItem item = items[i];
-				if (item.getData() != null)
-					item.dispose();
-			}
-			introRootPages.add(id);
-			addRootPages();
-		} else {
-			for (int i = 0; i < items.length; i++) {
-				TabItem item = items[i];
-				String itemId = (String) item.getData();
-				if (itemId != null && itemId.equals(id)) {
-					item.dispose();
-					introRootPages.remove(id);
-					return;
-				}
-			}
-		}
-	}
-
-	private String getRootPageName(String id) {
-		for (int i = 0; i < ROOT_PAGE_TABLE.length; i++) {
-			if (ROOT_PAGE_TABLE[i].id.equals(id))
-				return ROOT_PAGE_TABLE[i].name;
-		}
-		return "?"; //$NON-NLS-1$
-	}
-
-	private boolean getRootPageSelected(String id) {
-		for (int i = 0; i < introRootPages.size(); i++) {
-			String cid = (String) introRootPages.get(i);
-			if (cid.equals(id))
-				return true;
-		}
-		return false;
-	}
-
-	public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
-			throws CoreException {
-	}
-
-	private void createPopupMenu(final TableViewer viewer) {
-		MenuManager manager = new MenuManager();
-		manager.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(manager.getMenu());
-		manager.setRemoveAllWhenShown(true);
-		manager.addMenuListener(new IMenuListener() {
-
-			public void menuAboutToShow(IMenuManager manager) {
-				fillPopupMenu(manager, viewer);
-			}
-		});
-	}
-
-	private void addDNDSupport(TableViewer viewer) {
-		viewer.addDragSupport(DND.DROP_MOVE, TRANSFER_TYPES, new TableDragSourceListener(viewer));
-		viewer.addDropSupport(DND.DROP_MOVE, TRANSFER_TYPES, new TableDropTargetListener(viewer));
-	}
-
-	private TableViewer createTableViewer(Composite parent, String id) {
-		final Table table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION);
-		final TableColumn column1 = new TableColumn(table, SWT.NULL);
-		column1.setMoveable(false);
-		column1.setWidth(20);
-		column1.setResizable(false);
-		final TableColumn column2 = new TableColumn(table, SWT.NULL);
-		column2.setResizable(true);
-		final TableViewer viewer = new TableViewer(table);
-		CellEditor[] editors = new CellEditor[2];
-		editors[0] = new ComboBoxCellEditor(table, ExtensionData.IMPORTANCE_NAME_TABLE, SWT.READ_ONLY);
-		viewer.setCellEditors(editors);
-		viewer.setColumnProperties(new String[] { IUniversalIntroConstants.P_IMPORTANCE,
-				IUniversalIntroConstants.P_NAME });
-		viewer.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return property.equals(IUniversalIntroConstants.P_IMPORTANCE);
-			}
-
-			public Object getValue(Object element, String property) {
-				if (element instanceof ExtensionData) {
-					ExtensionData ed = (ExtensionData) element;
-					if (property.equals(IUniversalIntroConstants.P_IMPORTANCE))
-						return new Integer(ed.getImportance());
-				}
-				return null;
-			}
-
-			public void modify(Object element, String property, Object value) {
-				Integer ivalue = (Integer) value;
-				TableItem item = (TableItem) element;
-				ExtensionData ed = (ExtensionData) item.getData();
-				ed.setImportance(ivalue.intValue());
-				viewer.update(ed, new String [] {IUniversalIntroConstants.P_IMPORTANCE});
-			}
-		});
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(labelProvider);
-		viewer.setData("id", id); //$NON-NLS-1$
-		createPopupMenu(viewer);
-		addDNDSupport(viewer);
-		return viewer;
-	}
-
-	private void fillPopupMenu(IMenuManager manager, final TableViewer viewer) {
-		StructuredSelection ssel = (StructuredSelection) viewer.getSelection();
-		
-		manager.add(new Separator());
-		Action addSeparator = new Action(Messages.WelcomeCustomizationPreferencePage_addSeparator) {
-			public void run() {
-				doAddSeparator(viewer);
-			}
-		};
-		
-		manager.add(addSeparator);
-		manager.add(new Separator());
-
-		if (ssel.size() == 1 && viewer != available) {
-			Action upAction = new Action(Messages.WelcomeCustomizationPreferencePage_up) {
-
-				public void run() {
-					doMove(viewer, true);
-				}
-			};
-			Action downAction = new Action(Messages.WelcomeCustomizationPreferencePage_down) {
-
-				public void run() {
-					doMove(viewer, false);
-				}
-			};
-			BaseData ed = (BaseData) ssel.getFirstElement();
-			GroupData gd = (GroupData) viewer.getInput();
-			upAction.setEnabled(gd.canMoveUp(ed));
-			downAction.setEnabled(gd.canMoveDown(ed));
-			manager.add(upAction);
-			manager.add(downAction);
-		}
-		if (ssel.size() > 0) {
-			manager.add(new Separator());
-			MenuManager menu = new MenuManager(Messages.WelcomeCustomizationPreferencePage_moveTo);
-			addMoveToAction(menu, available, viewer,
-					Messages.WelcomeCustomizationPreferencePage_menu_available);
-			addMoveToAction(menu, topLeft, viewer, Messages.WelcomeCustomizationPreferencePage_menu_top_left);
-			addMoveToAction(menu, topRight, viewer, Messages.WelcomeCustomizationPreferencePage_menu_top_right);
-			addMoveToAction(menu, bottomLeft, viewer, Messages.WelcomeCustomizationPreferencePage_menu_bottom_left);
-			addMoveToAction(menu, bottomRight, viewer, Messages.WelcomeCustomizationPreferencePage_menu_bottom_right);
-			manager.add(menu);
-			
-			boolean addDeleteSeparator=false;
-			
-			for (Iterator iter=ssel.iterator(); iter.hasNext();) {
-				Object obj = iter.next();
-				if (obj instanceof SeparatorData)
-					addDeleteSeparator=true;
-				else {
-					addDeleteSeparator=false;
-					break;
-				}
-			}
-			if (addDeleteSeparator) {
-				Action deleteSeparator = new Action(Messages.WelcomeCustomizationPreferencePage_removeSeparator) {
-					public void run() {
-						doRemoveSeparators(viewer);
-					}
-				};
-				manager.add(deleteSeparator);
-			}
-		}
-	}
-
-	private void addMoveToAction(MenuManager menu, final TableViewer target, final TableViewer source,
-			String name) {
-		if (source == target)
-			return;
-		Action action = new Action(name) {
-
-			public void run() {
-				doMoveTo(source, target);
-			}
-		};
-		menu.add(action);
-	}
-
-	private void doMove(Viewer viewer, boolean up) {
-		Object obj = ((StructuredSelection) viewer.getSelection()).getFirstElement();
-		GroupData gd = (GroupData) viewer.getInput();
-		if (up)
-			gd.moveUp((BaseData) obj);
-		else
-			gd.moveDown((BaseData) obj);
-		viewer.refresh();
-	}
-	
-	private void doAddSeparator(Viewer viewer) {
-		Object obj = ((StructuredSelection) viewer.getSelection()).getFirstElement();
-		GroupData gd = (GroupData) viewer.getInput();
-		gd.addSeparator((BaseData)obj);
-		viewer.refresh();
-	}
-
-	private void doRemoveSeparators(Viewer viewer) {
-		StructuredSelection ssel = ((StructuredSelection) viewer.getSelection());
-		GroupData gd = (GroupData) viewer.getInput();
-		for (Iterator iter=ssel.iterator(); iter.hasNext();) {
-			SeparatorData sdata = (SeparatorData)iter.next();
-			gd.remove(sdata);
-		}
-		viewer.refresh();
-	}
-
-	private void doMoveTo(TableViewer source, TableViewer target) {
-		Object[] selObjs = ((StructuredSelection) source.getSelection()).toArray();
-		GroupData sourceGd = (GroupData) source.getInput();
-		GroupData targetGd = (GroupData) target.getInput();
-		if (targetGd == null) {
-			targetGd = createTargetGd(target);
-		}
-		for (int i = 0; i < selObjs.length; i++) {
-			BaseData ed = (BaseData) selObjs[i];
-			sourceGd.remove(ed);
-			targetGd.add(ed);
-		}
-		source.refresh();
-		updateColumnSizes(source);
-		if (target.getInput() != null)
-			target.refresh();
-		else
-			target.setInput(targetGd);
-		updateColumnSizes(target);
-	}
-
-	private void updateColumnSizes(TableViewer viewer) {
-		TableColumn sc = viewer.getTable().getColumn(1);
-		sc.pack();
-	}
-
-	private GroupData createTargetGd(Viewer target) {
-		GroupData targetGd = null;
-		if (target == topLeft)
-			targetGd = new GroupData(PageData.P_TOP_LEFT, false);
-		else if (target == topRight)
-			targetGd = new GroupData(PageData.P_TOP_RIGHT, false);
-		else if (target == bottomLeft)
-			targetGd = new GroupData(PageData.P_BOTTOM_LEFT, false);
-		else if (target == bottomRight)
-			targetGd = new GroupData(PageData.P_BOTTOM_RIGHT, false);
-		else if (target == available)
-			targetGd = new GroupData(IUniversalIntroConstants.HIDDEN, false);
-		else
-			return null;
-		TabItem[] items = tabFolder.getSelection();
-		PageData pd = (PageData) items[0].getData("pageData"); //$NON-NLS-1$
-		pd.add(targetGd);
-		return targetGd;
-	}
-
-	public void setCurrentPage(String pageId) {
-		firstPageId = pageId;
-	}
-
-	private void selectFirstPage() {
-		if (firstPageId == null)
-			return;
-		TabItem[] items = tabFolder.getItems();
-		for (int i = 0; i < items.length; i++) {
-			TabItem item = items[i];
-			PageData pd = (PageData) item.getData("pageData"); //$NON-NLS-1$
-			if (pd != null && pd.getId().equals(firstPageId)) {
-				tabFolder.setSelection(i);
-				onTabChange(item);
-				return;
-			}
-		}
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index cf9209b..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/BundleUtil.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.universal.util;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Constants;
-
-/**
- * Bundle convenience methods.
- */
-public class BundleUtil {
-
-    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) {
-
-            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: ", String.valueOf(bundle.getState())).toString(); //$NON-NLS-1$
-                Log.error(msg, null);
-            }
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Retrieves the given key from the bundle header.
-     * 
-     * @param bundle
-     * @param key
-     * @return
-     */
-    public static String getBundleHeader(Bundle bundle, String key) {
-        return (String) bundle.getHeaders().get(key);
-    }
-
-
-    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);
-    }
-
-
-    /**
-     * 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);
-    }
-
-
-    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);
-
-        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;
-
-        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.
-                String msg = StringUtil.concat("Could not find resource: ", //$NON-NLS-1$
-                    resource, " in ", getBundleHeader( //$NON-NLS-1$
-                        bundle, Constants.BUNDLE_NAME)).toString();
-                Log.warning(msg);
-                return resource;
-            }
-            localLocation = FileLocator.toFileURL(localLocation);
-            return localLocation.toExternalForm();
-        } catch (Exception e) {
-            String msg = StringUtil.concat("Failed to load resource: ", //$NON-NLS-1$
-                resource, " from ", getBundleHeader(bundle, //$NON-NLS-1$
-                    Constants.BUNDLE_NAME)).toString();
-            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 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();
-        } 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);
-    }
-
-}
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/ImageUtil.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/ImageUtil.java
deleted file mode 100644
index e4f9b4f..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/ImageUtil.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.universal.util;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.intro.universal.IUniversalIntroConstants;
-import org.eclipse.ui.internal.intro.universal.UniversalIntroPlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * Convenience class for Images.
- */
-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$
-
-	// 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$
-
-	// 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$
-
-	// 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(IUniversalIntroConstants.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(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();
-		}
-	}
-
-	/**
-	 * 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 UniversalIntroPlugin.getDefault().getVolatileImageRegistry()
-				.get(key);
-	}
-
-	public static boolean hasImage(String key) {
-		ImageRegistry registry = UniversalIntroPlugin.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 = UniversalIntroPlugin.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) {
-
-		ImageRegistry registry = UniversalIntroPlugin.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 = UniversalIntroPlugin.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.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
deleted file mode 100644
index 6b5f646..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/Log.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.universal.util;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.intro.universal.IUniversalIntroConstants;
-import org.eclipse.ui.internal.intro.universal.UniversalIntroPlugin;
-
-/**
- * Utility class for logging, based on Platform logging classes. The log
- * listerner used is the base one supplied by the platform. Error messages are
- * always logged. Warning messages are only logged when the plugin is in debug
- * mode. Info messages are only logged when the /trace/logInfo debug option is
- * set to true. Performance reports are only logged when /trace/performance is
- * set to true.
- * 
- */
-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;
-
-
-    // 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();
-
-    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));
-    }
-
-    /**
-     * 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;
-
-        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;
-
-        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);
-        }
-    }
-}
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
deleted file mode 100644
index eee931e..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/util/StringUtil.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.universal.util;
-
-
-
-public class StringUtil {
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3) {
-        StringBuffer buffer = new StringBuffer(string1);
-        buffer.append(string2);
-        buffer.append(string3);
-        return buffer;
-    }
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3, String string4) {
-        StringBuffer buffer = concat(string1, string2, string3);
-        buffer.append(string4);
-        return buffer;
-    }
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3, String string4, String string5) {
-        StringBuffer buffer = concat(string1, string2, string3, string4);
-        buffer.append(string5);
-        return buffer;
-    }
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3, String string4, String string5, String string6) {
-        StringBuffer buffer = concat(string1, string2, string3, string4,
-            string5);
-        buffer.append(string6);
-        return buffer;
-    }
-
-
-
-}
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/intro/universal/ExtensionFactory.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/intro/universal/ExtensionFactory.java
deleted file mode 100644
index 65e8a25..0000000
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/intro/universal/ExtensionFactory.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.ui.intro.universal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IExecutableExtensionFactory;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.intro.universal.UniversalIntroPlugin;
-import org.eclipse.ui.internal.intro.universal.WelcomeCustomizationPreferencePage;
-
-/**
- * Factory for the intro's public extensions.
- * <p>
- * This allows the extensions to be made available for use by RCP applications without exposing
- * their concrete implementation classes.
- * </p>
- * <p>
- * Currently supported plug-in extensions:
- * <ul>
- * <li>welcomeCustomization - a preference page that allows user customization of the shared
- * Welcome.</li>
- * </ul>
- * <p>This class should be referenced in extensions but not subclassed
- * or instantiated programmatically.
- * 
- * @since 3.2
- */
-
-public class ExtensionFactory implements IExecutableExtensionFactory, IExecutableExtension {
-
-	private String id;
-	private IConfigurationElement config;
-	private String propertyName;
-	private static final String WELCOME_CUSTOMIZATION_PREFERENCE_PAGE = "welcomeCustomization"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IExecutableExtensionFactory#create()
-	 */
-	public Object create() throws CoreException {
-		if (WELCOME_CUSTOMIZATION_PREFERENCE_PAGE.equals(id))
-			return configure(new WelcomeCustomizationPreferencePage());
-
-		throw new CoreException(new Status(IStatus.ERROR, UniversalIntroPlugin.PLUGIN_ID, 0,
-				"Unknown id in data argument for " + getClass(), null)); //$NON-NLS-1$        		
-	}
-
-	private Object configure(Object obj) throws CoreException {
-		if (obj instanceof IExecutableExtension) {
-			((IExecutableExtension) obj).setInitializationData(config, propertyName, null);
-		}
-		return obj;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
-	 *      java.lang.String, java.lang.Object)
-	 */
-	public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
-			throws CoreException {
-		if (data instanceof String)
-			id = (String) data;
-		else
-			throw new CoreException(new Status(IStatus.ERROR, UniversalIntroPlugin.PLUGIN_ID, 0,
-					"Data argument must be a String for " + getClass(), null)); //$NON-NLS-1$
-		this.config = config;
-		this.propertyName = propertyName;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/fs_banner.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/fs_banner.jpg
deleted file mode 100644
index 5b6c738..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/fs_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/mi_banner.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/mi_banner.jpg
deleted file mode 100644
index 5fb63c5..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/mi_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/ov_banner.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/ov_banner.jpg
deleted file mode 100644
index 9b963cb..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/ov_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/sa_banner.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/sa_banner.jpg
deleted file mode 100644
index 3eff0a5..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/sa_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/tu_banner.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/tu_banner.jpg
deleted file mode 100644
index cc6bae7..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/tu_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wn_banner.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wn_banner.jpg
deleted file mode 100644
index ab13b22..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wn_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wr_banner.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wr_banner.jpg
deleted file mode 100644
index de17898..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/contentpage/wr_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/content_nav_bar.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/content_nav_bar.gif
deleted file mode 100644
index 86ebb16..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/content_nav_bar.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_bottomhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_bottomhov.gif
deleted file mode 100644
index 13df2dc..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_bottomhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_midhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_midhov.gif
deleted file mode 100644
index 1467458..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/cpt_midhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.gif
deleted file mode 100644
index f6dd773..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.png
deleted file mode 100644
index eccc757..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps_tophov.gif
deleted file mode 100644
index 9745892..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/firststeps_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav.png
deleted file mode 100644
index 99eb592..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_32.gif
deleted file mode 100644
index 84885b5..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_64.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_64.gif
deleted file mode 100644
index c410b0d..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_64.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_hover.gif
deleted file mode 100644
index 182ed76..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/fs_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav.png
deleted file mode 100644
index 5434708..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_32.gif
deleted file mode 100644
index d49d950..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_64.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_64.gif
deleted file mode 100644
index 9bf4493..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_64.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_hover.gif
deleted file mode 100644
index 257fd4b..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/mi_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.gif
deleted file mode 100644
index f082b35..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.png
deleted file mode 100644
index 07fea1d..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate_tophov.gif
deleted file mode 100644
index 5c95055..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/migrate_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_midhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_midhov.gif
deleted file mode 100644
index d2a082f..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_midhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_rightedgehov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_rightedgehov.gif
deleted file mode 100644
index 2f53c5c..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/nav_rightedgehov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav.png
deleted file mode 100644
index 709f69a..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_32.gif
deleted file mode 100644
index 2ff3933..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_64.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_64.gif
deleted file mode 100644
index 7198903..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_64.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_hover.gif
deleted file mode 100644
index 72dc200..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_midhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_midhov.gif
deleted file mode 100644
index 85e8183..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_midhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_rightedgehov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_rightedgehov.gif
deleted file mode 100644
index 5d75a71..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/ov_nav_rightedgehov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.gif
deleted file mode 100644
index daed6c0..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.png
deleted file mode 100644
index 64735d6..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_bottomhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_bottomhov.gif
deleted file mode 100644
index 255e924..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_bottomhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_midhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_midhov.gif
deleted file mode 100644
index 710d015..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_midhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_tophov.gif
deleted file mode 100644
index af9144a..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/overview_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_bottomhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_bottomhov.gif
deleted file mode 100644
index cea4511..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_bottomhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov.gif
deleted file mode 100644
index 30288f9..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov2.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov2.gif
deleted file mode 100644
index 83f17fc..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/root_midhov2.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav.png
deleted file mode 100644
index 9871b72..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_32.gif
deleted file mode 100644
index ffbe90e..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_64.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_64.gif
deleted file mode 100644
index db4ffac..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_64.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_hover.gif
deleted file mode 100644
index 6922f96..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_onesample48.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_onesample48.gif
deleted file mode 100644
index e65c123..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/sa_onesample48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.gif
deleted file mode 100644
index 622983c..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.png
deleted file mode 100644
index cb3db1d..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples_tophov.gif
deleted file mode 100644
index ede103c..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/samples_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav.png
deleted file mode 100644
index ce589ab..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_32.gif
deleted file mode 100644
index 77a3421..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_64.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_64.gif
deleted file mode 100644
index 45d2ff1..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_64.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_hover.gif
deleted file mode 100644
index c3e79ab..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tu_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.gif
deleted file mode 100644
index aae93e5..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.png
deleted file mode 100644
index e40a823..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials_tophov.gif
deleted file mode 100644
index dcb76e5..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/tutorials_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav.png
deleted file mode 100644
index 0621c3c..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_32.gif
deleted file mode 100644
index 8161cfc..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_hover.gif
deleted file mode 100644
index 96afba7..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wb_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.gif
deleted file mode 100644
index 230a502..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.png
deleted file mode 100644
index 1a876dc..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources_tophov.gif
deleted file mode 100644
index ea8713c..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/webresources_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.gif
deleted file mode 100644
index 29dfe28..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.png
deleted file mode 100644
index a10dd3d..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew_tophov.gif
deleted file mode 100644
index bfd58dc..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/whatsnew_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav.png
deleted file mode 100644
index 47ecb7c..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_32.gif
deleted file mode 100644
index ce9c743..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_64.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_64.gif
deleted file mode 100644
index 6a545cc..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_64.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_hover.gif
deleted file mode 100644
index a2eb9a2..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wn_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.gif
deleted file mode 100644
index ea3d603..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.png
deleted file mode 100644
index 868f3ab..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_bottomhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_bottomhov.gif
deleted file mode 100644
index d347a1d..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_bottomhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_midhov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_midhov.gif
deleted file mode 100644
index ee5d6af..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_midhov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_tophov.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_tophov.gif
deleted file mode 100644
index 443a433..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/workbench_tophov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav.png
deleted file mode 100644
index 00d3056..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_32.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_32.gif
deleted file mode 100644
index a741e2f..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_64.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_64.gif
deleted file mode 100644
index fab4a28..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_64.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_hover.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_hover.gif
deleted file mode 100644
index 7908508..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/ctool/wr_nav_hover.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/new_obj.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/new_obj.gif
deleted file mode 100644
index f46b81b..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/new_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/newhov_obj.gif b/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/newhov_obj.gif
deleted file mode 100644
index 593e63b..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/icons/obj48/newhov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/firststeps16.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/firststeps16.png
deleted file mode 100644
index 4c15c82..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/firststeps16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/migrate16.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/migrate16.png
deleted file mode 100644
index 3fc8414..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/migrate16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/overview16.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/overview16.png
deleted file mode 100644
index b2e977f..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/overview16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/samples16.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/samples16.png
deleted file mode 100644
index fdff5dd..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/samples16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/tutorials16.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/tutorials16.png
deleted file mode 100644
index f2d688f..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/tutorials16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/webresources16.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/webresources16.png
deleted file mode 100644
index b847caa..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/webresources16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/whatsnew16.png b/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/whatsnew16.png
deleted file mode 100644
index 5294b17..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/launchbar/whatsnew16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/graphics/rootpage/welcomebckgrd.jpg b/org.eclipse.ui.intro.universal/themes/circles/graphics/rootpage/welcomebckgrd.jpg
deleted file mode 100644
index 12a3c94..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/graphics/rootpage/welcomebckgrd.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/firststeps.css b/org.eclipse.ui.intro.universal/themes/circles/html/firststeps.css
deleted file mode 100644
index d4dd208..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/firststeps.css
+++ /dev/null
@@ -1,28 +0,0 @@
-/* show the "selected" image for this page */
-#navigation-links a#firststeps img, #navigation-links a#firststeps:hover img { 
-	background-image : url(../graphics/icons/ctool/fs_nav_64.gif); 
-	top : 2px;
-	left : -3px;
-}
-
-#navigation-links {
-	background-image: url(../graphics/contentpage/fs_banner.jpg);
-}
-
-#navigation-links a:hover#firststeps .link-label,
-#navigation-links a:focus#firststeps .link-label,
-#navigation-links a:active#firststeps .link-label {
-	display : none;
-}
-
-#navigation-links a:hover#firststeps,
-#navigation-links a:focus#firststeps,
-#navigation-links a:active#firststeps {
-	background-image : none;
-}
-
-#navigation-links a:hover#firststeps .link-extra-div,
-#navigation-links a:focus#firststeps .link-extra-div,
-#navigation-links a:active#firststeps .link-extra-div {
-	display: none;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/migrate.css b/org.eclipse.ui.intro.universal/themes/circles/html/migrate.css
deleted file mode 100644
index 88a7ab1..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/migrate.css
+++ /dev/null
@@ -1,28 +0,0 @@
-/* show the "selected" image for this page */
-#navigation-links a#migrate img, #navigation-links a#migrate:hover img { 
-	background-image : url(../graphics/icons/ctool/mi_nav_64.gif); 
-	top : 2px;
-	left : -3px;
-}
-
-#navigation-links {
-	background-image: url(../graphics/contentpage/mi_banner.jpg);
-}
-
-#navigation-links a:hover#migrate .link-label,
-#navigation-links a:focus#migrate .link-label,
-#navigation-links a:active#migrate .link-label {
-	display : none;
-}
-
-#navigation-links a:hover#migrate,
-#navigation-links a:focus#migrate,
-#navigation-links a:active#migrate {
-	background-image : none;
-}
-
-#navigation-links a:hover#migrate .link-extra-div,
-#navigation-links a:focus#migrate .link-extra-div,
-#navigation-links a:active#migrate .link-extra-div {
-	background-image : none;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/overview.css b/org.eclipse.ui.intro.universal/themes/circles/html/overview.css
deleted file mode 100644
index 67ec138..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/overview.css
+++ /dev/null
@@ -1,39 +0,0 @@
-/* show the "selected" image for this page */
-#navigation-links a#overview img, 
-#navigation-links a#overview:hover img,
-#navigation-links a#overview:focus img,
-#navigation-links a#overview:active img {
-	background-image : url(../graphics/icons/ctool/ov_nav_64.gif);
-	top : 2px; 
-	left : -3px;
-}
-
-/* Selected image should have no link label and the
- * matching decoration
- */
-
-#navigation-links a:hover#overview .link-label,
-#navigation-links a:focus#overview .link-label,
-#navigation-links a:active#overview .link-label {
-	display : none;
-}
-
-#navigation-links a:hover#overview,
-#navigation-links a:focus#overview,
-#navigation-links a:active#overview {
-	background-image : none;
-}
-
-#navigation-links a:hover#overview .link-extra-div,
-#navigation-links a:focus#overview .link-extra-div,
-#navigation-links a:active#overview .link-extra-div {
-	display: none;
-}
-
-/*
- * The navigation banner.
- */
-
-#navigation-links {
-	background-image: url(../graphics/contentpage/ov_banner.jpg);
-}
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/root.css b/org.eclipse.ui.intro.universal/themes/circles/html/root.css
deleted file mode 100644
index 7abb956..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/root.css
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/samples.css b/org.eclipse.ui.intro.universal/themes/circles/html/samples.css
deleted file mode 100644
index 098c21d..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/samples.css
+++ /dev/null
@@ -1,29 +0,0 @@
-
-/* show the "selected" image for this page */
-#navigation-links a#samples img, #navigation-links a#samples:hover img { 
-	background-image : url(../graphics/icons/ctool/sa_nav_64.gif); 
-	top : 2px; 
-	left : -3px;
-}
-
-#navigation-links {
-	background-image: url(../graphics/contentpage/sa_banner.jpg);
-}
-
-#navigation-links a:hover#samples .link-label,
-#navigation-links a:focus#samples .link-label,
-#navigation-links a:active#samples .link-label {
-	display : none;
-}
-
-#navigation-links a:hover#samples,
-#navigation-links a:focus#samples,
-#navigation-links a:active#samples {
-	background-image : none;
-}
-
-#navigation-links a:hover#samples .link-extra-div,
-#navigation-links a:focus#samples .link-extra-div,
-#navigation-links a:active#samples .link-extra-div {
-	background-image : none;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/shared.css b/org.eclipse.ui.intro.universal/themes/circles/html/shared.css
deleted file mode 100644
index dabe063..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/shared.css
+++ /dev/null
@@ -1,597 +0,0 @@
-/* 
- * Set up general fonts, sizes and colors 
- */
-body { font-family : Arial, sans-serif; }
-
-H1, H2, H3, H4, p, a { color : #4D4D4D; }
-
-/*
- * We are not using titles in this theme.
- */
-.intro-header {
-	display : none;
-}
-
-h2 {
-	font-size : 13pt;
-	font-weight : normal;
-	color : #7B8694;
-}
-
-/* For regular div labels */
-H4 .div-label {
-	font-family: Verdana, Arial, Helvetica; 
-	font-size: 10pt; 
-	font-weight: bold; 
-	color: #4A4D4A; 
-	line-height:1.3;
-}
-
-/* For the main page content's title */
-#content-header H4 .div-label {
-	font-family: Verdana, Arial, Helvetica;
-	color:#333333; 
-	font-size: 23pt; 
-	font-weight: normal; 
-	letter-spacing:-0.03em;
-	margin-left: 68px;
-	float : none;
-	clear : both;
-}
-
-/* For separators */
-HR {
-	width: 90%;
-	align: left;
-	height : 1px;
-	color :  #dfdfe4;
-}
-
-/* Page description if the page has it. */
-.page-description {
-	display: block;
-	font-family: Verdana, Arial, Helvetica; 
-	font-size: 10pt; 
-	line-height:1.3;
-	float : none;
-	clear : both;
-	margin-left: 70px;
-}
-
-a {
-	font-weight : bold;
-	text-decoration : none;
-	color : #4D4D4D;
-}
-
-/* General link labels */
-a .link-label {
-	font-size : 10pt;
-	font-weight : normal;
-}
-
-/* Floating link labels for navigation links */
-#navigation-links a .link-label {
-	font-size : 8pt;
-	font-weight : bold;
-}
-
-/* Text in links. */
-a .text {
-	font-size : 8pt;
-	font-weight : normal;
-}
-
-p .group-description {
-	font-size : 10pt;
-	font-family: Verdana, Arial, Helvetica; 
-	font-weight : normal;
-}
-
-/* Hide the extra div in links by default. */
-.link-extra-div {
-	display : none;
-}
-
-/* 
- * Set up other general properties like padding/margins
- */
-html, body { width : 100%; height : 100%; }
-
-html, body, div, h1, h4, p, a { margin : 0px; padding : 0px; }
-
-/* 
- * Page header - adding extra padding at the bottom to compensate
- * for navigation background/header overlap.
- */
-#page-content #content-header {
-	padding-bottom : 22px;
-}
-
-/* For regular div labels */
-#page-content div H4 {
-	padding : 10px;
-	padding-bottom : 0px;
-}
-
-/* For the main page content's div label */
-#page-content #content-header H4 {
-	padding-bottom : 10px;
-	padding-top : 0px;
-}
-
-/* special case for Mozilla's main content-header label.
-   Mozilla 1.4 needs more room at the top */
-#page-content > #content-header H4 { padding-top : 10px; }
-
-/* Needed in IE to get shift+tab to show the active image properly */
-a:active {
-	border : solid 0px;
-}
-
-a img {
-	border-width : 0;
-	background-repeat : no-repeat;
-}
-
-/*
- * to get scrollbars working in both IE and Mozilla
- */
-
-/*
- * to get scrollbars working in both IE and Mozilla
- */
-html,body { overflow: auto; }
-html>body { overflow: visible; }
-
-/*
- * Set up the body, decorative background, and navigation for the content 
- * pages. 
- * Note: the root page handles its own background and navigation; these
- * settings primarily apply to the content pages
- */
-body {
-	background-color : #FFFFFF;
-	background-repeat : no-repeat;
-	background-position : bottom right;
-}
-
-/*
- * Hide the general-purpose groups - not using them in this theme.
- */
-#extra-group1,
-#extra-group2,
-#extra-group3,
-#extra-group4,
-#extra-group5 {
-	display : none;
-}
-
-/*
- * Dimensions.
- */
-body, .page {
-	min-width : 770px;
-	/* since IE doesn't support min-width, try expression */
-	width:expression(document.body.clientWidth < 770? "770px": "auto" );
-	min-height : 425px;
-	height : 100%;
-	height : expression(document.body.clientHeight < 425? "425px": "100%" );
-}
-
-.page {
-	background-image : url(../graphics/contentpage/background.jpg);
-	background-repeat : repeat-x;
-	background-position : top left;
-}
-
-#page-content {
-	background-repeat : no-repeat;
-	background-position : bottom right;
-	height : 65%;
-}
-
-/* 
- * Lay out the navigation links 
- * (Root page does something similar for its navigation)
- */
-#navigation-links {
-	position : relative;
-	left : 0px;
-	top : 0px;
-	padding-left: 12px;
-	height : 118px;
-	width : 100%;
-}
-
-.page > #navigation-links {
-	width: 99.1%;
-}
-
-#navigation-links a {
-	text-align : left;
-	width : auto;
-	height : 64px;
-}
-
-/*
- * Navigation links have a mixin style 'nav_link<n>' where <n> goes from
- * 1 to N. This allows us to position these fixed link slots while
- * not hand-coding the actual link IDs because they can be turned off
- * by users or products via preferences.
- */
-
-#navigation-links a.nav_link1 {
-	position: absolute;
-	left : 12px;
-}
-
-#navigation-links a.nav_link2 {
-	position : absolute;
-	left : 76px;
-}
-
-#navigation-links a.nav_link3 {
-	position : absolute;
-	left : 140px;
-}
-
-#navigation-links a.nav_link4 {
-	position : absolute;
-	left : 204px;
-}
-
-#navigation-links a.nav_link5 {
-	position : absolute;
-	left : 268px;
-}
-
-#navigation-links a.nav_link6 {
-	position : absolute;
-	left : 332px;
-}
-
-#navigation-links a.nav_link7 {
-	position: absolute;
-	left : 396px;
-}
-
-#navigation-links a img {
-	position : relative;
-	height : 64px;
-	width : 64px;
-	vertical-align : center;
-	horizontal-align : center;
-	top : 10px;
-	left : 9px;
-}
-
-/*
- * Adjust image position for hover version.
- */
-
-#navigation-links a:hover img,
-#navigation-links a:focus img,
-#navigation-links a:active img {
-	top : 2px;
-	left : 0px;
-}
-
-/*
- * Navigation link label text is normally hidden, so
- * turn it off and remove it from the document flow.
- */
-#navigation-links a .link-label { 
-	display : none;
-}
-
-/*
- * Not showing description for navigation links.
- */
-#navigation-links a .text { display : none; }
-
-#navigation-links a:hover,
-#navigation-links a:focus,
-#navigation-links a:active {
-	border-right : 0px;
-	background-image: url(../graphics/icons/ctool/nav_midhov.gif);
-	background-repeat: repeat-x;
-	background-position: 0px 2px;
-	z-index: 20;
-}
-
-#navigation-links a:hover .link-label,
-#navigation-links a:focus .link-label,
-#navigation-links a:active .link-label {
-	display : inline;
-	clear : both;
-	float : left;
-	text-align: right;
-	position : relative;
-	padding-left: 7px;
-	padding-top: 7px;
-	padding-right: 7px;
-	margin-right: auto;
-	top : -35px;
-	white-space: nowrap;
-	height : 32px;
-}
-
-/*
- * Add the right edge by using the extra div generated for links
- * and set the right edge image as the background.
- */
-
-#navigation-links a:hover .link-extra-div,
-#navigation-links a:focus .link-extra-div,
-#navigation-links a:active .link-extra-div {
-	display: block;
-	position: absolute;
-	right : -2px;
-	top : 2px;
-	width : 2px;
-	height : 64px;
-	background-image: url(../graphics/icons/ctool/nav_rightedgehov.gif);
-	background-repeat: no-repeat;
-}
-
-/* properties for each of the navigation-links  */
-#navigation-links a#overview img { 
-	background-image : url(../graphics/icons/ctool/ov_nav_32.gif); 
-}
-#navigation-links a#overview:hover img,
-#navigation-links a#overview:focus img,
-#navigation-links a#overview:active img { 
-	background-image : url(../graphics/icons/ctool/ov_nav_hover.gif); 
-}
-
-#navigation-links a#firststeps img { 
-	background-image : url(../graphics/icons/ctool/fs_nav_32.gif); 
-}
-#navigation-links a#firststeps:hover img,
-#navigation-links a#firststeps:focus img,
-#navigation-links a#firststeps:active img { 
-	background-image : url(../graphics/icons/ctool/fs_nav_hover.gif); }
-
-#navigation-links a#tutorials img { 
-	background-image : url(../graphics/icons/ctool/tu_nav_32.gif); 
-}
-#navigation-links a#tutorials:hover img,
-#navigation-links a#tutorials:active img,
-#navigation-links a#tutorials:focus img { 
-	background-image : url(../graphics/icons/ctool/tu_nav_hover.gif); 
-}
-
-#navigation-links a#samples img { 
-	background-image : url(../graphics/icons/ctool/sa_nav_32.gif); 
-}
-#navigation-links a#samples:hover img,
-#navigation-links a#samples:active img,
-#navigation-links a#samples:focus img { 
-	background-image : url(../graphics/icons/ctool/sa_nav_hover.gif); 
-}
-
-#navigation-links a#whatsnew img { 
-	background-image : url(../graphics/icons/ctool/wn_nav_32.gif); 
-}
-#navigation-links a#whatsnew:hover img,
-#navigation-links a#whatsnew:focus img,
-#navigation-links a#whatsnew:active img { 
-	background-image : url(../graphics/icons/ctool/wn_nav_hover.gif); 
-}
-
-#navigation-links a#migrate img { 
-	background-image : url(../graphics/icons/ctool/mi_nav_32.gif); 
-}
-#navigation-links a#migrate:hover img,
-#navigation-links a#migrate:focus img,
-#navigation-links a#migrate:active img { 
-	background-image : url(../graphics/icons/ctool/mi_nav_hover.gif); 
-}
-
-#navigation-links a#webresources img { 
-	background-image : url(../graphics/icons/ctool/wr_nav_32.gif); 
-}
-#navigation-links a#webresources:hover img,
-#navigation-links a#webresources:focus img,
-#navigation-links a#webresources:active img { 
-	background-image : url(../graphics/icons/ctool/wr_nav_hover.gif); 
-}
-
-#navigation-links a#workbench {
-	position : absolute;  
-	left : 494px; 
-	text-align : left;
-}
-#navigation-links a#workbench .text { display : none; }
-#navigation-links a#workbench img { 
-	background-image : url(../graphics/icons/ctool/wb_nav_32.gif); 
-	width : 32px; 
-	height : 32px;
-}
-
-#navigation-links a#workbench:hover img,
-#navigation-links a#workbench:focus img,
-#navigation-links a#workbench:active img { 
-	background-image : url(../graphics/icons/ctool/wb_nav_hover.gif); 
-	width : 51px;
-	height : 64px;
-}
-
-/* 
- * Lay out the page title and description 
- */
-h1, p { margin-left : 10px; } /* required in mozilla so the page description is properly indented */
-
-/* position the page content so that the page title overlays the bottom
- * of the background image, but make sure the content is always on top 
- * (using z-index) */
-
-#page-content {
-	float : none;
-	clear : both;
-	text-align : center;
-	position : relative;
-	top : -50px;
-	margin-bottom: -50px;
-	z-index : 10;
-}
-
-#page-content p { 
-	padding-bottom : 15px; 
-	text-align : left; 
-	float : none;
-	clear : both;
-}
-
-/* Page content quadrants. Page content is placed in four quadrants.
- * Upper pair is separated from the bottom pair with a divider
- * to ensure bottom pair is aligned even with the uneven content
- * in the upper pair.
- */
-
-#page-content #top-left {
-  border: none; float: left; margin: 0px; padding: 0px; width: 50%;
-  clear: left;
-}
-#page-content #top-right {
-  border: none; float: right; margin: 0px; padding: 0px; width: 50%;
-  clear: right;
-}
-/* top-bottom divider - runs the entire width to ensure
- * bottom boxes start at the same y
- */
-#page-content #content-divider {
-  border: none; float: none; margin: 0; padding: 0px; width: 100%;
-  clear: both;
-}
-
-#page-content #bottom-left {
-  border: none; float: left; margin: 0px; padding: 0px; width: 50%;
-  clear: left;
-}
-#page-content #bottom-right {
-  border: none; float: right; margin: 0px; padding: 0px; width: 50%;
-  clear: right;
-}
-
-#page-content #content-header H4, .page-description {
-	text-align : left;
-	margin-right : 10px;
-	float : none;
-	clear : both;
-}
-
-#page-content * > a {
-	vertical-align : middle; 
-}
-
-#page-content * a img {
-	height : 57px;
-	width : 57px;
-	vertical-align : middle;
-}	
-
-#page-content * a .link-label {
-	display : block;
-	position : relative;
-	top : -50px;
-	left : 60px;
-	margin-right: 60px;
-}
-
-#page-content * a > .link-label { left: 65px; }
-
-#page-content * a p .text {
-	display : block;
-	position : relative;
-	top : -45px;
-	margin-bottom: -25px;
-	left : 53px;
-	margin-right: 53px;
-}
-
-#page-content * a p > .text { left: 58px; }
-
-#page-content * a:hover { border-right : 5px; }
-
-/* The following rules are for extensions in all pages. Extensions should be placed in
- * groups with the style 'content-group' and contain links with the style 'content-link'.
- * Group is important so that importance mixin style can be applied to the group that
- * uses block display. We need to see a solid rectangle around the extension, not 
- * a tight polygon around the link perimeter.
- */
-
-.content-group {
-	margin-left: 10px;
-	margin-right: 10px;
-	padding-left: 10px;
-	padding-right: 10px;
-	float : none;
-	clear : both;
-	text-align: left;
-}
-
-.content-link .link-label {
-	font-family: Verdana, Arial, Helvetica; 
-	font-size: 11pt; 
-	font-weight: bold; 
-	line-height:1.5;
-	color: #00507C;
-}
-
-.content-link:hover .link-label {
-	color: #69c; 
-	text-decoration : underline;
-}
-
-.content-link .text {
-	font-family: Verdana, Arial, Helvetica; 
-	font-size: 10pt;
-	line-height: 1.3;
-}
-
-.categoryContentnav {
-	font-family: Verdana, Arial, Helvetica; 
-	font-size:10pt; 
-	font-weight: bold; 
-	color: #4A4D4A; 
-	line-height:1.3;
-}
-
-.contentpgNavhover {
-	font-family: Verdana, Arial, Helvetica; 
-	font-size: 8pt; 
-	font-weight: bold; 
-	color: #000; 
-}
-
-.topicList {
-	font-family: Verdana, Arial, Helvetica; 
-	font-size:8pt; 
-	line-height:1.75;
-	color: #00507C;
-}
-
-.topicList:hover {
-	color: #69c;
-}
-
-/*
- * This part is for hosting embedded document inside
- * the content area.
- */
-
-iframe {
-	position:relative;
-	top:16px;
-	width:100%;
-	height:100%;
-	padding-left:10px;
-}
-
-/* mozilla scrollbar appearing off page fix */
-#page-content > iframe {
-	width: 98%;
-	padding-left: 2%;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/standby.css b/org.eclipse.ui.intro.universal/themes/circles/html/standby.css
deleted file mode 100644
index cc9e98b..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/standby.css
+++ /dev/null
@@ -1,158 +0,0 @@
-/* 
- * Set up general font colours, sizes, etc.  Some of these will override
- * settings from the shared CSS 
- */
-.intro-header H1 {
-	font-size : 15pt;
-}
-
-/*
- * We will not use the general-purpose group1 used in
- * other pages for a curve image.
- */
-
-#extra-group1 {
-	display : none;
-}
-
-
-#page-links a .link-label, #action-links a .link-label {
-	font-size : 10pt;
-	font-weight : 600;
-	color : #E5E5E5;
-}
-
-#page-links a p .text, #action-links a p .text {
-	font-size : 10pt;
-	font-weight : 500;
-	color : #E5E5E5;
-}
-
-/*
- * Set up the content for the standby page.
- */
-body {
-	min-width : 230px;
-	/* since IE doesn't support min-width, use expression */
-	width:expression(document.body.clientWidth < 230? "230px": "auto" );
-	background-repeat : no-repeat;
-	background-position : top left;
-	background-color : #6d7e85;
-}
-
-#branding {
-	position: absolute;
-	bottom : 20px;
-	left : 20px;
-}
-
-.page {
-	background-repeat : no-repeat;
-	background-position : bottom left;
-	min-width : 230px;
-	/* since IE doesn't support min-width, use expression */
-	width:expression(document.body.clientWidth < 230? "230px": "auto" );
- 	min-height : 610px;
-	height : 100%;
-	height : expression(document.body.clientHeight < 450? "450px": "100%" );
-}
-
-/* 
- * Set up the navigation bar.  It should be centered in the middle
- * of the page
- */
-
-#links-background { 
-	width : 100%; 
- 	margin-top : 10%; 
-	margin-bottom : auto;
-	text-align : center;
-}
-
-#page-links a {
-	display : block;
-	width : 220px;
-	text-align : left; 
-	margin-left : auto;
-	margin-right : auto;
-	margin-top : 0px;
-	vertical-align : top;
-}
-
-#page-links a span, #page-links a p {
-	display : block;
-	width : 160px;
-	margin : 0px;
-	padding : 0px;
-}
-
-#page-links a .link-label {
-	position : relative;
-	left : 60px;
-	top : -50px;
-}
-
-#page-links a p .text {
-	position : relative;
-	left : 60px;
-	top : -50px;
-}
-
-#page-links a img {
-	height : 52px;
-	width : 52px;
-	vertical-align : middle;
-}
-
-#page-links a:hover,
-#page-links a:focus,
-#page-links a:active  { border : 0px; }
-
-#page-links a:hover p,
-#page-links a:focus p,
-#page-links a:active p  { margin : 0px; padding : 0px; }
-
-/* properties for each of the page-links  */
-
-#page-links a .background-image {
-	display: none;
-}
-
-#page-links a .link-extra-div {
-	display :none;
-}
-
-a#overview img { background-image : url(../graphics/icons/ctool/ov_nav_32.gif); }
-/*
-a#overview:hover img,
-a#overview:focus img,
-a#overview:active img { background-image : url(../graphics/icons/ctool/overview48.gif); }
-*/
-
-a#tutorials img { background-image : url(../graphics/icons/ctool/tu_nav_32.gif); }
-/*
-a#tutorials:hover img,
-a#tutorials:focus img,
-a#tutorials:active img { background-image : url(../graphics/icons/ctool/tutorials48.gif); }
-*/
-
-a#samples img { background-image : url(../graphics/icons/ctool/sa_nav_32.gif); }
-/*
-a#samples:hover img,
-a#samples:focus img,
-a#samples:active img { background-image : url(../graphics/icons/ctool/samples48.gif); }
-*/
-
-
-a#whatsnew img { background-image : url(../graphics/icons/ctool/wn_nav_32.gif); }
-/*
-a#news:hover img,
-a#news:focus img,
-a#news:active img { background-image : url(../graphics/icons/ctool/whatsnew48.gif); }
-*/
-
-a#firststeps img { background-image : url(../graphics/icons/ctool/fs_nav_32.gif); }
-a#webresources img { background-image : url(../graphics/icons/ctool/wr_nav_32.gif); }
-a#migrate img { background-image : url(../graphics/icons/ctool/mi_nav_32.gif); }
-
-a#workbench img { background-image : url(../graphics/icons/ctool/wb_nav_32.gif); }
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/tutorials.css b/org.eclipse.ui.intro.universal/themes/circles/html/tutorials.css
deleted file mode 100644
index b52e2f4..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/tutorials.css
+++ /dev/null
@@ -1,29 +0,0 @@
-
-/* show the "selected" image for this page */
-#navigation-links a#tutorials img, #navigation-links a#tutorials:hover img { 
-	background-image : url(../graphics/icons/ctool/tu_nav_64.gif); 
-	top : 2px; 
-	left : -3px;
-}
-
-#navigation-links {
-	background-image: url(../graphics/contentpage/tu_banner.jpg);
-}
-
-#navigation-links a:hover#tutorials .link-label,
-#navigation-links a:focus#tutorials .link-label,
-#navigation-links a:active#tutorials .link-label {
-	display : none;
-}
-
-#navigation-links a:hover#tutorials,
-#navigation-links a:focus#tutorials,
-#navigation-links a:active#tutorials {
-	background-image : none;
-}
-
-#navigation-links a:hover#tutorials .link-extra-div,
-#navigation-links a:focus#tutorials .link-extra-div,
-#navigation-links a:active#tutorials .link-extra-div {
-	background-image : none;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/webresources.css b/org.eclipse.ui.intro.universal/themes/circles/html/webresources.css
deleted file mode 100644
index addd9cb..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/webresources.css
+++ /dev/null
@@ -1,28 +0,0 @@
-/* show the "selected" image for this page */
-#navigation-links a#webresources img, #webresources a#webresources:hover img { 
-	background-image : url(../graphics/icons/ctool/wr_nav_64.gif); 
-	top : 2px;
-	left : -3px;
-}
-
-#navigation-links {
-	background-image: url(../graphics/contentpage/wr_banner.jpg);
-}
-
-#navigation-links a:hover#webresources .link-label,
-#navigation-links a:focus#webresources .link-label,
-#navigation-links a:active#webresources .link-label {
-	display : none;
-}
-
-#navigation-links a:hover#webresources,
-#navigation-links a:focus#webresources,
-#navigation-links a:active#webresources {
-	background-image : none;
-}
-
-#navigation-links a:hover#webresources .link-extra-div,
-#navigation-links a:focus#webresources .link-extra-div,
-#navigation-links a:active#webresources .link-extra-div {
-	background-image : none;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/html/whatsnew.css b/org.eclipse.ui.intro.universal/themes/circles/html/whatsnew.css
deleted file mode 100644
index 63fd138..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/html/whatsnew.css
+++ /dev/null
@@ -1,34 +0,0 @@
-
-/* show the "selected" image for this page */
-#navigation-links a#whatsnew img, #navigation-links a#whatsnew:hover img { 
-	background-image : url(../graphics/icons/ctool/wn_nav_64.gif); 
-	top : 2px; 
-	left : -3px;
-}
-
-#navigation-links {
-	background-image: url(../graphics/contentpage/wn_banner.jpg);
-}
-
-#navigation-links a:hover#whatsnew .link-label,
-#navigation-links a:focus#whatsnew .link-label,
-#navigation-links a:active#whatsnew .link-label {
-	display : none;
-}
-
-#navigation-links a:hover#whatsnew,
-#navigation-links a:focus#whatsnew,
-#navigation-links a:active#whatsnew {
-	background-image : none;
-}
-
-#navigation-links a:hover#whatsnew .link-extra-div,
-#navigation-links a:focus#whatsnew .link-extra-div,
-#navigation-links a:active#whatsnew .link-extra-div {
-	background-image : none;
-}
-/*
- * Default images for content links in this page.
- */
-.content-link img { background-image : url(../graphics/icons/obj48/new_obj.gif); }
-.content-link:hover img { background-image : url(../graphics/icons/obj48/newhov_obj.gif); }
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/preview.png b/org.eclipse.ui.intro.universal/themes/circles/preview.png
deleted file mode 100644
index 0e81aea..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/preview.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/firststeps.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/firststeps.properties
deleted file mode 100644
index b37b4bc..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/firststeps.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-
-firststeps.page-content.layout.vspacing = 40 
-firststeps.page-content.layout.ncolumns = 2
-firststeps.subtitle-id = firststeps/page-content/page-title
-firststeps.description-id = firststeps/page-content/page-description
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/migrate.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/migrate.properties
deleted file mode 100644
index 0848aac..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/migrate.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-migrate.page-content.layout.vspacing = 40 
-migrate.page-content.layout.ncolumns = 2
-migrate.subtitle-id = migrate/page-content/page-title
-migrate.description-id = migrate/page-content/page-description
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/overview.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/overview.properties
deleted file mode 100644
index ada419d..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/overview.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-
-overview.page-content.layout.ncolumns = 2
-
-overview.subtitle-id = overview/page-content/page-title
-overview.description-id = overview/page-content/page-description
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/root.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/root.properties
deleted file mode 100644
index ed3f5b9..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/root.properties
+++ /dev/null
@@ -1,42 +0,0 @@
-theme=true
-
-root.links-background.page-links.overview.link-icon = ../graphics/icons/ctool/overview.png
-root.links-background.page-links.tutorials.link-icon = ../graphics/icons/ctool/tutorials.png
-root.links-background.page-links.samples.link-icon= ../graphics/icons/ctool/samples.png
-root.links-background.page-links.whatsnew.link-icon = ../graphics/icons/ctool/whatsnew.png
-root.links-background.page-links.firststeps.link-icon = ../graphics/icons/ctool/firststeps.png
-root.links-background.page-links.migrate.link-icon = ../graphics/icons/ctool/migrate.png
-root.links-background.page-links.webresources.link-icon = ../graphics/icons/ctool/webresources.png
-root.action-links.workbench.link-icon = ../graphics/icons/ctool/workbench.png
-
-root.links-background.page-links.overview.hover-icon = ../graphics/icons/ctool/overview.png
-root.links-background.page-links.tutorials.hover-icon = ../graphics/icons/ctool/tutorials.png
-root.links-background.page-links.samples.hover-icon = ../graphics/icons/ctool/samples.png
-root.links-background.page-links.whatsnew.hover-icon = ../graphics/icons/ctool/whatsnew.png
-root.links-background.page-links.firststeps.hover-icon = ../graphics/icons/ctool/firststeps.png
-root.links-background.page-links.migrate.hover-icon = ../graphics/icons/ctool/migrate.png
-root.links-background.page-links.webresources.hover-icon = ../graphics/icons/ctool/webresources.png
-root.action-links.workbench.hover-icon = ../graphics/icons/ctool/workbench.png
-
-root.links-background.page-links.overview.small-link-icon = ../graphics/icons/ctool/ov_nav.png
-root.links-background.page-links.tutorials.small-link-icon = ../graphics/icons/ctool/tu_nav.png
-root.links-background.page-links.samples.small-link-icon = ../graphics/icons/ctool/sa_nav.png
-root.links-background.page-links.whatsnew.small-link-icon = ../graphics/icons/ctool/wn_nav.png
-root.links-background.page-links.firststeps.small-link-icon = ../graphics/icons/ctool/fs_nav.png
-root.links-background.page-links.migrate.small-link-icon = ../graphics/icons/ctool/mi_nav.png
-root.links-background.page-links.webresources.small-link-icon = ../graphics/icons/ctool/wr_nav.png
-root.action-links.workbench.small-link-icon = ../graphics/icons/ctool/wb_nav.png
-
-root.links-background.page-links.overview.small-hover-icon = ../graphics/icons/ctool/ov_nav.png
-root.links-background.page-links.tutorials.small-hover-icon = ../graphics/icons/ctool/tu_nav.png
-root.links-background.page-links.samples.small-hover-icon = ../graphics/icons/ctool/sa_nav.png
-root.links-background.page-links.whatsnew.small-hover-icon = ../graphics/icons/ctool/wn_nav.png
-root.links-background.page-links.firststeps.small-hover-icon = ../graphics/icons/ctool/fs_nav.png
-root.links-background.page-links.migrate.small-hover-icon = ../graphics/icons/ctool/mi_nav.png
-root.links-background.page-links.webresources.small-hover-icon = ../graphics/icons/ctool/wr_nav.png
-root.action-links.workbench.small-hover-icon = ../graphics/icons/ctool/wb_nav.png
-
-
-root.layout.ncolumns = 1
-root.links-background.page-links.layout.hspacing = 40
-root.layout.vspacing = 35
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/samples.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/samples.properties
deleted file mode 100644
index 18f7058..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/samples.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-
-samples.page-content.layout.vspacing = 40
-samples.page-content.layout.ncolumns = 2
-
-description-style-id = group-description
-samples.subtitle-id = samples/page-content/page-title
-samples.description-id = samples/page-content/page-description
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/standby.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/standby.properties
deleted file mode 100644
index 37e8b83..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/standby.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-theme = true
-standby.links-background.page-links.overview.link-icon = ../graphics/icons/ctool/ov_nav.png
-standby.links-background.page-links.firststeps.link-icon = ../graphics/icons/ctool/fs_nav.png
-standby.links-background.page-links.tutorials.link-icon = ../graphics/icons/ctool/tu_nav.png
-standby.links-background.page-links.samples.link-icon = ../graphics/icons/ctool/sa_nav.png
-standby.links-background.page-links.whatsnew.link-icon = ../graphics/icons/ctool/wn_nav.png
-standby.links-background.page-links.migrate.link-icon = ../graphics/icons/ctool/mi_nav.png
-standby.links-background.page-links.webresources.link-icon = ../graphics/icons/ctool/wr_nav.png
-standby.links-background.page-links.workbench.link-icon = ../graphics/icons/ctool/wb_nav.png
-
-standby.links-background.page-links.layout.vspacing = 30
-standby.layout.vspacing = 35
-standby.show-link-description = false
-standby.show-home-page-navigation = false
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/tutorials.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/tutorials.properties
deleted file mode 100644
index ce4b4a0..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/tutorials.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-
-tutorials.page-content.layout.vspacing = 40
-tutorials.page-content.layout.ncolumns = 2
-tutorials.subtitle-id = tutorials/page-content/page-title
-tutorials.description-id = tutorials/page-content/page-description
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/webresources.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/webresources.properties
deleted file mode 100644
index 92ebb60..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/webresources.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-
-webresources.page-content.layout.vspacing = 40 
-webresources.page-content.layout.ncolumns = 2
-
-webresources.subtitle-id = webresources/page-content/page-title
-webresources.description-id = webresources/page-content/page-description
diff --git a/org.eclipse.ui.intro.universal/themes/circles/swt/whatsnew.properties b/org.eclipse.ui.intro.universal/themes/circles/swt/whatsnew.properties
deleted file mode 100644
index 2a732e2..0000000
--- a/org.eclipse.ui.intro.universal/themes/circles/swt/whatsnew.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-theme = true
-whatsnew.page-content.layout.vspacing = 40 
-whatsnew.page-content.layout.ncolumns = 2
-whatsnew.page-content.bottom.layout.colspan = 2
-
-whatsnew.link-icon = ../graphics/icons/obj48/new_obj.gif
-whatsnew.hover-icon = ../graphics/icons/obj48/newhov_obj.gif
-
-whatsnew.subtitle-id = whatsnew/page-content/page-title
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/background.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/background.jpg
deleted file mode 100644
index ce1cada..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/background.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/backgroundcurve.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/backgroundcurve.gif
deleted file mode 100644
index 8c5ec1d..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/backgroundcurve.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/firsteps_wtr.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/firsteps_wtr.jpg
deleted file mode 100644
index 11e7725..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/firsteps_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/migrate_wtr.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/migrate_wtr.jpg
deleted file mode 100644
index c45dc6f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/migrate_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/overview_wtr.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/overview_wtr.jpg
deleted file mode 100644
index 733e48c..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/overview_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/samples_wtr.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/samples_wtr.jpg
deleted file mode 100644
index 9e0fa8a..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/samples_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section1.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section1.gif
deleted file mode 100644
index 6147513..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section1.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section2.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section2.gif
deleted file mode 100644
index 0ee148b..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section2.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section3.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section3.gif
deleted file mode 100644
index b5d24e6..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section3.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section4.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section4.gif
deleted file mode 100644
index 258d4a8..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/section4.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/tutorials_wtr.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/tutorials_wtr.jpg
deleted file mode 100644
index 2cf26b2..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/tutorials_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/webrsrc_wtr.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/webrsrc_wtr.jpg
deleted file mode 100644
index c002f2d..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/webrsrc_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/whatsnew_wtr.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/whatsnew_wtr.jpg
deleted file mode 100644
index c2a42da..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/contentpage/whatsnew_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/back.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/back.gif
deleted file mode 100644
index 1c81cb6..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/back.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps16.png
deleted file mode 100644
index 4c15c82..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48.gif
deleted file mode 100644
index 5140ad8..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48sel.gif
deleted file mode 100644
index 954955d..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps72.gif
deleted file mode 100644
index ff92f6e..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/firsteps72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/forward.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/forward.gif
deleted file mode 100644
index 3e4a4f4..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/forward.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/home.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/home.gif
deleted file mode 100644
index 0160f8f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/home.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate16.png
deleted file mode 100644
index 3fc8414..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48.gif
deleted file mode 100644
index dc48b18..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48sel.gif
deleted file mode 100644
index a9d6d07..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate72.gif
deleted file mode 100644
index 25fc317..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/migrate72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview16.png
deleted file mode 100644
index b2e977f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48.gif
deleted file mode 100644
index 3843412..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48sel.gif
deleted file mode 100644
index fafc1a6..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview72.gif
deleted file mode 100644
index 39d089a..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/overview72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples16.png
deleted file mode 100644
index fdff5dd..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48.gif
deleted file mode 100644
index e71836e..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48sel.gif
deleted file mode 100644
index daaa044..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples72.gif
deleted file mode 100644
index 1515906..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/samples72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials16.png
deleted file mode 100644
index f2d688f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48.gif
deleted file mode 100644
index f527297..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48sel.gif
deleted file mode 100644
index 9d41c08..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials72.gif
deleted file mode 100644
index 8fd4816..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/tutorials72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb16.png
deleted file mode 100644
index e73ca61..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb48.gif
deleted file mode 100644
index c2fd06a..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/wb48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc16.png
deleted file mode 100644
index b847caa..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48.gif
deleted file mode 100644
index b54d518..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48sel.gif
deleted file mode 100644
index 798f415..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc72.gif
deleted file mode 100644
index c4df0ad..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/webrsrc72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew16.png
deleted file mode 100644
index 5294b17..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48.gif
deleted file mode 100644
index 4eeb56a..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48sel.gif
deleted file mode 100644
index d5ba746..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew72.gif
deleted file mode 100644
index df3bd99..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/ctool/whatsnew72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/back.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/back.gif
deleted file mode 100644
index f0d0929..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/back.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/forward.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/forward.gif
deleted file mode 100644
index dbe58b2..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/dtool/forward.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/back.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/back.gif
deleted file mode 100644
index f0d0929..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/back.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48.gif
deleted file mode 100644
index b277a7f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48sel.gif
deleted file mode 100644
index 9679b5f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps72.gif
deleted file mode 100644
index a68e0aa..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/firsteps72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/forward.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/forward.gif
deleted file mode 100644
index dbe58b2..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/forward.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/home.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/home.gif
deleted file mode 100644
index b101d12..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/home.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48.gif
deleted file mode 100644
index 313c983..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48sel.gif
deleted file mode 100644
index 6a12231..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate72.gif
deleted file mode 100644
index 2a3fe17..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/migrate72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48.gif
deleted file mode 100644
index 6ac4cf7..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48sel.gif
deleted file mode 100644
index 5588700..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview72.gif
deleted file mode 100644
index 1e612b5..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/overview72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48.gif
deleted file mode 100644
index eeace58..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48sel.gif
deleted file mode 100644
index 38b965d..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples72.gif
deleted file mode 100644
index 504fea0..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/samples72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48.gif
deleted file mode 100644
index dfe572b..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48sel.gif
deleted file mode 100644
index e8a8d93..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials72.gif
deleted file mode 100644
index 12698f6..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/tutorials72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/wb48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/wb48.gif
deleted file mode 100644
index 50ca287..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/wb48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48.gif
deleted file mode 100644
index 41fef5f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48sel.gif
deleted file mode 100644
index 5f7b9c7..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc72.gif
deleted file mode 100644
index cdf21e4..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/webrsrc72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48.gif
deleted file mode 100644
index d73db3e..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48sel.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48sel.gif
deleted file mode 100644
index 8c9aaa2..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew48sel.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew72.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew72.gif
deleted file mode 100644
index 63844fd..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/etool/whatsnew72.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/new_obj.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/new_obj.gif
deleted file mode 100644
index f46b81b..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/new_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/newhov_obj.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/newhov_obj.gif
deleted file mode 100644
index 593e63b..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/icons/obj48/newhov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/firststeps16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/firststeps16.png
deleted file mode 100644
index 4c15c82..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/firststeps16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/migrate16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/migrate16.png
deleted file mode 100644
index 3fc8414..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/migrate16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/overview.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/overview.gif
deleted file mode 100644
index 3fe629a..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/overview.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/samples.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/samples.gif
deleted file mode 100644
index c695884..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/samples.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/tutorials.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/tutorials.gif
deleted file mode 100644
index a18d7dd..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/tutorials.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/webresources16.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/webresources16.png
deleted file mode 100644
index b847caa..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/webresources16.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/whatsnew.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/whatsnew.gif
deleted file mode 100644
index f022324..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/launchbar/whatsnew.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/background.jpg b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/background.jpg
deleted file mode 100644
index 969fcf3..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/background.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/brandmark.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/brandmark.gif
deleted file mode 100644
index 93f25f7..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/brandmark.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/dots.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/dots.gif
deleted file mode 100644
index 6621b7c..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/root/dots.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/swt/form_banner.gif b/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/swt/form_banner.gif
deleted file mode 100644
index aebc0b2..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/graphics/swt/form_banner.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/firststeps.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/firststeps.css
deleted file mode 100644
index 7a67b32..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/firststeps.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
-	background-image : url(../graphics/contentpage/firsteps_wtr.jpg);
-}
-
-/* show the "selected" image for this page */
-#navigation-links a#firststeps img, #navigation-links a#firststeps:hover img { 
-	background-image : url(../graphics/icons/ctool/firsteps48sel.gif); 
-}
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/migrate.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/migrate.css
deleted file mode 100644
index 180af53..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/migrate.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
-	background-image : url(../graphics/contentpage/migrate_wtr.jpg);
-}
-
-/* show the "selected" image for this page */
-#navigation-links a#migrate img, #navigation-links a#migrate:hover img { 
-	background-image : url(../graphics/icons/ctool/migrate48sel.gif); 
-}
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/overview.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/overview.css
deleted file mode 100644
index a293f77..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/overview.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
-	background-image : url(../graphics/contentpage/overview_wtr.jpg);
-}
-
-/* show the "selected" image for this page */
-#navigation-links a#overview img, #navigation-links a#overview:hover img { 
-	background-image : url(../graphics/icons/ctool/overview48sel.gif); 
-}
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/root.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/root.css
deleted file mode 100644
index 1bf1b4f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/root.css
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/samples.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/samples.css
deleted file mode 100644
index cbd72cc..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/samples.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
-	background-image : url(../graphics/contentpage/samples_wtr.jpg);
-}
-
-/* show the "selected" image for this page */
-#navigation-links a#samples img, #navigation-links a#samples:hover img { 
-	background-image : url(../graphics/icons/ctool/samples48sel.gif); 
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/shared.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/shared.css
deleted file mode 100644
index 341da6f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/shared.css
+++ /dev/null
@@ -1,415 +0,0 @@
-/* 
- * Set up general fonts, sizes and colors 
- */
-body { font-family : Arial, sans-serif; }
-
-H1, H2, H3, H4, p, a { color : #4D4D4D; }
-
-.intro-header H1 {
-	font-size : 16pt;
-	font-weight : normal;
-	color : #E5E5E5;
-}
-
-h2 {
-	font-size : 13pt;
-	font-weight : normal;
-	color : #7B8694;
-}
-/* For regular div labels */
-H4 .div-label {
-	font-size : 10pt;
-	font-weight : bold;
-}
-
-/* For separators */
-HR {
-	width: 90%;
-	align: left;
-	height : 1px;
-	color :  #dfdfe4;
-}
-
-/* For the main page content's title */
-#content-header H4 .div-label {
-	font-size : 14pt;
-	font-weight : normal;
-	color : #8C96A2;
-	float : none;
-	clear : both;
-}
-
-.page-description { 
-	font-size : 10pt;
-	float : none;
-	clear : both;
-}
-
-a {
-	font-weight : bold;
-	text-decoration : none;
-	color : #4D4D4D;
-}
-
-a .link-label {
-	font-size : 10pt;
-	font-weight : normal;
-}
-
-/* Hide the 'special-effect' extra div in links by default. */
-.link-extra-div {
-	display : none;
-}
-
-#navigation-links a .link-label {
-	font-size : 9pt;
-	font-weight : normal;
-	color : #E5E5E5;
-}
-
-a .text {
-	font-size : 8pt;
-	font-weight : normal;
-}
-
-p .group-description {
-	font-size : 10pt;
-	font-weight : normal;
-}
-
-
-/* 
- * Set up other general properties like padding/margins
- */
-html, body { width : 100%; height : 100%; }
-
-html, body, div, h1, h4, p, a { margin : 0px; padding : 0px; }
-
-.intro-header H1 { padding-top : 10px; margin-left : 10px; }
-
-.section { }
-.section-body { display: none; padding : 0px; }
-
-/* For regular div labels */
-#page-content div H4 {
-	padding : 10px;
-	padding-bottom : 0px;
-}
-
-/* For the main page content's div label */
-#page-content #content-header H4 {
-	padding-bottom : 10px;
-	padding-top : 0px;
-}
-
-/* special case for Mozilla's main content-header label.
-   Mozilla 1.4 needs more room at the top */
-#page-content > #content-header H4 { padding-top : 10px; }
-
-/* Needed in IE to get shift+tab to show the active image properly */
-a:active {
-	border : solid 0px;
-}
-
-a img {
-	border-width : 0;
-	background-repeat : no-repeat;
-}
-
-/*
- * to get scrollbars working in both IE and Mozilla
- */
-html,body { overflow: auto; }
-html>body { overflow: visible; }
-
-/*
- * Set up the body, decorative background, and navigation for the content 
- * pages. 
- * Note: the root page handles its own background and navigation; these
- * settings primarily apply to the content pages
- */
-body {
-	background-color : #FFFFFF;
-	background-repeat : no-repeat;
-	background-position : bottom right;
-}
-
-/*
- * We will use one of the general purpose groups to show
- * the curve image
- */
-#extra-group1 { 
-	width : 100%;
-	height : 164px;
-	position : absolute;
-	top : 0px;
-	background-image : url(../graphics/contentpage/backgroundcurve.gif);
-	background-repeat : no-repeat;
-	background-position : top center;
-	margin : 0;
-	padding : 0;
-}
-
-/*
- * Hide the other general-purpose groups
- */
-
-#extra-group2,
-#extra-group3,
-#extra-group4,
-#extra-group5 {
-	display : none;
-}
-
-.intro-header {	background-color : transparent; z-index : 100;}
-
-body, .page{
-	min-width : 770px;
-	/* since IE doesn't support min-width, try expression */
-	width:expression(document.body.clientWidth < 770? "770px": "auto" );
-	min-height : 425px;
-	height : 100%;
-	height : expression(document.body.clientHeight < 425? "425px": "100%" );
-}
-
-.page { 
-	min-height : 475px;
-	background-image : url(../graphics/contentpage/background.jpg);
-	background-repeat : repeat-x;
-	background-position : top left;
-}
-
-#page-content {
-	background-repeat : no-repeat;
-	background-position : bottom right;
-	height : 70%;
-}
-
-/* 
- * Lay out the navigation links 
- * (Root page does something similar for its navigation)
- */
-#navigation-links {
-	position : relative;
-	left : 10px;
-	top : 5px;
-	height : 60px;
-	width : 98%;
-}
-
-#navigation-links a {
-	padding-left : 5px;
-	padding-right : 5px;
-	float : left;
-	text-align : center;
-}
-
-#navigation-links #customize {
-	padding-left : 5px;
-	padding-right : 5px;
-	float : left;
-	text-align : center;
-}
-
-#navigation-links a img {
-	height : 52px;
-	width : 52px;
-	vertical-align : middle;
-}
-
-#navigation-links a .link-label { display : block; margin-top : 5px;}
-
-#navigation-links a .text { display : none; }
-
-#navigation-links a:hover, 
-#navigation-links a:focus 
-#navigation-links a:active { border-right : 0px;}
-
-/* properties for each of the navigation-links  */
-#navigation-links a#overview img { background-image : url(../graphics/icons/etool/overview48.gif); }
-#navigation-links a#overview:hover img,
-#navigation-links a#overview:focus img,
-#navigation-links a#overview:active img { background-image : url(../graphics/icons/ctool/overview48.gif); }
-
-#navigation-links a#tutorials img { background-image : url(../graphics/icons/etool/tutorials48.gif); }
-#navigation-links a#tutorials:hover img,
-#navigation-links a#tutorials:active img,
-#navigation-links a#tutorials:focus img { background-image : url(../graphics/icons/ctool/tutorials48.gif); }
-
-#navigation-links a#samples img { background-image : url(../graphics/icons/etool/samples48.gif); }
-#navigation-links a#samples:hover img,
-#navigation-links a#samples:active img,
-#navigation-links a#samples:focus img { background-image : url(../graphics/icons/ctool/samples48.gif); }
-
-#navigation-links a#whatsnew img { background-image : url(../graphics/icons/etool/whatsnew48.gif); }
-#navigation-links a#whatsnew:hover img,
-#navigation-links a#whatsnew:focus img,
-#navigation-links a#whatsnew:active img { background-image : url(../graphics/icons/ctool/whatsnew48.gif); }
-
-#navigation-links a#firststeps img { background-image : url(../graphics/icons/etool/firsteps48.gif); }
-#navigation-links a#firststeps:hover img,
-#navigation-links a#firststeps:focus img,
-#navigation-links a#firststeps:active img { background-image : url(../graphics/icons/ctool/firsteps48.gif); }
-
-#navigation-links a#webresources img { background-image : url(../graphics/icons/etool/webrsrc48.gif); }
-#navigation-links a#webresources:hover img,
-#navigation-links a#webresources:focus img,
-#navigation-links a#webresources:active img { background-image : url(../graphics/icons/ctool/webrsrc48.gif); }
-
-#navigation-links a#migrate img { background-image : url(../graphics/icons/etool/migrate48.gif); }
-#navigation-links a#migrate:hover img,
-#navigation-links a#migrate:focus img,
-#navigation-links a#migrate:active img { background-image : url(../graphics/icons/ctool/migrate48.gif); }
-
-
-#navigation-links a#workbench { position : absolute;  right : 0px; top : -35px; text-align : right;}
-#navigation-links a#workbench .text { display : none; }
-#navigation-links a#workbench img { background-image : url(../graphics/icons/etool/wb48.gif); width : 53px; height : 53px;}
-#navigation-links a#workbench:hover img,
-#navigation-links a#workbench:focus img,
-#navigation-links a#workbench:active img { background-image : url(../graphics/icons/ctool/wb48.gif); }
-
-/* 
- * Lay out the page title and description 
- */
-h1, p { margin-left : 10px; } /* required in mozilla so the page description is properly indented */
-
-/* position the page content so that the page title overlays the bottom
- * of the background image, but make sure the content is always on top 
- * (using z-index) */
-#page-content {
-	float : none;
-	clear : both;
-	text-align : center;
-	margin-top : 35px;
-}
-
-.page > #page-content { margin-top : 50px; }
-
-#page-content p { 
-	padding-bottom : 15px; 
-	text-align : left; 
-	float : none;
-	clear : both;
-}
-
-/* Page content bins */
-
-#page-content #top-left {
-  border: none; float: left; margin: 0px; padding: 0px; width: 50%;
-  clear: left;
-}
-#page-content #top-right {
-  border: none; float: right; margin: 0px; padding: 0px; width: 50%;
-  clear: right;
-}
-
-/* top-bottom divider - runs the entire width to ensure
- * bottom boxes start at the same y
- */
-#page-content #content-divider {
-  border: none; float: none; margin: 0; padding: 0px; width: 100%;
-  clear: both;
-}
-
-#page-content #bottom-left {
-  border: none; float: left; margin: 0px; padding: 0px; width: 50%;
-  clear: left;
-}
-#page-content #bottom-right {
-  border: none; float: right; margin: 0px; padding: 0px; width: 50%;
-  clear: right;
-}
-
-#page-content #content-header H4, .page-description {
-	text-align : left;
-	margin-right : 10px;
-	float : none;
-	clear : both;
-}
-
-#page-content #top-left > *, 
-#page-content #top-right > *,
-#page-content #bottom-left > *,
-#page-content #bottom-right > * {
-	display: block;
-}
-
-#page-content * > a {
-	vertical-align : middle; 
-}
-
-#page-content * a img {
-	height : 57px;
-	width : 57px;
-	vertical-align : middle;
-}	
-
-#page-content * a .link-label {
-	display : block;
-	position : relative;
-	top : -50px;
-	left : 60px;
-	margin-right: 60px;
-}
-
-#page-content * a > .link-label { left: 65px; }
-
-#page-content * a p .text {
-	display : block;
-	position : relative;
-	top : -45px;
-	margin-bottom: -25px;
-	left : 53px;
-	margin-right: 53px;
-}
-
-#page-content * a p > .text { left: 58px; }
-
-#page-content * a:hover { border-right : 5px; }
-
-
-/* The following rules are for extensions in all pages. Extensions should be placed in
- * groups with the style 'content-group' and contain links with the style 'content-link'.
- * Group is important so that importance mixin style can be applied to the group that
- * uses block display. We need to see a solid rectangle around the extension, not 
- * a tight polygon around the link perimeter.
- */
- 
-.content-group {
-	margin-left: 10px;
-	margin-right: 10px;
-	padding-left: 10px;
-	padding-right: 10px;
-	float : none;
-	clear : both;
-	text-align : left;
-}
-
-.categoryContentnav {
-	font-size: 9pt; 
-	font-weight: bold; 
-	color: #4A4D4A; 
-}
-
-.topicList {
-	font-size: 8pt; 
-	line-height:1.75;
-	color: #00507C;
-}
-
-.content-link:hover { border-right : 0px; }
-
-iframe {
-	position:relative;
-	top:16px;
-	width:100%;
-	height:100%;
-	padding-left:10px;
-	}
-
-/* mozilla scrollbar appearing off page fix */
-#page-content > iframe {
-	width: 98%;
-	padding-left: 2%;
-}	
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/standby.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/standby.css
deleted file mode 100644
index 436dd6d..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/standby.css
+++ /dev/null
@@ -1,163 +0,0 @@
-/* 
- * Set up general font colours, sizes, etc.  Some of these will override
- * settings from the shared CSS 
- */
-.intro-header H1 {
-	font-size : 15pt;
-}
-
-#page-links a .link-label, #action-links a .link-label {
-	font-size : 10pt;
-	font-weight : 600;
-	color : #E5E5E5;
-}
-
-#page-links a p .text, #action-links a p .text {
-	font-size : 10pt;
-	font-weight : 500;
-	color : #E5E5E5;
-}
-
-/*
- * We will not use the general-purpose group1 used in
- * other pages for a curve image.
- */
-
-#extra-group1 {
-	display : none;
-}
-
-/*
- * Set up the content for the standby page.
- */
-body {
-	min-width : 230px;
-	/* since IE doesn't support min-width, use expression */
-	width:expression(document.body.clientWidth < 230? "230px": "auto" );
-	background-image : url(../graphics/root/background.jpg);
-	background-repeat : no-repeat;
-	background-position : top left;
-	background-color : #7169D1;
-}
-
-.page {
-/*
-	background-image : url(../graphics/root/brandmark.gif);
-	background-repeat : no-repeat;
-	background-position : bottom left;
-*/
-	background-image: none;
-	min-width : 230px;
-	/* since IE doesn't support min-width, use expression */
-	width:expression(document.body.clientWidth < 230? "230px": "auto" );
- 	min-height : 610px;
-	height : 100%;
-	height : expression(document.body.clientHeight < 450? "450px": "100%" );
-}
-
-#extra-group1 {
-	display: none;
-}
-
-/* 
- * Set up the navigation bar.  It should be centered in the middle
- * of the page
- */
-
-#links-background { 
-	width : 100%; 
- 	margin-top : 10%; 
-	margin-bottom : auto;
-	text-align : center;
-}
-
-#page-links a {
-	display : block;
-	width : 220px;
-	text-align : left; 
-	margin-left : auto;
-	margin-right : auto;
-	margin-top : 0px;
-	vertical-align : top;
-}
-#page-links a span, #page-links a p {
-	display : block;
-	width : 160px;
-	margin : 0px;
-	padding : 0px;
-}
-
-#page-links a .link-label {
-	position : relative;
-	left : 60px;
-	top : -50px;
-}
-
-#page-links a p .text {
-	position : relative;
-	left : 60px;
-	top : -50px;
-
-}
-
-#page-links a .content-img {
-	visibility: hidden;
-}
-
-#page-links a img {
-	height : 52px;
-	width : 52px;
-	vertical-align : middle;
-}
-
-#page-links a:hover,
-#page-links a:focus,
-#page-links a:active  { border : 0px; }
-
-#page-links a:hover p,
-#page-links a:focus p,
-#page-links a:active p  { margin : 0px; padding : 0px; }
-
-#action-links a { visibility: hidden; }
-
-/* properties for each of the page-links  */
-a#overview img { background-image : url(../graphics/icons/etool/overview48.gif); }
-a#overview:hover img,
-a#overview:focus img,
-a#overview:active img { background-image : url(../graphics/icons/ctool/overview48.gif); }
-
-a#tutorials img { background-image : url(../graphics/icons/etool/tutorials48.gif); }
-a#tutorials:hover img,
-a#tutorials:focus img,
-a#tutorials:active img { background-image : url(../graphics/icons/ctool/tutorials48.gif); }
-
-a#samples img { background-image : url(../graphics/icons/etool/samples48.gif); }
-a#samples:hover img,
-a#samples:focus img,
-a#samples:active img { background-image : url(../graphics/icons/ctool/samples48.gif); }
-
-a#whatsnew img { background-image : url(../graphics/icons/etool/whatsnew48.gif); }
-a#whatsnew:hover img,
-a#whatsnew:focus img,
-a#whatsnew:active img { background-image : url(../graphics/icons/ctool/whatsnew48.gif); }
-
-a#firststeps img { background-image : url(../graphics/icons/etool/firsteps48.gif); }
-a#firststeps:hover img,
-a#firststeps:focus img,
-a#firststeps:active img { background-image : url(../graphics/icons/ctool/firsteps48.gif); }
-
-a#webresources img { background-image : url(../graphics/icons/etool/webrsrc48.gif); }
-a#webresources:hover img,
-a#webresources:focus img,
-a#webresources:active img { background-image : url(../graphics/icons/ctool/webrsrc48.gif); }
-
-a#migrate img { background-image : url(../graphics/icons/etool/migrate48.gif); }
-a#migrate:hover img,
-a#migrate:focus img,
-a#migrate:active img { background-image : url(../graphics/icons/ctool/migrate48.gif); }
-
-a#workbench img { background-image : url(../graphics/icons/etool/wb48.gif); }
-a#workbench:hover img,
-a#workbench:focus img,
-a#workbench:active img { background-image : url(../graphics/icons/ctool/wb48.gif); }
-
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/tutorials.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/tutorials.css
deleted file mode 100644
index e002e1b..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/tutorials.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
-	background-image : url(../graphics/contentpage/tutorials_wtr.jpg);
-}
-
-/* show the "selected" image for this page */
-#navigation-links a#tutorials img, #navigation-links a#tutorials:hover img { 
-	background-image : url(../graphics/icons/ctool/tutorials48sel.gif); 
-}
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/webresources.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/webresources.css
deleted file mode 100644
index 6b6c99d..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/webresources.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
-	background-image : url(../graphics/contentpage/webrsrc_wtr.jpg);
-}
-
-/* show the "selected" image for this page */
-#navigation-links a#webresources img, #navigation-links a#webresources:hover img { 
-	background-image : url(../graphics/icons/ctool/webrsrc48sel.gif); 
-}
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/whatsnew.css b/org.eclipse.ui.intro.universal/themes/purpleMesh/html/whatsnew.css
deleted file mode 100644
index 3dad1ff..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/html/whatsnew.css
+++ /dev/null
@@ -1,14 +0,0 @@
-body {
-	background-image : url(../graphics/contentpage/whatsnew_wtr.jpg);
-}
-
-/* show the "selected" image for this page */
-#navigation-links a#whatsnew img, #navigation-links a#whatsnew:hover img { 
-	background-image : url(../graphics/icons/ctool/whatsnew48sel.gif); 
-}
-
-/*
- * Default images for content links in this page.
- */
-.content-link img { background-image : url(../graphics/icons/obj48/new_obj.gif); }
-.content-link:hover img { background-image : url(../graphics/icons/obj48/newhov_obj.gif); }
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/preview.png b/org.eclipse.ui.intro.universal/themes/purpleMesh/preview.png
deleted file mode 100644
index e280b53..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/preview.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/firststeps.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/firststeps.properties
deleted file mode 100644
index 3f144a8..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/firststeps.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-firststeps.page-content.layout.ncolumns = 2
-firstseps.subtitle-id = firststeps/page-content/page-title
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/migrate.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/migrate.properties
deleted file mode 100644
index 9d021b0..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/migrate.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-migrate.page-content.layout.ncolumns = 2
-migrate.subtitle-id = migrate/page-content/page-title
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/overview.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/overview.properties
deleted file mode 100644
index e9dde3a..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/overview.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-overview.page-content.layout.ncolumns = 2
-
-overview.subtitle-id = overview/page-content/page-title
-overview.description-id = overview/page-content/page-description
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/root.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/root.properties
deleted file mode 100644
index c752055..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/root.properties
+++ /dev/null
@@ -1,37 +0,0 @@
-theme=true
-root.links-background.page-links.overview.link-icon = ../graphics/icons/etool/overview72.gif
-root.links-background.page-links.tutorials.link-icon = ../graphics/icons/etool/tutorials72.gif
-root.links-background.page-links.samples.link-icon= ../graphics/icons/etool/samples72.gif
-root.links-background.page-links.whatsnew.link-icon = ../graphics/icons/etool/whatsnew72.gif
-root.links-background.page-links.firststeps.link-icon = ../graphics/icons/etool/firsteps72.gif
-root.links-background.page-links.webresources.link-icon = ../graphics/icons/etool/webrsrc72.gif
-root.action-links.workbench.link-icon = ../graphics/icons/etool/wb48.gif
-
-root.links-background.page-links.overview.hover-icon = ../graphics/icons/ctool/overview72.gif
-root.links-background.page-links.tutorials.hover-icon = ../graphics/icons/ctool/tutorials72.gif
-root.links-background.page-links.samples.hover-icon = ../graphics/icons/ctool/samples72.gif
-root.links-background.page-links.whatsnew.hover-icon = ../graphics/icons/ctool/whatsnew72.gif
-root.links-background.page-links.firststeps.link-icon = ../graphics/icons/etool/firsteps72.gif
-root.links-background.page-links.webresources.link-icon = ../graphics/icons/etool/webrsrc72.gif
-root.action-links.workbench.hover-icon = ../graphics/icons/ctool/wb48.gif
-
-
-root.links-background.page-links.overview.small-link-icon = ../graphics/icons/etool/overview48.gif
-root.links-background.page-links.tutorials.small-link-icon = ../graphics/icons/etool/tutorials48.gif
-root.links-background.page-links.samples.small-link-icon = ../graphics/icons/etool/samples48.gif
-root.links-background.page-links.whatsnew.small-link-icon = ../graphics/icons/etool/whatsnew48.gif
-root.links-background.page-links.firststeps.small-link-icon = ../graphics/icons/etool/firsteps48.gif
-root.links-background.page-links.webresources.small-link-icon = ../graphics/icons/etool/webrsrc48.gif
-root.action-links.workbench.small-link-icon = ../graphics/icons/etool/wb48.gif
-
-root.links-background.page-links.overview.small-hover-icon = ../graphics/icons/ctool/overview48.gif
-root.links-background.page-links.tutorials.small-hover-icon = ../graphics/icons/ctool/tutorials48.gif
-root.links-background.page-links.samples.small-hover-icon = ../graphics/icons/ctool/samples48.gif
-root.links-background.page-links.whatsnew.small-hover-icon = ../graphics/icons/ctool/whatsnew48.gif
-root.links-background.page-links.firststeps.small-hover-icon = ../graphics/icons/ctool/firsteps48.gif
-root.links-background.page-links.webresources.small-hover-icon = ../graphics/icons/ctool/webrsrc48.gif
-root.action-links.workbench.small-hover-icon = ../graphics/icons/ctool/wb48.gif
-
-root.layout.ncolumns = 1
-root.links-background.page-links.layout.hspacing = 40
-root.layout.vspacing = 35
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/samples.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/samples.properties
deleted file mode 100644
index 773f538..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/samples.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-samples.page-content.layout.vspacing = 40
-samples.page-content.layout.ncolumns = 2
-
-description-style-id = group-description
-samples.subtitle-id = samples/page-content/page-title
-samples.description-id = samples/page-content/page-description
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/standby.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/standby.properties
deleted file mode 100644
index 6df036e..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/standby.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-theme=true
-standby.links-background.page-links.overview.link-icon = ../graphics/icons/etool/overview72.gif
-standby.links-background.page-links.tutorials.link-icon = ../graphics/icons/etool/tutorials72.gif
-standby.links-background.page-links.samples.link-icon= ../graphics/icons/etool/samples72.gif
-standby.links-background.page-links.whatsnew.link-icon = ../graphics/icons/etool/whatsnew72.gif
-standby.links-background.page-links.firststeps.link-icon = ../graphics/icons/etool/firsteps72.gif
-standby.links-background.page-links.webresources.link-icon = ../graphics/icons/etool/webrsrc72.gif
-
-
-standby.links-background.page-links.overview.hover-icon = ../graphics/icons/ctool/overview72.gif
-standby.links-background.page-links.tutorials.hover-icon = ../graphics/icons/ctool/tutorials72.gif
-standby.links-background.page-links.samples.hover-icon = ../graphics/icons/ctool/samples72.gif
-standby.links-background.page-links.whatsnew.hover-icon = ../graphics/icons/ctool/whatsnew72.gif
-standby.links-background.page-links.firststeps.link-icon = ../graphics/icons/ctool/firsteps72.gif
-standby.links-background.page-links.webresources.link-icon = ../graphics/icons/ctool/webrsrc72.gif
-
-standby.links-background.page-links.layout.vspacing = 30
-standby.layout.vspacing = 35
-standby.show-link-description = false
-standby.show-home-page-navigation = false
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/tutorials.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/tutorials.properties
deleted file mode 100644
index 2a8ba0f..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/tutorials.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-
-tutorials.page-content.layout.vspacing = 40
-tutorials.page-content.layout.ncolumns = 2
-
-tutorials.subtitle-id = tutorials/page-content/page-title
-tutorials.description-id = tutorials/page-content/page-description
\ No newline at end of file
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/webresources.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/webresources.properties
deleted file mode 100644
index 39d5a85..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/webresources.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-
-webresources.page-content.layout.vspacing = 40 
-webresources.page-content.layout.ncolumns = 2
-
-webresources.subtitle-id = news/page-content/page-title
diff --git a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/whatsnew.properties b/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/whatsnew.properties
deleted file mode 100644
index 853dcca..0000000
--- a/org.eclipse.ui.intro.universal/themes/purpleMesh/swt/whatsnew.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-theme = true
-whatsnew.page-content.layout.vspacing = 40 
-whatsnew.page-content.layout.ncolumns = 2
-whatsnew.page-content.content-divider.layout.colspan = 2
-
-whatsnew.separator.fg =  #dfdfe4
-
-whatsnew.link-icon = ../graphics/icons/obj48/new_obj.gif
-whatsnew.hover-icon = ../graphics/icons/obj48/newhov_obj.gif
-
-whatsnew.subtitle-id = whatsnew/page-content/page-title
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/grey_callout.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/grey_callout.gif
deleted file mode 100644
index e8877a1..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/grey_callout.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_high.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_high.gif
deleted file mode 100644
index 144af18..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_high.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_med.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_med.gif
deleted file mode 100644
index 1ed93fa..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/ov_med.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_high.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_high.gif
deleted file mode 100644
index 4059b1c..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_high.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_med.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_med.gif
deleted file mode 100644
index a939a97..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/tu-sa_med.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_high.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_high.gif
deleted file mode 100644
index 492f2b1..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_high.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_med.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_med.gif
deleted file mode 100644
index fcfcac8..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wn-fs_med.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_high.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_high.gif
deleted file mode 100644
index 9d97731..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_high.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_med.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_med.gif
deleted file mode 100644
index 551a32c..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/contentpage/wr-mi_med.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed.gif
deleted file mode 100644
index 21f09b1..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed_hov.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed_hov.gif
deleted file mode 100644
index dfef2a7..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_closed_hov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open.gif
deleted file mode 100644
index e96eb25..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open_hov.gif b/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open_hov.gif
deleted file mode 100644
index 9fafae4..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/graphics/icons/ctool/widget_open_hov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro.universal/themes/shared/html/shared.css b/org.eclipse.ui.intro.universal/themes/shared/html/shared.css
deleted file mode 100644
index ab4c019..0000000
--- a/org.eclipse.ui.intro.universal/themes/shared/html/shared.css
+++ /dev/null
@@ -1,128 +0,0 @@
-/* 
- * This file contains styles that are shared between multiple themes.
- */
-
-/* Folding section settings. */
-
-/* The foldable part of the section. It is off by default. */
-.section-body {
-	display: none;
-}
-
-/* The label part of the folding section */
-.section-title-link .section-title {
-	display : inline;
-	font-size : 10pt;
-}
-
-.section-title-link .section-title,
-.section-title-link:focus .section-title {
-	color: #00517d;
-}
-
-.section-title-link {
-	vertical-align: bottom;
-}
-
-/* The 'open' toggle image part of the folding section. */
-#page-content .section-title-link .section-toggle-image-open {
-	display: none;
-	clear: right;
-	width : 7px;
-	height : 7px;
-	background-image : url(../graphics/icons/ctool/widget_open.gif);
-}
-
-/* The 'closed' toggle image part of the folding section. */
-#page-content .section-title-link .section-toggle-image-closed {
-	display: inline;
-	clear: right;
-	width : 7px;
-	height : 7px;
-	background-image : url(../graphics/icons/ctool/widget_closed.gif);
-}
-
-/*
- * Section title during hover.
- */
-.section-title-link:hover .section-title,
-.section-title-link:active .section-title {
-	color: #6699cc;
-}
-
-/*
- * Toggle image during hover.
- */
-#page-content .section-title-link:hover .section-toggle-image-closed,
-#page-content .section-title-link:active .section-toggle-image-closed {
-	background-image : url(../graphics/icons/ctool/widget_closed_hov.gif);
-}
-#page-content .section-title-link:hover .section-toggle-image-open,
-#page-content .section-title-link:active .section-toggle-image-open {
-	background-image : url(../graphics/icons/ctool/widget_open_hov.gif);
-}
-
-/* 
- * Importance highlights for page content. Gradient image is
- * tiled vertically. In addition, background color is applied
- * to fill in the areas not covered by the gradient image.
- */
-.importance-high,
-.importance-low,
-.importance-callout,
-.importance-medium,
-.importance-new {
-	background-position: top left;
-	background-repeat: repeat-y;
-}
-
-body #overview .importance-high {
-	background-color: #fff7da;
-	background-image: url("../graphics/contentpage/ov_high.gif");
-}
-
-body #overview .importance-medium {
-	background-color: #fffbec;
-	background-image: url("../graphics/contentpage/ov_med.gif");
-}
-
-body #tutorials .importance-high,
-body #samples .importance-high {
-	background-color: #e1eaf2;
-	background-image: url("../graphics/contentpage/tu-sa_high.gif");
-}
-
-body #tutorials .importance-medium,
-body #samples .importance-medium {
-	background-color: #f0f4f8;
-	background-image: url("../graphics/contentpage/tu-sa_med.gif");
-}
-
-body #whatsnew .importance-high,
-body #firststeps .importance-high {
-	background-color: #f3ecdb;
-	background-image: url("../graphics/contentpage/wn-fs_high.gif");
-}
-
-body #whatsnew .importance-medium,
-body #firststeps .importance-medium {
-	background-color: #f7f2e7;
-	background-image: url("../graphics/contentpage/wn-fs_med.gif");
-}
-
-body #webresources .importance-high,
-body #migrate .importance-high {
-	background-color: #ecf4d7;
-	background-image: url("../graphics/contentpage/wr-mi_high.gif");
-}
-
-body #webresources .importance-medium,
-body #migrate .importance-medium {
-	background-color: #f5f9eb;
-	background-image: url("../graphics/contentpage/wr-mi_med.gif");
-}
-
-.importance-callout {
-	background-color: #eeeeee;
-	background-image: url("../graphics/contentpage/grey_callout.gif");
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/.classpath b/org.eclipse.ui.intro/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/org.eclipse.ui.intro/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.ui.intro/.cvsignore b/org.eclipse.ui.intro/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.ui.intro/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.ui.intro/.options b/org.eclipse.ui.intro/.options
deleted file mode 100644
index d58184c..0000000
--- a/org.eclipse.ui.intro/.options
+++ /dev/null
@@ -1,29 +0,0 @@
-# Debugging options for the org.eclipse.ui intro.
-
-# Master flag for all org.eclipse.ui.intro plugin debug options.
-org.eclipse.ui.intro/debug = true
-
-# Enable logging of information messages in the plugin. By default, info
-# messages are not logged. Setting this option to true will enable logging
-# trace information messages.
-org.eclipse.ui.intro/trace/logInfo = true
-
-# Enable logging of performance messages in the plugin. By default, performance
-# messages are not logged. Setting this option to true will enable logging
-# trace information messages. (note: enabling info logging does not enable
-# this flag.)
-org.eclipse.ui.intro/trace/logPerformance = false
-
-# Enable printing the generated HTML to the console.  By default, the HTML
-# is not printed.  By setting this option to true, the HTML for each 
-# dynamic page will be printed to the console when the page is loaded in the browser.  
-org.eclipse.ui.intro/trace/printHTML = false
-
-# Performance flags used by the Performance framework to report failures 
-# of specific thresholds.  
-
-# Time to create and display the full Intro view.
-# org.eclipse.ui.intro/perf/createView = 1000
-
-# Time needed to switch between Intro standby states.
-# org.eclipse.ui.intro/perf/setStandbyState = 300
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/.project b/org.eclipse.ui.intro/.project
deleted file mode 100644
index fd153d0..0000000
--- a/org.eclipse.ui.intro/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.intro</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.ui.intro/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ui.intro/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7e207cb..0000000
--- a/org.eclipse.ui.intro/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,249 +0,0 @@
-#Tue Jan 31 15:49:59 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,INTRO,DONOW
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=0
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=110
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=4
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
diff --git a/org.eclipse.ui.intro/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.ui.intro/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 3034211..0000000
--- a/org.eclipse.ui.intro/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-#Sat Nov 12 22:58:47 EST 2005
-eclipse.preferences.version=1
-formatter_profile=_UA
-formatter_settings_version=9
-internal.default.compliance=user
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates/>
diff --git a/org.eclipse.ui.intro/.settings/org.eclipse.pde.prefs b/org.eclipse.ui.intro/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index a936c0d..0000000
--- a/org.eclipse.ui.intro/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Fri May 20 10:41:58 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=2
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=2
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.ui.intro/META-INF/MANIFEST.MF b/org.eclipse.ui.intro/META-INF/MANIFEST.MF
deleted file mode 100644
index db97dfd..0000000
--- a/org.eclipse.ui.intro/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin_name
-Bundle-SymbolicName: org.eclipse.ui.intro; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.ui.internal.intro.impl.IntroPlugin
-Bundle-Vendor: %provider_name
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.intro.impl;x-friends:="org.eclipse.ui.intro.universal",
- org.eclipse.ui.internal.intro.impl.html;x-internal:=true,
- org.eclipse.ui.internal.intro.impl.model;x-friends:="org.eclipse.ua.tests,org.eclipse.ui.intro.universal",
- org.eclipse.ui.internal.intro.impl.model.loader;x-friends:="org.eclipse.ua.tests,org.eclipse.ui.intro.universal",
- org.eclipse.ui.internal.intro.impl.model.url;x-internal:=true,
- org.eclipse.ui.internal.intro.impl.model.util;x-internal:=true,
- org.eclipse.ui.internal.intro.impl.model.viewer;x-internal:=true,
- org.eclipse.ui.internal.intro.impl.parts;x-internal:=true,
- org.eclipse.ui.internal.intro.impl.presentations;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.intro.impl.swt;x-internal:=true,
- org.eclipse.ui.internal.intro.impl.util;x-internal:=true,
- org.eclipse.ui.intro.config
-Require-Bundle: org.apache.lucene;bundle-version="[1.4.3,2.0.0)";resolution:=optional,
- org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.help;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.help.base;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
diff --git a/org.eclipse.ui.intro/about.html b/org.eclipse.ui.intro/about.html
deleted file mode 100644
index 3989915..0000000
--- a/org.eclipse.ui.intro/about.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>March 23, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Third Party Content</h3>
-
-<p>The Content includes items that have been sourced from third parties as follows:</p>
-
-<h4>XHTML DTDs</h4>
-
-<p>The Content includes eight DTD files located in the &quot;dtds&quot; directory of the plug-in (&quot;XHTML DTDs&quot;).   The XHTML DTDs are made available by the
-<a href="http://www.w3c.org/" target="_blank">World Wide Web Consortium</a> at
-<a href="http://www.w3.org/TR/xhtml1/#dtds" target="_blank">http://www.w3.org/TR/xhtml1/#dtds</a>.</p>
-
-<p>Your use of the XHTML DTDs is subject to the terms and conditions of the W3C<sup>&reg;</sup> Software Notice and License.  A copy of the license is contained
-in the file <a href="about_files/copyright-software-19980720.htm" target="_blank">about_files/copyright-software-19980720.htm</a> and is also available at
-<a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720" target="_blank">http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>.</p>
-
-<small>W3C<sup>®</sup> is a trademark (registered in numerous countries) of the <a href="http://www.w3.org/" target="_blank">World Wide Web Consortium;</a> marks of <a
-    href="http://www.w3.org/" target="_blank">W3C</a> are registered and held by its host institutions <a href="http://www.lcs.mit.edu" target="_blank">MIT</a>, <a
-    href="http://www.ercim.org/" target="_blank">ERCIM,</a> and <a href="http://www.keio.ac.jp/" target="_blank">Keio</a>.</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/about_files/copyright-software-19980720.htm b/org.eclipse.ui.intro/about_files/copyright-software-19980720.htm
deleted file mode 100644
index 463ccf3..0000000
--- a/org.eclipse.ui.intro/about_files/copyright-software-19980720.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<meta http-equiv="Content-Type"
-content="text/html; charset=iso-8859-1" />
-<link rel="stylesheet" type="text/css"
-href="/StyleSheets/base.css" />
-<title>W3C IPR SOFTWARE NOTICE</title>
-</head>
-<body text="#000000" bgcolor="#FFFFFF">
-<h1>W3C<sup>&reg;</sup> SOFTWARE NOTICE AND LICENSE</h1>
-
-<h3>Copyright &copy; 1994-2002 <a href="http://www.w3.org/">World
-Wide Web Consortium</a>, (<a
-href="http://www.lcs.mit.edu/">Massachusetts Institute of
-Technology</a>, <a href="http://www.inria.fr/">Institut National de
-Recherche en Informatique et en Automatique</a>, <a
-href="http://www.keio.ac.jp/">Keio University</a>). All Rights
-Reserved. http://www.w3.org/Consortium/Legal/</h3>
-
-<p>This W3C work (including software, documents, or other related
-items) is being provided by the copyright holders under the
-following license. By obtaining, using and/or copying this work,
-you (the licensee) agree that you have read, understood, and will
-comply with the following terms and conditions:</p>
-
-<p>Permission to use, copy, modify, and distribute this software
-and its documentation, with or without modification,&nbsp; for any
-purpose and without fee or royalty is hereby granted, provided that
-you include the following on ALL copies of the software and
-documentation or portions thereof, including modifications, that
-you make:</p>
-
-<ol>
-<li>The full text of this NOTICE in a location viewable to users of
-the redistributed or derivative work.</li>
-
-<li>Any pre-existing intellectual property disclaimers, notices, or
-terms and conditions. If none exist, a short notice of the
-following form (hypertext is preferred, text is permitted) should
-be used within the body of any redistributed or derivative code:
-"Copyright &copy; [$date-of-software] <a
-href="http://www.w3.org/">World Wide Web Consortium</a>, (<a
-href="http://www.lcs.mit.edu/">Massachusetts Institute of
-Technology</a>, <a href="http://www.inria.fr/">Institut National de
-Recherche en Informatique et en Automatique</a>, <a
-href="http://www.keio.ac.jp/">Keio University</a>). All Rights
-Reserved. http://www.w3.org/Consortium/Legal/"</li>
-
-<li>Notice of any changes or modifications to the W3C files,
-including the date changes were made. (We recommend you provide
-URIs to the location from which the code is derived.)</li>
-</ol>
-
-<p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
-COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
-MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
-USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
-PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
-
-<p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
-SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
-SOFTWARE OR DOCUMENTATION.</p>
-
-<p>The name and trademarks of copyright holders may NOT be used in
-advertising or publicity pertaining to the software without
-specific, written prior permission. Title to copyright in this
-software and any associated documentation will at all times remain
-with copyright holders.</p>
-
-<p>____________________________________</p>
-
-<p>This formulation of W3C's notice and license became active on
-August 14 1998 so as to improve compatibility with GPL. This
-version ensures that W3C software licensing terms are no more
-restrictive than GPL and consequently W3C software may be
-distributed in GPL packages. See the <a
-href="copyright-software-19980519.html">older formulation</a> for
-the policy prior to this date. Please see our <a
-href="IPR-FAQ.html">Copyright FAQ</a> for common questions about
-using materials from our site, including specific terms and
-conditions for packages like libwww, Amaya, and Jigsaw. Other
-questions about this notice can be directed to <a
-href="mailto:site-policy@w3.org">site-policy@w3.org</a>.<br />
-&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<address><a href="../../Help/Webmaster.html">webmaster</a><br />
- (last updated $Date: 2002/02/13 14:08:32 $)</address>
-</body>
-</html>
-
diff --git a/org.eclipse.ui.intro/build.properties b/org.eclipse.ui.intro/build.properties
deleted file mode 100644
index 3815cc2..0000000
--- a/org.eclipse.ui.intro/build.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-bin.includes = plugin.xml,\
-               .,\
-               icons/,\
-               plugin.properties,\
-               about.html,\
-               empty_swt.properties,\
-               .options,\
-               about_files/,\
-               dtds/,\
-               META-INF/,\
-               invalidPage/,\
-               javascript/
-
-src.includes = schema/,\
-               about.html,\
-               .options
diff --git a/org.eclipse.ui.intro/component.xml b/org.eclipse.ui.intro/component.xml
deleted file mode 100644
index 5e10619..0000000
--- a/org.eclipse.ui.intro/component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="UI Intro"><description url=""></description><component-depends unrestricted="false"></component-depends><plugin id="org.eclipse.ui.intro" fragment="false"/><package name="org.eclipse.ui.intro.config"><type name="IntroURLFactory" implement="false" subclass="false" instantiate="false"/><type name="IIntroAction" instantiate="false"/><type name="IIntroContentProvider" instantiate="false"/><type name="IIntroXHTMLContentProvider" instantiate="false"/><type name="IIntroContentProviderSite" instantiate="false"/><type name="IStandbyContentPart" instantiate="false"/><type name="IIntroURL" instantiate="false"/><type name="CustomizableIntroPart" implement="false" subclass="false" instantiate="false"/></package></component>
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-lat1.ent b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-lat1.ent
deleted file mode 100644
index ffee223..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-lat1.ent
+++ /dev/null
@@ -1,196 +0,0 @@
-<!-- Portions (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-    <!ENTITY % HTMLlat1 PUBLIC
-       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
-    %HTMLlat1;
--->
-
-<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
-                                  U+00A0 ISOnum -->
-<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
-                                  U+00A6 ISOnum -->
-<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
-                                  U+00A8 ISOdia -->
-<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
-                                  = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not    "&#172;"> <!-- not sign = angled dash,
-                                  U+00AC ISOnum -->
-<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
-                                  U+00AD ISOnum -->
-<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
-                                  U+00AE ISOnum -->
-<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
-                                  = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
-                                  U+00B1 ISOnum -->
-<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
-                                  = squared, U+00B2 ISOnum -->
-<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
-                                  = cubed, U+00B3 ISOnum -->
-<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
-                                  U+00B4 ISOdia -->
-<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
-                                  U+00B6 ISOnum -->
-<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
-                                  = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
-                                  U+00B9 ISOnum -->
-<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
-                                  U+00BA ISOnum -->
-<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
-                                  = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
-                                  = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
-                                  = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
-                                  = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "&#191;"> <!-- inverted question mark
-                                  = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
-                                  = latin capital letter A grave,
-                                  U+00C0 ISOlat1 -->
-<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
-                                  U+00C1 ISOlat1 -->
-<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
-                                  U+00C2 ISOlat1 -->
-<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
-                                  U+00C3 ISOlat1 -->
-<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
-                                  U+00C4 ISOlat1 -->
-<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
-                                  = latin capital letter A ring,
-                                  U+00C5 ISOlat1 -->
-<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
-                                  = latin capital ligature AE,
-                                  U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
-                                  U+00C7 ISOlat1 -->
-<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
-                                  U+00C8 ISOlat1 -->
-<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
-                                  U+00C9 ISOlat1 -->
-<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
-                                  U+00CA ISOlat1 -->
-<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
-                                  U+00CB ISOlat1 -->
-<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
-                                  U+00CC ISOlat1 -->
-<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
-                                  U+00CD ISOlat1 -->
-<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
-                                  U+00CE ISOlat1 -->
-<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
-                                  U+00CF ISOlat1 -->
-<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
-                                  U+00D1 ISOlat1 -->
-<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
-                                  U+00D2 ISOlat1 -->
-<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
-                                  U+00D3 ISOlat1 -->
-<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
-                                  U+00D4 ISOlat1 -->
-<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
-                                  U+00D5 ISOlat1 -->
-<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
-                                  U+00D6 ISOlat1 -->
-<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
-                                  = latin capital letter O slash,
-                                  U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
-                                  U+00D9 ISOlat1 -->
-<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
-                                  U+00DA ISOlat1 -->
-<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
-                                  U+00DB ISOlat1 -->
-<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
-                                  U+00DC ISOlat1 -->
-<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
-                                  U+00DD ISOlat1 -->
-<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
-                                  U+00DE ISOlat1 -->
-<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
-                                  U+00DF ISOlat1 -->
-<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
-                                  = latin small letter a grave,
-                                  U+00E0 ISOlat1 -->
-<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
-                                  U+00E1 ISOlat1 -->
-<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
-                                  U+00E2 ISOlat1 -->
-<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
-                                  U+00E3 ISOlat1 -->
-<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
-                                  U+00E4 ISOlat1 -->
-<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
-                                  = latin small letter a ring,
-                                  U+00E5 ISOlat1 -->
-<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
-                                  = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
-                                  U+00E7 ISOlat1 -->
-<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
-                                  U+00E8 ISOlat1 -->
-<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
-                                  U+00E9 ISOlat1 -->
-<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
-                                  U+00EA ISOlat1 -->
-<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
-                                  U+00EB ISOlat1 -->
-<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
-                                  U+00EC ISOlat1 -->
-<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
-                                  U+00ED ISOlat1 -->
-<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
-                                  U+00EE ISOlat1 -->
-<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
-                                  U+00EF ISOlat1 -->
-<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
-                                  U+00F1 ISOlat1 -->
-<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
-                                  U+00F2 ISOlat1 -->
-<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
-                                  U+00F3 ISOlat1 -->
-<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
-                                  U+00F4 ISOlat1 -->
-<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
-                                  U+00F5 ISOlat1 -->
-<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
-                                  U+00F6 ISOlat1 -->
-<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
-                                  = latin small letter o slash,
-                                  U+00F8 ISOlat1 -->
-<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
-                                  U+00F9 ISOlat1 -->
-<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
-                                  U+00FA ISOlat1 -->
-<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
-                                  U+00FB ISOlat1 -->
-<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
-                                  U+00FC ISOlat1 -->
-<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
-                                  U+00FD ISOlat1 -->
-<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
-                                  U+00FE ISOlat1 -->
-<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
-                                  U+00FF ISOlat1 -->
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-special.ent b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-special.ent
deleted file mode 100644
index ca358b2..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-special.ent
+++ /dev/null
@@ -1,80 +0,0 @@
-<!-- Special characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLspecial PUBLIC
-        "-//W3C//ENTITIES Special for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
-     %HTMLspecial;
--->
-
-<!-- Portions (C) International Organization for Standardization 1986:
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-
-<!-- Relevant ISO entity set is given unless names are newly introduced.
-     New names (i.e., not in ISO 8879 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY quot    "&#34;"> <!--  quotation mark, U+0022 ISOnum -->
-<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->
-<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->
-<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
-<!ENTITY apos	 "&#39;"> <!--  apostrophe = APL quote, U+0027 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
-                                    U+0152 ISOlat2 -->
-<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
-                                    U+0160 ISOlat2 -->
-<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
-                                    U+0161 ISOlat2 -->
-<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
-                                    U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
-                                    U+02C6 ISOpub -->
-<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
-                                    U+200C NEW RFC 2070 -->
-<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
-                                    U+2018 ISOnum -->
-<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
-                                    U+2019 ISOnum -->
-<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
-                                    U+201C ISOnum -->
-<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
-                                    U+201D ISOnum -->
-<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
-<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
-                                    U+2039 ISO proposed -->
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
-                                    U+203A ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-
-<!-- Currency Symbols -->
-<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-symbol.ent b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-symbol.ent
deleted file mode 100644
index 63c2abf..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml-symbol.ent
+++ /dev/null
@@ -1,237 +0,0 @@
-<!-- Mathematical, Greek and Symbolic characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLsymbol PUBLIC
-        "-//W3C//ENTITIES Symbols for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
-     %HTMLsymbol;
--->
-
-<!-- Portions (C) International Organization for Standardization 1986:
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-
-<!-- Relevant ISO entity set is given unless names are newly introduced.
-     New names (i.e., not in ISO 8879 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- Latin Extended-B -->
-<!ENTITY fnof     "&#402;"> <!-- latin small letter f with hook = function
-                                    = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
-                                    U+0393 ISOgrk3 -->
-<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
-                                    U+0394 ISOgrk3 -->
-<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
-                                    U+0398 ISOgrk3 -->
-<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lamda,
-                                    U+039B ISOgrk3 -->
-<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
-                                    U+03A3 ISOgrk3 -->
-<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
-                                    U+03A5 ISOgrk3 -->
-<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
-                                    U+03A6 ISOgrk3 -->
-<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
-                                    U+03A8 ISOgrk3 -->
-<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
-                                    U+03A9 ISOgrk3 -->
-
-<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
-                                    U+03B1 ISOgrk3 -->
-<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
-                                    U+03B3 ISOgrk3 -->
-<!ENTITY delta    "&#948;"> <!-- greek small letter delta,
-                                    U+03B4 ISOgrk3 -->
-<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
-                                    U+03B5 ISOgrk3 -->
-<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta    "&#952;"> <!-- greek small letter theta,
-                                    U+03B8 ISOgrk3 -->
-<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
-                                    U+03BA ISOgrk3 -->
-<!ENTITY lambda   "&#955;"> <!-- greek small letter lamda,
-                                    U+03BB ISOgrk3 -->
-<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
-                                    U+03C2 ISOgrk3 -->
-<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
-                                    U+03C3 ISOgrk3 -->
-<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
-                                    U+03C5 ISOgrk3 -->
-<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega    "&#969;"> <!-- greek small letter omega,
-                                    U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "&#977;"> <!-- greek theta symbol,
-                                    U+03D1 NEW -->
-<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
-                                    U+03D2 NEW -->
-<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
-                                     U+2022 ISOpub  -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
-                                     U+2026 ISOpub  -->
-<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
-                                     U+2033 ISOtech -->
-<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
-                                     U+203E NEW -->
-<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
-                                     = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image    "&#8465;"> <!-- black-letter capital I = imaginary part,
-                                     U+2111 ISOamso -->
-<!ENTITY real     "&#8476;"> <!-- black-letter capital R = real part symbol,
-                                     U+211C ISOamso -->
-<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym  "&#8501;"> <!-- alef symbol = first transfinite cardinal,
-                                     U+2135 NEW -->
-<!-- alef symbol is NOT the same as hebrew letter alef,
-     U+05D0 although the same glyph could be used to depict both characters -->
-
-<!-- Arrows -->
-<!ENTITY larr     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
-                                     = carriage return, U+21B5 NEW -->
-<!ENTITY lArr     "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->
-<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
-    but also does not have any other character for that function. So lArr can
-    be used for 'is implied by' as ISOtech suggests -->
-<!ENTITY uArr     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr     "&#8658;"> <!-- rightwards double arrow,
-                                     U+21D2 ISOtech -->
-<!-- Unicode does not say this is the 'implies' character but does not have 
-     another character with this function so rArr can be used for 'implies'
-     as ISOtech suggests -->
-<!ENTITY dArr     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
-                                     U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
-<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
-<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty    "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->
-<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
-                                     U+2207 ISOtech -->
-<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
-<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
-<!ENTITY prod     "&#8719;"> <!-- n-ary product = product sign,
-                                     U+220F ISOamsb -->
-<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
-     the same glyph might be used for both -->
-<!ENTITY sum      "&#8721;"> <!-- n-ary summation, U+2211 ISOamsb -->
-<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
-     though the same glyph might be used for both -->
-<!ENTITY minus    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
-                                     U+221A ISOtech -->
-<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
-<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
-<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
-<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
-<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim      "&#8764;"> <!-- tilde operator = varies with = similar to,
-                                     U+223C ISOtech -->
-<!-- tilde operator is NOT the same character as the tilde, U+007E,
-     although the same glyph might be used to represent both  -->
-<!ENTITY cong     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
-                                     U+2248 ISOamsr -->
-<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
-<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
-                                     U+2265 ISOtech -->
-<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->
-<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
-                                     U+2287 ISOtech -->
-<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
-                                     U+2295 ISOamsb -->
-<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
-                                     U+2297 ISOamsb -->
-<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
-                                     U+22A5 ISOtech -->
-<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil    "&#8968;"> <!-- left ceiling = APL upstile,
-                                     U+2308 ISOamsc  -->
-<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
-<!ENTITY lfloor   "&#8970;"> <!-- left floor = APL downstile,
-                                     U+230A ISOamsc  -->
-<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
-<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,
-                                     U+2329 ISOtech -->
-<!-- lang is NOT the same character as U+003C 'less than sign' 
-     or U+2039 'single left-pointing angle quotation mark' -->
-<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,
-                                     U+232A ISOtech -->
-<!-- rang is NOT the same character as U+003E 'greater than sign' 
-     or U+203A 'single right-pointing angle quotation mark' -->
-
-<!-- Geometric Shapes -->
-<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
-                                     U+2663 ISOpub -->
-<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
-                                     U+2665 ISOpub -->
-<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml.soc b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml.soc
deleted file mode 100644
index 0624dea..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml.soc
+++ /dev/null
@@ -1,14 +0,0 @@
-OVERRIDE	YES
-        -- Oasis entity catalog for Extensible HTML 1.0 --
-
-PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN"        "xhtml1-strict.dtd"
-PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"  "xhtml1-transitional.dtd"
-PUBLIC  "-//W3C//DTD XHTML 1.0 Frameset//EN"      "xhtml1-frameset.dtd"
-
-        -- ISO latin 1 entity set for Extensible HTML (XML 1.0 format) --
-
-PUBLIC	"-//W3C//ENTITIES Latin 1 for XHTML//EN"  "xhtml-lat1.ent"
-PUBLIC	"-//W3C//ENTITIES Symbols for XHTML//EN" "xhtml-symbol.ent"
-PUBLIC	"-//W3C//ENTITIES Special for XHTML//EN" "xhtml-special.ent"
-
-SGMLDECL "xhtml1.dcl"
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-frameset.dtd b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-frameset.dtd
deleted file mode 100644
index d814a6f..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-frameset.dtd
+++ /dev/null
@@ -1,1235 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Frameset DTD
-
-   This is the same as HTML 4 Frameset except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
-
-   $Revision: 1.26 $
-   $Date: 2002/08/01 18:16:48 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % FrameTarget "NMTOKEN">
-    <!-- render in this frame -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % MultiLengths "CDATA">
-    <!-- comma-separated list of MultiLength -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!-- used for object, applet, img, input and iframe -->
-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
-
-<!-- a color using sRGB: #RRGGBB as Hex values -->
-<!ENTITY % Color "CDATA">
-
-<!-- There are also 16 widely known color names with their sRGB values:
-
-    Black  = #000000    Green  = #008000
-    Silver = #C0C0C0    Lime   = #00FF00
-    Gray   = #808080    Olive  = #808000
-    White  = #FFFFFF    Yellow = #FFFF00
-    Maroon = #800000    Navy   = #000080
-    Red    = #FF0000    Blue   = #0000FF
-    Purple = #800080    Teal   = #008080
-    Fuchsia= #FF00FF    Aqua   = #00FFFF
--->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!-- text alignment for p, div, h1-h6. The default is
-     align="left" for ltr headings, "right" for rtl -->
-
-<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.extra
-   "object | applet | img | map | iframe">
-	
-<!ENTITY % special.basic
-	"br | span | bdo">
-
-<!ENTITY % special
-   "%special.basic; | %special.extra;">
-
-<!ENTITY % fontstyle.extra "big | small | font | basefont">
-
-<!ENTITY % fontstyle.basic "tt | i | b | u
-                      | s | strike ">
-
-<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
-
-<!ENTITY % phrase.extra "sub | sup">
-<!ENTITY % phrase.basic "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym">
-
-<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl | menu | dir">
-<!ENTITY % blocktext "pre | hr | blockquote | address | center">
-
-<!ENTITY % block
-    "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding img, object, applet, big, small,
-     sub, sup, font, or basefont -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
-	   %inline.forms; | %misc.inline;)*">
-
-
-<!-- form uses %Flow; excluding form -->
-
-<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-      table | br | span | bdo | object | applet | img | map |
-      %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!-- the namespace URI designates the document profile -->
-
-<!ELEMENT html (head, frameset)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
-
-<!-- content model is %head.misc; combined with a single
-     title and an optional base element in any order -->
-
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!-- The title element is not considered part of the flow of text.
-       It should be displayed, for example as the page header or
-       window title. Exactly one title is required per document.
-    -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!-- document base URI -->
-
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  id          ID             #IMPLIED
-  href        %URI;          #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- generic metainformation -->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--
-  Relationship values can be used in principle:
-
-   a) for document specific toolbars/menus when used
-      with the link element in document head e.g.
-        start, contents, previous, next, index, end, help
-   b) to link to a separate style sheet (rel="stylesheet")
-   c) to make a link to a script (rel="script")
-   d) by stylesheets to control how collections of
-      html nodes are rendered into printed documents
-   e) to make a link to a printable version of this document
-      e.g. a PostScript or PDF version (rel="alternate" media="print")
--->
-
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- style info, which may include CDATA sections -->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- script statements, which may include CDATA sections -->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  language    CDATA          #IMPLIED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- alternate content container for non script-based rendering -->
-
-<!ELEMENT noscript %Flow;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--======================= Frames =======================================-->
-
-<!-- only one noframes element permitted per document -->
-
-<!ELEMENT frameset (frameset|frame|noframes)*>
-<!ATTLIST frameset
-  %coreattrs;
-  rows        %MultiLengths; #IMPLIED
-  cols        %MultiLengths; #IMPLIED
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  >
-
-<!-- reserved frame names start with "_" otherwise starts with letter -->
-
-<!-- tiled window within frameset -->
-
-<!ELEMENT frame EMPTY>
-<!ATTLIST frame
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  noresize    (noresize)     #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  >
-
-<!-- inline subwindow -->
-
-<!ELEMENT iframe %Flow;>
-<!ATTLIST iframe
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  align       %ImgAlign;     #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!-- alternate content container for non frame-based rendering -->
-
-<!ELEMENT noframes (body)>
-<!ATTLIST noframes
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT body %Flow;>
-<!ATTLIST body
-  %attrs;
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  background  %URI;          #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  text        %Color;        #IMPLIED
-  link        %Color;        #IMPLIED
-  vlink       %Color;        #IMPLIED
-  alink       %Color;        #IMPLIED
-  >
-
-<!ELEMENT div %Flow;>  <!-- generic language/style container -->
-<!ATTLIST div
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--
-  There are six levels of headings from h1 (the most important)
-  to h6 (the least important).
--->
-
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list bullet styles -->
-
-<!ENTITY % ULStyle "(disc|square|circle)">
-
-<!-- Unordered list -->
-
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  type        %ULStyle;     #IMPLIED
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- Ordered list numbering style
-
-    1   arabic numbers      1, 2, 3, ...
-    a   lower alpha         a, b, c, ...
-    A   upper alpha         A, B, C, ...
-    i   lower roman         i, ii, iii, ...
-    I   upper roman         I, II, III, ...
-
-    The style is applied to the sequence number which by default
-    is reset to 1 for the first list item in an ordered list.
--->
-<!ENTITY % OLStyle "CDATA">
-
-<!-- Ordered (numbered) list -->
-
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  type        %OLStyle;      #IMPLIED
-  compact     (compact)      #IMPLIED
-  start       %Number;       #IMPLIED
-  >
-
-<!-- single column list (DEPRECATED) --> 
-<!ELEMENT menu (li)+>
-<!ATTLIST menu
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- multiple column list (DEPRECATED) --> 
-<!ELEMENT dir (li)+>
-<!ATTLIST dir
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
-<!ENTITY % LIStyle "CDATA">
-
-<!-- list item -->
-
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  type        %LIStyle;      #IMPLIED
-  value       %Number;       #IMPLIED
-  >
-
-<!-- definition lists - dt for term, dd for its definition -->
-
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  compact     (compact)      #IMPLIED
-  >
-
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!-- information on author -->
-
-<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  align       (left|center|right) #IMPLIED
-  noshade     (noshade)      #IMPLIED
-  size        %Pixels;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- content is %Inline; excluding 
-        "img|object|applet|big|small|sub|sup|font|basefont" -->
-
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  width       %Number;      #IMPLIED
-  xml:space   (preserve)    #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT blockquote %Flow;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Text alignment ===================================-->
-
-<!-- center content -->
-<!ELEMENT center %Flow;>
-<!ATTLIST center
-  %attrs;
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-
-<!--
-  ins/del are allowed in block and inline content, but its
-  inappropriate to include block content within an ins element
-  occurring in inline content.
--->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!-- content is %Inline; except that anchors shouldn't be nested -->
-
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!ELEMENT span %Inline;> <!-- generic language/style container -->
-<!ATTLIST span
-  %attrs;
-  >
-
-<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!ELEMENT br EMPTY>   <!-- forced line break -->
-<!ATTLIST br
-  %coreattrs;
-  clear       (left|all|right|none) "none"
-  >
-
-<!ELEMENT em %Inline;>   <!-- emphasis -->
-<!ATTLIST em %attrs;>
-
-<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
-<!ATTLIST strong %attrs;>
-
-<!ELEMENT dfn %Inline;>   <!-- definitional -->
-<!ATTLIST dfn %attrs;>
-
-<!ELEMENT code %Inline;>   <!-- program code -->
-<!ATTLIST code %attrs;>
-
-<!ELEMENT samp %Inline;>   <!-- sample -->
-<!ATTLIST samp %attrs;>
-
-<!ELEMENT kbd %Inline;>  <!-- something user would type -->
-<!ATTLIST kbd %attrs;>
-
-<!ELEMENT var %Inline;>   <!-- variable -->
-<!ATTLIST var %attrs;>
-
-<!ELEMENT cite %Inline;>   <!-- citation -->
-<!ATTLIST cite %attrs;>
-
-<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
-<!ATTLIST abbr %attrs;>
-
-<!ELEMENT acronym %Inline;>   <!-- acronym -->
-<!ATTLIST acronym %attrs;>
-
-<!ELEMENT q %Inline;>   <!-- inlined quote -->
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!ELEMENT sub %Inline;> <!-- subscript -->
-<!ATTLIST sub %attrs;>
-
-<!ELEMENT sup %Inline;> <!-- superscript -->
-<!ATTLIST sup %attrs;>
-
-<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
-<!ATTLIST tt %attrs;>
-
-<!ELEMENT i %Inline;>   <!-- italic font -->
-<!ATTLIST i %attrs;>
-
-<!ELEMENT b %Inline;>   <!-- bold font -->
-<!ATTLIST b %attrs;>
-
-<!ELEMENT big %Inline;>   <!-- bigger font -->
-<!ATTLIST big %attrs;>
-
-<!ELEMENT small %Inline;>   <!-- smaller font -->
-<!ATTLIST small %attrs;>
-
-<!ELEMENT u %Inline;>   <!-- underline -->
-<!ATTLIST u %attrs;>
-
-<!ELEMENT s %Inline;>   <!-- strike-through -->
-<!ATTLIST s %attrs;>
-
-<!ELEMENT strike %Inline;>   <!-- strike-through -->
-<!ATTLIST strike %attrs;>
-
-<!ELEMENT basefont EMPTY>  <!-- base font size -->
-<!ATTLIST basefont
-  id          ID             #IMPLIED
-  size        CDATA          #REQUIRED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!ELEMENT font %Inline;> <!-- local change to font -->
-<!ATTLIST font
-  %coreattrs;
-  %i18n;
-  size        CDATA          #IMPLIED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--==================== Object ======================================-->
-<!--
-  object is used to embed objects as part of HTML pages.
-  param elements should precede other content. Parameters
-  can also be expressed as attribute/value pairs on the
-  object element itself when brevity is desired.
--->
-
-<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--
-  param is used to supply a named property value.
-  In XML it would seem natural to follow RDF and support an
-  abbreviated syntax where the param elements are replaced
-  by attribute value pairs on the object start tag.
--->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #REQUIRED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Java applet ==================================-->
-<!--
-  One of code or object attributes must be present.
-  Place param elements before other content.
--->
-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST applet
-  %coreattrs;
-  codebase    %URI;          #IMPLIED
-  archive     CDATA          #IMPLIED
-  code        CDATA          #IMPLIED
-  object      CDATA          #IMPLIED
-  alt         %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  width       %Length;       #REQUIRED
-  height      %Length;       #REQUIRED
-  align       %ImgAlign;     #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-<!--
-   To avoid accessibility problems for people who aren't
-   able to see the image, you should provide a text
-   description using the alt and longdesc attributes.
-   In addition, avoid the use of server-side image maps.
--->
-
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  name        NMTOKEN        #IMPLIED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  >
-
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--================ Forms ===============================================-->
-
-<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  name        NMTOKEN        #IMPLIED
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--
-  Each label must not contain more than ONE field
-  Label elements shouldn't be nested.
--->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-<!-- the name attribute is required for all but submit & reset -->
-
-<!ELEMENT input EMPTY>     <!-- form control -->
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  >
-
-<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!ELEMENT optgroup (option)+>   <!-- option group -->
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--
-  The fieldset element is used to group form fields.
-  Only one legend element should occur in the content
-  and if present should only be preceded by whitespace.
--->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ENTITY % LAlign "(top|bottom|left|right)">
-
-<!ELEMENT legend %Inline;>     <!-- fieldset label -->
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  align       %LAlign;       #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form, form controls, iframe
---> 
-<!ELEMENT button %button.content;>  <!-- push button -->
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!-- single-line text input control (DEPRECATED) -->
-<!ELEMENT isindex EMPTY>
-<!ATTLIST isindex
-  %coreattrs;
-  %i18n;
-  prompt      %Text;         #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=":"
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!ELEMENT caption  %Inline;>
-<!ELEMENT thead    (tr)+>
-<!ELEMENT tfoot    (tr)+>
-<!ELEMENT tbody    (tr)+>
-<!ELEMENT colgroup (col)*>
-<!ELEMENT col      EMPTY>
-<!ELEMENT tr       (th|td)+>
-<!ELEMENT th       %Flow;>
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  align       %TAlign;       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!ENTITY % CAlign "(top|bottom|left|right)">
-
-<!ATTLIST caption
-  %attrs;
-  align       %CAlign;       #IMPLIED
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Pixels;       #IMPLIED
-  height      %Pixels;       #IMPLIED
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Pixels;       #IMPLIED
-  height      %Pixels;       #IMPLIED
-  >
-
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-strict.dtd b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-strict.dtd
deleted file mode 100644
index b449108..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-strict.dtd
+++ /dev/null
@@ -1,978 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Strict DTD
-
-   This is the same as HTML 4 Strict except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
-
-   $Revision: 1.24 $
-   $Date: 2002/07/31 19:34:51 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.pre
-   "br | span | bdo | map">
-
-
-<!ENTITY % special
-   "%special.pre; | object | img ">
-
-<!ENTITY % fontstyle "tt | i | b | big | small ">
-
-<!ENTITY % phrase "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym | sub | sup ">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl">
-<!ENTITY % blocktext "pre | hr | blockquote | address">
-
-<!ENTITY % block
-     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
-
-<!ENTITY % Block "(%block; | form | %misc;)*">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding big, small, sup or sup -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
-      | %inline.forms;)*">
-
-<!-- form uses %Block; excluding form -->
-
-<!ENTITY % form.content "(%block; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form and form controls -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-    table | %special; | %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!-- the namespace URI designates the document profile -->
-
-<!ELEMENT html (head, body)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object)*">
-
-<!-- content model is %head.misc; combined with a single
-     title and an optional base element in any order -->
-
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!-- The title element is not considered part of the flow of text.
-       It should be displayed, for example as the page header or
-       window title. Exactly one title is required per document.
-    -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!-- document base URI -->
-
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  href        %URI;          #REQUIRED
-  id          ID             #IMPLIED
-  >
-
-<!-- generic metainformation -->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--
-  Relationship values can be used in principle:
-
-   a) for document specific toolbars/menus when used
-      with the link element in document head e.g.
-        start, contents, previous, next, index, end, help
-   b) to link to a separate style sheet (rel="stylesheet")
-   c) to make a link to a script (rel="script")
-   d) by stylesheets to control how collections of
-      html nodes are rendered into printed documents
-   e) to make a link to a printable version of this document
-      e.g. a PostScript or PDF version (rel="alternate" media="print")
--->
-
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  >
-
-<!-- style info, which may include CDATA sections -->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- script statements, which may include CDATA sections -->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- alternate content container for non script-based rendering -->
-
-<!ELEMENT noscript %Block;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT body %Block;>
-<!ATTLIST body
-  %attrs;
-  onload          %Script;   #IMPLIED
-  onunload        %Script;   #IMPLIED
-  >
-
-<!ELEMENT div %Flow;>  <!-- generic language/style container -->
-<!ATTLIST div
-  %attrs;
-  >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--
-  There are six levels of headings from h1 (the most important)
-  to h6 (the least important).
--->
-
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-   %attrs;
-   >
-
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-   %attrs;
-   >
-
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-   %attrs;
-   >
-
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-   %attrs;
-   >
-
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-   %attrs;
-   >
-
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-   %attrs;
-   >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list -->
-
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  >
-
-<!-- Ordered (numbered) list -->
-
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  >
-
-<!-- list item -->
-
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  >
-
-<!-- definition lists - dt for term, dd for its definition -->
-
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  >
-
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!-- information on author -->
-
-<!ELEMENT address %Inline;>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
-
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  xml:space (preserve) #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT blockquote %Block;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-<!--
-  ins/del are allowed in block and inline content, but its
-  inappropriate to include block content within an ins element
-  occurring in inline content.
--->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!-- content is %Inline; except that anchors shouldn't be nested -->
-
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!ELEMENT span %Inline;> <!-- generic language/style container -->
-<!ATTLIST span
-  %attrs;
-  >
-
-<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!ELEMENT br EMPTY>   <!-- forced line break -->
-<!ATTLIST br
-  %coreattrs;
-  >
-
-<!ELEMENT em %Inline;>   <!-- emphasis -->
-<!ATTLIST em %attrs;>
-
-<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
-<!ATTLIST strong %attrs;>
-
-<!ELEMENT dfn %Inline;>   <!-- definitional -->
-<!ATTLIST dfn %attrs;>
-
-<!ELEMENT code %Inline;>   <!-- program code -->
-<!ATTLIST code %attrs;>
-
-<!ELEMENT samp %Inline;>   <!-- sample -->
-<!ATTLIST samp %attrs;>
-
-<!ELEMENT kbd %Inline;>  <!-- something user would type -->
-<!ATTLIST kbd %attrs;>
-
-<!ELEMENT var %Inline;>   <!-- variable -->
-<!ATTLIST var %attrs;>
-
-<!ELEMENT cite %Inline;>   <!-- citation -->
-<!ATTLIST cite %attrs;>
-
-<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
-<!ATTLIST abbr %attrs;>
-
-<!ELEMENT acronym %Inline;>   <!-- acronym -->
-<!ATTLIST acronym %attrs;>
-
-<!ELEMENT q %Inline;>   <!-- inlined quote -->
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!ELEMENT sub %Inline;> <!-- subscript -->
-<!ATTLIST sub %attrs;>
-
-<!ELEMENT sup %Inline;> <!-- superscript -->
-<!ATTLIST sup %attrs;>
-
-<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
-<!ATTLIST tt %attrs;>
-
-<!ELEMENT i %Inline;>   <!-- italic font -->
-<!ATTLIST i %attrs;>
-
-<!ELEMENT b %Inline;>   <!-- bold font -->
-<!ATTLIST b %attrs;>
-
-<!ELEMENT big %Inline;>   <!-- bigger font -->
-<!ATTLIST big %attrs;>
-
-<!ELEMENT small %Inline;>   <!-- smaller font -->
-<!ATTLIST small %attrs;>
-
-<!--==================== Object ======================================-->
-<!--
-  object is used to embed objects as part of HTML pages.
-  param elements should precede other content. Parameters
-  can also be expressed as attribute/value pairs on the
-  object element itself when brevity is desired.
--->
-
-<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  >
-
-<!--
-  param is used to supply a named property value.
-  In XML it would seem natural to follow RDF and support an
-  abbreviated syntax where the param elements are replaced
-  by attribute value pairs on the object start tag.
--->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-<!--
-   To avoid accessibility problems for people who aren't
-   able to see the image, you should provide a text
-   description using the alt and longdesc attributes.
-   In addition, avoid the use of server-side image maps.
-   Note that in this DTD there is no name attribute. That
-   is only available in the transitional and frameset DTD.
--->
-
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  >
-
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  >
-
-<!--================ Forms ===============================================-->
-<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  >
-
-<!--
-  Each label must not contain more than ONE field
-  Label elements shouldn't be nested.
--->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-<!-- the name attribute is required for all but submit & reset -->
-
-<!ELEMENT input EMPTY>     <!-- form control -->
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  >
-
-<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!ELEMENT optgroup (option)+>   <!-- option group -->
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--
-  The fieldset element is used to group form fields.
-  Only one legend element should occur in the content
-  and if present should only be preceded by whitespace.
--->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ELEMENT legend %Inline;>     <!-- fieldset label -->
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form and form controls
---> 
-<!ELEMENT button %button.content;>  <!-- push button -->
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=':'
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!ELEMENT caption  %Inline;>
-<!ELEMENT thead    (tr)+>
-<!ELEMENT tfoot    (tr)+>
-<!ELEMENT tbody    (tr)+>
-<!ELEMENT colgroup (col)*>
-<!ELEMENT col      EMPTY>
-<!ELEMENT tr       (th|td)+>
-<!ELEMENT th       %Flow;>
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  >
-
-<!ATTLIST caption
-  %attrs;
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  >
-
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-transitional.dtd b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-transitional.dtd
deleted file mode 100644
index c62c02a..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1-transitional.dtd
+++ /dev/null
@@ -1,1201 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Transitional DTD
-
-   This is the same as HTML 4 Transitional except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-
-   $Revision: 1.27 $
-   $Date: 2002/08/01 18:16:48 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % FrameTarget "NMTOKEN">
-    <!-- render in this frame -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!-- used for object, applet, img, input and iframe -->
-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
-
-<!-- a color using sRGB: #RRGGBB as Hex values -->
-<!ENTITY % Color "CDATA">
-
-<!-- There are also 16 widely known color names with their sRGB values:
-
-    Black  = #000000    Green  = #008000
-    Silver = #C0C0C0    Lime   = #00FF00
-    Gray   = #808080    Olive  = #808000
-    White  = #FFFFFF    Yellow = #FFFF00
-    Maroon = #800000    Navy   = #000080
-    Red    = #FF0000    Blue   = #0000FF
-    Purple = #800080    Teal   = #008080
-    Fuchsia= #FF00FF    Aqua   = #00FFFF
--->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!-- text alignment for p, div, h1-h6. The default is
-     align="left" for ltr headings, "right" for rtl -->
-
-<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.extra
-   "object | applet | img | map | iframe">
-	
-<!ENTITY % special.basic
-	"br | span | bdo">
-
-<!ENTITY % special
-   "%special.basic; | %special.extra;">
-
-<!ENTITY % fontstyle.extra "big | small | font | basefont">
-
-<!ENTITY % fontstyle.basic "tt | i | b | u
-                      | s | strike ">
-
-<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
-
-<!ENTITY % phrase.extra "sub | sup">
-<!ENTITY % phrase.basic "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym">
-
-<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl | menu | dir">
-<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
-
-<!ENTITY % block
-    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding img, object, applet, big, small,
-     font, or basefont -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
-	   %inline.forms; | %misc.inline;)*">
-
-<!-- form uses %Flow; excluding form -->
-
-<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-      table | br | span | bdo | object | applet | img | map |
-      %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!-- the namespace URI designates the document profile -->
-
-<!ELEMENT html (head, body)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
-
-<!-- content model is %head.misc; combined with a single
-     title and an optional base element in any order -->
-
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!-- The title element is not considered part of the flow of text.
-       It should be displayed, for example as the page header or
-       window title. Exactly one title is required per document.
-    -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!-- document base URI -->
-
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  id          ID             #IMPLIED
-  href        %URI;          #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- generic metainformation -->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--
-  Relationship values can be used in principle:
-
-   a) for document specific toolbars/menus when used
-      with the link element in document head e.g.
-        start, contents, previous, next, index, end, help
-   b) to link to a separate style sheet (rel="stylesheet")
-   c) to make a link to a script (rel="script")
-   d) by stylesheets to control how collections of
-      html nodes are rendered into printed documents
-   e) to make a link to a printable version of this document
-      e.g. a PostScript or PDF version (rel="alternate" media="print")
--->
-
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- style info, which may include CDATA sections -->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- script statements, which may include CDATA sections -->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  language    CDATA          #IMPLIED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- alternate content container for non script-based rendering -->
-
-<!ELEMENT noscript %Flow;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--======================= Frames =======================================-->
-
-<!-- inline subwindow -->
-
-<!ELEMENT iframe %Flow;>
-<!ATTLIST iframe
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  align       %ImgAlign;     #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!-- alternate content container for non frame-based rendering -->
-
-<!ELEMENT noframes %Flow;>
-<!ATTLIST noframes
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT body %Flow;>
-<!ATTLIST body
-  %attrs;
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  background  %URI;          #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  text        %Color;        #IMPLIED
-  link        %Color;        #IMPLIED
-  vlink       %Color;        #IMPLIED
-  alink       %Color;        #IMPLIED
-  >
-
-<!ELEMENT div %Flow;>  <!-- generic language/style container -->
-<!ATTLIST div
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--
-  There are six levels of headings from h1 (the most important)
-  to h6 (the least important).
--->
-
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list bullet styles -->
-
-<!ENTITY % ULStyle "(disc|square|circle)">
-
-<!-- Unordered list -->
-
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  type        %ULStyle;     #IMPLIED
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- Ordered list numbering style
-
-    1   arabic numbers      1, 2, 3, ...
-    a   lower alpha         a, b, c, ...
-    A   upper alpha         A, B, C, ...
-    i   lower roman         i, ii, iii, ...
-    I   upper roman         I, II, III, ...
-
-    The style is applied to the sequence number which by default
-    is reset to 1 for the first list item in an ordered list.
--->
-<!ENTITY % OLStyle "CDATA">
-
-<!-- Ordered (numbered) list -->
-
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  type        %OLStyle;      #IMPLIED
-  compact     (compact)      #IMPLIED
-  start       %Number;       #IMPLIED
-  >
-
-<!-- single column list (DEPRECATED) --> 
-<!ELEMENT menu (li)+>
-<!ATTLIST menu
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- multiple column list (DEPRECATED) --> 
-<!ELEMENT dir (li)+>
-<!ATTLIST dir
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
-<!ENTITY % LIStyle "CDATA">
-
-<!-- list item -->
-
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  type        %LIStyle;      #IMPLIED
-  value       %Number;       #IMPLIED
-  >
-
-<!-- definition lists - dt for term, dd for its definition -->
-
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  compact     (compact)      #IMPLIED
-  >
-
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!-- information on author -->
-
-<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  align       (left|center|right) #IMPLIED
-  noshade     (noshade)      #IMPLIED
-  size        %Pixels;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- content is %Inline; excluding 
-        "img|object|applet|big|small|sub|sup|font|basefont" -->
-
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  width       %Number;      #IMPLIED
-  xml:space   (preserve)    #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT blockquote %Flow;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Text alignment ===================================-->
-
-<!-- center content -->
-<!ELEMENT center %Flow;>
-<!ATTLIST center
-  %attrs;
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-<!--
-  ins/del are allowed in block and inline content, but its
-  inappropriate to include block content within an ins element
-  occurring in inline content.
--->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!-- content is %Inline; except that anchors shouldn't be nested -->
-
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!ELEMENT span %Inline;> <!-- generic language/style container -->
-<!ATTLIST span
-  %attrs;
-  >
-
-<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!ELEMENT br EMPTY>   <!-- forced line break -->
-<!ATTLIST br
-  %coreattrs;
-  clear       (left|all|right|none) "none"
-  >
-
-<!ELEMENT em %Inline;>   <!-- emphasis -->
-<!ATTLIST em %attrs;>
-
-<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
-<!ATTLIST strong %attrs;>
-
-<!ELEMENT dfn %Inline;>   <!-- definitional -->
-<!ATTLIST dfn %attrs;>
-
-<!ELEMENT code %Inline;>   <!-- program code -->
-<!ATTLIST code %attrs;>
-
-<!ELEMENT samp %Inline;>   <!-- sample -->
-<!ATTLIST samp %attrs;>
-
-<!ELEMENT kbd %Inline;>  <!-- something user would type -->
-<!ATTLIST kbd %attrs;>
-
-<!ELEMENT var %Inline;>   <!-- variable -->
-<!ATTLIST var %attrs;>
-
-<!ELEMENT cite %Inline;>   <!-- citation -->
-<!ATTLIST cite %attrs;>
-
-<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
-<!ATTLIST abbr %attrs;>
-
-<!ELEMENT acronym %Inline;>   <!-- acronym -->
-<!ATTLIST acronym %attrs;>
-
-<!ELEMENT q %Inline;>   <!-- inlined quote -->
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!ELEMENT sub %Inline;> <!-- subscript -->
-<!ATTLIST sub %attrs;>
-
-<!ELEMENT sup %Inline;> <!-- superscript -->
-<!ATTLIST sup %attrs;>
-
-<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
-<!ATTLIST tt %attrs;>
-
-<!ELEMENT i %Inline;>   <!-- italic font -->
-<!ATTLIST i %attrs;>
-
-<!ELEMENT b %Inline;>   <!-- bold font -->
-<!ATTLIST b %attrs;>
-
-<!ELEMENT big %Inline;>   <!-- bigger font -->
-<!ATTLIST big %attrs;>
-
-<!ELEMENT small %Inline;>   <!-- smaller font -->
-<!ATTLIST small %attrs;>
-
-<!ELEMENT u %Inline;>   <!-- underline -->
-<!ATTLIST u %attrs;>
-
-<!ELEMENT s %Inline;>   <!-- strike-through -->
-<!ATTLIST s %attrs;>
-
-<!ELEMENT strike %Inline;>   <!-- strike-through -->
-<!ATTLIST strike %attrs;>
-
-<!ELEMENT basefont EMPTY>  <!-- base font size -->
-<!ATTLIST basefont
-  id          ID             #IMPLIED
-  size        CDATA          #REQUIRED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!ELEMENT font %Inline;> <!-- local change to font -->
-<!ATTLIST font
-  %coreattrs;
-  %i18n;
-  size        CDATA          #IMPLIED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--==================== Object ======================================-->
-<!--
-  object is used to embed objects as part of HTML pages.
-  param elements should precede other content. Parameters
-  can also be expressed as attribute/value pairs on the
-  object element itself when brevity is desired.
--->
-
-<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--
-  param is used to supply a named property value.
-  In XML it would seem natural to follow RDF and support an
-  abbreviated syntax where the param elements are replaced
-  by attribute value pairs on the object start tag.
--->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #REQUIRED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Java applet ==================================-->
-<!--
-  One of code or object attributes must be present.
-  Place param elements before other content.
--->
-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST applet
-  %coreattrs;
-  codebase    %URI;          #IMPLIED
-  archive     CDATA          #IMPLIED
-  code        CDATA          #IMPLIED
-  object      CDATA          #IMPLIED
-  alt         %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  width       %Length;       #REQUIRED
-  height      %Length;       #REQUIRED
-  align       %ImgAlign;     #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-<!--
-   To avoid accessibility problems for people who aren't
-   able to see the image, you should provide a text
-   description using the alt and longdesc attributes.
-   In addition, avoid the use of server-side image maps.
--->
-
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  name        NMTOKEN        #IMPLIED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Length;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        CDATA          #IMPLIED
-  >
-
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--================ Forms ===============================================-->
-
-<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  name        NMTOKEN        #IMPLIED
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--
-  Each label must not contain more than ONE field
-  Label elements shouldn't be nested.
--->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-<!-- the name attribute is required for all but submit & reset -->
-
-<!ELEMENT input EMPTY>     <!-- form control -->
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  >
-
-<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!ELEMENT optgroup (option)+>   <!-- option group -->
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--
-  The fieldset element is used to group form fields.
-  Only one legend element should occur in the content
-  and if present should only be preceded by whitespace.
--->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ENTITY % LAlign "(top|bottom|left|right)">
-
-<!ELEMENT legend %Inline;>     <!-- fieldset label -->
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  align       %LAlign;       #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form, form controls, iframe
---> 
-<!ELEMENT button %button.content;>  <!-- push button -->
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!-- single-line text input control (DEPRECATED) -->
-<!ELEMENT isindex EMPTY>
-<!ATTLIST isindex
-  %coreattrs;
-  %i18n;
-  prompt      %Text;         #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=':'
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!ELEMENT caption  %Inline;>
-<!ELEMENT thead    (tr)+>
-<!ELEMENT tfoot    (tr)+>
-<!ELEMENT tbody    (tr)+>
-<!ELEMENT colgroup (col)*>
-<!ELEMENT col      EMPTY>
-<!ELEMENT tr       (th|td)+>
-<!ELEMENT th       %Flow;>
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  align       %TAlign;       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!ENTITY % CAlign "(top|bottom|left|right)">
-
-<!ATTLIST caption
-  %attrs;
-  align       %CAlign;       #IMPLIED
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Length;       #IMPLIED
-  height      %Length;       #IMPLIED
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Length;       #IMPLIED
-  height      %Length;       #IMPLIED
-  >
-
diff --git a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1.dcl b/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1.dcl
deleted file mode 100644
index 80d53d4..0000000
--- a/org.eclipse.ui.intro/dtds/xhtml1-20020801/xhtml1.dcl
+++ /dev/null
@@ -1,192 +0,0 @@
-<!SGML "ISO 8879:1986 (WWW)"
-
-     -- SGML Declaration for XML 1.0 --
-
-     -- from: 
-        Final text of revised Web SGML Adaptations Annex (TC2) to ISO 8879:1986
-        ISO/IEC JTC1/SC34 N0029: 1998-12-06
-        Annex L.2 (informative): SGML Declaration for XML
-
-        changes made to accommodate validation are noted with 'VALID:'
-     --
-
-     CHARSET
-         BASESET
-             "ISO Registration Number 177//CHARSET
-              ISO/IEC 10646-1:1993 UCS-4 with implementation
-              level 3//ESC 2/5 2/15 4/6"
-         DESCSET
-                 0        9  UNUSED
-                 9        2       9
-                11        2  UNUSED
-                13        1      13
-                14       18  UNUSED
-                32       95      32
-               127        1  UNUSED
-               128       32  UNUSED
-               160    55136     160
-             55296     2048  UNUSED  -- surrogates --
-             57344     8190   57344
-             65534        2  UNUSED  -- FFFE and FFFF --
-             65536  1048576   65536
-
-     CAPACITY NONE  -- Capacities are not restricted in XML --
-
-     SCOPE DOCUMENT
-
-     SYNTAX
-         SHUNCHAR NONE
-         BASESET "ISO Registration Number 177//CHARSET
-                  ISO/IEC 10646-1:1993 UCS-4 with implementation
-                  level 3//ESC 2/5 2/15 4/6"
-         DESCSET
-             0 1114112 0
-         FUNCTION
-             RE    13
-             RS    10
-             SPACE 32
-             TAB   SEPCHAR 9
-         NAMING
-             LCNMSTRT ""
-             UCNMSTRT ""
-             NAMESTRT
-                 58 95 192-214 216-246 248-305 308-318 321-328
-                 330-382 384-451 461-496 500-501 506-535 592-680
-                 699-705 902 904-906 908 910-929 931-974 976-982
-                 986 988 990 992 994-1011 1025-1036 1038-1103
-                 1105-1116 1118-1153 1168-1220 1223-1224
-                 1227-1228 1232-1259 1262-1269 1272-1273
-                 1329-1366 1369 1377-1414 1488-1514 1520-1522
-                 1569-1594 1601-1610 1649-1719 1722-1726
-                 1728-1742 1744-1747 1749 1765-1766 2309-2361
-                 2365 2392-2401 2437-2444 2447-2448 2451-2472
-                 2474-2480 2482 2486-2489 2524-2525 2527-2529
-                 2544-2545 2565-2570 2575-2576 2579-2600
-                 2602-2608 2610-2611 2613-2614 2616-2617
-                 2649-2652 2654 2674-2676 2693-2699 2701
-                 2703-2705 2707-2728 2730-2736 2738-2739
-                 2741-2745 2749 2784 2821-2828 2831-2832
-                 2835-2856 2858-2864 2866-2867 2870-2873 2877
-                 2908-2909 2911-2913 2949-2954 2958-2960
-                 2962-2965 2969-2970 2972 2974-2975 2979-2980
-                 2984-2986 2990-2997 2999-3001 3077-3084
-                 3086-3088 3090-3112 3114-3123 3125-3129
-                 3168-3169 3205-3212 3214-3216 3218-3240
-                 3242-3251 3253-3257 3294 3296-3297 3333-3340
-                 3342-3344 3346-3368 3370-3385 3424-3425
-                 3585-3630 3632 3634-3635 3648-3653 3713-3714
-                 3716 3719-3720 3722 3725 3732-3735 3737-3743
-                 3745-3747 3749 3751 3754-3755 3757-3758 3760
-                 3762-3763 3773 3776-3780 3904-3911 3913-3945
-                 4256-4293 4304-4342 4352 4354-4355 4357-4359
-                 4361 4363-4364 4366-4370 4412 4414 4416 4428
-                 4430 4432 4436-4437 4441 4447-4449 4451 4453
-                 4455 4457 4461-4462 4466-4467 4469 4510 4520
-                 4523 4526-4527 4535-4536 4538 4540-4546 4587
-                 4592 4601 7680-7835 7840-7929 7936-7957
-                 7960-7965 7968-8005 8008-8013 8016-8023 8025
-                 8027 8029 8031-8061 8064-8116 8118-8124 8126
-                 8130-8132 8134-8140 8144-8147 8150-8155
-                 8160-8172 8178-8180 8182-8188 8486 8490-8491
-                 8494 8576-8578 12295 12321-12329 12353-12436
-                 12449-12538 12549-12588 19968-40869 44032-55203
-
-             LCNMCHAR ""
-             UCNMCHAR ""
-             NAMECHAR
-                 45-46 183 720-721 768-837 864-865 903 1155-1158
-                 1425-1441 1443-1465 1467-1469 1471 1473-1474
-                 1476 1600 1611-1618 1632-1641 1648 1750-1764
-                 1767-1768 1770-1773 1776-1785 2305-2307 2364
-                 2366-2381 2385-2388 2402-2403 2406-2415
-                 2433-2435 2492 2494-2500 2503-2504 2507-2509
-                 2519 2530-2531 2534-2543 2562 2620 2622-2626
-                 2631-2632 2635-2637 2662-2673 2689-2691 2748
-                 2750-2757 2759-2761 2763-2765 2790-2799
-                 2817-2819 2876 2878-2883 2887-2888 2891-2893
-                 2902-2903 2918-2927 2946-2947 3006-3010
-                 3014-3016 3018-3021 3031 3047-3055 3073-3075
-                 3134-3140 3142-3144 3146-3149 3157-3158
-                 3174-3183 3202-3203 3262-3268 3270-3272
-                 3274-3277 3285-3286 3302-3311 3330-3331
-                 3390-3395 3398-3400 3402-3405 3415 3430-3439
-                 3633 3636-3642 3654-3662 3664-3673 3761
-                 3764-3769 3771-3772 3782 3784-3789 3792-3801
-                 3864-3865 3872-3881 3893 3895 3897 3902-3903
-                 3953-3972 3974-3979 3984-3989 3991 3993-4013
-                 4017-4023 4025 8400-8412 8417 12293 12330-12335
-                 12337-12341 12441-12442 12445-12446 12540-12542
-
-             NAMECASE
-                 GENERAL NO
-                 ENTITY  NO
-         DELIM
-             GENERAL  SGMLREF
-             HCRO     "&#38;#x"
-                      -- Ampersand followed by "#x" (without quotes) --
-             NESTC    "/"
-             NET      ">"
-             PIC      "?>"
-             SHORTREF NONE
-
-         NAMES
-             SGMLREF
-
-         QUANTITY
-             NONE -- Quantities are not restricted in XML --
-
-         ENTITIES
-             "amp"  38
-             "lt"   60
-             "gt"   62
-             "quot" 34
-             "apos" 39
-
-     FEATURES
-         MINIMIZE
-             DATATAG NO
-             OMITTAG NO
-             RANK    NO
-             SHORTTAG
-                 STARTTAG
-                     EMPTY    NO
-                     UNCLOSED NO
-                     NETENABL IMMEDNET
-                 ENDTAG
-                     EMPTY    NO
-                     UNCLOSED NO
-                 ATTRIB
-                     DEFAULT  YES
-                     OMITNAME NO
-                     VALUE    NO
-             EMPTYNRM  YES
-             IMPLYDEF
-                 ATTLIST  NO  -- VALID: was YES --
-                 DOCTYPE  NO
-                 ELEMENT  NO  -- VALID: was YES --
-                 ENTITY   NO
-                 NOTATION NO  -- VALID: was YES --
-         LINK
-             SIMPLE   NO
-             IMPLICIT NO
-             EXPLICIT NO
-         OTHER
-             CONCUR   NO
-             SUBDOC   NO
-             FORMAL   NO
-             URN      NO
-             KEEPRSRE YES
-             VALIDITY TYPE -- VALID: was NOASSERT --
-             ENTITIES
-                 REF      ANY
-                 INTEGRAL YES
-
-     APPINFO NONE
-
-     SEEALSO "ISO 8879//NOTATION Extensible Markup Language (XML) 1.0//EN"
->
-<!-- Id: $Id: xml1.dcl,v 4.3 2001/04/08 10:30:18 altheim Exp $ SMI
-     Revisions:
-#1999-04-09  changes for XML validation
-#2001-04-08  updated ISO registration number for UCS-4
--->
diff --git a/org.eclipse.ui.intro/empty_swt.properties b/org.eclipse.ui.intro/empty_swt.properties
deleted file mode 100644
index ca26798..0000000
--- a/org.eclipse.ui.intro/empty_swt.properties
+++ /dev/null
@@ -1,170 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-! Alternative style file for SWT presentation
-
-! Theme property should be used to indicate that the file is part
-! of the intro theme (new in 3.2). When in theme, relative images are resolved
-! relative to the property file location. Otherwise (false),
-! images are resolved relative to the contributing bundle. This 
-! is the backward-compatible behavior.
-	theme = true/false
-
-! General properties that can only be specified in a shared style 
-! file because they apply to the whole presentation.
-	! Background color of all presentation 
-	! ------------------------------------
-	bg = #rrggbb hex
-
-	! Color for presentation title 
-	! -----------------------------
-	title.fg = #rrggbb hex
-
-	! Backgournd Image for presentation title  
-	! ----------------------------------------
-	title.image = <file name>
-	title.image.repeat = true/false
-	
-	! Flag to display the Home Page using custom layout. Default is true.
-	! ----------------------------------------
-	home-page-custom-layout = true/false
-
-	
-	
-
-! Home Page settings
-! ------------------
-	! The home page layout supports all customization that is supported by a Page,
-	! except what is specified under Subtitle, Description and Fonts. 
-	
-	! In addition, the following customizations applies only to home page:
-	! Color for home page link description (default is UI forms TITLE color, which is 
-	! a system color) 
-	! -------------------------------------
-	<homePageId>.hover-text.fg = #rrggbb hex
-
-
-	! Default icons for links in the navigation bar which is added to each page
-	! -------------------------------------------------------------------------
-	<homePageId>.small-link-icon = <relative file name>
-	<homePageId>.small-hover-icon = <relative file name>
-
-	! Icon for a given link in the Home Page, and its corresponding link in 
-	! the navigation bar 
-	! ----------------------------------------------------------------------
-	<homePageId>.<linkId>.link-icon = <relative file name>
-	<homePageId>.<linkId>.hover-icon = <relative file name>
-	<homePageId>.<linkId>.small-link-icon = <relative file name>
-	<homePageId>.<linkId>.small-hover-icon = <relative file name>
-
-
-
-
-! Page settings
-! -------------
-! Note: in any of the page settings, if the <pageId> is ommitted and the 
-! property starts with a ".", then this property applies to this whole page,
-! and to any page that inherits the properties of this page. So in effect,
-! this property becomes like a shared property.
-!
-! A short form of the property that uses element id can be used:
-! <pageId.<elementId>.property = value
-! Use this for elements that do not have fixed path (when late target
-! path resolution is used).
- 
-	! Flag to display link description in a given page. Default is true.
-	<pageId>.show-link-description = true/false
-	.show-link-description = true/false
-	
-	! Flag to display Root page navigation links in a given page. Default is true.
-	<pageId>.show-home-page-navigation = true/false
-	.show-home-page-navigation = true/false
-
-	! Layout:
-	! -------
-	! Number of columns in this page or group.
-	<pageId>.layout.ncolumns = <integer>
-	<pageId>.<path_to_group>.layout.ncolumns = <integer>
-	
-	! vertical/horizantal spacing of all objects in a given page or group.
-	<pageId>.<path_to_group>.layout.vspacing = <integer>
-	<pageId>.<path_to_group>.layout.hspacing = <integer>
-	
-	! Number of columns/rows an element spans in its group or page.
-	<pageId>.<path_to_element>.layout.colspan = <integer>
-	<pageId>.<path_to_element>.layout.rowspan = <integer>
-
-	
-	! Icons:
-	! ------
-	! default icon/hover icon used for all links in the page.
-	<pageId>.link-icon = <relative file name>
-	<pageId>.hover-icon = <relative file name>
-	
-	! icon/hover icon for specific link/Image link.
-	<pageId>.<path_to_link>.link-icon = <relative file name>
-	<pageId>.<path_to_link>.hover-icon = <relative file name>
-	
-
-	! Sub Title:
-	! ----------
-	! The path of the child Text element that will be used as subtitle of this page.
-	! (Can only be a child Text element)
-	<pageId>.subtitle-id = <path to subtitle child>
-	
-	! The style id of the direct child Text element that will be used as subtitle of any page. 
-	! It would be used if a specific id has not been specified at the page. 
-	! (Can only be a child Text element)
-	subtitle-style-id = <style id of child subtitle Text element>
-
-
-	! Description:
-	! ------------
-	! The path of the child Text element that will be used as description of this page. 
-	! (Can only be a child Text element)
-	<pageId>.description-id = <path to child description Text element>
-
-	! The path of the child Text element that will be used as description of this group. 
-	! (Can only be a child Text element)
-	<pageId>.<path_to_group>.description-id = <path to child description Text element>
-	
-	! The style id of the direct child Text element that will be used as description of any 
-	! page or any group. It would be used if a specific id has not been specified at the page 
-	! or group level. (Can only be a child Text element)
-	description-style-id = <style id of child description Text element>
-
-	
-	! Page elements Font:
-	! -------------------
-	! Set the color for a specific Text or Group label. If applied to a group the label of 
-	! the group gets the color and not the description text. To color description text, 
-	! set its color explicitly.
-	! note: it is not recommended to set the color of a link because it changes the 
-	! theme of the link colors.
-	<pageId>.<path_to_element>.font.fg = #rrggbb hex
-	
-	! make a Text element bold. Note that if the Text string itself has any formatting
-	! tags like <b> and <li> then this bold property is ignored.
-	<pageId>.<path_to_text>.font.bold = true/false
-	
-	! The style id that will make any Text element bold. It would be used if that Text element 
-	! does not have a bold property explicitly set.
-	bold-style-id = <style id of child subtitle Text element>
-	
-	! Color for separator elements:
-	<pageId>.separator.fg = #rrggbb hex
-	
-	
-
-
-
-
-
-
diff --git a/org.eclipse.ui.intro/icons/blank.gif b/org.eclipse.ui.intro/icons/blank.gif
deleted file mode 100644
index 1d11fa9..0000000
--- a/org.eclipse.ui.intro/icons/blank.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/container_obj.gif b/org.eclipse.ui.intro/icons/container_obj.gif
deleted file mode 100644
index 8e55b87..0000000
--- a/org.eclipse.ui.intro/icons/container_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/contents_view.gif b/org.eclipse.ui.intro/icons/contents_view.gif
deleted file mode 100644
index 20e0ff9..0000000
--- a/org.eclipse.ui.intro/icons/contents_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/form_banner.gif b/org.eclipse.ui.intro/icons/form_banner.gif
deleted file mode 100644
index aebc0b2..0000000
--- a/org.eclipse.ui.intro/icons/form_banner.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/dlcl16/backward_nav.gif b/org.eclipse.ui.intro/icons/full/dlcl16/backward_nav.gif
deleted file mode 100644
index 2972ff5..0000000
--- a/org.eclipse.ui.intro/icons/full/dlcl16/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/dlcl16/forward_nav.gif b/org.eclipse.ui.intro/icons/full/dlcl16/forward_nav.gif
deleted file mode 100644
index 319fe8d..0000000
--- a/org.eclipse.ui.intro/icons/full/dlcl16/forward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/dlcl16/home_nav.gif b/org.eclipse.ui.intro/icons/full/dlcl16/home_nav.gif
deleted file mode 100644
index 819e85b..0000000
--- a/org.eclipse.ui.intro/icons/full/dlcl16/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/dtool16/restore_welcome.gif b/org.eclipse.ui.intro/icons/full/dtool16/restore_welcome.gif
deleted file mode 100644
index 4997b20..0000000
--- a/org.eclipse.ui.intro/icons/full/dtool16/restore_welcome.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/elcl16/backward_nav.gif b/org.eclipse.ui.intro/icons/full/elcl16/backward_nav.gif
deleted file mode 100644
index 4fb4150..0000000
--- a/org.eclipse.ui.intro/icons/full/elcl16/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/elcl16/close_view.gif b/org.eclipse.ui.intro/icons/full/elcl16/close_view.gif
deleted file mode 100644
index 1aca259..0000000
--- a/org.eclipse.ui.intro/icons/full/elcl16/close_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/elcl16/forward_nav.gif b/org.eclipse.ui.intro/icons/full/elcl16/forward_nav.gif
deleted file mode 100644
index 1d3bafb..0000000
--- a/org.eclipse.ui.intro/icons/full/elcl16/forward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/elcl16/home_nav.gif b/org.eclipse.ui.intro/icons/full/elcl16/home_nav.gif
deleted file mode 100644
index 4472e8c..0000000
--- a/org.eclipse.ui.intro/icons/full/elcl16/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/full/etool16/restore_welcome.gif b/org.eclipse.ui.intro/icons/full/etool16/restore_welcome.gif
deleted file mode 100644
index 7736bce..0000000
--- a/org.eclipse.ui.intro/icons/full/etool16/restore_welcome.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/help_topic.gif b/org.eclipse.ui.intro/icons/help_topic.gif
deleted file mode 100644
index 9bdd516..0000000
--- a/org.eclipse.ui.intro/icons/help_topic.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/overview_32.gif b/org.eclipse.ui.intro/icons/overview_32.gif
deleted file mode 100644
index 3f14f36..0000000
--- a/org.eclipse.ui.intro/icons/overview_32.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/overview_48.gif b/org.eclipse.ui.intro/icons/overview_48.gif
deleted file mode 100644
index f68976a..0000000
--- a/org.eclipse.ui.intro/icons/overview_48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/topic.gif b/org.eclipse.ui.intro/icons/topic.gif
deleted file mode 100644
index 22f0c4c..0000000
--- a/org.eclipse.ui.intro/icons/topic.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/icons/welcome_item.gif b/org.eclipse.ui.intro/icons/welcome_item.gif
deleted file mode 100644
index 311f57f..0000000
--- a/org.eclipse.ui.intro/icons/welcome_item.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/invalidPage/invalidPage.xhtml b/org.eclipse.ui.intro/invalidPage/invalidPage.xhtml
deleted file mode 100644
index b1d05fd..0000000
--- a/org.eclipse.ui.intro/invalidPage/invalidPage.xhtml
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">       

-<html xmlns="http://www.w3.org/1999/xhtml">

-<head>

-<meta http-equiv="Content-Language" content="en-us" />

-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

-<title>Invalid Eclipse Welcome Page</title> 

-<style type="text/css">

-  html {overflow:auto;border:0;}

-</style>

-

-</head>

-

-<body style="padding: 0">

-

-<p>

-<img border="0" src="showerr_tsk.gif" width="16" height="16" align="left" style="float: left; padding-right:2px" alt="Error image" /></p>

-<address>

-	<span style="font-style: normal">

-	<b>Error loading Welcome page</b></span></address>

-<address>

-	The content of this welcome page could not be loaded. The file was either 

-	not found or is not well formed XHTML / XML. </address>

-<ul>

-	<li>

-	<address>check the log file for 

-details.

-	</address></li>

-	<li>

-	<address>you can validate the page by using the

-		<a href="http://org.eclipse.ui.intro/openBrowser?url=http://validator.w3.org">W3 

-Markup Validation Service</a>.</address></li>

-	<li>

-	<address>

-	after fixing problem, you can close and re-open the welcome view without the need to re-launch another 

-		runtime-workbench.

-	</address></li>

-</ul>

-<p>&nbsp;</p>

-

-</body>

-

-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/invalidPage/showerr_tsk.gif b/org.eclipse.ui.intro/invalidPage/showerr_tsk.gif
deleted file mode 100644
index 2ff6678..0000000
--- a/org.eclipse.ui.intro/invalidPage/showerr_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.intro/javascript/common.js b/org.eclipse.ui.intro/javascript/common.js
deleted file mode 100644
index ae1017f..0000000
--- a/org.eclipse.ui.intro/javascript/common.js
+++ /dev/null
@@ -1,33 +0,0 @@
-
-/*
- * The following function toggles between block and none display
- * for the element with a given id. It also toggles between
- * open and closed images for the folding section.
- * Returns false to stop the browser from following the link.
- */
-function toggleSection(id, closedId, openId) {
-	if (document.getElementById) {
-   		var element = document.getElementById(id);
-   		var openImage = document.getElementById(openId);
-   		var closedImage = document.getElementById(closedId);
-   		if (element.style.display=="block") {
-   			// hide the client block
-	   		element.style.display="none";
-	   		// switch toggle images
-   			if (openImage)
-   				openImage.style.display="none";
-			if (closedImage)
-				closedImage.style.display="inline";
-	   	}
-	   	else {
-	   		// turn it on and show
-	   		element.style.display="block";
-	   		// switch toggle images
-   			if (openImage)
-   				openImage.style.display="inline";
-   			if (closedImage)
-   				closedImage.style.display="none";
-	   	}
-   	}
-   	return false;
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/plugin.properties b/org.eclipse.ui.intro/plugin.properties
deleted file mode 100644
index 12d6ab5..0000000
--- a/org.eclipse.ui.intro/plugin.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# ==============================================
-# Intro plugin.xml properties file
-# ==============================================
-
-plugin_name = Welcome Framework
-provider_name = Eclipse.org
-config = Intro Part Configuration
-configExtension = Intro Part Configuration Extension
-
-searchParticipant.name.welcome = Welcome
diff --git a/org.eclipse.ui.intro/plugin.xml b/org.eclipse.ui.intro/plugin.xml
deleted file mode 100644
index 0c03143..0000000
--- a/org.eclipse.ui.intro/plugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- ========== Extension Points ================= -->
-<!-- =============================================================================== -->
-<!-- Extension point: org.eclipse.ui.intro.config                                    -->
-<!-- Extension-point for contributing a configuration to a Customizable Intro Part.  -->
-<!--                                                                                 -->
-<!-- =============================================================================== -->
-   <extension-point id="config" name="%config" schema="schema/config.exsd"/>
-<!-- ================================================================================= -->
-<!-- Extension point: org.eclipse.ui.intro.configExtension                             -->
-<!-- Extension-point for contributing an extension to an existing intro configuration  -->
-<!--                                                                                   -->
-<!-- ================================================================================= -->
-   <extension-point id="configExtension" name="%configExtension" schema="schema/configExtension.exsd"/>
-   
-   <extension
-         point="org.eclipse.ui.intro.configExtension">
-      <standbyContentPart
-            pluginId="org.eclipse.ui.intro"
-            class="org.eclipse.ui.internal.intro.impl.parts.EmptyStandbyContentPart"
-            id="org.eclipse.ui.intro.config.emptyStandby">
-      </standbyContentPart> 
-   </extension>
-   <extension
-         point="org.eclipse.help.base.luceneSearchParticipants">
-      <searchParticipant
-            icon="icons/welcome_item.gif"
-            id="org.eclipse.ui.intro"
-            name="%searchParticipant.name.welcome"
-            participant="org.eclipse.ui.internal.intro.impl.model.IntroSearchParticipant"/>
-   </extension>
-</plugin>
diff --git a/org.eclipse.ui.intro/schema/IntroContent.exsd b/org.eclipse.ui.intro/schema/IntroContent.exsd
deleted file mode 100644
index cd6719c..0000000
--- a/org.eclipse.ui.intro/schema/IntroContent.exsd
+++ /dev/null
@@ -1,810 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.intro">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.intro" id="null" name=""/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="introContent">
-      <annotation>
-         <documentation>
-            The introContent element defines the body of the intro content file.  The content file is made up of pages, shared groups that can be included in multiple pages, and extensions to anchor points defined in other configurations.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="page" minOccurs="1" maxOccurs="unbounded"/>
-            <element ref="group" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="extensionContent" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="page">
-      <annotation>
-         <documentation>
-            This element is used to describe a page to be displayed. The intro can display both dynamic and static pages.&lt;br&gt;
-Content for dynamic pages is generated from the subelements of the page, described below. The style or alt-style will be applied depending on the presentation. The styles can be further enhanced by referencing the id or class-id.&lt;br&gt;
-Static pages allow for the reuse of existing HTML documents within one&apos;s introduction, and can be linked to from any static or dynamic page.  Static pages are not defined in a page element, they are simply html files that can be linked to by other pages.&lt;br&gt;
-The home page, whose id is specified in the presentation element of the intro config extension point, can have a url indicating that it is a static page.  If no url is specified then the home page is assumed to be dynamic.  All other pages described using the page element are dynamic.&lt;br&gt;
- Also note that when the SWT presentation is used and a static page is to be displayed, an external brower is launched and the current page remains visible.&lt;br&gt;
-The subelements used in a dynamic page are as follows: A &lt;b&gt;group&lt;/b&gt; subelement is used to group related content and apply style across the grouped content. A &lt;b&gt;link&lt;/b&gt; subelement defines a link which can be used to link to a static or dynamic page and run an intro action/command.  A link is normally defined at the page level to navigate between main pages versus links within a page. A &lt;b&gt;text&lt;/b&gt; subelement defines textual content at the page level. A &lt;b&gt;head&lt;/b&gt; subelement is only applicable for the Web based presentation and allows for additional html to be added to the HTML &lt;b&gt;head&lt;/b&gt; section. This is useful for adding java scripts or extra style sheets. An &lt;b&gt;img&lt;/b&gt; subelement defines image content for the page level. An &lt;b&gt;include&lt;/b&gt; subelement allows for reuse of any element other than a page. An &lt;b&gt;html&lt;/b&gt; subelement is only applicable for the Web based presentation and allows for the embedding or inclusion of html into the page&apos;s content. Embedding allows for a fully defined html file to be embeded within an HTML &lt;b&gt;object&lt;/b&gt; by referencing the html file. Inclusion allows for including an html snippet directly from an html file. A &lt;b&gt;title&lt;/b&gt; subelement defines the title of the page.  An &lt;b&gt;anchor&lt;/b&gt; subelement defines a point where external contributions can be made by an &amp;lt;extensionContent&amp;gt; element.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="group" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="link" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="text" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="head" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="img" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="include" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="html" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="title" minOccurs="0" maxOccurs="1"/>
-            <element ref="anchor" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="contentProvider" minOccurs="0" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="url" type="string">
-            <annotation>
-               <documentation>
-                  The optional relative path to an HTML file. When using the Web based presentation, this HTML file will be displayed instead of any content defined for this page.  This attribute is only applicable to the home page, which is identified in the presentation element of the intro config extension point. It is ignored for all other pages.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique name that can be used to identify this page.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style" type="string">
-            <annotation>
-               <documentation>
-                  A relative path to a CSS file which is applied to the page only when using the Web based presentation. The path is relative to the location of this xml content file. &lt;br &gt;
-Since 3.1, styles can also be a comma separated list of styles. These styles will be injected into the HTML HEAD element in the order in which they are listed in the style attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="alt-style" type="string">
-            <annotation>
-               <documentation>
-                  A relative path to a SWT presentation properies file which is applied to the page only when using the SWT based presentation. The path is relative to the location of this xml content file. &lt;br &gt;
-
-Since 3.1, styles can also be a comma separated list of styles. These styles will be used when creating the SWT presentation of the welcome page.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="content" type="string">
-            <annotation>
-               <documentation>
-                  an optional attribute which can define the location of an introContent.xml file that represents the content of this page. When this attribute is defined, all children and attributes in this page element, except id, are ignored. This is because the content of this page is now assumed to reside in the xml file pointed to by the content file attribute. When resolving to the content of this file, the page with an id that matches the id defined in this page element is chosen.
-This seperation of pages can be used when performance is an issue, as the content of a page is now loaded more lazily.&lt;br &gt;
-
-Since 3.1, if the content of the external file is XHTML 1.0, then the page is rendered as is.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classifiy the page into a given category so that a common style may be applied.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="shared-style" type="boolean">
-            <annotation>
-               <documentation>
-                  a boolean flag that controls the addition of the shared style into this page&apos;s list of styles. If &lt;code&gt;true&lt;/code&gt; (the default), the shared style is added to this page&apos;s styles. If &lt;code&gt;false&lt;/code&gt;, the shared style defined in the Intro configuration will not be injected into the styles of this page.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="bgImage" type="string">
-            <annotation>
-               <documentation>
-                  an optional URL of the image to use as a background for this group
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="group">
-      <annotation>
-         <documentation>
-            Used to group related content, content that should have similar style applied, or content that will be included together in other pages.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="group" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="link" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="text" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="img" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="include" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="html" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="anchor" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="contentProvider" minOccurs="0" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  unique identifier of the group
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  a label or heading for this group
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classifiy this group into a given category so that a common style may be applied.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="computed" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  if &lt;code&gt;true&lt;/code&gt;, the children of this group will be provided by the intro configurer at run time. It is advised not to define any children statically in this case.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="bgImage" type="string">
-            <annotation>
-               <documentation>
-                  an optional URL of the image to use as a background for this group
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="head">
-      <annotation>
-         <documentation>
-            Direct HTML to include in a page&apos;s HEAD content area. It allows for additional html to be added to the HTML HEAD section. This is useful for adding java srcipts or extra styles sheets.
-This markup is only to be used with an HTML based intro part implementation. It is simply ignored in the case of a UI Forms implementation. A page can have more than one head element. An implementation can have one and only one head element (since it is a shared across all pages).
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="src" type="string" use="required">
-            <annotation>
-               <documentation>
-                  relative or absolute URL to a file containing HTML to include directly into the HTML head section.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="encoding" type="string">
-            <annotation>
-               <documentation>
-                  an optional attribute to specify the encoding of the inlined file containing the head snippet. Default is UTF-8. Since 3.0.1
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="title">
-      <annotation>
-         <documentation>
-            a snippet of text that can optionally contain escaped HTML tags. It is only used as a Page Title, and so a given page can have a maximum of one title element.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  unique identifier of this title.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classifiy this element into a given category so that a common style may be applied
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="link">
-      <annotation>
-         <documentation>
-            Can link to a static HTML file, an external web site, or can run an Intro URL action.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="text" minOccurs="0" maxOccurs="1"/>
-            <element ref="img" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  A unique id that can be used to identify this link
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  The text name of this link
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="url" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A valid URL to an external web site, a static html file, or an Intro URL that represents an Intro action. All intro URLs have the following form:  http://org.eclipse.ui.intro/&amp;lt;action name&amp;gt;?param1=value1&amp;amp;param2=value2 and will be processed by the intro framework.&lt;br&gt;
-The predefined actions will be described using this format:&lt;br&gt;
-&lt;p style=&quot;margin-left:15px;&quot;&gt;
-&lt;b&gt;action name&lt;/b&gt; - descripton of action&lt;br&gt;
-&lt;i&gt;action parameter1&lt;/i&gt; - description of parameter&lt;br&gt;
-&lt;i&gt;action parameter2 (optional)&lt;/i&gt; - description of parameter&lt;br&gt;
-&lt;i&gt;action parameter3 (optional) = (&quot;true&quot; 
- &quot;false&quot;) &quot;false&quot;&lt;/i&gt; - description of parameter, choice of either true or false and &quot;false&quot; is the default&lt;br&gt;
-&lt;/p&gt;
-
-&lt;br&gt;
-The following predefined actions are included in the intro framework:
-&lt;p style=&quot;margin-left:15px;&quot;&gt;
-&lt;b&gt;close&lt;/b&gt; - closes the intro part&lt;br&gt;
-no parameters required&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;navigate&lt;/b&gt; - navigate through the intro pages in a given direction or return to the home page&lt;br&gt;
-&lt;i&gt;direction = (&quot;backward&quot; 
- &quot;forward&quot; 
- &quot;home&quot;)&lt;/i&gt; - specifies the direction to navigate&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;openBrowser&lt;/b&gt; - open the url in an external browser. Since 3.1, this action relies on the workbench Browser support. This means that any user preferences set for the browser will be honored.&lt;br&gt;
-&lt;i&gt;url&lt;/i&gt; - a valid URL to an external web site or a local HTML file&lt;br&gt;
-&lt;i&gt;pluginId (optional)&lt;/i&gt; - if the url is relative, then it is relative to a plugin. Specify here the id of the plug-in containing the file.&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;openURL&lt;/b&gt; - open the url embedded in the Welcome page. In the case of SWT presentation, the url is displayed in an external browser (similar to the openBrowser action above). since 3.1&lt;br&gt;
-&lt;i&gt;url&lt;/i&gt; - a valid URL to an external web site or to a local HTML file&lt;br&gt;
-&lt;i&gt;pluginId (optional)&lt;/i&gt; - if the url is relative, then this specifies the id of the plug-in containing the file.&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;runAction&lt;/b&gt; - runs the specified action&lt;br&gt;
-&lt;i&gt;class&lt;/i&gt; - the fully qualified class name of the class that implements one of &lt;code&gt;org.eclipse.ui.intro.config.IIntroAction&lt;/code&gt;,
-               &lt;code&gt;org.eclipse.jface.actino.IAction&lt;/code&gt;, or &lt;code&gt;org.eclipse.ui.IActionDelegate&lt;/code&gt;&lt;br&gt;
-&lt;i&gt;pluginId&lt;/i&gt; - The id of the plug-in which contains the class.&lt;br&gt;
-&lt;i&gt;standby (optional) = (&quot;true&quot; 
- &quot;false&quot;) &quot;false&quot;&lt;/i&gt; - indicate whether to set the intro into standby mode after executing the action&lt;br&gt;
-additional parameters - any additional parameters are passed to actions that implement &lt;code&gt;org.eclipse.ui.intro.config.IIntroAction&lt;/code&gt;&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;setStandbyMode&lt;/b&gt; - sets the state of the intro part&lt;br&gt;
-&lt;i&gt;standby = (&quot;true&quot; 
- &quot;false&quot;)&lt;/i&gt; - true to put the intro part in its partially visible standy mode, and false to make it fully visible&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;showHelp&lt;/b&gt; - Open the help system.&lt;br&gt;
-no parameters required&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;showHelpTopic&lt;/b&gt; - Open a help topic.&lt;br&gt;
-&lt;i&gt;id&lt;/i&gt; - the URL of the help resource. (See Javadoc for &lt;code&gt;org.eclipse.ui.help.WorkbenchHelp.displayHelpResource)&lt;/code&gt;&lt;br&gt;
-&lt;i&gt;embed (optional) = (&quot;true&quot; 
- &quot;false&quot;)&lt;/i&gt; &quot;true&quot; - indicates that the help resource needs to be displayed embedded as part of the Welcome pages. Default is false. This flag is simply ignored in the case of the SWT presentation. This is equivalent to openURL() command, but for Help System topics. The embedded URL occupies the full real-estate of the current page. since 3.1&lt;br&gt;
-&lt;i&gt;embedTarget (optional)&lt;/i&gt; - the path to a div in the current Welcome page that will hold the content of the Help topic. If specified, then &lt;i&gt;embed&lt;/i&gt; is true by default and the embedded URL is inserted inside the div with the specified path. The path is relative to the page and so it should not start with the page id. The children of the div are replaced by the content of the URL. Only one div per page can be used as an embed target. This flag is simply ignored in the case of the SWT presentation. It is also unsupported when using XHTML as intro content. since 3.1&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;showMessage&lt;/b&gt; - Displays a message to the user using a standard information dialog.&lt;br&gt;
-&lt;i&gt;message&lt;/i&gt; - the message to show the user&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;showStandby&lt;/b&gt; - Sets the intro part to standby mode and shows the standbyContentPart with the given input&lt;br&gt;
-&lt;i&gt;partId&lt;/i&gt; - the id of the standbyContentPart to show&lt;br&gt;
-&lt;i&gt;input&lt;/i&gt; - the input to set on the standbyContentPart&lt;br&gt;
-&lt;br&gt;
-
-&lt;b&gt;showPage&lt;/b&gt; - show the intro page with the given id&lt;br&gt;
-&lt;i&gt;id&lt;/i&gt; - the id of the intro page to show&lt;br&gt;
-&lt;i&gt;standby (optional) = (&quot;true&quot; 
- &quot;false&quot;) &quot;false&quot;&lt;/i&gt; - indicate whether to set the intro into standby mode after showing the page&lt;br&gt;&lt;br&gt;
-
-If any of the parameters passed to these actions have special characters (ie: characters that are illegal in a URL), then they should be encoded using UTF-8 url encoding. To recieve these parametrs in there decoded state a special parameter, &lt;i&gt;decode = (&quot;true&quot; &quot;false&quot;)&lt;/i&gt;  can be used to force a decode of these parameters when the Intro framework processes them.&lt;br&gt;
-For example, the following Intro url: &lt;br&gt;&lt;i&gt;
-http://org.eclipse.ui.intro/showMessage?message=This+is+a+message&lt;/i&gt;&lt;br&gt;
-will process the message parameter as &quot;This+is+a+message&quot;&lt;br&gt;
-whereas&lt;br&gt;&lt;i&gt;
-http://org.eclipse.ui.intro/showMessage?message=This+is+a+message&amp;amp;amp;decode=true&lt;/i&gt;&lt;br&gt;
-will process the message parameter as &quot;This is a message&quot;.&lt;br&gt;
-
-
-&lt;br&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classifiy this link into a given category so that a common style may be applied.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="text">
-      <annotation>
-         <documentation>
-            a snippet of text that can optionally contain escaped HTML tags. It can include b and li tags. It can also contain anchors for urls. 
-If multiple paragraphs are needed, then the text can be divided into multiple sections each begining and ending with the p tag.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  unique identifier of this text.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classify this element into a given category so that a common style may be applied
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="img">
-      <annotation>
-         <documentation>
-            An image that represents intro content and not presentation (as opposed to decoration images defined in styles).
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  unique identifier of this image
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="src" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the file to load the image from
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="alt" type="string">
-            <annotation>
-               <documentation>
-                  the alternative text to use when the image can not be loaded and as tooltip text for the image.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classifiy this image into a given category so that a common style may be applied.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="html">
-      <annotation>
-         <documentation>
-            direct HTML to include in the page either by embedding the entire document, or inlining a snippet of HTML in-place. A fallback image or text must be defined for alternative swt presentation rendering.
-&lt;br&gt;
-Embedding allows for a fully defined html file to be embedded within the dynamic page&apos;s content.  An HTML &lt;b&gt;object&lt;/b&gt; element is created that references the html file. 
-&lt;br&gt;
-Inclusion allows for including an html snippet directly from a file into the dynamic html page.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="img"/>
-            <element ref="text"/>
-         </choice>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  unique identifier of this HTML element
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="src" type="string" use="required">
-            <annotation>
-               <documentation>
-                  relative or absolute URL to a file containing HTML
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  if &apos;embed&apos;, a valid (full) HTML document will be embedded using HTML &apos;OBJECT&apos; tag. If &apos;inline&apos;, value of &apos;src&apos; will be treated as a snippet of HTML to emit &apos;in-place&apos;. (if type is not specified, this html object is ignored by the intro configuration).
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="inline">
-                  </enumeration>
-                  <enumeration value="embed">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classifiy this HTML element into a given category so that a common style may be applied.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="encoding" type="string">
-            <annotation>
-               <documentation>
-                  an optional attribute to specify the encoding of the inlined file (in the case where type=inline is specified). If not specified, the default is UTF-8. Since 3.0.1
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="include">
-      <annotation>
-         <documentation>
-            expands an element targeted by the given path and optional configId attributes. Path should uniquely address an element within the specified configuration. It could point to a shared group defined at the configuration level, or any element in a page.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="configId" type="string">
-            <annotation>
-               <documentation>
-                  identifier of a configuration where the included element is defined. If specified, it is assumed that the element to be included is specified in another configuration, and not the enclosing configuration. In this case, that external config is loaded and the element is resolved from that new config. If not specified, enclosing (parent) configuration of this include is assumed.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="path" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the path that uniquely represents the target element within the configuration (e.g. page/group1/group2). It may be a group element, or any element that may be contained in a group. You can not include a page.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="merge-style" type="boolean">
-            <annotation>
-               <documentation>
-                  if &lt;code&gt;true&lt;/code&gt;, style belonging to the page that owns the included element will be added to list of styles of the including page. If &lt;code&gt;false&lt;/code&gt; (the default), the including page is responsible for controlling properties of the included element.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="anchor">
-      <annotation>
-         <documentation>
-            an anchor is the element used to declare extensibility. It is a location in the configurtaion that allows for external contributions. Only anchors are valid target values for the path attribute in an extensionContent
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  unique id to identify this anchor.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="extensionContent">
-      <annotation>
-         <documentation>
-            The content to be added to the target anchor. Only one extensionContent is allowed in a given configExtension because if this extension could not be resolved (if the config could not be found, or the target anchor element could not be found) then the pages and/or groups in the extension need to be ingnored.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="text"/>
-            <element ref="group"/>
-            <element ref="link"/>
-            <element ref="html"/>
-            <element ref="include"/>
-         </choice>
-         <attribute name="style" type="string">
-            <annotation>
-               <documentation>
-                  A relative path to a CSS file which is applied to the page only when using the Web based presentation. The path is relative to the location of this xml content file. &lt;br&gt;
-
-Since 3.1, styles can also be a comma separated list of styles. These styles will be injected into the HTML HEAD element in the order in which they are listed in the style attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="alt-style" type="string">
-            <annotation>
-               <documentation>
-                  A relative path to a SWT presentation properies file which is applied to the page only when using the SWT based presentation. The path is relative to the location of this xml content file. &lt;br&gt;
-
-Since 3.1, styles can also be a comma separated list of styles. These styles will be used when creating the SWT presentation of the welcome page.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="path" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the path that uniquely represents the path to an anchor. (e.g. page/group1/group2/anchorId) within the target configuration to be extended. It can only be an anchor which can be in any page or group, including shared groups at configuration level.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="content" type="string">
-            <annotation>
-               <documentation>
-                  if content is defined, it is assumed that the extension content is defined in an external XHTML file. In that case the resource pointed to by this content attribute is loaded and the path attribute is now resolved in this external file. since 3.1
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  (since 3.2) a unique identifier of this extension required when used in conjunction with intro configurer.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  (since 3.2) a translatable name of this extension required when used in conjunction with intro configurer
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="contentProvider">
-      <annotation>
-         <documentation>
-            A proxy for an intro content provider, which allows an intro page to dynamically pull data from various sources (e.g., the web, eclipse, etc) and provide content at runtime based on this dynamic data.  If the IIntroContentProvider class that is specified in the class attribute can not be loaded, then the contents of the text element will be rendered instead. 
-This is a dynamic version of the html intro tag. While the html tag allows for embedding or inlining a static html content into the generated html intro page, the contentProvider tag allows for dynamic creation of that content at runtime. 
-Another difference between the tags is that the html tag is only supported for the HTML presentation, while this contentProvider tag is supported for both the HTML and SWT presentations. Since 3.0.1
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="text" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  unique identifier of this content provider element. It is a required attribute because having a unique id is what prevents the intro framework from reinstantiating this content provider class and recreating its content.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="pluginId" type="string">
-            <annotation>
-               <documentation>
-                  The id of the plugin that contains the IContentProvider class specified by the class attribute.  This is an optional attribute that should be used if the class doesn&apos;t come from the same plugin that defined the markup.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A class that implements the IContentProvider interface
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="hr">
-      <annotation>
-         <documentation>
-            a horizontal rule.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  unique identifier of this hr
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="style-id" type="string">
-            <annotation>
-               <documentation>
-                  A means to classify this element into a given category so that a common style may be applied
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filteredFrom">
-            <annotation>
-               <documentation>
-                  an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies 
-this distribution, and is available at 
-&lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.intro/schema/book.css b/org.eclipse.ui.intro/schema/book.css
deleted file mode 100644
index 9278cd8..0000000
--- a/org.eclipse.ui.intro/schema/book.css
+++ /dev/null
@@ -1,106 +0,0 @@
-P.Code {

-	display: block;

-	text-align: left;

-	text-indent: 0.00pt;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 15pt;

-	font-size: 10.000000pt;

-	font-weight: medium;

-	font-style: Regular;

-	color: #4444CC;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family: "Courier New";

-}

-H6.CaptionFigColumn {

-	display: block;

-	text-align: left;

-	text-indent: 0.000000pt;

-	margin-top: 3.000000pt;

-	margin-bottom: 11.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;

-	font-size: 9.000000pt;

-	font-weight: medium;

-	font-style: Italic;

-	color: #000000;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family: "Arial";

-}

-P.Note {

-	display: block;

-	text-align: left;

-	text-indent: 0pt;

-	margin-top: 19.500000pt;

-	margin-bottom: 19.500000pt;

-	margin-right: 0.000000pt;

-	margin-left: 30pt;

-	font-size: 11.000000pt;

-	font-weight: medium;

-	font-style: Italic;

-	color: #000000;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family: "Arial";

-}

-EM.UILabel {

-	font-weight: Bold;

-	font-style: Regular;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-}

-EM.CodeName {

-	font-weight: Bold;

-	font-style: Regular;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family:"Courier New";

-}

-

-

-

-

-/* following font face declarations need to be removed for DBCS */

-

-body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: Arial, Helvetica, sans-serif; color: #000000}

-pre				{ font-family: Courier, monospace}

-

-/* end font face declarations */

-

-/* following font size declarations should be OK for DBCS */

-body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-size: 10pt; }

-pre				{ font-size: 10pt}

-

-/* end font size declarations */

-

-body	     { background: #FFFFFF}

-h1           { font-size: 18pt; margin-top: 5; margin-bottom: 1 }	

-h2           { font-size: 14pt; margin-top: 25; margin-bottom: 3 }

-h3           { font-size: 11pt; margin-top: 20; margin-bottom: 3 }

-h4           { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style: italic }

-p            { margin-top: 10px; margin-bottom: 10px }

-pre	     { margin-left: 6; font-size: 9pt }

-a:link	     { color: #0000FF }

-a:hover	     { color: #000080 }

-a:visited    { text-decoration: underline }

-ul	     { margin-top: 0; margin-bottom: 10 }

-li	     { margin-top: 0; margin-bottom: 0 } 

-li p	     { margin-top: 0; margin-bottom: 0 } 

-ol	     { margin-top: 0; margin-bottom: 10 }

-dl	     { margin-top: 0; margin-bottom: 10 }

-dt	     { margin-top: 0; margin-bottom: 0; font-weight: bold }

-dd	     { margin-top: 0; margin-bottom: 0 }

-strong	     { font-weight: bold}

-em	     { font-style: italic}

-var	     { font-style: italic}

-div.revision { border-left-style: solid; border-left-width: thin; 

-				   border-left-color: #7B68EE; padding-left:5 }

-th	     { font-weight: bold }

diff --git a/org.eclipse.ui.intro/schema/config.exsd b/org.eclipse.ui.intro/schema/config.exsd
deleted file mode 100644
index 6864ea7..0000000
--- a/org.eclipse.ui.intro/schema/config.exsd
+++ /dev/null
@@ -1,368 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.intro">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.intro" id="config" name="Intro Part Configuration"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to register an intro configuration. This configuration provides presentation implementations and content for a given intro contribution. An intro appears when the workbench is first launched and as a choice from the &quot;Help&quot; menu. The intro is typically used to introduce a user to a product built on Eclipse.
-&lt;p&gt;
-The intros are organized into pages which usually reflect a particular category of introductory material.  For instance, a What&apos;s New page may introduce new concepts or functionality since previous versions.  The content defined by one intro configuration can be referenced and extended from other plug-ins using the &lt;a href=&quot;org_eclipse_ui_intro_configExtension.html&quot;&gt;org.eclipse.ui.intro.configExtension&lt;/a&gt; extension point.
-&lt;p&gt;
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="IntroContent.exsd"/>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="config" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="config">
-      <annotation>
-         <documentation>
-            A config element can be used to configure a customizable Intro Part. A config element must specify an id, an introId, and a content file.
-The intro content file is an XML file that describes the pages, groups and links that the intro has.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="presentation"/>
-         </sequence>
-         <attribute name="introId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the id of an intro part contribution that this configuration will be associated with.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name that can be used to identify this intro configuration
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="content" type="string" use="required">
-            <annotation>
-               <documentation>
-                  an intro content file. The content file is an XML file that contains the specifics of the intro (&lt;a href=&quot;introContentFileSpec.html&quot;&gt;intro content file format specification)&lt;/a&gt;.
-The content file is parsed at run time by the intro framework. Based on the settings in this file, a certain number of pages, groups, and links are shown to the user when the intro is opened.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="configurer" type="string">
-            <annotation>
-               <documentation>
-                  a name of the fully qualified class that provides for dynamic aspects of the intro configuration. This class can provide values of the substitution variables, children of the dynamic groups and resolve incomplete target paths. The class must extend &lt;code&gt;org.eclipse.ui.intro.IntroConfigurer&lt;/code&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.intro.config.IntroConfigurer"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="presentation">
-      <annotation>
-         <documentation>
-            Presentation element that defines all the possible implementations of an intro part&apos;s presentation. It can have one or more implementation defined in it. Only one implementation will be chosen at startup, based the os/ws attributes of the implementations. Otherwise, the first one with no os/ws attributes defined will be chosen.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="implementation" minOccurs="1" maxOccurs="unbounded"/>
-            <element ref="launchBar" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="home-page-id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the id of the home (root) page, which is the first page of the introduction.  This page can be used as an entry point to the other main pages that make up the intro.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="standby-page-id" type="string">
-            <annotation>
-               <documentation>
-                  an optional attribute to define the id of the standby page. The standby page will be shown to the user when the Intro is set to standby.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="implementation">
-      <annotation>
-         <documentation>
-            The presentation of the Platform&apos;s out of the box experience has two implementations. One of them is SWT Browser based, while the other is UI Forms based. The customizable intro part can be configured to pick one of those two presentations based on the current OS and WS. The type of the implementation can be swt or html.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="head" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="kind" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the type of this implementation.  The swt kind indicates a UI Forms based implementation, and the html kind indicates an SWT Browser based implementation
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="swt">
-                  </enumeration>
-                  <enumeration value="html">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="style" type="string">
-            <annotation>
-               <documentation>
-                  The shared style that will be applied to all pages presented by this intro presentation implementation.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="os" type="string">
-            <annotation>
-               <documentation>
-                  The optional operating system specification used when choosing the presentation&apos;s implementation.  It can be any of the os designators defined by Eclipse, e.g., win32, linux, etc (see Javadoc for &lt;code&gt;org.eclipse.core.runtime.Platform&lt;/code&gt;).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="ws" type="string">
-            <annotation>
-               <documentation>
-                  The optional windowing system specification used when choosing the presentation&apos;s implementation.  It can be any of the ws designators defined by Eclipse (see Javadoc for &lt;code&gt;org.eclipse.core.runtime.Platform&lt;/code&gt;).
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="launchBar">
-      <annotation>
-         <documentation>
-            Launch bar works in conjuction with &apos;switchToLaunchBar&apos; command. When executed, the command will close intro and create a launch bar in one of the trim areas of the main window. The launch bar will contain at least one button that would allow users to return to the last intro page. Optionally, it can contain additional buttons defined using &lt;code&gt;shortcut&lt;/code&gt; elements. These buttons can be used to quickly go to a certain intro page. since 3.1
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="handle" minOccurs="0" maxOccurs="1"/>
-            <element ref="shortcut" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="location" use="default" value="fastview">
-            <annotation>
-               <documentation>
-                  the location of the launch bar relative to the content area in the main window (one of &lt;code&gt;left&lt;/code&gt;, &lt;code&gt;bottom&lt;/code&gt; or &lt;code&gt;right&lt;/code&gt;). If the choice is set to &lt;code&gt;fastview&lt;/code&gt; (the default), the launch bar will be initially created where the fast view bar is.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="left">
-                  </enumeration>
-                  <enumeration value="bottom">
-                  </enumeration>
-                  <enumeration value="right">
-                  </enumeration>
-                  <enumeration value="fastview">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="bg" type="string">
-            <annotation>
-               <documentation>
-                  background color that will be applied to the launch bar if specified. Expected format is hex, as in: #rrggbb (for example, #80a4a1).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="fg" type="string">
-            <annotation>
-               <documentation>
-                  foreground color that will be used to paint the border of the launch bar if specified. Expected format is hex, as in: #rrggbb (for example, #80a4a1).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="computed" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  an optional boolean flag that indicates whether the launch bar shortcuts will be computed by the intro configurer. When set to &lt;code&gt;true&lt;/code&gt;, static &lt;code&gt;shortcut&lt;/code&gt; elements defined in plugin.xml will be ignored.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="shortcut">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="tooltip" icon="icon"/>
-         </appInfo>
-         <documentation>
-            a button will be created in the intro launch bar for each shortcut element. The URL defined in the shortcut will be executed when the button is pressed. since 3.1
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="tooltip" type="string">
-            <annotation>
-               <documentation>
-                  a tooltip to be used for this shortcut
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a relative path to the image icon that should be used for this shortcut in the intro launch bar.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="url" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the URL to execute when the shortcut in the launch bar is activated
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="handle">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <documentation>
-            an optional element that controls how launch bar handle is rendered. since 3.1
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="close" type="boolean" use="default" value="true">
-            <annotation>
-               <documentation>
-                  an optional flag that controls if the handle will have a close button (default is &lt;code&gt;true&lt;/code&gt;).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="image" type="string">
-            <annotation>
-               <documentation>
-                  a plug-in-relative path of the branding image to be tiled on the handle.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         Here is a sample usage of the config extension point.
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension id=&quot;intro&quot; point=&quot;org.eclipse.ui.intro.config&quot;&gt;
-   &lt;config
-      introId=&quot;com.org.xyz.intro&quot;
-      id=&quot;com.org.xyz.introConfig&quot;
-      content=&quot;introContent.xml&quot;&gt;
-      &lt;presentation
-         home-page-id=&quot;root&quot;
-         title=&quot;%intro.title&quot;&gt;
-         &lt;implementation
-            ws=&quot;win32&quot;
-            style=&quot;css/shared.css&quot;
-            kind=&quot;html&quot;
-            os=&quot;win32&quot;&gt;
-         &lt;/implementation&gt;
-         &lt;implementation
-            style=&quot;css/shared_swt.properties&quot;
-            kind=&quot;swt&quot;&gt;
-         &lt;/implementation&gt;
-      &lt;/presentation&gt;
-   &lt;/config&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         For further details see the spec for the org.eclipse.ui.intro.config API package.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The intro contributed by the org.eclipse.platform plugin is the only implementation within Eclipse.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at 
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.intro/schema/configExtension.exsd b/org.eclipse.ui.intro/schema/configExtension.exsd
deleted file mode 100644
index 5b45464..0000000
--- a/org.eclipse.ui.intro/schema/configExtension.exsd
+++ /dev/null
@@ -1,291 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.intro">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.intro" id="configExtension" name="Intro Part Configuration Extension"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;This extension point is used to extend an existing intro configuration by providing more content, additional StandbyContentParts or additional IntroUrl actions.
-&lt;/p&gt;
-&lt;p&gt;Since 3.2, this extension point is also used to contribute a presentation theme that can be used by welcome implementations to separate presentation and content.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="configExtension" minOccurs="1" maxOccurs="unbounded"/>
-            <element ref="standbyContentPart" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="theme" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="configExtension">
-      <annotation>
-         <documentation>
-            Defines an extension to an intro configuration. Any page or group in an intro part configuration can be extended, if it has declared extensability by defining anchors.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="configId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the id of an intro contribution that will be extended
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="content" type="string" use="required">
-            <annotation>
-               <documentation>
-                  an intro content file. The content file is an XML file that contains the specifics of the intro (&lt;a href=&quot;introContentFileSpec.html&quot;&gt;intro content file format specification)&lt;/a&gt;.
-The content file is parsed at run time by the intro framework. Based on the settings in this file, a certain number of pages, groups, and links are shown to the user when the intro is opened.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="standbyContentPart">
-      <annotation>
-         <documentation>
-            standbyContentPart registration. Once registered, standby parts can be launched through an introURL action of the following format:
-&lt;pre&gt; 
-http://org.eclipse.ui.intro/showStandby?partId=&amp;lt;id of standbyContentPart&amp;gt;
-&lt;/pre&gt;
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique id that identifies this standbyContentPart.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="pluginId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the plugin that holds the class defined in the &quot;class&quot; attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the fully qualified class name of the class that implements &lt;code&gt;org.eclipse.ui.intro.config.IStandbyContentPart&lt;/code&gt; to handle displaying alternative standby content, such as a cheat sheet.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="action">
-      <annotation>
-         <documentation>
-            custom Intro URL action registration. This can be used to create new Intro URL actions or a shortCut to predefined actions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name that identifies this action.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="replaces" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the macro which replaces the action name in the Intro URL.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="theme">
-      <complexType>
-         <sequence>
-            <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier of the intro theme
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a translatable name of the intro theme that will be rendered in the UI
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="path" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a plug-in-relative path to the folder where the style sheets and associated graphics reside.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="default" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  an optional flag that indicates if this theme is the default. Default theme will be used if no theme is explicitly selected.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="previewImage" type="string">
-            <annotation>
-               <documentation>
-                  an optional image of 4x3 ratio that will be used to preview this theme in the UI. Recommended size is 160x120.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="property">
-      <annotation>
-         <documentation>
-            an optional theme property that can be used by intro configurers to further customize intro presentation.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  unique name of the property
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  value of the property
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         Here is an example implementation of this extension point:
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.ui.intro.configExtension&quot;&gt;
-    &lt;configExtension
-         configId=&quot;com.org.xyz.introConfig&quot; 
-         content=&quot;extensionContent.xml&quot;/&gt;  
-
-    &lt;standbyPart
-         id=&quot;com.org.xyz.myStandbyPart&quot;
-         class=&quot;com.org.xyz.internal.MyStandbyContent&quot;
-         pluginId=&quot;com.org.xyz&quot;/&gt;
-
-    &lt;action
-         name=&quot;shortcutAction&quot;
-         replaces=&quot;http://org.eclipse.ui.intro/showStandby?partId=com.org.xyz.myStandbyPart&quot;/&gt;
-
-    &lt;action
-         name=&quot;customAction&quot;
-         replaces=&quot;runAction?pluginId=com.org.xyz&amp;amp;class=com.org.xyz.CustomAction&amp;amp;param1=value1&quot;/&gt;
-
-    &lt;theme
-         id=&quot;com.example.intro.flowers&quot;
-         name=&quot;A Nice Flowers Welcome&quot;
-         path=&quot;$nl$/themes/flowers&quot;
-         previewImage=&quot;$nl$/themes/flowers/preview.png&quot;&gt;
-    &lt;/theme&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         For further details see the spec for the org.eclipse.ui.intro.config API package.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         There are three supplied implementations:
-&lt;ul&gt;
-&lt;li&gt;org.eclipse.jdt, makes use of configExtension&lt;/li&gt;
-&lt;li&gt;org.eclipse.pde, makes use of configExtension&lt;/li&gt;
-&lt;li&gt;org.eclipse.platform, makes use of standbyPoint&lt;/li&gt;
-&lt;/ul&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2004 IBM Corporation and others. &lt;br&gt;All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.intro/schema/introContentFileSpec.html b/org.eclipse.ui.intro/schema/introContentFileSpec.html
deleted file mode 100644
index 3bee8b5..0000000
--- a/org.eclipse.ui.intro/schema/introContentFileSpec.html
+++ /dev/null
@@ -1,399 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<!-- default platform documentation stylesheets -->
-<style>@import url("../../book.css");</style>
-<style>@import url("book.css");</style>
-<!-- default schema documentation stylesheets -->
-<style>@import url("schema.css");</style>
-<style>@import url("../../schema.css");</style>
-<title>Intro Content File XML Format</title>
-</head>
-
-<body>
-
-<h1>Intro Content File XML Format</h1>
-<p>Version 3.1.0</p>
-<p>This document describes the intro content file structure as a series of
-DTD fragments.</p>
-<h2><code>introContent</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.introContent">introContent</a> (<a href="#e.page">page</a>+ , <a href="#e.group">group</a>* , <a href="#e.extensionContent">extensionContent</a>*)&gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-The introContent element defines the body of the intro content file.  The content file is made up of pages, shared groups that can be included in multiple pages, and extensions to anchor points defined in other configurations.</p>
-<br><br>
-<h2><code>page</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.page">page</a> (<a href="#e.group">group</a>* | <a href="#e.link">link</a>* | <a href="#e.text">text</a>* | <a href="#e.head">head</a>* | <a href="#e.img">img</a>* | <a href="#e.include">include</a>* | 
-<a href="#e.html">html</a>* | <a href="#e.hr">hr</a>* | <a href="#e.title">title</a>? | <a href="#e.anchor">anchor</a>* 
-| <a href="#e.contentProvider">contentProvider</a>*)&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST page</p>
-<p class=code id=dtdAttlist>url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>style&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>alt-style&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>filteredFrom&nbsp;(swt|html)<br>
-bgImage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED <p class=code id=dtdAttlist>content&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-This element is used to describe a page to be displayed. The intro can display both dynamic and static pages.<br>
-<br>
-Content for dynamic pages is generated from the sub elements of the page, described below. The style or alt-style will be applied depending on the presentation. The styles can be further enhanced by referencing the id or class-id.<br>
-<br>
-Static pages allow for the reuse of existing HTML documents within one's introduction, and can be linked to from any static or dynamic page.  Static pages are not defined in a page element, they are simply html files that can be linked to by other pages.<br>
-<br>
-The home page, whose id is specified in the presentation element of the intro config extension point, can have a url indicating that it is a static page.  If no url is specified then the home page is assumed to be dynamic.  All other pages described using the page element are dynamic.  
-<br>
- Also note that when the SWT presentation is used and a static page is to be displayed, an external 
-browser is launched and the current page remains visible.<br>
-<br>
-
-The subelements used in a dynamic page are as follows: A <b>group</b> subelement is used to group related content and apply style across the grouped content. A <b>link</b> subelement defines a link which can be used to link to a static or dynamic page and run an intro action/command.  A link is normally defined at the page level to navigate between main pages versus links within a page. A <b>text</b> subelement defines textual content at the page level. A <b>head</b> subelement is only applicable for the Web based presentation and allows for additional html to be added to the HTML <b>head</b> section. This is useful for adding java scripts or extra style sheets. An <b>img</b> subelement defines image content for the page level. An <b>include</b> subelement allows for reuse of any element other than a page. An <b>html</b> subelement is only applicable for the Web based presentation and allows for the embedding or inclusion of html into the page's content. Embedding allows for a fully defined html file to be embeded within an HTML <b>object</b> by referencing the html file. Inclusion allows for including an html snippet directly from an html file. A <b>title</b> subelement defines the title of the page.  An <b>anchor</b> subelement defines a point where external contributions can be made by an &lt;extensionContent&gt; element.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>url</b> - The optional relative path to an HTML file. When using the Web based presentation, this HTML file will be displayed instead of any content defined for this page.  This attribute is only applicable to the home page, which is identified in the presentation element of the intro config extension point. It is ignored for all other pages.</li>
-<li><b>id</b> - A unique name that can be used to identify this page.</li>
-<li><b>style</b> - A relative path to a CSS file which is applied to the page only when using the Web based presentation. 
-
-
- The path is relative to the location of this xml content file.<br>
- Since 3.1, styles can also be a comma separated list of styles. 
-
-
- These styles will be injected into the HTML HEAD element in the order in which they are listed in the style attribute.</li>
-<li><b>alt-style</b> - A relative path to a SWT presentation properties file which is applied to the page only when using the SWT based presentation. 
-
-
- The path is relative to the location of this xml content file.<br> 
- Since 3.1, styles can also be a comma separated list of styles. 
-
-
- These styles will be used when creating the SWT presentation of the welcome page.</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-<li><b>content</b> - an optional attribute which can define the location of an introContent.xml file that represents the content of this page. When this attribute is defined, all children and attributes in this page element, except id, are ignored. This is because the content of this page is now assumed to reside in the xml file pointed to by the content file attribute. When resolving to the content of this file, the page with an id that matches the id defined in this page element is chosen.
-This separation of pages can be used when performance is an issue, as the content of a page is now loaded more lazily.Since 3.1, if the content of the external file is XHTML 1.0, then the page is rendered as is.</li>
-<li><b>style-id</b> - A means to classify the page into a given category so that a common style may be applied.</li>
-<li><strong>shared-style </strong> - a boolean flag that controls the addition of the shared style into this page's list of styles. If true (the default), the shared style is added to this page's styles. If false , the shared style defined in the Intro configuration will not be injected into the styles of this page. </li>
-<li><b>bgImage</b> - an optional URL of the background image to be used for this 
-page</li>
-</ul>
-<h2><code>group</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.group">group</a> (<a href="#e.group">group</a>* | <a href="#e.link">link</a>* | <a href="#e.text">text</a>* | <a href="#e.img">img</a>* | <a href="#e.include">include</a>* | <a href="#e.html">html</a>* | <a href="#e.anchor">anchor</a>*)&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST group</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code>
-<p class=code id=dtdAttlist>computed&nbsp;&nbsp;&nbsp;&nbsp; CDATA (true|false) "false"<br>
-bgImage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED</p>
-<p class=code id=dtdAttlist>filteredFrom&nbsp;(swt|html) &gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-Used to group related content, content that should have similar style applied, or content that will be included together in other pages.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - unique identifier of the group</li>
-<li><b>label</b> - a label or heading for this group</li>
-<li><b>style-id</b> - A means to classify this group into a given category so that a common style may be applied.</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-<li><b>computed</b> - if <code>true</code>, the children of this group will be 
-provided by the intro configurer at run time. It is advised not to define any 
-children statically in this case.</li>
-<li><b>bgImage</b> - an optional URL of the background image to be used for this 
-group</li>
-</ul>
-<h2><code>link</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.link">link</a> (<a href="#e.text">text</a>? , <a href="#e.img">img</a>?)&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST link</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>filteredFrom&nbsp;(swt|html) &gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-Can link to a static HTML file, an external web site, or can run an Intro URL action.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - A unique id that can be used to identify this link</li>
-<li><b>label</b> - The text name of this link</li>
-<li><b>url</b> - A valid URL to an external web site, a static html file, or an Intro URL that represents an Intro action. All intro URLs have the following form:  http://org.eclipse.ui.intro/&lt;action name&gt;?param1=value1&amp;param2=value2 and will be processed by the intro framework.
-</ul>
-
-<br><br>
-The predefined actions will be described using this format:
-<br>
-<p style="margin-left:15px;">
-<b>action name</b> - description of action<br>
-<i>action parameter1</i> - description of parameter<br>
-<i>action parameter2 (optional)</i> - description of parameter<br>
-<i>action parameter3 (optional) = ("true" | "false") "false"</i> - description of parameter, choice of either true or false and "false" is the default<br>
-</p>
-
-<br>
-The following predefined actions are included in the intro framework:
-<p style="margin-left:15px;">
-<b>close</b> - closes the intro part<br>
-no parameters required<br>
-<br>
-
-<b>execute</b> - executes the specified command.  See the <code>serialize()</code> method on <code>org.eclipse.core.command.ParameterizedCommand</code> for details of the command serialization format. Since 3.2.<br>
-<i>command</i> - a serialized <code>ParameterizedCommand</code><br>
-<i>standby (optional) = ("true" | "false") "false"</i> - indicate whether to set the intro into standby mode after executing the command<br>
-<br>
-
-<b>navigate</b> - navigate through the intro pages in a given direction or return to the home page<br>
-<i>direction = ("backward" | "forward" | "home")</i> - specifies the direction to navigate<br>
-<br>
-
-<b>openBrowser</b> - 
-
-
- open the url in an external browser. Since 3.1, this action relies on the workbench Browser support. This means that any user preferences set for the browser will be honored.<br>
-<i>url</i> - a valid URL to an external web site or a static HTML file<br>
-<i>pluginId (optional)</i> - only required if a static HTML file is specified. This is the id of the plug-in containing the file.</p>
-<p style="margin-left:15px;"><b>openURL</b> - open the url embedded in the Welcome page. In the case of SWT presentation, the url is displayed in an external browser (similar to the openBrowser action above). 
-
-
- since 3.1 <br>
-  <i>url</i> - a valid URL to an external web site or to a local HTML file<br>
-  <i>pluginId (optional)</i> - if the url is relative, then this specifies the id of the plug-in containing the file.<br>
-  <br>
-  
-  <b>runAction</b> - runs the specified action<br>
-  <i>class</i> - the fully qualified class name of the class that implements one of <code>org.eclipse.ui.intro.config.IIntroAction</code>, <code>org.eclipse.jface.action.IAction</code>, or <code>org.eclipse.ui.IActionDelegate</code><br>
-  <i>pluginId</i> - The id of the plug-in which contains the class.<br>
-  <i>standby (optional) = ("true" | "false") "false"</i> - indicate whether to set the intro into standby mode after executing the action<br>
-  additional parameters - any additional parameters are passed to actions that implement <code>org.eclipse.ui.intro.config.IIntroAction</code><br>
-  <br>
-  
-  <b>setStandbyMode</b> - sets the state of the intro part<br>
-  <i>standby = ("true" | "false")</i> - true to put the intro part in its partially visible 
-  standby mode, and false to make it fully visible<br>
-  <br>
-  
-<b>showHelp</b> - Open the help system.<br>
-  no parameters required<br>
-  <br>
-  
-<b>showHelpTopic</b> - Open a help topic.<br>
-  <i>id</i> - the URL of the help resource. (See Javadoc for <code>org.eclipse.ui.help.WorkbenchHelp.displayHelpResource</code><br>
-<i>embed </i><i>(optional) = ("true" | "false") "true"</i> - indicates that the help resource needs to be displayed embedded as part of the welcome pages. Default is false. This flag is simply ignored in the case of the SWT presentation. since 3.1<br>
-<em>embedTarget (optional) </em> - the path to a div in the current Welcome page that will hold the content of the Help topic. If specified, then <em>embed </em> is true by default and the embedded URL is inserted inside the div with the specified path. The path is relative to the page and so it should not start with the page id. The children of the div are replaced by the content of the URL. Only one div per page can be used as an embed target. This flag is simply ignored in the case of the SWT presentation. It is also unsupported when using XHTML as intro content. since 3.1
-
-<p style="margin-left:15px;"><br>
-    
-  <b>showMessage</b> - Displays a message to the user using a standard information dialog.<br>
-  <i>message</i> - the message to show the user<br>
-  <br>
-    
-  <b>showStandby</b> - Sets the intro part to standby mode and shows the standbyContentPart with the given input<br>
-  <i>partId</i> - the id of the standbyContentPart to show<br>
-  <i>input</i> - the input to set on the standbyContentPart<br>
-  <br>
-    
-  <b>showPage</b> - show the intro page with the given id<br>
-  <i>id</i> - the id of the intro page to show<br>
-<i>standby (optional) = ("true" | "false") "false"</i> - indicate whether to set the intro into standby mode after showing the page</p>
-<p style="margin-left:15px;"> If any of the parameters passed to these actions have special characters (ie: characters that are illegal in a URL), then they should be encoded using UTF-8 url encoding. To recieve these parametrs in there decoded state a special parameter, <em>decode = ("true" "false") </em> can be used to force a decode of these parameters when the Intro framework processes them. <br>
-For example, the following Intro url: <br>
-<em>http://org.eclipse.ui.intro/showMessage?message=This+is+a+message </em><br>
-will process the message parameter as "This+is+a+message" <br>
-whereas <br>
-<em>http://org.eclipse.ui.intro/showMessage?message=This+is+a+message&amp;amp;decode=true </em><br>
-will process the message parameter as "This is a message". <br>
-</p>
-<br></li>
-<li><b>style-id</b> - A means to classify this link into a given category so that a common style may be applied.</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-</ul>
-<h2><code>html</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.html">html</a> (<a href="#e.img">img</a> | <a href="#e.text">text</a>)&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST html</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>src&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(inline|embed) <p class=code id=dtdAttlist>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>filteredFrom&nbsp;(swt|html) &gt;<p class=code id=dtdAttlist>encoding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-direct HTML to include in the page either by embedding the entire document, or inlining a snippet of HTML in-place. A fallback image or text must be defined for alternative swt presentation rendering.
-<br>
-Embedding allows for a fully defined html file to be embedded within the dynamic page's content.  An HTML <b>object</b> element is created that references the html file. 
-<br>
-Inclusion allows for including an html snippet directly from a file into the dynamic html page.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - unique identifier of this HTML element</li>
-<li><b>src</b> - relative or absolute URL to a file containing HTML</li>
-<li><b>type</b> - if 'embed', a valid (full) HTML document will be embedded using HTML 'OBJECT' tag. If 'inline', value of 'src' will be treated as a snippet of HTML to emit 'in-place'. (if type is not specified, this html object is ignored by the intro configuration).</li>
-<li><b>style-id</b> - A means to classify this HTML element into a given category so that a common style may be applied.</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-<li><b>encoding</b> - an optional attribute to specify the encoding of the inlined file (in the case where type=inline is specified). If not specified, the default is UTF-8. Since 3.0.1</li>
-</ul>
-<h2><code>hr</code></h2>
-<br><p class=code id=dtd0>&lt;!ELEMENT <a name="e.hr">hr</a> EMPTY&gt;</p>
-<p class=code id=dtd1>&lt;!ATTLIST hr</p>
-<p class=code id=dtdAttlist0>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist1>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist2>filteredFrom&nbsp;(swt|html) &gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc0>
-a horizontal rule.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc0>
-<li><b>id</b> - unique identifier of this rule.</li>
-<li><b>style-id</b> - A means to classify this element into a given category so that a common style may be applied</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-</ul>
-<h2><code>title</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.title">title</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST title</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>filteredFrom&nbsp;(swt|html) &gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-a snippet of text that can optionally contain escaped HTML tags. It is only used as a Page Title, and so a given page can have a maximum of one title element.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - unique identifier of this title.</li>
-<li><b>style-id</b> - A means to classifiy this element into a given category so that a common style may be applied</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-</ul>
-<h2><code>text</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.text">text</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST text</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>filteredFrom&nbsp;(swt|html) &gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-a snippet of text that can optionally contain escaped HTML tags. It can include b and li tags. It can also contain anchors for urls. 
-If multiple paragraphs are needed, then the text can be divided into multiple sections each 
-beginning and ending with the p tag.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - unique identifier of this text.</li>
-<li><b>style-id</b> - A means to classify this element into a given category so that a common style may be applied</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-</ul>
-<h2><code>include</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.include">include</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST include</p>
-<p class=code id=dtdAttlist>configId&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>merge-style&nbsp;(true | false) &gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-expands an element targeted by the given path and optional configId attributes. Path should uniquely address an element within the specified configuration. It could point to a shared group defined at the configuration level, or any element in a page.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>configId</b> - identifier of a configuration where the included element is defined. If specified, it is assumed that the element to be included is specified in another configuration, and not the enclosing configuration. In this case, that external config is loaded and the element is resolved from that new config. If not specified, enclosing (parent) configuration of this include is assumed.</li>
-<li><b>path</b> - the path that uniquely represents the target element within the configuration (e.g. page/group1/group2). It may be a group element, or any element that may be contained in a group. You can not include a page.</li>
-<li><b>merge-style</b> - if <code>true</code>, style belonging to the page that owns the included element will be added to list of styles of the including page. If <code>false</code> (the default), the including page is responsible for controlling properties of the included element.</li>
-</ul>
-<h2><code>head</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.head">head</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST head</p>
-<p class=code id=dtdAttlist>src&nbsp;CDATA #REQUIRED&gt;<p class=code id=dtdAttlist>encoding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-Direct HTML to include in a page's HEAD content area. It allows for additional html to be added to the HTML HEAD section. This is useful for adding java 
-scripts or extra styles sheets.
-This markup is only to be used with an HTML based intro part implementation. It is simply ignored in the case of a UI Forms implementation. A page can have more than one head element. An implementation can have one and only one head element (since it is a shared across all pages).</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>src</b> - relative or absolute URL to a file containing HTML to include directly into the HTML head section.</li>
-<li><b>encoding</b> - an optional attribute to specify the encoding of the inlined file containing the head snippet. Default is UTF-8. Since 3.0.1</li>
-</ul>
-<h2><code>img</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.img">img</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST img</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>src&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>alt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>style-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>filteredFrom&nbsp;(swt|html) &gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-An image that represents intro content and not presentation (as opposed to decoration images defined in styles).</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - unique identifier of this image</li>
-<li><b>src</b> - the file to load the image from</li>
-<li><b>alt</b> - the alternative text to use when the image can not be loaded and as tooltip text for the image.</li>
-<li><b>style-id</b> - A means to classify this image into a given category so that a common style may be applied.</li>
-<li><b>filteredFrom</b> - an optional attribute that allows for filtering a given element out of a specific implementation. For example, if a group has filteredFrom = swt, it means that this group will not appear as content in the swt implementation.</li>
-</ul>
-<h2><code>extensionContent</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.extensionContent">extensionContent</a> (<a href="#e.text">text</a> | <a href="#e.group">group</a> | <a href="#e.link">link</a> | <a href="#e.html">html</a> | <a href="#e.include">include</a>)&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST extensionContent</p>
-<p class=code id=dtdAttlist>style&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>alt-style&nbsp;CDATA #IMPLIED<br>
-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED<p class=code>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
-CDATA #IMPLIED<p class=code id=dtdAttlist>path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-The content to be added to the target anchor. Only one extensionContent is allowed in a given configExtension because if this extension could not be resolved (if the config could not be found, or the target anchor element could not be found) then the pages and/or groups in the extension need to be 
-ignored.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>style</b> - 
-
-
- A relative path to a CSS file which is applied to the page only when using the Web based presentation. The path is relative to the location of this xml content file. <br>
-Since 3.1, styles can also be a comma separated list of styles. These styles will be injected into the HTML HEAD element in the order in which they are listed in the style attribute. </li>
-<li><b>alt-style</b> - 
-
-
- A relative path to a SWT presentation properies file which is applied to the page only when using the SWT based presentation. The path is relative to the location of this xml content file. <br>
-Since 3.1, styles can also be a comma separated list of styles. These styles will be used when creating the SWT presentation of the welcome page.</li>
-<li><b>path</b> - the path that uniquely represents the path to an anchor. (e.g. 
-<b>page/group1/group2/anchorId</b>) within the target configuration to be extended. It can only be an anchor which can be in any page or group, including shared groups at configuration level. 
-Since 3.2, path can also use format 'page/@'. This format delegates path 
-resolution to the intro configurer.</li>
-<li><b>id</b> - (since 3.2) a unique identifier of this extension required when 
-used in conjunction with intro configurer.</li>
-<li><b>name</b> - (since 3.2) a translatable name of this extension required 
-when used in conjunction with intro configurer</li>
-<li><strong>content </strong>- if content is defined, it is assumed that the extension content is defined in an external XHTML file. In that case the resource pointed to by this content attribute is loaded and the path attribute is now resolved in this external file. since 3.1
-</li>
-</ul>
-<p></p>
-<h2><code>anchor</code></h2>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.anchor">anchor</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST anchor</p>
-<p class=code id=dtdAttlist>id&nbsp;CDATA #REQUIRED&gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-an anchor is the element used to declare extensibility. It is a location in the 
-configuration that allows for external contributions. Only anchors are valid target values for the path attribute in an extensionContent</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - unique id to identify this anchor.</li>
-</ul>
- <h2 id="dtd"><code>contentProvider</code></h2>
-<p class="code" id="dtd">&nbsp;</p>
-<p class="code" id="dtd">&lt;!ELEMENT <a name="e.contentProvider">contentProvider</a> 
-(<a href="#e.text">text</a>)&gt;</p>
-<p class="code" id="dtd">&lt;!ATTLIST contentProvider</p>
-<p class="code" id="dtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED </p>
-<p class="code" id="dtdAttlist">pluginId&nbsp;CDATA #IMPLIED </p>
-<p class="code" id="dtdAttlist">class&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
-<p>&nbsp;</p>
-<p class="ConfigMarkup" id="elementDesc">A proxy for an intro content provider, 
-which allows an intro page to dynamically pull data from various sources (e.g., 
-the web, eclipse, etc) and provide content at runtime based on this dynamic 
-data. If the IIntroContentProvider class that is specified in the class 
-attribute can not be loaded, then the contents of the text element will be 
-rendered instead. This is a dynamic version of the html intro tag. While the 
-html tag allows for embedding or inlining a static html content into the 
-generated html intro page, the contentProvider tag allows for dynamic creation 
-of that content at runtime. Another difference between the tags is that the html 
-tag is only supported for the HTML presentation, while this contentProvider tag 
-is supported for both the HTML and SWT presentations. Since 3.0.1</p>
-<p><br>
-&nbsp;</p>
-<ul class="ConfigMarkup" id="attlistDesc">
-  <li><b>id</b> - unique identifier of this content provider element. </li>
-  <li><b>pluginId</b> - The id of the plug-in that contains the IContentProvider 
-  class specified by the class attribute. This is an optional attribute that 
-  should be used if the class doesn't come from the same plug-in that defined 
-  the markup. </li>
-  <li><b>class</b> - A class that implements the IContentProvider interface </li>
-</ul>
-<p>
-<br><br>
-</p>
-<p class=note id=copyright>
-</p>
-
-<br>
-<p class=note id=copyright>
-Copyright (c) 2004 IBM Corporation and others.<br>
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at 
-<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/schema/schema.css b/org.eclipse.ui.intro/schema/schema.css
deleted file mode 100644
index 4efbf26..0000000
--- a/org.eclipse.ui.intro/schema/schema.css
+++ /dev/null
@@ -1,66 +0,0 @@
-H6.CaptionFigColumn#header {

-	font-size:16px; 

-	display:inline

-}

-

-P.Note#copyright {

-	font-size: smaller; 

-	font-style: normal;

-	color: #336699; 

-	display:inline;

-	margin-top: 3.000000pt;

-	margin-bottom: 11.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;

-}

-

-P.Code#dtd {

-	color: #800000; 

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 10.000000pt;

-}

-

-P.Code#dtdAttlist {

-	color: #800000; 

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 20.000000pt;

-}

-

-P.Code#tag {

-	color: #000080; 

-	display:inline;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;

-}

-

-P.Code#cstring {

-	color: #008000; 

-	display:inline;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;	

-}

-

-.ConfigMarkup#elementDesc {

-	color: black;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 10.000000pt;

-}

-

-.ConfigMarkup#attlistDesc {

-	color: black;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 32.000000pt;

-}

-

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
deleted file mode 100644
index 9b52886..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IIntroConstants.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl;
-
-
-public interface IIntroConstants {
-
-    // 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$
-
-    // 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$
-
-    // 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$
-
-    // 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$
-
-
-
-
-}
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
deleted file mode 100644
index ac7191e..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/IntroPlugin.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl;
-
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.loader.ExtensionPointManager;
-import org.eclipse.ui.internal.intro.impl.presentations.IntroLaunchBar;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * Intro main plugin.
- */
-public class IntroPlugin extends AbstractUIPlugin {
-	public static final String PLUGIN_ID = "org.eclipse.ui.intro"; //$NON-NLS-1$
-
-    // 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;
-
-    // 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;
-
-
-
-    /**
-     * The constructor.
-     */
-    public IntroPlugin() {
-        super();
-    }
-
-    /**
-     * Returns the shared plugin instance.
-     */
-    public static IntroPlugin getDefault() {
-        return inst;
-    }
-    
-    public ImageRegistry getVolatileImageRegistry() {
-    	if (volatileImageRegistry==null) {
-    		volatileImageRegistry = createImageRegistry();
-    		initializeImageRegistry(volatileImageRegistry);
-    	}
-    	return volatileImageRegistry;
-    }
-    
-    public void resetVolatileImageRegistry() {
-    	if (volatileImageRegistry!=null) {
-    		volatileImageRegistry.dispose();
-    		volatileImageRegistry = null;
-    	}
-    }
-
-
-    public void closeLaunchBar() {
-        if (launchBar != null) {
-            launchBar.close();
-            launchBar = null;
-        }
-    }
-
-    public void setLaunchBar(IntroLaunchBar launchBar) {
-        this.launchBar = launchBar;
-    }
-
-
-    /**
-     * @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 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 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);
-    }
-
-
-    /**
-     * 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());
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-     */
-    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$
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-     */
-    public void stop(BundleContext context) throws Exception {
-    	resetVolatileImageRegistry();
-        super.stop(context);
-    }
-
-    public long gettUICreationStartTime() {
-        return uiCreationStartTime;
-    }
-
-    public void setUICreationStartTime(long uiCreationStartTime) {
-        this.uiCreationStartTime = uiCreationStartTime;
-    }
-
-
-}
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
deleted file mode 100644
index 7e5738e..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl;
-
-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$
-
-    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;
-
-    // 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 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;
-
-
-    // Misc
-    // -------
-    public static String IntroPart_showContentButton_tooltip;
-}
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.properties b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.properties
deleted file mode 100644
index bd5e186..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/Messages.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# ==============================================
-# Intro plugin properties file
-# ==============================================
-
-# Browser Part
-# -------------
-Browser_homeButton_tooltip = Home 
-Browser_forwardButton_tooltip = Navigate to next topic 
-Browser_backwardButton_tooltip = Navigate to previous topic 
-Browser_invalidConfig = Invalid configuration; can not set browser content
-
-# Dialogs
-# --------
-MessageDialog_errorTitle		= Intro Error
-MessageDialog_warningTitle		= Intro Warning
-MessageDialog_infoTitle			= Intro Information
-
-CustomizableIntroPart_configNotFound = Could not find a valid configuration for \
-				Intro Part: {0} \nCheck Error Log View for details.
-
-StandbyPart_returnToIntro = Return to Welcome
-StandbyPart_returnTo = Return to
-StandbyPart_failedToCreate = Failed to create standby content part with id: {0}.\
-							\nCheck log file for details.
-StandbyPart_nonDefined = No standby content part defined with id: {0}. 
-StandbyPart_canNotRestore =  Standby content part could not be restored.
-
-EmptyStandbyContentPart_text = No standby content available.
-
-IntroURL_failedToDecode = Failed to decode message: {0}
-IntroURL_badCommand = Unknown Intro URL: {0}
-HyperlinkAdapter_urlIs = URL of this link is: 
-HTML_embeddedLink = Link to embedded data
-StaticHTML_welcome = Welcome...
-
-IntroLaunchBar_close_label=Close
-IntroLaunchBar_close_tooltip=Close
-IntroLaunchBar_restore_tooltip=Return to Welcome
-
-# Misc
-# -------
-IntroPart_showContentButton_tooltip = Show Intro Tree
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/FormattedHTMLElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/FormattedHTMLElement.java
deleted file mode 100644
index c181394..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/FormattedHTMLElement.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.html;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Vector;
-/**
- * A FormattedHTMLElement is an HTMLElement that is indented and can have its
- * content on a separate line from its start and end tags
- */
-public class FormattedHTMLElement extends HTMLElement {
-	// an integer representing how many tabs to insert when printing out this
-	// element and its content
-	private int indentLevel;
-	// indicates whether to print this element on a single line or on multiple
-	// lines
-	private boolean spanMultipleLines;
-	// indicates whether an end tag is required for this element. default is
-	// true, since most elements require an end tag
-	private boolean endTagRequired = true;
-	public FormattedHTMLElement(String name, int indentLevel,
-			boolean spanMultipleLines) {
-		super(name);
-		this.indentLevel = indentLevel;
-		this.spanMultipleLines = spanMultipleLines;
-		// default
-		endTagRequired = true;
-	}
-	public FormattedHTMLElement(String name, int indentLevel,
-			boolean spanMultipleLines, boolean endTagRequired) {
-		super(name);
-		this.indentLevel = indentLevel;
-		this.spanMultipleLines = spanMultipleLines;
-		this.endTagRequired = endTagRequired;
-	}
-	public FormattedHTMLElement(String name, Map attributes, Vector content,
-			int indentLevel, boolean spanMultipleLines) {
-		super(name, attributes, content);
-		this.indentLevel = indentLevel;
-		this.spanMultipleLines = spanMultipleLines;
-		endTagRequired = true;
-	}
-	/**
-	 * Set whether the end tag is required for this element
-	 * 
-	 * @param required
-	 *            true if end tag required, false otherwise
-	 */
-	public void setEndTagRequired(boolean required) {
-		this.endTagRequired = required;
-	}
-	/**
-	 * Set the indent level that should be applied to this element when printed
-	 * 
-	 * @param indentLevel
-	 *            The indentLevel to set.
-	 */
-	public void setIndentLevel(int indentLevel) {
-		this.indentLevel = indentLevel;
-	}
-	/**
-	 * Set whether or not this element should be printed over multiple lines,
-	 * or on a single line
-	 * 
-	 * @param spanMultipleLines
-	 *            true if the element should be printed over multiple lines,
-	 *            false if it should be printed on a single line
-	 */
-	public void setSpanMultipleLines(boolean spanMultipleLines) {
-		this.spanMultipleLines = spanMultipleLines;
-	}
-	/**
-	 * Create a string of tabs to insert before the element is printed
-	 * 
-	 * @param indentLevel
-	 *            the number of tabs to insert
-	 * @return
-	 */
-	private StringBuffer getIndent(int indentLevel) {
-		// figure out the tab width
-		StringBuffer indent = new StringBuffer();
-		for (int i = 0; i < indentLevel; i++) {
-			indent.append(IIntroHTMLConstants.SMALL_TAB);
-		}
-		return indent;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer element = new StringBuffer();
-		// insert the indent
-		element.append(getIndent(indentLevel));
-		// add the start tag and attributes
-		element.append(HTMLUtil.createHTMLStartTag(getElementName(),
-				getElementAttributes(), spanMultipleLines));
-		// if there is no content and an end tag is not required just
-		// return the element as is
-		if (getElementContent().isEmpty() && !endTagRequired) {
-			return element.toString();
-		}
-		// include the element's content, if there is any
-		for (Iterator it = getElementContent().iterator(); it.hasNext();) {
-			Object content = it.next();
-			element.append(content);
-		}
-		// indent the end tag if we're on a new line
-		if (indentLevel > 0 && spanMultipleLines)
-			element.append(getIndent(indentLevel));
-		// include an end tag
-		element.append(HTMLUtil.createHTMLEndTag(getElementName(), true));
-		return element.toString();
-	}
-}
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLElement.java
deleted file mode 100644
index 5445d3e..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLElement.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.html;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Vector;
-
-/**
- * This class represents an HTML element. An HTML element has a name, a
- * collection of attributes, and content
- */
-public class HTMLElement {
-
-	// the name of the element
-	private String elementName;
-
-	// a collection of attributes that belong to this element (possibly empty)
-	private Map elementAttributes;
-
-	// a collection of other HTMLElements or Strings contained inside this
-	// element
-	private Vector elementContent;
-
-	public HTMLElement(String name) {
-		this.elementName = name;
-		this.elementAttributes = new Hashtable();
-		this.elementContent = new Vector();
-	}
-
-	public HTMLElement(String name, Map attributes, Vector content) {
-		this.elementName = name;
-		this.elementAttributes = attributes;
-		this.elementContent = content;
-	}
-
-	/**
-	 * Add an attribute with the given name and value to this HTMLElement
-	 * 
-	 * @param attributeName
-	 * @param attributeValue
-	 */
-	public void addAttribute(String attributeName, String attributeValue) {
-		if(attributeName != null && attributeValue != null)
-			getElementAttributes().put(attributeName, attributeValue);
-	}
-
-	/**
-	 * Add content to this element. The content should be in the form of
-	 * another HTMLElement, or a String
-	 */
-	public void addContent(Object content) {
-		getElementContent().add(content);
-	}
-
-	/**
-	 * Get the attributes associated with this element
-	 * 
-	 * @return Returns the elementAttributes.
-	 */
-	public Map getElementAttributes() {
-		if (elementAttributes == null)
-			elementAttributes = new Hashtable();
-
-		return elementAttributes;
-	}
-
-	/**
-	 * Set the attributes associated with this element
-	 * 
-	 * @param elementAttributes
-	 *            The elementAttributes to set.
-	 */
-	public void setElementAttributes(Map elementAttributes) {
-		this.elementAttributes = elementAttributes;
-	}
-
-	/**
-	 * Get this element's content
-	 * 
-	 * @return Returns the elementContent.
-	 */
-	public Vector getElementContent() {
-		if (elementContent == null)
-			elementContent = new Vector();
-
-		return elementContent;
-	}
-
-	/**
-	 * Set this element's content
-	 * 
-	 * @param elementContent
-	 *            The elementContent to set.
-	 */
-	public void setElementContent(Vector elementContent) {
-		this.elementContent = elementContent;
-	}
-
-	/**
-	 * Get the name of this element
-	 * 
-	 * @return Returns the elementName.
-	 */
-	public String getElementName() {
-		return elementName;
-	}
-
-	/**
-	 * Set the name of this element
-	 * 
-	 * @param elementName
-	 *            The elementName to set.
-	 */
-	public void setElementName(String elementName) {
-		this.elementName = elementName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer element = new StringBuffer();
-
-		// add the start tag and attributes
-		element.append(
-			HTMLUtil.createHTMLStartTag(
-				getElementName(),
-				getElementAttributes(),
-				false));
-
-		// include the element's content
-		for (Iterator it = getElementContent().iterator(); it.hasNext();) {
-			Object content = it.next();
-			element.append(content);
-		}
-
-		// include an end tag
-		element.append(HTMLUtil.createHTMLEndTag(getElementName(), false));
-		return element.toString();
-	}
-}
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
deleted file mode 100644
index 699a619..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/HTMLUtil.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.html;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * 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 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 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
-     * StringBuffer 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;
-        StringBuffer attributeList = new StringBuffer();
-        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;
-    }
-
-    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(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;
-    }
-}
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
deleted file mode 100644
index 92d31f7..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IIntroHTMLConstants.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.html;
-
-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$
-
-    /* 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_IFrame = "iFrame"; //$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_FRAMEBORDER = "frameborder"; //$NON-NLS-1$
-    String ATTRIBUTE_SCROLLING = "scrolling"; //$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 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$
-
-    /* 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
deleted file mode 100644
index e43242e..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/html/IntroHTMLGenerator.java
+++ /dev/null
@@ -1,1260 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.ui.internal.intro.impl.html;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.model.AbstractBaseIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroContentProvider;
-import org.eclipse.ui.internal.intro.impl.model.IntroGroup;
-import org.eclipse.ui.internal.intro.impl.model.IntroHTML;
-import org.eclipse.ui.internal.intro.impl.model.IntroHead;
-import org.eclipse.ui.internal.intro.impl.model.IntroImage;
-import org.eclipse.ui.internal.intro.impl.model.IntroInjectedIFrame;
-import org.eclipse.ui.internal.intro.impl.model.IntroLink;
-import org.eclipse.ui.internal.intro.impl.model.IntroPageTitle;
-import org.eclipse.ui.internal.intro.impl.model.IntroSeparator;
-import org.eclipse.ui.internal.intro.impl.model.IntroText;
-import org.eclipse.ui.internal.intro.impl.model.loader.ContentProviderManager;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.intro.config.IIntroContentProvider;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-
-public class IntroHTMLGenerator {
-
-	private AbstractIntroPage introPage;
-
-	private IIntroContentProviderSite providerSite;
-
-	/**
-	 * Generates the HTML code that will be presented in the browser widget for the provided intro
-	 * page.
-	 * 
-	 * @param page
-	 *            the page to generate HTML for
-	 * @param presentation
-	 *            the presentation associated with this page.
-	 */
-	public HTMLElement generateHTMLforPage(AbstractIntroPage page, IIntroContentProviderSite providerSite) {
-		if (page == null)
-			return null;
-		this.introPage = page;
-		this.providerSite = providerSite;
-
-		// generate and add the appropriate encoding to the top of the document
-		// generateEncoding();
-		// create the main HTML element, and all of its contents.
-		return generateHTMLElement();
-	}
-
-	/*
-	 * private HTMLElement generateEncoding() { HTMLElement encoding = new HTMLElement("");
-	 * //$NON-NLS-1$ // TODO: figure out how to handle locale based encoding // As far as the HTML
-	 * generator is concerned, this is probably as // simple as asking the model for the information
-	 * return encoding; }
-	 */
-
-	/**
-	 * Generates the HTML element and its content:
-	 * 
-	 * <pre>
-	 *   
-	 *                        &lt;HTML&gt;
-	 *                        &lt;HEAD&gt;
-	 *                        head content
-	 *                        &lt;/HEAD&gt;
-	 *                        &lt;BODY&gt;
-	 *                        body content
-	 *                        &lt;/BODY&gt;
-	 *                        &lt;/HTML&gt;
-	 *    
-	 * </pre>
-	 * 
-	 * @return the html HTMLElement
-	 */
-	private HTMLElement generateHTMLElement() {
-		// this is the outermost element, so it has no indent
-		int indentLevel = 0;
-		HTMLElement html = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_HTML, indentLevel, true);
-		HTMLElement head = generateHeadElement(indentLevel + 1);
-		HTMLElement body = generateBodyElement(indentLevel + 1, head);
-		html.addContent(head);
-		html.addContent(body);
-		return html;
-	}
-
-	/**
-	 * Generates the HEAD element and its content:
-	 * 
-	 * <pre>
-	 *   
-	 *                
-	 *                        &lt;HEAD&gt;
-	 *                        &lt;BASE href=&quot;base_plugin_location&gt;
-	 *                        &lt;style type=&quot;text/css&quot;&gt;HTML, IMG { border: 0px; } &lt;/style&gt;
-	 *                        &lt;TITLE&gt;page title &lt;/TITLE&gt;
-	 *                        &lt;LINK href=&quot;style sheet&quot;&gt;
-	 *                        additional head content, if specified
-	 *                        &lt;/HEAD&gt;
-	 *    
-	 * </pre>
-	 * 
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return the head HTMLElement
-	 */
-	private HTMLElement generateHeadElement(int indentLevel) {
-		HTMLElement head = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_HEAD, indentLevel, true);
-		// add the title
-		head.addContent(generateTitleElement(null, indentLevel + 1));
-		// create the BASE element
-		String basePath = BundleUtil.getResolvedResourceLocation(introPage.getBase(), introPage.getBundle());
-		HTMLElement base = generateBaseElement(indentLevel + 1, basePath);
-		if (base != null)
-			head.addContent(base);
-		// create the HTML style block
-		head.addContent(generateStyleElement(indentLevel + 1));
-		// add the presentation style
-		String[] presentationStyles = IntroPlugin.getDefault().getIntroModelRoot().getPresentation()
-				.getImplementationStyles();
-		if (presentationStyles != null && introPage.injectSharedStyle()) {
-			for (int i=0; i<presentationStyles.length; i++)
-				head.addContent(generateLinkElement(presentationStyles[i], indentLevel + 1));
-		}
-		String pageStyle = introPage.getStyle();
-		if (pageStyle != null)
-			head.addContent(generateLinkElement(pageStyle, indentLevel + 1));
-		// add javascript
-		head.addContent(generateJavascriptElement(indentLevel + 1));
-
-		// add the page's inherited style(s)
-		String[] pageStyles = introPage.getStyles();
-		for (int i = 0; i < pageStyles.length; i++) {
-			pageStyle = pageStyles[i];
-			if (pageStyle != null)
-				head.addContent(generateLinkElement(pageStyle, indentLevel + 1));
-		}
-		// if there is additional head conent specified in an external file,
-		// include it. Additional head content can be specified at the
-		// implementation level (which would apply to ALL pages) and at the
-		// page level (which would apply only to that particular page).
-		// For the implementation's head contribution:
-		StringBuffer content = null;
-		IntroHead introHead = IntroPlugin.getDefault().getIntroModelRoot().getPresentation().getHead();
-		if (introHead != null) {
-			content = readFromFile(introHead.getSrc(), introHead.getInlineEncoding());
-			if (content != null)
-				head.addContent(content);
-		}
-		// For the page's head contribution:
-		// TODO: there should only be one of these at the page level, not a
-		// collection..
-		IntroHead[] htmlHeads = introPage.getHTMLHeads();
-		for (int i = 0; i < htmlHeads.length; i++) {
-			introHead = htmlHeads[i];
-			if (introHead != null) {
-				content = readFromFile(introHead.getSrc(), introHead.getInlineEncoding());
-				if (content != null)
-					head.addContent(content);
-			}
-		}
-		return head;
-	}
-
-	private HTMLElement generateJavascriptElement(int indentLevel) {
-		String rel = "javascript/common.js"; //$NON-NLS-1$
-		String abs = BundleUtil.getResolvedResourceLocation(rel, IntroPlugin.getDefault().getBundle());
-		HTMLElement jselement = new FormattedHTMLElement("script", indentLevel, false); //$NON-NLS-1$
-		jselement.addAttribute("type", "text/javascript"); //$NON-NLS-1$ //$NON-NLS-2$
-		jselement.addAttribute("src", abs); //$NON-NLS-1$
-		return jselement;
-	}
-
-	/**
-	 * Generates the BODY element and its content:
-	 * 
-	 * <pre>
-	 *   
-	 *               
-	 *                        &lt;BODY&gt;
-	 *                        &lt;DIV id=&quot;pageId&quot; class=&quot;pageClass&quot;&gt;
-	 *                        page content
-	 *                        &lt;/DIV&gt;
-	 *                        &lt;/BODY&gt;
-	 *    
-	 * </pre>
-	 * 
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return the body HTMLElement
-	 */
-	private HTMLElement generateBodyElement(int indentLevel, HTMLElement head) {
-		HTMLElement body = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_BODY, indentLevel, true);
-		// Create the div that contains the page content
-		String pageId = (introPage.getId() != null) ? introPage.getId() : IIntroHTMLConstants.DIV_ID_PAGE;
-		HTMLElement pageContentDiv = generateDivElement(pageId, indentLevel + 1);
-		if (introPage.getStyleId() != null)
-			pageContentDiv.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, introPage.getStyleId());
-		if (introPage.getBackgroundImage() != null)
-			pageContentDiv.addAttribute(IIntroHTMLConstants.ATTRIBUTE_STYLE,
-					"background-image : url(" + introPage.getBackgroundImage() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// Add any children of the page, in the order they are defined
-		AbstractIntroElement[] children = introPage.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			AbstractIntroElement child = children[i];
-			// use indentLevel + 2 here, since this element is contained within
-			// the pageContentDiv
-			HTMLElement childElement = generateIntroElement(child, indentLevel + 2);
-			if (childElement != null) {
-				addMixinStyle(childElement, child.getMixinStyle());
-				pageContentDiv.addContent(childElement);
-			}
-		}
-		body.addContent(pageContentDiv);
-		return body;
-	}
-
-	/**
-	 * Given an IntroElement, generate the appropriate HTMLElement
-	 * 
-	 * @param element
-	 *            the IntroElement
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return an HTMLElement
-	 */
-	private HTMLElement generateIntroElement(AbstractIntroElement element, int indentLevel) {
-		if (element == null)
-			return null;
-		// check to see if this element should be filtered from the HTML
-		// presentation
-		if (filteredFromPresentation(element))
-			return null;
-		switch (element.getType()) {
-		case AbstractIntroElement.GROUP:
-			return generateIntroDiv((IntroGroup) element, indentLevel);
-		case AbstractIntroElement.LINK:
-			return generateIntroLink((IntroLink) element, indentLevel);
-		case AbstractIntroElement.HTML:
-			return generateIntroHTML((IntroHTML) element, indentLevel);
-		case AbstractIntroElement.CONTENT_PROVIDER:
-			return generateIntroContent((IntroContentProvider) element, indentLevel);
-		case AbstractIntroElement.IMAGE:
-			return generateIntroImage((IntroImage) element, indentLevel);
-		case AbstractIntroElement.HR:
-			return generateIntroSeparator((IntroSeparator) element, indentLevel);			
-		case AbstractIntroElement.TEXT:
-			return generateIntroText((IntroText) element, indentLevel);
-		case AbstractIntroElement.PAGE_TITLE:
-			return generateIntroTitle((IntroPageTitle) element, indentLevel);
-		case AbstractIntroElement.INJECTED_IFRAME:
-			return generateIntroInjectedIFrame((IntroInjectedIFrame) element, indentLevel);
-		default:
-			return null;
-		}
-	}
-
-	/**
-	 * Create a div element and its content from an IntroDiv:
-	 * 
-	 * <pre>
-	 *   
-	 *                    
-	 *                        &lt;div id=&quot;attrvalue&quot;&gt;
-	 *                        &lt;h4&gt;&lt;span class=&quot;div-label&quot;&gt;attrvalue&lt;/span&gt;&lt;h4&gt;
-	 *                        any defined divs, links, html, images, text, includes
-	 *                        &lt;/div&gt;
-	 *    
-	 * </pre>
-	 * 
-	 * @param element
-	 *            the IntroDiv
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a div HTMLElement
-	 */
-	private HTMLElement generateIntroDiv(IntroGroup element, int indentLevel) {
-		// Create the outer div element
-		HTMLElement divElement = generateDivElement(element.getId(), indentLevel);
-		HTMLElement childContainer = divElement;
-		// if a div class was specified, add it
-		if (element.getStyleId() != null)
-			divElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, element.getStyleId());
-		// Create the div label, if specified
-		if (element.getLabel() != null) {
-			if (element.isExpandable()) {
-				HTMLElement divLabel = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_SPAN,
-						indentLevel + 2, false);
-				divLabel.addContent(element.getLabel());
-				divLabel.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS,
-												"section-title");//$NON-NLS-1$
-				String clientId = element.getId() + "-content"; //$NON-NLS-1$
-				String toggleClosedId = element.getId() + "-toggle-closed"; //$NON-NLS-1$
-				String toggleOpenId = element.getId() + "-toggle-open"; //$NON-NLS-1$
-				String href = "#"; //$NON-NLS-1$
-				HTMLElement link = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_ANCHOR,
-						indentLevel + 1, true);
-				link.addAttribute(IIntroHTMLConstants.ATTRIBUTE_HREF, href);
-				link.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, "section-title-link"); //$NON-NLS-1$
-				StringBuffer call = new StringBuffer();
-				call.append("return (toggleSection('");//$NON-NLS-1$
-				call.append(clientId);
-				call.append("','");//$NON-NLS-1$ 
-				call.append(toggleClosedId);
-				call.append("','");//$NON-NLS-1$ 
-				call.append(toggleOpenId);
-				call.append("'))"); //$NON-NLS-1$ 
-				link.addAttribute("onClick", call.toString()); //$NON-NLS-1$
-				link.addContent(divLabel);
-				divElement.addContent(link);
-				// Add toggle images
-				HTMLElement toggleImageClosed = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_IMG,
-						indentLevel + 2, false);
-				toggleImageClosed.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, toggleClosedId);
-				toggleImageClosed.addAttribute(IIntroHTMLConstants.ATTRIBUTE_SRC, BundleUtil
-						.getResolvedResourceLocation(IIntroHTMLConstants.IMAGE_SRC_BLANK,
-								IIntroConstants.PLUGIN_ID));
-				toggleImageClosed.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, "section-toggle-image-closed"); //$NON-NLS-1$
-				link.addContent(toggleImageClosed);
-				HTMLElement toggleImageOpen = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_IMG,
-						indentLevel + 2, false);
-				toggleImageOpen.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, toggleOpenId);
-				toggleImageOpen.addAttribute(IIntroHTMLConstants.ATTRIBUTE_SRC, BundleUtil
-						.getResolvedResourceLocation(IIntroHTMLConstants.IMAGE_SRC_BLANK,
-								IIntroConstants.PLUGIN_ID));
-				toggleImageOpen.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, "section-toggle-image-open"); //$NON-NLS-1$
-				link.addContent(toggleImageOpen);
-				childContainer = generateDivElement(clientId, indentLevel + 1);
-				childContainer.addAttribute("class", "section-body"); //$NON-NLS-1$//$NON-NLS-2$
-				divElement.addContent(childContainer);
-			} else {
-				HTMLElement divLabel = generateTextElement(IIntroHTMLConstants.ELEMENT_H4, null,
-						IIntroHTMLConstants.SPAN_CLASS_DIV_LABEL, element.getLabel(), indentLevel + 1);
-				divElement.addContent(divLabel);
-			}
-		}
-		if (element.getBackgroundImage() != null) {
-			String imageUrl = element.getBackgroundImage();
-			imageUrl = BundleUtil.getResolvedResourceLocation(element.getBase(), imageUrl, element
-					.getBundle());
-			String style;
-			if (Platform.getWS().equals(Platform.WS_WIN32) && imageUrl.toLowerCase().endsWith(".png")) { //$NON-NLS-1$
-				// IE 5.5+ does not handle alphas in PNGs without
-				// this hack. Remove when IE7 becomes widespread
-				style = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageUrl + "', sizingMethod='crop');"; //$NON-NLS-1$ //$NON-NLS-2$
-			} else {
-				style = "background-image : url(" + imageUrl + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			divElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_STYLE, style);
-		}
-		// Add any children of the div, in the order they are defined
-		AbstractIntroElement[] children = element.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			AbstractIntroElement child = children[i];
-			HTMLElement childElement = generateIntroElement(child, indentLevel + 1);
-			if (childElement != null) {
-				addMixinStyle(childElement, child.getMixinStyle());
-				childContainer.addContent(childElement);
-			}
-		}
-		return divElement;
-	}
-
-	private void addMixinStyle(HTMLElement element, String mixinStyle) {
-		if (mixinStyle == null)
-			return;
-		String key = "class"; //$NON-NLS-1$
-		String original = (String) element.getElementAttributes().get(key);
-		if (original == null)
-			original = mixinStyle;
-		else
-			original += " " + mixinStyle; //$NON-NLS-1$
-		element.addAttribute(key, original);
-	}
-
-	/**
-	 * Generates an anchor (link) element and its content from an IntroLink:
-	 * 
-	 * <pre>
-	 *   
-	 *                        &lt;A id=linkId class=&quot;link&quot; href=linkHref&gt;
-	 *                        &lt;IMG src=&quot;blank.gif&quot;&gt;
-	 *                        &lt;SPAN class=&quot;link-label&quot;&gt;linkLabel &lt;/SPAN&gt;
-	 *                        &lt;P&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;/P&gt;
-	 *                        &lt;/A&gt;
-	 *    
-	 * </pre>
-	 * 
-	 * @param element
-	 *            the IntroLink
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return an anchor (&lt;A&gt;) HTMLElement
-	 */
-	private HTMLElement generateIntroLink(IntroLink element, int indentLevel) {
-		HTMLElement anchor = generateAnchorElement(element, indentLevel);
-		// add <IMG src="blank.gif">
-		String blankImageURL = BundleUtil.getResolvedResourceLocation(IIntroHTMLConstants.IMAGE_SRC_BLANK,
-				IIntroConstants.PLUGIN_ID);
-		if (blankImageURL != null) {
-			anchor.addContent(generateImageElement(blankImageURL, null, IIntroHTMLConstants.IMAGE_CLASS_BG,
-					indentLevel + 1));
-		}
-		// add link image, if one is specified
-		if (element.getImg() != null) {
-			HTMLElement img = generateIntroElement(element.getImg(), indentLevel + 1);
-			if (img != null)
-				anchor.addContent(img);
-		}
-		HTMLElement imageDiv = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_DIV, indentLevel+1, false);
-		imageDiv.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, 
-				IIntroHTMLConstants.LINK_EXTRA_DIV);
-		anchor.addContent(imageDiv);
-		// add <SPAN class="link-label">linkLabel</SPAN>
-		if (element.getLabel() != null) {
-			HTMLElement label = generateSpanElement(IIntroHTMLConstants.SPAN_CLASS_LINK_LABEL,
-					indentLevel + 1);
-			label.addContent(element.getLabel());
-			anchor.addContent(label);
-		}
-		IntroText linkText = element.getIntroText();
-		if (linkText != null && linkText.getText() != null) {
-			HTMLElement text = generateIntroElement(linkText, indentLevel + 1);
-			if (text != null)
-				anchor.addContent(text);
-		}
-		return anchor;
-	}
-
-	/**
-	 * Generate the appropriate HTML from an IntroHTML. If the IntroHTML type is "inline", then the
-	 * content from the referenced file is emitted as-is into a div element. If the type is "embed",
-	 * an OBJECT html element is created whose <code>data</code> attribute is equal to the
-	 * IntroHTML's <code>src</code> value
-	 * 
-	 * @param element
-	 *            the IntroHTML
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return an HTMLElement
-	 */
-	private HTMLElement generateIntroHTML(IntroHTML element, int indentLevel) {
-		if (element.isInlined())
-			return generateInlineIntroHTML(element, indentLevel);
-
-		return generateEmbeddedIntroHTML(element, indentLevel);
-	}
-
-	/**
-	 * Generate an image element from an IntroImage:
-	 * 
-	 * <pre>
-	 *   
-	 *                        &lt;IMG src=imageSrc id=imageId&gt;
-	 *    
-	 * </pre>
-	 * 
-	 * @param element
-	 *            the IntroImage
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return an img HTMLElement
-	 */
-	private HTMLElement generateIntroImage(IntroImage element, int indentLevel) {
-		HTMLElement imageElement = generateImageElement(element.getSrc(), element.getAlt(), element
-				.getStyleId(), indentLevel);
-		if (element.getId() != null)
-			imageElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, element.getId());
-		return imageElement;
-	}
-	
-	private HTMLElement generateIntroSeparator(IntroSeparator element, int indentLevel) {
-		HTMLElement hrElement = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_HR, indentLevel, false);
-		if (element.getId() != null)
-			hrElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, element.getId());
-		if (element.getStyleId() != null)
-			hrElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_STYLE, element.getStyleId());
-		return hrElement;
-	}
-
-	/**
-	 * Generate a paragraph (&lt;P&gt;) element from an IntroText. The paragraph element will
-	 * contain a span element that will contain the actual text. Providing the span element provides
-	 * additional flexibility for CSS designers.
-	 * 
-	 * <pre>
-	 *              
-	 *               
-	 *                        &lt;P&gt;&lt;SPAN&gt;spanContent&lt;/SPAN&gt;&lt;/P&gt;
-	 *                 
-	 * </pre>
-	 * 
-	 * @param element
-	 *            the IntroText
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a paragraph HTMLElement
-	 */
-	private HTMLElement generateIntroText(IntroText element, int indentLevel) {
-		String spanClass = (element.getStyleId() != null) ? element.getStyleId()
-				: IIntroHTMLConstants.SPAN_CLASS_TEXT;
-		HTMLElement textElement = generateTextElement(IIntroHTMLConstants.ELEMENT_PARAGRAPH, element.getId(),
-				spanClass, element.getText(), indentLevel);
-		return textElement;
-	}
-
-	/**
-	 * @param element
-	 * @param indentLevel
-	 * @return
-	 */
-	private HTMLElement generateIntroInjectedIFrame(IntroInjectedIFrame element, int indentLevel) {
-		HTMLElement iframe = generateIFrameElement(element.getIFrameURL(), "0", //$NON-NLS-1$
-				"auto", indentLevel); //$NON-NLS-1$
-		return iframe;
-	}
-
-	/**
-	 * @param element
-	 * @param indentLevel
-	 * @return
-	 */
-	private HTMLElement generateIntroTitle(IntroPageTitle element, int indentLevel) {
-		HTMLElement titleElement = generateHeaderDiv(element.getId(), element.getStyleId(),
-				IIntroHTMLConstants.ELEMENT_H1, element.getTitle(), indentLevel);
-		return titleElement;
-	}
-
-	/**
-	 * Generate "inline" content from an IntroHTML. The content from the file referenced by the
-	 * IntroHTML's <code>src</code> attribute is emitted as-is into a div element:
-	 * 
-	 * <pre>
-	 *               
-	 *                    
-	 *                        &lt;div id=&quot;attrvalue&quot; class=&quot;attrvalue2&quot;&gt;
-	 *                        content from file specified in src attribute
-	 *                        &lt;/div&gt;
-	 *                
-	 * </pre>
-	 * 
-	 * @param element
-	 *            the IntroHTML
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a div HTMLElement, or null if there was a problem reading from the file
-	 */
-	private HTMLElement generateInlineIntroHTML(IntroHTML element, int indentLevel) {
-		// make sure to ask model for encoding. If encoding is null (ie: not
-		// specified in
-		// markup, local encoding is used.
-		StringBuffer content = readFromFile(element.getSrc(), element.getInlineEncoding());
-		if (content != null && content.length() > 0) {
-			// Create the outer div element
-			String divClass = (element.getStyleId() != null) ? element.getStyleId()
-					: IIntroHTMLConstants.DIV_CLASS_INLINE_HTML;
-			HTMLElement divElement = generateDivElement(element.getId(), divClass, indentLevel);
-			// add the content of the specified file into the div element
-			divElement.addContent(content);
-			return divElement;
-		}
-		return null;
-	}
-
-	/**
-	 * Includes HTML content that is created by an IIntroContentProvider implementation.
-	 * 
-	 * @param element
-	 * @param indentLevel
-	 * @return
-	 */
-	private HTMLElement generateIntroContent(IntroContentProvider element, int indentLevel) {
-		// create a new div to wrap the content
-		HTMLElement divElement = generateDivElement(element.getId(),
-				IIntroHTMLConstants.DIV_CLASS_PROVIDED_CONTENT, indentLevel);
-
-		// If we've already loaded the content provider for this element,
-		// retrieve it, otherwise load the class
-		IIntroContentProvider providerClass = ContentProviderManager.getInst().getContentProvider(element);
-		if (providerClass == null)
-			// content provider never created before, create it.
-			providerClass = ContentProviderManager.getInst().createContentProvider(element, providerSite);
-
-		if (providerClass != null) {
-			StringWriter stringWriter = new StringWriter();
-			PrintWriter pw = new PrintWriter(stringWriter);
-			// create the specialized content
-			providerClass.createContent(element.getId(), pw);
-			// add the content of the specified file into the div element
-			stringWriter.flush();
-			divElement.addContent(stringWriter.toString());
-			pw.close();
-		} else {
-			// we couldn't load the content provider, so add any alternate
-			// text content if there is any
-			IntroText htmlText = element.getIntroText();
-			if (htmlText != null && htmlText.getText() != null) {
-				String textClass = (htmlText.getStyleId() != null) ? htmlText.getStyleId()
-						: IIntroHTMLConstants.SPAN_CLASS_TEXT;
-				HTMLElement text = generateTextElement(IIntroHTMLConstants.ELEMENT_PARAGRAPH, htmlText
-						.getId(), textClass, element.getText(), indentLevel);
-				if (text != null)
-					divElement.addContent(text);
-			}
-		}
-		return divElement;
-	}
-
-	/**
-	 * Generate "embedded" content from an IntroHTML. An OBJECT html element is created whose
-	 * <code>data</code> attribute is equal to the IntroHTML's <code>src</code> value.
-	 * 
-	 * <pre>
-	 *                
-	 *                        &lt;OBJECT type=&quot;text/html&quot; data=&quot;attrvalue&quot;&gt;
-	 *                        alternative text in case the object can not be rendered
-	 *                        &lt;/OBJECT&gt; 
-	 *     
-	 * </pre>
-	 * 
-	 * @param element
-	 *            the IntroHTML
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return an object HTMLElement
-	 */
-	private HTMLElement generateEmbeddedIntroHTML(IntroHTML element, int indentLevel) {
-		HTMLElement objectElement = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_OBJECT, indentLevel,
-				true);
-		objectElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_TYPE, IIntroHTMLConstants.OBJECT_TYPE);
-		if (element.getId() != null)
-			objectElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, element.getId());
-		if (element.getSrc() != null)
-			objectElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_DATA, element.getSrc());
-		if (element.getStyleId() != null)
-			objectElement.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, element.getStyleId());
-		// The alternative content is added in case the browser can not render
-		// the specified content.
-		IntroText htmlText = element.getIntroText();
-		if (htmlText != null && htmlText.getText() != null) {
-			String textClass = (htmlText.getStyleId() != null) ? htmlText.getStyleId()
-					: IIntroHTMLConstants.SPAN_CLASS_TEXT;
-			HTMLElement text = generateTextElement(IIntroHTMLConstants.ELEMENT_PARAGRAPH, htmlText.getId(),
-					textClass, element.getText(), indentLevel);
-			if (text != null)
-				objectElement.addContent(text);
-		}
-		if (element.getIntroImage() != null) {
-			HTMLElement img = generateIntroImage(element.getIntroImage(), indentLevel);
-			if (img != null)
-				objectElement.addContent(img);
-		}
-		return objectElement;
-	}
-
-	/**
-	 * Generates the BASE element for the head of the html document. Each document can have only one
-	 * base element
-	 * 
-	 * <pre>
-	 *   
-	 *                
-	 *                      	&lt;BASE href=baseURL&gt;
-	 * </pre>
-	 * 
-	 * @param indentLevel
-	 * @param baseURL
-	 * @return
-	 */
-	private HTMLElement generateBaseElement(int indentLevel, String baseURL) {
-		HTMLElement base = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_BASE, indentLevel, true,
-				false);
-		if (baseURL != null)
-			base.addAttribute(IIntroHTMLConstants.ATTRIBUTE_HREF, baseURL);
-		return base;
-	}
-
-	/**
-	 * Generates the style element that goes into HEAD:
-	 * 
-	 * <pre>
-	 *                
-	 *                        &lt;style type=&quot;text/css&quot;&gt;HTML, IMG { border: 0px; } &lt;/style&gt;
-	 *                   
-	 * </pre>
-	 * 
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return the style HTMLElement
-	 */
-	private HTMLElement generateStyleElement(int indentLevel) {
-		HTMLElement style = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_STYLE, indentLevel, false);
-		style.addAttribute(IIntroHTMLConstants.ATTRIBUTE_TYPE, IIntroHTMLConstants.LINK_STYLE);
-		style.addContent(IIntroHTMLConstants.STYLE_HTML);
-		return style;
-	}
-
-	/**
-	 * Generates the title element and its content:
-	 * 
-	 * <pre>
-	 *   
-	 *                        &lt;TITLE&gt;intro title&lt;/TITLE&gt;
-	 *                     
-	 * </pre>
-	 * 
-	 * @param title
-	 *            the title of this intro page
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return the title HTMLElement
-	 */
-	private HTMLElement generateTitleElement(String title, int indentLevel) {
-		HTMLElement titleElement = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_TITLE, indentLevel,
-				false);
-		if (title != null)
-			titleElement.addContent(title);
-		return titleElement;
-	}
-
-	/**
-	 * Generates a link element that refers to a cascading style sheet (CSS):
-	 * 
-	 * <pre>
-	 *                
-	 *                    
-	 *                        &lt;LINK rel=&quot;stylesheet&quot; style=&quot;text/css&quot; href=&quot;style sheet&quot;&gt;
-	 * </pre>
-	 * 
-	 * @param href
-	 *            the value of the href attribute for this link element
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a link HTMLElement
-	 */
-	private HTMLElement generateLinkElement(String href, int indentLevel) {
-		HTMLElement link = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_LINK, indentLevel, true,
-				false);
-		link.addAttribute(IIntroHTMLConstants.ATTRIBUTE_RELATIONSHIP, IIntroHTMLConstants.LINK_REL);
-		link.addAttribute(IIntroHTMLConstants.ATTRIBUTE_STYLE, IIntroHTMLConstants.LINK_STYLE);
-		if (href != null)
-			link.addAttribute(IIntroHTMLConstants.ATTRIBUTE_HREF, href);
-		return link;
-	}
-
-	/**
-	 * Generate an anchor element:
-	 * 
-	 * <pre>
-	 *   
-	 *                        &lt;A id=linkId class=linkClass href=linkHref&gt; &lt;/A&gt;
-	 *                     
-	 * </pre>
-	 * 
-	 * @param link
-	 *            the IntroLink element that contains the value for the id and href attributes
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return an anchor (&lt;A&gt;) HTMLElement
-	 */
-	private HTMLElement generateAnchorElement(IntroLink link, int indentLevel) {
-		HTMLElement anchor = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_ANCHOR, indentLevel, true);
-		if (link.getId() != null)
-			anchor.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, link.getId());
-		if (link.getUrl() != null)
-			anchor.addAttribute(IIntroHTMLConstants.ATTRIBUTE_HREF, link.getUrl());
-		if (link.getStyleId() != null)
-			anchor.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, link.getStyleId());
-		else
-			anchor.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, IIntroHTMLConstants.ANCHOR_CLASS_LINK);
-		return anchor;
-	}
-
-	/**
-	 * Generates a div block that contains a header and span element:
-	 * 
-	 * <pre>
-	 *   
-	 *                      
-	 *                        &lt;DIV id=divId&gt;
-	 *                        &lt;H&gt;&lt;SPAN&gt;spanContent &lt;/SPAN&gt; &lt;/H&gt;
-	 *                        &lt;/DIV&gt;
-	 *                     
-	 * </pre>
-	 * 
-	 * @param divId
-	 *            the id of the div to create
-	 * @param divClass
-	 *            the class of the div
-	 * @param headerType
-	 *            what type of header to create (e.g., H1, H2, etc)
-	 * @param spanContent
-	 *            the span content
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a div HTMLElement that contains a header
-	 */
-	private HTMLElement generateHeaderDiv(String divId, String divClass, String headerType,
-			String spanContent, int indentLevel) {
-		// create the text element: <P><SPAN>spanContent</SPAN></P>
-		HTMLElement text = generateTextElement(headerType, null, null, spanContent, indentLevel + 1);
-		// create the containing div element
-		HTMLElement div = generateDivElement(divId, divClass, indentLevel);
-		div.addContent(text);
-		return div;
-	}
-
-	/**
-	 * Generates a span element inside a text element, where the text element can be a P
-	 * (paragraph), or any of the H (Header) elements. Providing the span element provides
-	 * additional flexibility for CSS designers.
-	 * 
-	 * <pre>
-	 *                
-	 *                        &lt;P&gt;&lt;SPAN&gt;spanContent&lt;/SPAN&gt;&lt;/P&gt;
-	 *                    
-	 * </pre>
-	 * 
-	 * @param type
-	 *            the type of text element to create (e.g., P, H1, H2, etc)
-	 * @param spanID
-	 *            the id of the span element, or null
-	 * @param spanClass
-	 *            the class of the span element, or null
-	 * @param spanContent
-	 *            the span content
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a text HTMLElement that contains a span element
-	 */
-	private HTMLElement generateTextElement(String type, String spanID, String spanClass, String spanContent,
-			int indentLevel) {
-		// Create the span: <SPAN>spanContent</SPAN>
-		HTMLElement span = new HTMLElement(IIntroHTMLConstants.ELEMENT_SPAN);
-		if (spanID != null)
-			span.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, spanID);
-		if (spanClass != null)
-			span.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, spanClass);
-		if (spanContent != null)
-			span.addContent(spanContent);
-		// Create the enclosing text element: <P><SPAN>spanContent</SPAN></P>
-		HTMLElement text = new FormattedHTMLElement(type, indentLevel, false);
-		text.addContent(span);
-		return text;
-	}
-
-	/**
-	 * Generates a DIV element with the provided indent, id, and class.
-	 * 
-	 * @param divId
-	 *            value for the div's id attribute
-	 * @param divClass
-	 *            value for the div's class attribute
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a div HTMLElement
-	 */
-	private HTMLElement generateDivElement(String divId, String divClass, int indentLevel) {
-		HTMLElement div = generateDivElement(divId, indentLevel);
-		div.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, divClass);
-		return div;
-	}
-
-	/**
-	 * Generates a DIV element with the provided indent and id.
-	 * 
-	 * @param divId
-	 *            value for the div's id attribute
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a div HTMLElement
-	 */
-	private HTMLElement generateDivElement(String divId, int indentLevel) {
-		HTMLElement div = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_DIV, indentLevel, true);
-		if (divId != null)
-			div.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ID, divId);
-		return div;
-	}
-
-	/**
-	 * Generates an IMG element:
-	 * 
-	 * <pre>
-	 *   
-	 *                      
-	 *                        &lt;IMG src=imageSrc alt=altText&gt;
-	 *                     
-	 * </pre>
-	 * 
-	 * @param imageSrc
-	 *            the value to be supplied to the src attribute
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return an img HTMLElement
-	 */
-	private HTMLElement generateImageElement(String imageSrc, String altText, String imageClass,
-			int indentLevel) {
-		HTMLElement image = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_IMG, indentLevel, true,
-				false);
-		boolean pngOnWin32 = imageSrc != null && Platform.getWS().equals(Platform.WS_WIN32)
-				&& imageSrc.toLowerCase().endsWith(".png"); //$NON-NLS-1$
-		if (imageSrc == null || pngOnWin32) {
-			// we must handle PNGs here - IE does not support alpha blanding well.
-			// We will set the alpha image loader and load the real image
-			// that way. The 'src' attribute in the image itself will
-			// get the blank image.
-			String blankImageURL = BundleUtil.getResolvedResourceLocation(
-					IIntroHTMLConstants.IMAGE_SRC_BLANK, IIntroConstants.PLUGIN_ID);
-			if (blankImageURL != null) {
-				image.addAttribute(IIntroHTMLConstants.ATTRIBUTE_SRC, blankImageURL);
-				if (pngOnWin32) {
-					String style = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageSrc + "', sizingMethod='image')"; //$NON-NLS-1$//$NON-NLS-2$
-					image.addAttribute(IIntroHTMLConstants.ATTRIBUTE_STYLE, style);
-				}
-			}
-		} else
-			image.addAttribute(IIntroHTMLConstants.ATTRIBUTE_SRC, imageSrc);
-		if (altText == null)
-			altText = ""; //$NON-NLS-1$
-		image.addAttribute(IIntroHTMLConstants.ATTRIBUTE_ALT, altText);
-		if (imageClass != null)
-			image.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, imageClass);
-		return image;
-	}
-
-	/**
-	 * Generate a span element
-	 * 
-	 * <pre>
-	 *   
-	 *                        &lt;SPAN class=spanClass&gt; &lt;/SPAN&gt;
-	 *      
-	 *    
-	 * </pre>
-	 * 
-	 * @param spanClass
-	 *            the value to be supplied to the class attribute
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a span HTMLElement
-	 */
-	private HTMLElement generateSpanElement(String spanClass, int indentLevel) {
-		HTMLElement span = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_SPAN, indentLevel, false);
-		span.addAttribute(IIntroHTMLConstants.ATTRIBUTE_CLASS, spanClass);
-		return span;
-	}
-
-	/**
-	 * Generate a span element
-	 * 
-	 * <pre>
-	 *   
-	 *                     &lt;iframe src=&quot;localPage1.xhtml&quot; frameborder=&quot;1&quot; scrolling=&quot;auto&quot; longdesc=&quot;localPage1.xhtml&quot;&gt;
-	 * </pre>
-	 * 
-	 * @param spanClass
-	 *            the value to be supplied to the class attribute
-	 * @param indentLevel
-	 *            the number of indents to insert before the element when it is printed
-	 * @return a span HTMLElement
-	 */
-	private HTMLElement generateIFrameElement(String src, String frameborder, String scrolling,
-			int indentLevel) {
-		HTMLElement iframe = new FormattedHTMLElement(IIntroHTMLConstants.ELEMENT_IFrame, indentLevel, false);
-		if (src != null)
-			iframe.addAttribute(IIntroHTMLConstants.ATTRIBUTE_SRC, src);
-		if (frameborder != null)
-			iframe.addAttribute(IIntroHTMLConstants.ATTRIBUTE_FRAMEBORDER, frameborder);
-		if (scrolling != null)
-			iframe.addAttribute(IIntroHTMLConstants.ATTRIBUTE_SCROLLING, scrolling);
-		return iframe;
-	}
-
-
-
-
-	private boolean filteredFromPresentation(AbstractIntroElement element) {
-		if (element.isOfType(AbstractIntroElement.BASE_ELEMENT))
-			return ((AbstractBaseIntroElement) element).isFiltered();
-
-		return false;
-	}
-
-	/**
-	 * Reads the content of the file referred to by the <code>src</code> parameter and returns the
-	 * content in the form of a StringBuffer. If the file read contains substitution segments of the
-	 * form $plugin:plugin_id$ then this method will make the proper substitution (the segment will
-	 * be replaced with the absolute path to the plugin with id plugin_id).
-	 * 
-	 * @param src -
-	 *            the file that contains the target conent
-	 * @param charsetName -
-	 *            the encoding of the file to be read. If null, local encoding is used. But the
-	 *            default of the model is UTF-8, so we should not get a null encoding.
-	 * @return a StringBuffer containing the content in the file, or null
-	 */
-	private StringBuffer readFromFile(String src, String charsetName) {
-		if (src == null)
-			return null;
-		InputStream stream = null;
-		StringBuffer content = new StringBuffer();
-		BufferedReader reader = null;
-		try {
-			URL url = new URL(src);
-			stream = url.openStream();
-			// TODO: Do we need to worry about the encoding here? e.g.:
-			// reader = new BufferedReader(new InputStreamReader(stream,
-			// ResourcesPlugin.getEncoding()));
-			if (charsetName == null)
-				reader = new BufferedReader(new InputStreamReader(stream));
-			else
-				reader = new BufferedReader(new InputStreamReader(stream, charsetName));
-			while (true) {
-				int character = reader.read();
-				if (character == -1) // EOF
-					break; // done reading file
-
-				else if (character == PluginIdParser.SUBSTITUTION_BEGIN) { // possible
-					// substitution
-					PluginIdParser parser = new PluginIdParser(character, reader);
-					// If a valid plugin id was found in the proper format, text
-					// will be the absolute path to that plugin. Otherwise, text
-					// will simply be all characters read up to (but not
-					// including)
-					// the next dollar sign that follows the one just found.
-					String text = parser.parsePluginId();
-					if (text != null)
-						content.append(text);
-				} else {
-					// make sure character is in char range before making cast
-					if (character > 0x00 && character < 0xffff)
-						content.append((char) character);
-					else
-						content.append(character);
-				}
-			}
-		} catch (Exception exception) {
-			Log.error("Error reading from file", exception); //$NON-NLS-1$
-		} finally {
-			try {
-				if (reader != null)
-					reader.close();
-				if (stream != null)
-					stream.close();
-			} catch (IOException e) {
-				Log.error("Error closing input stream", e); //$NON-NLS-1$
-				return null;
-			}
-		}
-		return content;
-	}
-
-	/**
-	 * A helper class to help identify substitution strings in a content file. A properly formatted
-	 * substitution string is of the form: <code>$plugin:plugin_id$</code> where plugin_id is the
-	 * valid id of an installed plugin. The substitution string will be replaced with the absolute
-	 * path to the plugin.
-	 * 
-	 * An example usage of the string substution: The html file <code>inline.html</code> is
-	 * included in your intro via the html inline mechanism . This file needs to reference a
-	 * resource that is located in another plugin. The following might be found in inline.html:
-	 * <code>
-	 *    <a href="$plugin:test.plugin$html/test.html">link to file</a>
-	 * </code> When this file
-	 * is read in, the relevant section will be replaced as follows: <code>
-	 *   <a href="file:/install_path/plugins/test.plugin/html/test.html">link to file</a>
-	 * </code>
-	 * 
-	 */
-	private static class PluginIdParser {
-
-		private BufferedReader reader;
-
-		private static final char SUBSTITUTION_BEGIN = '$';
-
-		private static final char SUBSTITUTION_END = '$';
-
-		// tokenContent will contain all characters read by the parser, starting
-		// with and including the initial $ token.
-		private StringBuffer tokenContent;
-
-		// pluginId will contain the content between the "$plugin:" segment
-		// and the closing "$" token
-		private StringBuffer pluginId;
-
-		protected PluginIdParser(char tokenBegin, BufferedReader bufferedreader) {
-			reader = bufferedreader;
-			tokenContent = new StringBuffer(tokenBegin);
-			pluginId = new StringBuffer();
-		}
-
-		protected PluginIdParser(int tokenBegin, BufferedReader bufferedreader) {
-			reader = bufferedreader;
-			tokenContent = new StringBuffer();
-			pluginId = new StringBuffer();
-			// make sure tokenBegin is in char range before making cast
-			if (tokenBegin > 0x00 && tokenBegin < 0xffff)
-				tokenContent.append((char) tokenBegin);
-		}
-
-		/**
-		 * This method should be called after the initial substitution identifier has been read in
-		 * (the substition string begins and ends with the "$" character). A properly formatted
-		 * substitution string is of the form:</code> "$plugin:plugin_id$</code>- the initial "$"
-		 * is immediately followed by the "plugin:" segment - the <code>plugin_id </code> refers to
-		 * a valid, installed plugin - the substitution string is terminated by a closing "$" If the
-		 * above conditions are not met, no substitution occurs. If the above conditions are met,
-		 * the content between (and including) the opening and closing "$" characters will be
-		 * replaced by the absolute path to the plugin
-		 * 
-		 * @return
-		 */
-		protected String parsePluginId() {
-			if (reader == null || tokenContent == null || pluginId == null)
-				return null;
-
-			try {
-				// Mark the current position of the reader so we can roll
-				// back to this point if the proper "plugin:" segment is not
-				// found.
-				// Use 1024 as our readAheadLimit
-				reader.mark(0x400);
-				if (findValidPluginSegment()) {
-					String pluginPath = getPluginPath();
-					if (pluginPath == null) {
-						// Didn't find a valid plugin id.
-						// return tokenContent, which contains all characters
-						// read up to (not including) the last $. (if the
-						// last $ is part of a subsequent "$plugin:" segment
-						// it can still be processed properly)
-						return tokenContent.toString();
-					}
-					return pluginPath;
-				}
-
-				// The "plugin:" segment was not found. Reset the reader
-				// so we can continue reading character by character.
-				reader.reset();
-				return tokenContent.toString();
-
-			} catch (IOException exception) {
-				Log.error("Error reading from file", exception); //$NON-NLS-1$
-				return tokenContent.toString();
-			}
-		}
-
-		/**
-		 * This method should be called after an initial substitution character has been found (that
-		 * is, after a $). It looks at the subsequent characters in the input stream to determine if
-		 * they match the expected <code>plugin:</code> segment of the substitution string. If the
-		 * expected characters are found, they will be appended to the tokenContent StringBuffer and
-		 * the method will return true. If they are not found, false is returned and the caller
-		 * should reset the BufferedReader to the position it was in before this method was called.
-		 * 
-		 * Resetting the reader ensures that the characters read in this method can be re-examined
-		 * in case one of them happens to be the beginning of a valid substitution segment.
-		 * 
-		 * @return true if the next characters match <code>plugin:</code>, and false otherwise.
-		 */
-		private boolean findValidPluginSegment() {
-			final char[] PLUGIN_SEGMENT = { 'p', 'l', 'u', 'g', 'i', 'n', ':' };
-			char[] streamContent = new char[PLUGIN_SEGMENT.length];
-			try {
-				int peek = reader.read(streamContent, 0, PLUGIN_SEGMENT.length);
-				if ((peek == PLUGIN_SEGMENT.length)
-						&& (HTMLUtil.equalCharArrayContent(streamContent, PLUGIN_SEGMENT))) {
-					// we have found the "$plugin:" segment
-					tokenContent.append(streamContent);
-					return true;
-				}
-				// The "plugin:" segment did not immediately follow the initial
-				// $.
-				return false;
-			} catch (IOException exception) {
-				Log.error("Error reading from file", exception); //$NON-NLS-1$
-				return false;
-			}
-		}
-
-		/**
-		 * This method continues to read from the input stream until either the end of the file is
-		 * reached, or until a character is found that indicates the end of the substitution. If the
-		 * SUBSTITUTION_END character is found, the method looks up the plugin id that has been
-		 * built up to see if it is a valid id. If so, return the absolute path to that plugin. If
-		 * not, return null.
-		 * 
-		 * This method assumes that the reader is positioned just after a valid <code>plugin:</code>
-		 * segment in a substitution string.
-		 * 
-		 * @return absolute path of the plugin id, if valid. null otherwise
-		 */
-		private String getPluginPath() {
-			try {
-				while (true) {
-					int nextChar = reader.read();
-
-					if (nextChar == -1) {
-						// reached EOF while looking for closing $
-						return null;
-					} else if (nextChar == SUBSTITUTION_END) { // end of plugin
-						// id
-						// look up the plugin id. If it is a valid id
-						// return the absolute path to this plugin.
-						// otherwise return null.
-						String path = BundleUtil.getResolvedBundleLocation(pluginId.toString());
-
-						// If the plugin id was not valid, reset reader to the
-						// previous mark. The mark should be at the character
-						// just before the last dollar sign.
-						if (path == null)
-							reader.reset();
-
-						return path;
-					} else { // we have a regular character
-						// mark the most recent non-dollar char in case we don't
-						// find a valid plugin id and have to roll back
-						// Use 1024 as our readAheadLimit
-						reader.mark(0x400);
-						// Add this character to the pluginId and tokenContent
-						// String.
-						// make sure we have a valid character before performing
-						// cast
-						if (nextChar > 0x00 && nextChar < 0xffff) {
-							tokenContent.append((char) nextChar);
-							// only include non-whitespace characters in plugin
-							// id
-							if (!Character.isWhitespace((char) nextChar))
-								pluginId.append((char) nextChar);
-						} else {
-							tokenContent.append(nextChar);
-							pluginId.append(nextChar);
-						}
-					}
-				}
-			} catch (IOException exception) {
-				Log.error("Error reading from file", exception); //$NON-NLS-1$
-				return null;
-			}
-		}
-	}
-
-}
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
deleted file mode 100644
index 7c6759c..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractBaseIntroElement.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-
-/**
- * An Intro Config component that has an id attribute and a style-id attribute.
- * It also has the notion of filtering. Only model elements that have meaning in
- * the UI, and that are targettable can be filtered. HEAD, for example, only
- * applied to HTML presentation, and so, it does not need filtering. When model
- * is first loaded, all elements are not filtered. When the UI is created, and
- * we know which presentation we are using, the filter state is computed
- * dynamically. Also, in the SWT presentation, when style manager picks
- * elements, it may alter the filter state of a given element to prevent it from
- * appearing twice in the ui. eg: title appearing as a title of the form, and as
- * a title child text.
- */
-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 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(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;
-    }
-
-
-    /**
-     * @return Returns the class id.
-     */
-    public String getStyleId() {
-        return style_id;
-    }
-
-    /**
-     * @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;
-    }
-
-    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
deleted file mode 100644
index cc7515e..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroContainer.java
+++ /dev/null
@@ -1,656 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.help.UAContentFilter;
-import org.eclipse.ui.internal.intro.impl.model.loader.ExtensionPointManager;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * An intro config component that is a container, ie: it can have children.
- */
-public abstract class AbstractIntroContainer extends AbstractBaseIntroElement {
-
-    protected static final String ATT_BG_IMAGE = "bgImage"; //$NON-NLS-1$
-	// vector is lazily created when children are loaded in a call to
-    // loadChildren().
-    protected Vector children;
-    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;
-
-    /**
-     * @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, 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();
-
-        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();
-
-        Vector filtered = filterChildren(children);
-        
-        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) {
-
-        AbstractIntroElement[] childrenElements = getChildren();
-        // if we have no children, we still need to return an empty array of
-        // the correct type.
-        Vector 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);
-    }
-
-    /**
-     * 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;
-        }
-        if (src == null)
-            return new Object[0];
-
-        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.
-        children = new Vector();
-        
-
-        NodeList nodeList = element.getChildNodes();
-        Vector 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.
-    }
-
-    /**
-     * 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 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;
-    }
-
-
-    /**
-     * 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() {
-        for (int i = 0; i < children.size(); i++) {
-            AbstractIntroElement child = (AbstractIntroElement) children
-                .elementAt(i);
-            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);
-    }
-
-    /**
-     * 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 Vector filterChildren(Vector unfiltered) {
-    	Vector filtered = new Vector();
-    	Iterator iter = unfiltered.iterator();
-    	while (iter.hasNext()) {
-    		Object element = iter.next();
-    		if (!UAContentFilter.isFiltered(element)) {
-        		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;
-    }
-
-    /**
-     * 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;
-
-        // found parent segment. now find each child segment.
-        for (int i = 1; i < pathSegments.length; i++) {
-            if (!target.isOfType(AbstractIntroElement.ABSTRACT_CONTAINER))
-                // 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.indexOf("@")!= -1) { //$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);
-    }
-
-
-    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 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 = (AbstractIntroElement) 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);
-    }
-
-    /**
-     * 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 (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);
-
-        // 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());
-
-    }
-
-    /**
-     * 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;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.ABSTRACT_CONTAINER;
-    }
-
-
-
-    /**
-     * Deep copy since class has mutable objects. Leave DOM element as a shallow
-     * reference copy since DOM is immutable.
-     */
-    public Object clone() throws CloneNotSupportedException {
-        AbstractIntroContainer clone = (AbstractIntroContainer) super.clone();
-        clone.children = new Vector();
-        if (children != null) {
-            for (int i = 0; i < children.size(); i++) {
-                AbstractIntroElement cloneChild = (AbstractIntroElement) ((AbstractIntroElement) children
-                    .elementAt(i)).clone();
-                cloneChild.setParent(clone);
-                clone.children.add(i, cloneChild);
-            }
-        }
-        return clone;
-    }
-
-    /**
-     * Returns the element.
-     * 
-     * @return
-     */
-    public Element getElement() {
-        return this.element;
-    }
-
-    public String getBase() {
-        return base;
-    }
-
-
-    /*
-     * 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);
-    }
-
-	public String getBackgroundImage() {
-		return getAttribute(element, ATT_BG_IMAGE);
-	}
-
-
-}
\ No newline at end of file
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
deleted file mode 100644
index f8c7268..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroElement.java
+++ /dev/null
@@ -1,465 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.help.internal.FilterableUAElement;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An intro config component. All config components can get to their defining
- * config element or bundle depending from where the element was loaded.
- * <p>
- * Class Rules:
- * <ul>
- * <li>If an element does not appear as a child under any node, then that
- * element does not need a type to be defined.</li>
- * <li>Each subclass must ensure that it properly supports cloning. This means
- * that if a deep copy is needed, the subclass must override the base behavior
- * here.</li>
- * <li>if cloning is not needed, override clone method and throw an unsupported
- * cloning exception. For now, only pages and targets of includes are cloneable.
- * </li>
- * </ul>
- * <p>
- * Note: This is an abstract base class for all classes in the Intro Model. <br>
- * Clients are not expected to implement or subclass this class, or any of its
- * subclasses.
- */
-public abstract class AbstractIntroElement extends FilterableUAElement implements Cloneable {
-
-    /**
-     * 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 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 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 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 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 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 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 PAGE_TITLE = 1 << 12;
-
-    /**
-     * 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 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 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 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 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.
-     */
-    public static final int ELEMENT = ID_ELEMENT | CONTAINER_EXTENSION | HEAD
-            | INCLUDE | PRESENTATION | LAUNCH_BAR | LAUNCH_BAR_SHORTCUT;
-
-
-
-    private AbstractIntroElement parent;
-    private IConfigurationElement 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(cfgElement);
-    }
-
-
-    /**
-     * 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.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);
-    }
-
-
-
-
-    /**
-     * 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;
-    }
-
-    /**
-     * 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) {
-            	IntroModelRoot root = getModelRoot();
-            	if (root!=null)
-            		value = root.resolveVariables(value);
-            	return value.split(","); //$NON-NLS-1$
-            }
-        }
-        /*
-        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 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;
-    }
-
-    /**
-     * @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;
-    }
-
-    /**
-     * 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;
-
-        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;
-
-        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;    	
-    }
-
-
-    /**
-     * 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;
-
-        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.
-     */
-    public Object clone() throws CloneNotSupportedException {
-        return super.clone();
-    }
-
-
-	
-	public String getMixinStyle() {
-		return mixinStyle;
-	}
-
-
-	
-	public void setMixinStyle(String mixinStyle) {
-		this.mixinStyle = mixinStyle;
-	}
-
-
-
-}
\ No newline at end of file
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
deleted file mode 100644
index f0e8cb1..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroIdElement.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An Intro Config component that has an id attribute. It is used as a base
- * class for all config elements that can take an id, and hence are valid
- * targets for includes and finds.
- * 
- */
-public abstract class AbstractIntroIdElement extends AbstractIntroElement {
-
-    public static final String ATT_ID = "id"; //$NON-NLS-1$
-
-    protected String id;
-
-    AbstractIntroIdElement(IConfigurationElement element) {
-        super(element);
-        id = element.getAttribute(ATT_ID);
-    }
-
-    AbstractIntroIdElement(Element element, Bundle bundle) {
-        super(element, bundle);
-        id = getAttribute(element, ATT_ID);
-        addFilters(element);
-    }
-
-    AbstractIntroIdElement(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-        id = getAttribute(element, ATT_ID);
-        addFilters(element);
-    }
-
-    /**
-     * @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
deleted file mode 100644
index 606393e..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPage.java
+++ /dev/null
@@ -1,877 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.internal.xhtml.XHTMLSupport;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.model.loader.ExtensionPointManager;
-import org.eclipse.ui.internal.intro.impl.model.loader.IntroContentParser;
-import org.eclipse.ui.internal.intro.impl.model.loader.ModelLoaderUtil;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Base class for all Intro pages, inlcuding HomePage. Adds page specific
- * support:
- * <ul>
- * <li>support for page styles, and style inheritance</li>
- * <li>support for XHTML via a DOM instance var. Resolving the page is also
- * handled here.</li>
- * <li>a pge has the concept of being an IFramePage. This is indicated by the
- * isIFrame flag. A page is an IFramePage when it is not defined in any content
- * file, but instead is actually created at runtime. This is done to display a
- * Help System topic embedded in any given div. The current page is cloned, its
- * id is mangled with "_embedDivId", the content of the div pointed to by
- * embedDivId is replaced with an IFrame that loads the Help System topic.</li>
- * </ul>
- */
-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$
-
-    private String style;
-    private String altStyle;
-    private String sharedStyle;
-    private IntroPageTitle title;
-    private String content;
-
-    // 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;
-
-    // DOM representing XHTML content. DOM is only cached in the case of XHTML
-    // content.
-    private Document dom;
-
-    // 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;
-
-    /**
-     * 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 styles;
-    private Hashtable altStyles;
-
-    /**
-     * 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$
-
-    }
-    
-    public void setParent(AbstractIntroElement parent) {
-    	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
-     */
-    
-    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);
-            }
-        }
-
-        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];
-        }
-
-        if (title == null)
-            // still null. no title.
-            return null;
-        return title.getTitle();
-    }
-
-    /**
-     * @return Returns the style.
-     */
-    public String getStyle() {
-        return style;
-    }
-
-    /**
-     * @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 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 Hashtable getAltStyles() {
-        // 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);
-    }
-
-    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);
-    }
-
-
-    /**
-     * 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.
-     */
-    protected void addAltStyles(Hashtable altStyles) {
-        if (altStyles == null)
-            return;
-        if (this.altStyles == null)
-            // delay creation until needed.
-            this.altStyles = new Hashtable();
-        this.altStyles.putAll(altStyles);
-    }
-
-
-    private boolean initStyles(String style) {
-        if (style == null)
-            return false;
-        if (this.styles == null)
-            // delay creation until needed.
-            this.styles = new Vector();
-        return true;
-    }
-
-    private boolean initAltStyles(String style) {
-        if (style == null)
-            return false;
-        if (this.altStyles == null)
-            // delay creation until needed.
-            this.altStyles = new Hashtable();
-        return true;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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()
-     */
-    protected void 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)
-     */
-    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);
-    }
-
-    /**
-     * 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.
-     */
-    protected void loadChildren() {
-        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.extractParentFolder(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);
-        }
-
-        // 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.
-            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$
-        }
-    }
-
-    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;
-    }
-
-    /**
-     * 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 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);
-    }
-
-    /**
-     * 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));
-
-        // 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]);
-        }
-
-        // filter the content
-        XHTMLSupport.getFilterProcessor().applyFilters(dom);
-        
-        // and resolve includes.
-        resolveIncludes();
-
-        // 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;
-            }
-
-            // 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);
-
-    }
-
-
-
-    /**
-     * 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);
-
-        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;
-    }
-
-
-
-    /**
-     * Deep copy since class has mutable objects.
-     */
-    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)
-            clone.styles = (Vector) styles.clone();
-        if (altStyles != null)
-            clone.altStyles = (Hashtable) altStyles.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;
-    }
-
-    /*
-     * 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;
-    }
-
-    /**
-     * 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;
-    }
-
-
-    /**
-     * 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();
-    }
-
-    /**
-     * 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$
-    }
-
-}
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
deleted file mode 100644
index e7f4b92..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractIntroPartImplementation.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.core.runtime.PerformanceStats;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.viewer.IntroModelContentProvider;
-import org.eclipse.ui.internal.intro.impl.model.viewer.IntroModelLabelProvider;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.config.CustomizableIntroPart;
-
-/**
- * UI Implementation class that represents a Presentation Part. This class is
- * instantiated from plugin markup and so we need a default constructor,
- * including in subclasses. It has some base methods, including maintaining a
- * history of navigation locations. Also, dynamic awarness is honored here.
- * 
- */
-public abstract class AbstractIntroPartImplementation {
-
-    // CustomizableIntroPart instance.
-    private CustomizableIntroPart introPart = null;
-
-    // IMemento for restoring state.
-    private IMemento memento;
-
-    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;
-
-    // Global actions
-    protected Action backAction = new Action() {
-
-        {
-            setToolTipText(Messages.Browser_backwardButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/backward_nav.gif")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                .createImageDescriptor("full/dlcl16/backward_nav.gif")); //$NON-NLS-1$
-        }
-
-        public void run() {
-            navigateBackward();
-        }
-    };
-
-    protected Action forwardAction = new Action() {
-
-        {
-            setToolTipText(Messages.Browser_forwardButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/forward_nav.gif")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                .createImageDescriptor("full/dlcl16/forward_nav.gif")); //$NON-NLS-1$
-        }
-
-        public void run() {
-            navigateForward();
-        }
-    };
-
-    protected Action homeAction = new Action() {
-
-        {
-            setToolTipText(Messages.Browser_homeButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("full/elcl16/home_nav.gif")); //$NON-NLS-1$
-            setDisabledImageDescriptor(ImageUtil
-                .createImageDescriptor("full/dlcl16/home_nav.gif")); //$NON-NLS-1$
-        }
-
-        public void run() {
-            navigateHome();
-        }
-    };
-
-    protected Action viewIntroModelAction = new Action() {
-
-        {
-            setToolTipText(Messages.IntroPart_showContentButton_tooltip);
-            setImageDescriptor(ImageUtil
-                .createImageDescriptor("contents_view.gif")); //$NON-NLS-1$
-        }
-
-        public void run() {
-            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);
-
-    /**
-     * 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 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 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 update the intro view actions when history
-     * is updated.
-     * 
-     */
-    protected abstract void updateNavigationActionsState();
-
-
-
-    public abstract boolean navigateBackward();
-
-    public abstract boolean navigateForward();
-
-    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
-    }
-
-
-    /*
-     * 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();
-            }
-
-            // standby time.
-            setStandbyStateStats = PerformanceStats.getStats(
-                IIntroConstants.PERF_SET_STANDBY_STATE, IIntroConstants.INTRO);
-            setStandbyStateStats.startRun();
-            start = System.currentTimeMillis();
-        }
-
-
-        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);
-
-            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;
-            }
-
-        }
-    }
-
-
-
-    /*
-     * 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);
-    }
-
-
-    /**
-     * 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);
-        }
-    }
-
-
-    /**
-     * 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() {
-        IMemento memento = getMemento();
-        if (memento == null)
-            return null;
-        return memento.getString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT);
-    }
-
-
-    /**
-     * @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);
-    }
-
-    /*
-     * 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;
-    }
-
-
-}
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
deleted file mode 100644
index 5e21923..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/AbstractTextElement.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-/**
- * An intro config component that can have a single Text element as a child. In
- * case there is more than one text child, the text is retrieved from the first
- * text child element.
- */
-public abstract class AbstractTextElement extends AbstractBaseIntroElement {
-
-    private IntroText introText;
-
-    AbstractTextElement(Element element, Bundle bundle) {
-        super(element, bundle);
-        // description will be null if there is no description element.
-        introText = getTextElement(element);
-    }
-
-    /**
-     * Retruns the intro text element embedded in this element.
-     */
-    private IntroText getTextElement(Element element) {
-        try {
-            // There should only be one text element.
-            // Since elements where obtained by name, no point validating name.
-            NodeList textElements = element
-                .getElementsByTagName(IntroText.TAG_TEXT);
-            if (textElements.getLength() == 0)
-                // no contributions. done.
-                return null;
-            IntroText text = new IntroText((Element) textElements.item(0),
-                getBundle());
-            text.setParent(this);
-            return text;
-        } catch (Exception e) {
-            Log.error(e.getMessage(), e);
-            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.
-        if (introText != null)
-            return introText.getText();
-        return null;
-    }
-
-    /**
-     * Returns the intro text representing the child text of this element. May
-     * return null if there is no text child.
-     * 
-     * @return Returns the introText.
-     */
-    public IntroText getIntroText() {
-        return introText;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.ABSTRACT_TEXT;
-    }
-
-    /**
-     * Deep copy since class has mutable objects.
-     */
-    public Object clone() throws CloneNotSupportedException {
-        AbstractTextElement clone = (AbstractTextElement) super.clone();
-        if (introText != null) {
-            IntroText cloneIntroText = (IntroText) introText.clone();
-            cloneIntroText.setParent(clone);
-            clone.introText = cloneIntroText;
-        }
-        return clone;
-    }
-
-}
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
deleted file mode 100644
index dcd10df..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/History.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-
-/*
- * Intro History Model.
- */
-public class History {
-    // History of Intro Pages and real URL visited by Intro Browser. All
-    // elements are all of type HistoryObject.
-    private Vector history = new Vector();
-    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;
-
-        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();
-            }
-        }
-
-        /**
-         * 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 getIFrameUrl() {
-            return iframeUrl;
-        }
-
-        String getUrl() {
-            return url;
-        }
-
-        boolean isURL() {
-            return (url != null) ? true : false;
-        }
-
-        boolean isIntroPage() {
-            return (page != 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 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 boolean isSameLocation(Object location) {
-        HistoryObject currentLocation = getCurrentLocation();
-        if (location instanceof String && currentLocation.isURL())
-            return currentLocation.getUrl().equals(location);
-
-        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;
-
-            // 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;
-        }
-
-        return false;
-    }
-
-
-
-
-    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();
-    }
-
-    private void trimHistory(Object location) {
-        List 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();
-    }
-
-    /**
-     * 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;
-    }
-
-    /**
-     * 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;
-    }
-
-
-    /**
-     * 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 (HistoryObject) history.elementAt(navigationLocation);
-    }
-
-    public boolean canNavigateForward() {
-        return navigationLocation != getHistoryEndPosition() ? true : false;
-    }
-
-    public boolean canNavigateBackward() {
-        return navigationLocation == 0 ? false : true;
-    }
-
-    public boolean currentLocationIsUrl() {
-        return getCurrentLocation().isURL();
-    }
-
-    public String getCurrentLocationAsUrl() {
-        return getCurrentLocation().getUrl();
-    }
-
-    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 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
deleted file mode 100644
index 7b24f52..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroAnchor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An intro anchor. An anchor is the only valid target for a config extension.
- */
-public class IntroAnchor extends AbstractIntroIdElement {
-
-    protected static final String TAG_ANCHOR = "anchor"; //$NON-NLS-1$
-
-    /**
-     * @param element
-     */
-    IntroAnchor(Element element, Bundle bundle) {
-        super(element, bundle);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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
deleted file mode 100644
index 43479a4..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroContentProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An intro content provider element. This element allows intro page to
- * dynamically pull data from various sources (e.g., the web, eclipse, etc) and
- * provide content based on this dynamic data. The element's class must
- * implement the IIntroContentProvider interface. The pluginId attribute can be
- * used if the class doesn't come from the plugin that defined the markup. The
- * text content should be used only if we fail to load the class. <br>
- * 
- * INTRO: model class has access to style-id attribute but it is not used in the
- * schema.
- */
-public class IntroContentProvider extends AbstractTextElement {
-    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 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);
-    }
-
-    /**
-     * 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;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement#getType()
-     */
-    public int getType() {
-        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
deleted file mode 100644
index b3adb73..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroExtensionContent.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.help.internal.xhtml.DOMUtil;
-import org.eclipse.ui.internal.intro.impl.model.loader.IntroContentParser;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * An intro container extension. If the content attribute is defined, then it is
- * assumed that we have XHTML content in an external file. Load content from
- * external DOM. No need to worry about caching here because this is a transient
- * model class. It is used and then disregarded from the model.<br>
- * Just like in a page, the styles and altStyles strings can be a comma
- * separated list of styles. Handle this by storing styles just like pages.
- */
-public class IntroExtensionContent extends AbstractIntroElement {
-
-    protected static final String TAG_CONTAINER_EXTENSION = "extensionContent"; //$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 Element element;
-    private String base;
-
-    private Vector styles = new Vector();
-    private Hashtable altStyles = new Hashtable();
-
-    IntroExtensionContent(Element element, Bundle bundle, String base) {
-        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);
-
-        // 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;
-        }
-
-    }
-    
-    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);
-            }
-        }
-
-        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 altStyle
-     */
-    protected void addAltStyle(String altStyle, Bundle bundle) {
-        if (altStyles.containsKey(altStyle))
-            return;
-        altStyles.put(altStyle, bundle);
-    }
-
-
-
-    /**
-     * @return Returns the path.
-     */
-    public String getPath() {
-        return path;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.CONTAINER_EXTENSION;
-    }
-
-    protected Element[] getChildren() {
-        NodeList nodeList = element.getChildNodes();
-        Vector 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;
-    }
-
-    public boolean isXHTMLContent() {
-        return content != null ? true : false;
-    }
-
-	/**
-	 * Returns the elements loaded from the content attribute. This is the content
-	 * that should be inserted for the extension. If it is a file, all child elements
-	 * of body are returned. If it is a file with an id, only the element with the id
-	 * is returned.
-	 * 
-	 * @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[] { dom.getElementById(contentId) };
-	    			}
-	    			else {
-	    				// no id specified, use the whole body
-	    				Element extensionBody = DOMUtil.getBodyElement(dom);
-	    				return DOMUtil.getElementsByTagName(extensionBody, "*"); //$NON-NLS-1$
-	    			}
-	            }
-            }
-        }
-        return EMPTY_ELEMENT_ARRAY;
-    }
-
-    /**
-     * @return Returns the altStyle.
-     */
-    protected Hashtable getAltStyles() {
-        return altStyles;
-    }
-
-    /**
-     * @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;
-    }
-
-    public String getBase() {
-        return base;
-    }
-    
-	/**
-	 * Extracts the file and id parts of the content attribute. This attribute has two modes -
-	 * if you specify a file, it will include the body of that file (minus the body element itself).
-	 * If you append an id after the file, only the element with that id will be included. However
-	 * we need to know which mode we're in.
-	 * 
-	 * @param bundle the bundle that contributed this extension
-	 */
-    private void extractFileAndId(Bundle bundle) {
-		// look for the file
-		IPath resourcePath = new Path(base + content);
-		if (FileLocator.find(bundle, resourcePath, null) != null) {
-			// found it, assume it's a file
-			contentFile = content;
-		}
-		else {
-			// didn't find the file, assume the last segment is an id
-			int lastSlashIndex = content.lastIndexOf('/');
-			if (lastSlashIndex != -1) {
-				contentFile = content.substring(0, lastSlashIndex);
-				contentId = content.substring(lastSlashIndex + 1);
-			}
-			else {
-				// there was no slash, it must be a file
-				contentFile = content;
-			}
-		}
-	}
-}
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
deleted file mode 100644
index e91012a..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroGroup.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.Enumeration;
-import java.util.Map;
-
-import org.eclipse.ui.intro.config.IntroElement;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-import org.w3c.dom.Text;
-
-/**
- * An intro div.
- */
-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 P_UPPERCASE = "capitalizeTitles"; //$NON-NLS-1$
-    private String label;
-    /**
-     * @param element
-     */
-    IntroGroup(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-    }
-    
-    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();
-    			}
-    		}
-   		}
-    }
-
-    /**
-     * @return Returns the label.
-     */
-    public String getLabel() {
-    	resolve();
-        return label;
-    }
-    
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.GROUP;
-    }
-    
-    public boolean isExpandable() {
-    	String value=getAttribute(element, ATT_EXPANDABLE);
-    	return value!=null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-    }
-    
-    protected void 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();
-    	IntroElement [] nodes = root.getConfigurer().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);
-    }
-}
\ No newline at end of file
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
deleted file mode 100644
index a23666f..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHTML.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-/**
- * An intro HTML element. Can have text and image as fall back. "type" attribute
- * in markup determines if it is inlined or not. if inlined, value of 'src' will
- * be treated as a snippet of HTML to emit 'in-place'. If 'embed', a valid
- * (full) HTML document will be embedded using HTML 'OBJECT' tag. Ecoding can be
- * specified for inline snippets.
- */
-public class IntroHTML extends AbstractTextElement {
-
-    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 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;
-
-        // description will be null if there is no description element.
-        introImage = getIntroImage(element, base);
-
-        // 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;
-        }
-    }
-
-    /**
-     * 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 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;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.HTML;
-    }
-
-    /**
-     * Deep copy since class has mutable objects.
-     */
-    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;
-    }
-
-}
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
deleted file mode 100644
index 089dd5b..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHead.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An intro Head element. Head elements are only interpreted for HTML case. They
- * are always inlined. Ignored in UI Forms case.
- */
-public class IntroHead extends AbstractIntroElement {
-
-    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 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$
-
-        // 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$
-
-        // Resolve.
-        src = BundleUtil.getResolvedResourceLocation(base, src, bundle);
-    }
-
-
-    /**
-     * @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;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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
deleted file mode 100644
index 0f4e403..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroHomePage.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.Vector;
-
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An Intro Home page. A home page is special because it is the page that
- * decides whether the OOBE pages are dynamic or static. This model class models
- * the home and the standby page (since there is no difference between the two).
- */
-public class IntroHomePage extends AbstractIntroPage {
-
-    private static final String ATT_URL = "url"; //$NON-NLS-1$
-
-    private String url;
-    private boolean isDynamic = false;
-    private boolean isStandbyPage;
-
-
-    IntroHomePage(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-        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);
-    }
-
-
-    /**
-     * @return Returns the url.
-     */
-    public String getUrl() {
-        return url;
-    }
-
-
-    /**
-     * Returns true if this is a dynamic model or not. This is based on whether
-     * this root page has a URL attribute or not.
-     * 
-     * @return Returns the isDynamic.
-     */
-    public boolean isDynamic() {
-        return isDynamic;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.HOME_PAGE;
-    }
-
-
-    /**
-     * @return Returns the isStandbyPage.
-     */
-    public boolean isStandbyPage() {
-        return isStandbyPage;
-    }
-
-    /**
-     * @param isStandbyPage
-     *            The isStandbyPage to set.
-     */
-    public void setStandbyPage(boolean isStandbyPage) {
-        this.isStandbyPage = isStandbyPage;
-    }
-
-
-    // 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 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);
-            }
-        }
-
-        IntroLink[] links = new IntroLink[linkVector.size()];
-        linkVector.copyInto(links);
-        return links;
-    }
-
-    private void addLinks(IntroGroup group, Vector 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
deleted file mode 100644
index f9d7b09..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroImage.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An intro image element.
- */
-public class IntroImage extends AbstractBaseIntroElement {
-
-    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 Element element;
-    private String src;
-    private String 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);
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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, 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
deleted file mode 100644
index 7f025fc..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInclude.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An intro image element.
- */
-public class IntroInclude extends AbstractIntroElement {
-
-    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 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$
-    }
-
-    /**
-     * @return Returns the configId.
-     */
-    public String getConfigId() {
-        return configId;
-    }
-
-    /**
-     * @return Returns the mergeStyle.
-     */
-    public boolean getMergeStyle() {
-        return mergeStyle;
-    }
-
-    /**
-     * @return Returns the path.
-     */
-    public String getPath() {
-        return path;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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
deleted file mode 100644
index 0560974..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroInjectedIFrame.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-
-/**
- * An Intro IFrame element that has been injected at runtime to embed a url. It
- * is placed as the only child of a target div to display the content of a url.
- * The URL can be any valid URL.
- */
-public class IntroInjectedIFrame extends AbstractIntroIdElement {
-
-    private String url;
-
-    IntroInjectedIFrame(Element element, Bundle bundle) {
-        super(element, bundle);
-    }
-
-    public void setIFrameURL(String url) {
-        this.url = url;
-    }
-
-    public String getIFrameURL() {
-        return this.url;
-    }
-
-
-    public int getType() {
-        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
deleted file mode 100644
index c8f5ae9..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarElement.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.intro.config.IntroConfigurer;
-import org.eclipse.ui.intro.config.IntroElement;
-
-/**
- * An Intro Config component captures launch bar information. It can have
- * shortcuts and one handle. <br>
- * ps: Handles are not modeled in a dedicated class, but are handled here.
- * 
- * @since 3.1
- */
-public class IntroLaunchBarElement extends AbstractIntroElement {
-    private ArrayList shortcuts;
-
-    IntroLaunchBarElement(IConfigurationElement element) {
-        super(element);
-    }
-
-
-    /**
-     * Returns LAUNCH_BAR.
-     */
-    public int getType() {
-        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 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;
-    }
-
-    public String getBackground() {
-        return getCfgElement().getAttribute("bg"); //$NON-NLS-1$
-    }
-
-    public String getForeground() {
-        return getCfgElement().getAttribute("fg"); //$NON-NLS-1$
-    }
-
-    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;
-    }
-
-    /**
-     * 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);
-    }
-
-    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 (IntroLaunchBarShortcut[]) shortcuts
-            .toArray(new IntroLaunchBarShortcut[shortcuts.size()]);
-    }
-
-    /**
-     * Creates an array of shortcut elements
-     * 
-     */
-    private void createShortcuts() {
-        shortcuts = new ArrayList();
-        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$
-        
-        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);
-        	}
-        }
-    }
-}
\ No newline at end of file
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
deleted file mode 100644
index 1180e61..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLaunchBarShortcut.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.intro.config.IntroElement;
-
-/**
- * An Intro Config component that captures launch bar shortcut information.
- * 
- * @since 3.1
- */
-public class IntroLaunchBarShortcut extends AbstractIntroElement {
-
-    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 IntroElement ielement;
-    
-    IntroLaunchBarShortcut(IConfigurationElement element, IntroElement ielement) {
-    	super(element);
-    	this.ielement = ielement;
-    }
-    
-    IntroLaunchBarShortcut(IConfigurationElement element) {
-        super(element);
-    }
-
-
-    public int getType() {
-        return AbstractIntroElement.LAUNCH_BAR_SHORTCUT;
-    }
-    
-    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 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 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());
-    }
-}
\ No newline at end of file
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
deleted file mode 100644
index dcafcb0..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroLink.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURL;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-/**
- * An intro Link. This model class is responsible for parsing and creating an
- * IntroURL class instance if the URL happens to be a valid intro url.
- */
-public class IntroLink extends AbstractTextElement {
-
-    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 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);
-
-        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);
-        }
-    }
-
-    /**
-     * @return Returns the label.
-     */
-    public String getLabel() {
-        return label;
-    }
-
-    /**
-     * @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;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.LINK;
-    }
-
-    /**
-     * @return Returns the img.
-     */
-    public IntroImage getImg() {
-        return img;
-    }
-
-    /**
-     * Deep copy since class has mutable objects.
-     */
-    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;
-    }
-}
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
deleted file mode 100644
index 1c9bb97..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroModelRoot.java
+++ /dev/null
@@ -1,897 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.model.loader.IntroContentParser;
-import org.eclipse.ui.internal.intro.impl.model.loader.ModelLoaderUtil;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.intro.config.IntroConfigurer;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * The root class for the OOBE model. It loads the configuration into the
- * appropriate classes.
- * 
- * Model rules:
- * <ol>
- * <li>if an attribute is not included in the markup, its value will be null in
- * the model.</li>
- * <li>Resources in plugin.xml are not implicitly resolved against $nl$.
- * Resources in pages are implicitly resolved against $nl$
- * <li>the current page id is set silently when loading the model. You do not
- * need the event notification on model load.</li>
- * <li>Children of a given parent (ie: model root, page, or group) *must* have
- * distinctive IDs otherwise resolving includes and extensions may fail.</li>
- * <li>Containers have the concept of loading children and resolving children.
- * At the model root level, resolving children means resolving ALL extensions of
- * model. At the container level, resolving children means resolving includes.
- * </li>
- * <li>Extensions are resolved before includes at the container level to avoid
- * race conditions. eg: if a page includes a shared group and an extension
- * extends this shared group, you want the include to get the extended group and
- * not the original group.</li>
- * <li>Resolving extensions should not resolve includes. No need to load other
- * models when we dont have to. Plus, extensions can only reference anchors, and
- * so no need to resolve includes.</li>
- * <li>Extensions can not target containers *after* they are resolved. For
- * example, an extension can not target a shared group after it has been
- * included in a page. It can target the initial shared group as a path, but not
- * the group in the page as a path. Again this is because extensions extends
- * anchors that already have a path, not a resolved path.</li>
- * <li>Pages and shared groups that are contributed through extensions become
- * children of the atrget configuration, and so any includes they may have will
- * be resolved correctly.</li>
- * <li>An infinite loop can occur if page A includes from page B and page B in
- * turn includes from page A. ie: cyclic includes. For performnace, accept.
- * </li>
- * <li>When resolving includes, if the target is a container, it must be
- * resolved to resolve its includes correctly. Otherwise, included includes will
- * fail due to reparenting.</li>
- * <li>unresolved includes are left as children of the parent container.</li>
- * <li>Unresolved extensions are left as children of the targetted model.</li>
- * <li>For dynamic awarness, the model is nulled and then reloaded. However, we
- * need to preserve the presentation instance since the UI is already loaded.
- * This is done by reloading the model, and directly resetting the presentation
- * to what it was.</li>
- * <li>Model classes should not have DOM classes as instance vars, and if this
- * is a must, null the DOM class instance the minute you are done. This is
- * because you want the VM to garbage collect the DOM model. Keeping a reference
- * to the DOM model from the Intro model will prevent that.</li>
- * </ol>
- * <li>(since 3.0.2) several passes are used to resolve contributions to
- * anchors that themselves where contributed through an extension. Each time a
- * contribution is resolved, the model tries to resolve all unresolved
- * contribution, recursively.
- * </ul>
- */
-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;
-
-    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$
-
-    // False if there is no valid contribution to the
-    // org.eclipse.ui.into.config extension point. Start off with true, and set
-    // to false whenever something bad happens.
-    private boolean hasValidConfig = true;
-    private boolean isdynamicIntro;
-    private IntroConfigurer configurer;
-    private IntroTheme theme;
-    private IntroPartPresentation introPartPresentation;
-    private IntroHomePage homePage;
-    private String currentPageId;
-    private IntroHomePage standbyPage;
-
-    // the config extensions for this model.
-    private IConfigurationElement[] configExtensionElements;
-
-    // maintain listener list for model changes.
-    public ListenerList propChangeListeners = new ListenerList();
-
-    // a hashtable to hold all loaded DOMs until resolving all configExtensions
-    // is done. Key is one extensionContent DOM element, while value is the
-    // IConfigurationElement from where it was loaded. This is needed to extract
-    // the base for the xml content file.
-    private Hashtable unresolvedConfigExt = new Hashtable();
-
-
-    /**
-     * 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();
-    }
-
-    /**
-     * 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.
-     * 
-     */
-    protected void loadChildren() {
-        children = new Vector();
-        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, false);
-            Log.warning("Could not find presentation element in intro config."); //$NON-NLS-1$
-            return;
-        }
-        
-        loadTheme();
-        loadConfigurer();
-
-        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, false);
-            return;
-        }
-
-        // set base for this model.
-        this.base = getBase(getCfgElement());
-
-        // 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, getHomePage().isDynamic());
-    }
-
-    /**
-     * 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.
-     */
-    protected void resolveChildren() {
-        // 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);
-
-        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);
-    			if (obj instanceof IntroConfigurer)
-    				configurer = (IntroConfigurer)obj;
-    		}
-    		catch (CoreException e) {
-    			Log.error("Error loading intro configurer", e); //$NON-NLS-1$
-    		}
-    	}
-    }
-    
-    private void loadTheme() {
-    	Preferences pref = IntroPlugin.getDefault().getPluginPreferences();
-    	String pid = Platform.getProduct().getId();
-    	String themeId = pref.getString(pid+"_INTRO_THEME"); //$NON-NLS-1$
-    	if (themeId.length()==0)
-    		themeId = pref.getString("INTRO_THEME"); //$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);
-    	}
-    }
-
-    /**
-     * Loads all pages defined in this config from the xml content file.
-     */
-    private void loadPages(Document dom, Bundle bundle) {
-        String homePageId = getPresentation().getHomePageId();
-        String standbyPageId = getPresentation().getStandbyPageId();
-        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(
-                homePageId)) {
-                // Create the model class for the Root Page.
-                homePage = new IntroHomePage(pageElement, bundle, base);
-                homePage.setParent(this);
-                currentPageId = homePage.getId();
-                children.add(homePage);
-            } else if (pageElement.getAttribute(AbstractIntroIdElement.ATT_ID)
-                .equals(standbyPageId)) {
-                // Create the model class for the standby Page.
-                standbyPage = new IntroHomePage(pageElement, bundle, base);
-                standbyPage.setParent(this);
-                // signal that it is a standby page.
-                standbyPage.setStandbyPage(true);
-                children.add(standbyPage);
-            } 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);
-        }
-    }
-
-    /**
-     * 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++)
-            resolveConfigExtension(configExtensionElements[i]);
-
-        // now add all unresolved extensions as model children and log fact.
-        Enumeration keys = unresolvedConfigExt.keys();
-        while (keys.hasMoreElements()) {
-            Element configExtensionElement = (Element) keys.nextElement();
-            IConfigurationElement configExtConfigurationElement = (IConfigurationElement) unresolvedConfigExt
-                .get(configExtensionElement);
-            Bundle bundle = BundleUtil
-                .getBundleFromConfigurationElement(configExtConfigurationElement);
-            String base = getBase(configExtConfigurationElement);
-            children.add(new IntroExtensionContent(configExtensionElement,
-                bundle, base));
-
-            // INTRO: fix log strings.
-            Log
-                .warning("Could not resolve the following configExtension: " //$NON-NLS-1$
-                        + ModelLoaderUtil.getLogString(bundle,
-                            configExtensionElement,
-                            IntroExtensionContent.ATT_PATH));
-        }
-    }
-
-    private void resolveConfigExtension(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;
-        resolveConfigExtension(dom, configExtElement);
-    }
-
-
-    private void resolveConfigExtension(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 extensionContentElement = loadExtensionContent(dom,
-            configExtElement, base);
-        if (extensionContentElement == null)
-            // no extension content defined, ignore extension completely.
-            return;
-
-        if (extensionContentElement.hasAttribute("failed")) { //$NON-NLS-1$
-            // we failed to resolve this configExtension, because target
-            // could not be found or is not an anchor, add the extension to the
-            // list of unresolved configExtensions.
-            // INTRO: an extensionContent is used as a key, instead of the whole
-            // DOM. This is usefull if we need to support multiple extension
-            // contents in one file.
-            if (!unresolvedConfigExt.containsKey(extensionContentElement))
-                unresolvedConfigExt.put(extensionContentElement,
-                    configExtElement);
-            return;
-        }
-
-        // We resolved a contribution. Now load all pages and shared groups
-        // from this config extension. No point adding pages that will never
-        // be referenced. 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.
-            IntroPage page = new IntroPage(pages[j], bundle, base);
-            page.setParent(this);
-            children.add(page);
-        }
-
-        // load all shared groups from all configExtensions to this model.
-        loadSharedGroups(dom, bundle);
-
-        // since we resolved a contribution, try resolving some of the
-        // unresolved ones before going on.
-        unresolvedConfigExt.remove(extensionContentElement);
-        tryResolvingExtensions();
-    }
-
-
-    private void tryResolvingExtensions() {
-        Enumeration keys = unresolvedConfigExt.keys();
-        while (keys.hasMoreElements()) {
-            Element extensionContentElement = (Element) keys.nextElement();
-            resolveConfigExtension(extensionContentElement.getOwnerDocument(),
-                (IConfigurationElement) unresolvedConfigExt
-                    .get(extensionContentElement));
-        }
-    }
-
-
-    /**
-     * 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.
-        Bundle bundle = BundleUtil
-            .getBundleFromConfigurationElement(configExtElement);
-
-        Element[] extensionContents = ModelUtil.getElementsByTagName(dom,
-            IntroExtensionContent.TAG_CONTAINER_EXTENSION);
-        // INTRO: change this. we may need to load more than one extension
-        // content here.
-        // There should only be one container extension. (ver3.0)
-        Element extensionContentElement = ModelLoaderUtil
-            .validateSingleContribution(bundle, extensionContents,
-                IntroExtensionContent.ATT_PATH);
-        if (extensionContentElement == null)
-            // no extensionContent defined.
-            return null;
-
-        // Create the model class for extension content.
-        IntroExtensionContent extensionContent = new IntroExtensionContent(
-            extensionContentElement, bundle, base);
-        boolean success = false;
-        if (extensionContent.isXHTMLContent())
-            success = loadXHTMLExtensionContent(extensionContent);
-        else
-            success = load3_0ExtensionContent(extensionContent);
-
-        if (success) {
-            if (extensionContentElement.hasAttribute("failed")) //$NON-NLS-1$
-                extensionContentElement.removeAttribute("failed"); //$NON-NLS-1$
-        } else
-            extensionContentElement.setAttribute("failed", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-
-        return extensionContentElement;
-    }
-
-
-
-    /**
-     * 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;
-
-        // extensions are only for anchors. Insert all children of this
-        // extension before the target anchor. 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 targetAnchor = targetPage.findDomChild(pathSegments[1],
-            IntroAnchor.TAG_ANCHOR);
-        if (targetAnchor == 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.
-
-            ModelUtil.updateResourceAttributes((Element) targetNode,
-                extensionContent);
-            targetAnchor.getParentNode().insertBefore(targetNode, targetAnchor);
-        }
-
-        // 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;
-
-    }
-
-
-
-    /**
-     * Insert the extension content (3.0 format) into the target.
-     * 
-     * @param extensionContent
-     * @return
-     */
-    private boolean load3_0ExtensionContent(
-            IntroExtensionContent extensionContent) {
-        String path = extensionContent.getPath();
-        AbstractIntroElement target = findTarget(this, path, extensionContent.getId());
-        if (target == null || !target.isOfType(AbstractIntroElement.ANCHOR))
-            // target could not be found. Signal failure.
-            return false;
-
-        // extensions are only for anchors. Insert all children of this
-        // extension before this anchor. Anchors need to stay as model
-        // children, even after all extensions have been
-        // resolved, to enable other plugins to contribute.
-        IntroAnchor targetAnchor = (IntroAnchor) target;
-        insertAnchorChildren(targetAnchor, extensionContent, extensionContent
-            .getBundle(), extensionContent.getBase());
-        handleExtensionStyleInheritence(targetAnchor, extensionContent);
-
-        return true;
-
-    }
-
-
-    private void insertAnchorChildren(IntroAnchor anchor,
-            IntroExtensionContent extensionContent, Bundle bundle, String base) {
-        AbstractIntroContainer anchorParent = (AbstractIntroContainer) anchor
-            .getParent();
-        // insert the elements of the extension before the anchor.
-        String mixinStyle = getMixinStyle(extensionContent);
-        Element [] children = extensionContent.getChildren();
-        anchorParent.insertElementsBefore(children,
-            bundle, base, anchor, 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;
-   		return configurer.getMixinStyle(pageId, extensionContent.getId());
-    }
-
-
-    /**
-     * Updates the inherited styles based on the style attribtes defined in the
-     * confgiExtension. 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(IntroAnchor anchor,
-            IntroExtensionContent extension) {
-
-        AbstractIntroContainer targetContainer = (AbstractIntroContainer) anchor
-            .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);
-
-        // for alt-style cache bundle for loading resources.
-        Hashtable altStyles = extension.getAltStyles();
-        if (altStyles != null)
-            targetContainer.getParentPage().addAltStyles(altStyles);
-
-    }
-
-
-
-    /**
-     * Sets the model state based on all the model classes. Dynamic nature of
-     * the model is always setto false when we fail to load model for any
-     * reason.
-     */
-    private void setModelState(boolean loaded, boolean hasValidConfig,
-            boolean isdynamicIntro) {
-        this.loaded = loaded;
-        this.hasValidConfig = hasValidConfig;
-        this.isdynamicIntro = isdynamicIntro;
-    }
-
-    /**
-     * 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;
-    }
-    
-    public IntroConfigurer getConfigurer() {
-    	return configurer;
-    }
-
-    /**
-     * @return Returns the rootPage.
-     */
-    public IntroHomePage getHomePage() {
-        return homePage;
-    }
-
-    /**
-     * @return Returns the standby Page. May return null if standby page is not
-     *         defined.
-     */
-    public IntroHomePage 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 Returns the isdynamicIntro.
-     */
-    public boolean isDynamic() {
-        return isdynamicIntro;
-    }
-
-    /**
-     * @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;
-
-        AbstractIntroPage page = (AbstractIntroPage) findChild(pageId,
-            ABSTRACT_PAGE);
-        if (page == null) {
-            // not a page. Test for root page.
-            if (!pageId.equals(homePage.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;
-    }
-
-    public boolean setCurrentPageId(String pageId) {
-        return setCurrentPageId(pageId, true);
-    }
-
-    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() {
-
-                public void run() {
-                    l.propertyChanged(this, propertyId);
-                }
-
-                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);
-                }
-            });
-        }
-    }
-
-    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 (!isdynamicIntro)
-            return null;
-
-        AbstractIntroPage page = (AbstractIntroPage) findChild(currentPageId,
-            ABSTRACT_PAGE);
-        if (page != null)
-            return page;
-        // not a page. Test for root page.
-        if (currentPageId.equals(homePage.getId()))
-            return homePage;
-        // return null if page is not found.
-        return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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);
-
-        // 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.extractParentFolder(domBundle, content);
-
-        // Resolve.
-        content = BundleUtil.getResourceLocation(content, cfgElement);
-        Document document = new IntroContentParser(content).getDocument();
-
-        return document;
-    }
-
-
-    private String getBase(IConfigurationElement configElement) {
-        String content = configElement.getAttribute(ATT_CONTENT);
-        return ModelUtil.getParentFolderToString(content);
-    }
-    
-    public String resolveVariables(String text) {
-    	//if (configurer==null) return text;
-    	if (text.indexOf('$')== -1)
-    		return text;
-    	// resolve
-    	boolean inVariable=false;
-    	StringBuffer buf = new StringBuffer();
-    	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 (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 IntroTheme getTheme() {
-		return theme;
-	}
-}
\ 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
deleted file mode 100644
index 9ce032a..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPage.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An Intro page.
- */
-public class IntroPage extends AbstractIntroPage {
-
-    /**
-     * An Intro Part page.
-     */
-    IntroPage(Element element, Bundle bundle, String base) {
-        super(element, bundle, base);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        return AbstractIntroElement.PAGE;
-    }
-
-}
\ No newline at end of file
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
deleted file mode 100644
index 184df9c..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPageTitle.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * An intro element that represents a page title.
- */
-public class IntroPageTitle extends IntroText {
-
-    protected static final String TAG_TITLE = "title"; //$NON-NLS-1$
-
-    IntroPageTitle(Element element, Bundle bundle) {
-        super(element, bundle);
-    }
-
-    /**
-     * @return Returns the Title text.
-     */
-    public String getTitle() {
-        return getText();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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
deleted file mode 100644
index 180a092..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroPartPresentation.java
+++ /dev/null
@@ -1,518 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.internal.intro.impl.model.loader.ModelLoaderUtil;
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.presentations.FormIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.presentations.TextIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.intro.IIntroPart;
-
-/**
- * This class models the presentation element contributed to a config extension point. The
- * Presentation class delegates UI creation to the actual Implementation class, and passes the
- * IntroPart along to this implementation class. Also, dynamic awarness is honored here.
- * <p>
- * Rules:
- * <ul>
- * <li>There is no model class for the "implementation" markup element. This presentation class
- * inherits information from the implementation class that is picked (based on OS, ...).</li>
- * <li>ID attribute of this model class is the id of the picked implementation element.</li>
- * <li>Style attribute in this model class is the style of the picked implementation element.</li>
- * <li>HTMLHeadContent in this model class is the HEAD element under the picked implementation
- * element, only if the implementation element is a Browser implmenetation.</li>
- * <li>The UI model class, AbstractIntroPartImplementation, that represents the IntroPart
- * implementation is cached here for quick access. It is used by intro url actions for manipulation
- * of UI.<br>
- * INTRO:This really should be in a UI model class.
- * <ul>
- */
-public class IntroPartPresentation extends AbstractIntroElement {
-
-	protected static final String TAG_PRESENTATION = "presentation"; //$NON-NLS-1$
-	private static final String TAG_IMPLEMENTATION = "implementation"; //$NON-NLS-1$
-
-	private static final String ATT_KIND = "kind"; //$NON-NLS-1$
-	private static final String ATT_STYLE = "style"; //$NON-NLS-1$
-	private static final String ATT_OS = "os"; //$NON-NLS-1$
-	private static final String ATT_WS = "ws"; //$NON-NLS-1$
-	protected static final String ATT_HOME_PAGE_ID = "home-page-id"; //$NON-NLS-1$
-	protected static final String ATT_STANDBY_PAGE_ID = "standby-page-id"; //$NON-NLS-1$
-
-	public static final String BROWSER_IMPL_KIND = "html"; //$NON-NLS-1$
-	public static final String FORMS_IMPL_KIND = "swt"; //$NON-NLS-1$
-	// this implementation kind if not public api. Only used internally for
-	// debugging.
-	private static final String TEXT_IMPL_KIND = "text"; //$NON-NLS-1$
-
-
-	// private String title;
-	private String [] implementationStyles;
-	private String implementationKind;
-	private String homePageId;
-	private String standbyPageId;
-
-	// The Head contributions to this preentation (inherited from child
-	// implementation).
-	private IntroHead head;
-
-	private AbstractIntroPartImplementation implementation;
-
-	private IntroLaunchBarElement launchBar;
-
-	// CustomizableIntroPart and memento instances. Passed to the Implementation
-	// classes.
-	private IIntroPart introPart;
-	private IMemento memento;
-
-	/**
-	 * 
-	 */
-	IntroPartPresentation(IConfigurationElement element) {
-		super(element);
-		homePageId = element.getAttribute(ATT_HOME_PAGE_ID);
-		standbyPageId = element.getAttribute(ATT_STANDBY_PAGE_ID);
-	}
-
-	private void updatePresentationAttributes(IConfigurationElement element) {
-		if (element != null) {
-			// reset (ie: inherit) type and style to be implementation type and
-			// style. Then handle HEAD content for the case of HTML Browser.
-			String value = element.getAttribute(ATT_STYLE);
-			if (value!=null) {
-				IntroModelRoot root = getModelRoot();
-				ArrayList list = new ArrayList();
-				StringTokenizer stok = new StringTokenizer(value, ","); //$NON-NLS-1$
-				for (;stok.hasMoreTokens();) {
-					String oneStyle = stok.nextToken().trim();
-					if (root!=null)
-						oneStyle = root.resolveVariables(oneStyle);
-					list.add(oneStyle);
-				}
-				implementationStyles = (String[])list.toArray(new String[list.size()]);
-			}
-			implementationKind = element.getAttribute(ATT_KIND);
-			// get Head contribution, regardless of implementation class.
-			// Implementation class is created lazily by UI.
-			head = getHead(element);
-			// Resolve.
-			if (implementationStyles!=null) {
-				for (int i=0; i<implementationStyles.length; i++) {
-					implementationStyles[i] = ModelUtil.resolveURL(implementationStyles[i], element);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns the styles associated with the Presentation. May be null if no shared presentation
-	 * style is needed, or in the case of static HTML OOBE.
-	 * 
-	 * @return Returns the array of styles or null if not defined.
-	 */
-	public String[] getImplementationStyles() {
-		return implementationStyles;
-	}
-
-	/**
-	 * Returns the type attribute of the implementation picked by this presentation.
-	 * 
-	 * @return Returns the implementationKind.
-	 */
-	public String getImplementationKind() {
-		return implementationKind;
-	}
-
-	public AbstractIntroPartImplementation getIntroPartImplementation() {
-		return implementation;
-	}
-
-
-	/**
-	 * Returns the model class for the Head element under an implementation. Returns null if there
-	 * is no head contribution.
-	 * 
-	 * @param element
-	 * @return
-	 */
-	private IntroHead getHead(IConfigurationElement element) {
-		try {
-			// There should only be one head element. Since elements where
-			// obtained by name, no point validating name.
-			IConfigurationElement[] headElements = element.getChildren(IntroHead.TAG_HEAD);
-			if (headElements.length == 0)
-				// no contributions. done.
-				return null;
-			IntroHead head = new IntroHead(headElements[0]);
-			head.setParent(this);
-			return head;
-		} catch (Exception e) {
-			Log.error(e.getMessage(), e);
-			return null;
-		}
-	}
-
-	/**
-	 * Returns the launch bar element if defined in this presentation, or <code>null</code>
-	 * otherwise.
-	 * 
-	 * @since 3.1
-	 * @return
-	 */
-
-	public IntroLaunchBarElement getLaunchBarElement() {
-		if (launchBar != null)
-			return launchBar;
-		IConfigurationElement[] children = getCfgElement().getChildren("launchBar"); //$NON-NLS-1$
-		if (children.length > 0) {
-			launchBar = new IntroLaunchBarElement(children[0]);
-			launchBar.setParent(this);
-			if (children.length > 1)
-				Log
-						.warning("Mutiple Intro Launch bars defined when only one is allowed. Only first one was loaded. "); //$NON-NLS-1$
-		}
-		return launchBar;
-	}
-
-	/**
-	 * @param introPart
-	 */
-	public void init(IIntroPart introPart, IMemento memento) {
-		// REVISIT: Called when the actual UI needs to be created. Incomplete
-		// separation of model / UI. Will change later. should not get here if
-		// there is no valid implementation.
-		this.introPart = introPart;
-		this.memento = memento;
-	}
-
-	/**
-	 * Creates the UI based on the implementation class.
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		Vector validImplementations = getValidImplementationElements(getCfgElement());
-		IConfigurationElement implementationElement = null;
-		for (int i = 0; i < validImplementations.size(); i++) {
-			implementationElement = (IConfigurationElement) validImplementations.elementAt(i);
-			// you want to pass primed model.
-			updatePresentationAttributes(implementationElement);
-			try {
-				implementation = createIntroPartImplementation(getImplementationKind());
-				if (implementation == null)
-					// failed to create executable.
-					continue;
-
-				implementation.init(introPart, memento);
-				implementation.createPartControl(parent);
-				IntroModelRoot model = getModelRoot();
-				if (model != null && model.getConfigurer() != null) {
-					IntroTheme theme = model.getTheme();
-					Map properties = theme!=null?theme.getProperties():null;
-					model.getConfigurer().init(introPart.getIntroSite(), properties);
-				}
-				if (Log.logInfo)
-					Log.info("Loading Intro UI implementation from: " //$NON-NLS-1$
-							+ ModelLoaderUtil.getLogString(implementationElement, "kind")); //$NON-NLS-1$
-				break;
-			} catch (SWTError e) {
-				Log.warning("Failed to create Intro UI implementation from: " //$NON-NLS-1$
-						+ ModelLoaderUtil.getLogString(implementationElement, "kind") + e.getMessage()); //$NON-NLS-1$
-				implementation = null;
-				implementationElement = null;
-			} catch (Exception e) {
-				Log.error("Failed to create Intro UI implementation from: " //$NON-NLS-1$
-						+ ModelLoaderUtil.getLogString(implementationElement, "kind"), e); //$NON-NLS-1$
-				implementation = null;
-				implementationElement = null;
-			}
-		}
-
-		if (implementationElement == null) {
-			// worst case scenario. We failed in all cases.
-			implementation = new FormIntroPartImplementation();
-			try {
-				implementation.init(introPart, memento);
-				// simply set the presentation kind since all other attributes
-				// will be null.
-				implementationKind = FORMS_IMPL_KIND;
-			} catch (Exception e) {
-				// should never be here.
-				Log.error(e.getMessage(), e);
-				return;
-			}
-			implementation.createPartControl(parent);
-			Log.warning("Loaded UI Forms implementation as a default UI implementation."); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Retruns a list of valid implementation elements of the config. Choose correct implementation
-	 * element based on os atrributes. Rules: get current OS, choose first contributrion, with os
-	 * that matches OS. Otherwise, choose first contribution with no os. Returns null if no valid
-	 * implementation is found.
-	 */
-	private Vector getValidImplementationElements(IConfigurationElement configElement) {
-
-		Vector validList = new Vector();
-
-		// There can be more than one implementation contribution. Add each
-		// valid one. First start with OS, then WS then no OS.
-		IConfigurationElement[] implementationElements = configElement.getChildren(TAG_IMPLEMENTATION);
-		// IConfigurationElement implementationElement = null;
-
-		if (implementationElements.length == 0)
-			// no contributions. done.
-			return validList;
-
-		String currentOS = Platform.getOS();
-		String currentWS = Platform.getWS();
-
-		// first loop through all to find one with matching OS, with or
-		// without WS.
-		for (int i = 0; i < implementationElements.length; i++) {
-			String os = implementationElements[i].getAttribute(ATT_OS);
-			if (os == null)
-				// no os, no match.
-				continue;
-
-			if (listValueHasValue(os, currentOS)) {
-				// found implementation with correct OS. Now try if WS
-				// matches.
-				String ws = implementationElements[i].getAttribute(ATT_WS);
-				if (ws == null) {
-					// good OS, and they do not care about WS. we have a
-					// match.
-					validList.add(implementationElements[i]);
-				} else {
-					// good OS, and we have WS.
-					if (listValueHasValue(ws, currentWS))
-						validList.add(implementationElements[i]);
-				}
-			}
-		}
-
-		// now loop through all to find one with no OS defined, but with a
-		// matching WS.
-		for (int i = 0; i < implementationElements.length; i++) {
-			String os = implementationElements[i].getAttribute(ATT_OS);
-			if (os == null) {
-				// found implementation with no OS. Now try if WS
-				// matches.
-				String ws = implementationElements[i].getAttribute(ATT_WS);
-				if (ws == null) {
-					// no OS, and they do not care about WS. we have a
-					// match.
-					validList.add(implementationElements[i]);
-				} else {
-					// no OS, and we have WS.
-					if (listValueHasValue(ws, currentWS))
-						validList.add(implementationElements[i]);
-				}
-
-			}
-		}
-
-		return validList;
-
-	}
-
-	/**
-	 * Util method that searches for the given value in a comma separated list of values. The list
-	 * is retrieved as an attribute value of OS, WS.
-	 * 
-	 */
-	private boolean listValueHasValue(String stringValue, String value) {
-		String[] attributeValues = stringValue.split(","); //$NON-NLS-1$
-		for (int i = 0; i < attributeValues.length; i++) {
-			if (attributeValues[i].equalsIgnoreCase(value))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Util method to load shared style from given kind.
-	 */
-	public String getSharedStyle(String kind) {
-		// There can be more than one implementation contribution.
-		IConfigurationElement[] implementationElements = getCfgElement().getChildren(TAG_IMPLEMENTATION);
-		// IConfigurationElement implementationElement = null;
-
-		if (implementationElements.length == 0)
-			// no implementations. done.
-			return null;
-
-		// loop through all to find one with matching kind.
-		for (int i = 0; i < implementationElements.length; i++) {
-			String aKind = implementationElements[i].getAttribute(ATT_KIND);
-			if (aKind.equals(kind)) {
-				// found implementation with matching kind.
-				String style = implementationElements[i].getAttribute(ATT_STYLE);
-				return ModelUtil.resolveURL(style, getCfgElement());
-			}
-		}
-		return null;
-	}
-
-
-	/**
-	 * Creates the actual implementation class. Returns null on failure.
-	 * 
-	 */
-	private AbstractIntroPartImplementation createIntroPartImplementation(String implementationType) {
-		// quick exits
-		if (implementationType == null)
-			return null;
-		if (!implementationType.equals(BROWSER_IMPL_KIND) && !implementationType.equals(FORMS_IMPL_KIND)
-				&& !implementationType.equals(TEXT_IMPL_KIND))
-			return null;
-
-		AbstractIntroPartImplementation implementation = null;
-		try {
-			if (implementationType.equals(BROWSER_IMPL_KIND))
-				implementation = new BrowserIntroPartImplementation();
-			else if (implementationType.equals(FORMS_IMPL_KIND))
-				implementation = new FormIntroPartImplementation();
-			else
-				implementation = new TextIntroPartImplementation();
-		} catch (Exception e) {
-			Log.error("Could not instantiate implementation " //$NON-NLS-1$
-					+ implementationType, e);
-		}
-		return implementation;
-	}
-
-	/**
-	 * Returns the the Customizable Intro Part. may return null if init() has not been called yet on
-	 * the presentation.
-	 * 
-	 * @return Returns the introPart.
-	 */
-	public IIntroPart getIntroPart() {
-		return introPart;
-	}
-
-	/**
-	 * Save the current state of the intro. Delegate to the implementation to do the work, as
-	 * different implementations may have different requirements.
-	 * 
-	 * @param memento
-	 *            the memento in which to store state information
-	 */
-	public void saveState(IMemento memento) {
-		if (implementation != null)
-			implementation.saveState(memento);
-	}
-
-
-	public void setFocus() {
-		if (implementation != null)
-			implementation.setFocus();
-	}
-
-	public void standbyStateChanged(boolean standby, boolean isStandbyPartNeeded) {
-		if (implementation != null)
-			implementation.standbyStateChanged(standby, isStandbyPartNeeded);
-	}
-
-	public void updateHistory(AbstractIntroPage page) {
-		if (implementation != null)
-			implementation.updateHistory(page);
-	}
-
-
-
-	public boolean navigateForward() {
-		if (implementation != null)
-			return implementation.navigateForward();
-		return false;
-	}
-
-	public boolean navigateBackward() {
-		if (implementation != null)
-			return implementation.navigateBackward();
-		return false;
-	}
-
-	public boolean navigateHome() {
-		if (implementation != null)
-			return implementation.navigateHome();
-		return false;
-	}
-
-
-	/**
-	 * Called when the IntroPart is disposed. Forwards the call to the implementation class.
-	 */
-	public void dispose() {
-		if (implementation != null)
-			implementation.dispose();
-	}
-
-	/**
-	 * 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) {
-		if (implementation != null)
-			implementation.registryChanged(event);
-	}
-
-	/**
-	 * @return Returns the homePageId.
-	 */
-	public String getHomePageId() {
-		return homePageId;
-	}
-
-	/**
-	 * @return Returns the homePageId.
-	 */
-	public String getStandbyPageId() {
-		return standbyPageId;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-	 */
-	public int getType() {
-		return AbstractIntroElement.PRESENTATION;
-	}
-
-	/**
-	 * @return Returns the HTML head conttent to be added to each dynamic html page in this
-	 *         presentation..
-	 */
-	public IntroHead getHead() {
-		return head;
-	}
-
-
-
-
-}
\ No newline at end of file
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
deleted file mode 100644
index 95240e9..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSearchParticipant.java
+++ /dev/null
@@ -1,216 +0,0 @@
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.io.StringReader;
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.help.search.ISearchIndex;
-import org.eclipse.help.search.LuceneSearchParticipant;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.model.loader.ExtensionPointManager;
-import org.eclipse.ui.intro.IIntroManager;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.config.IIntroURL;
-import org.eclipse.ui.intro.config.IntroURLFactory;
-import org.osgi.framework.Bundle;
-
-/**
- * An implementation of the Lucene search participant that adds Welcome content into the local help
- * index so that it can be searched.
- * 
- */
-
-public class IntroSearchParticipant extends LuceneSearchParticipant {
-
-	private IntroModelRoot model;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.search.LuceneSearchParticipant#getContributingPlugins()
-	 */
-	public Set getContributingPlugins() {
-		IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(
-				"org.eclipse.ui.intro.config"); //$NON-NLS-1$
-		HashSet set = new HashSet();
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (!element.getName().equals("config")) //$NON-NLS-1$
-				continue;
-			set.add(element.getContributor().getName());
-		}
-		elements = Platform.getExtensionRegistry().getConfigurationElementsFor(
-				"org.eclipse.ui.intro.configExtension"); //$NON-NLS-1$
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (!element.getName().equals("configExtension")) //$NON-NLS-1$
-				continue;
-			set.add(element.getContributor().getName());
-		}
-		return set;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.search.LuceneSearchParticipant#getAllDocuments(java.lang.String)
-	 */
-	public Set getAllDocuments(String locale) {
-		HashSet set = new HashSet();
-		IProduct product = Platform.getProduct();
-		if (product == null) {
-			return set;
-		}
-		String productId = product.getId();
-		IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(
-				"org.eclipse.ui.intro"); //$NON-NLS-1$
-		String targetIntroId = null;
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (element.getName().equals("introProductBinding")) { //$NON-NLS-1$
-				String pid = element.getAttribute("productId"); //$NON-NLS-1$
-				String iid = element.getAttribute("introId"); //$NON-NLS-1$
-				if (productId.equals(pid)) {
-					targetIntroId = iid;
-					break;
-				}
-			}
-		}
-		if (targetIntroId == null)
-			return set;
-		elements = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.ui.intro.config"); //$NON-NLS-1$
-		IConfigurationElement config = null;
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			if (element.getName().equals("config")) { //$NON-NLS-1$
-				String iid = element.getAttribute("introId"); //$NON-NLS-1$
-				if (targetIntroId.equals(iid)) {
-					config = element;
-					break;
-				}
-			}
-		}
-		if (config == null)
-			return set;
-		String configId = config.getAttribute("id"); //$NON-NLS-1$
-		ExtensionPointManager extensionPointManager = IntroPlugin.getDefault().getExtensionPointManager();
-		model = extensionPointManager.getModel(configId);
-		if (model != null && model.hasValidConfig())
-			loadFromModel(model, set, locale);
-		return set;
-	}
-
-	private void loadFromModel(IntroModelRoot model, HashSet set, String locale) {
-		IntroPage[] pages = model.getPages();
-		for (int i = 0; i < pages.length; i++) {
-			IntroPage page = pages[i];
-			Bundle bundle = page.getBundle();
-			String bundleId = bundle.getSymbolicName();
-			String content = page.getRawContent();
-			String pageId = page.getId();
-			String href;
-			if (content != null)
-				href = resolveVariables(bundleId, content, locale);
-			else
-				href = pageId;
-			set.add("/" + bundleId + "/" + href + "?id=" + pageId); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.search.LuceneSearchParticipant#addDocument(java.lang.String,
-	 *      java.lang.String, java.net.URL, java.lang.String, java.lang.String,
-	 *      org.apache.lucene.document.Document)
-	 */
-	public IStatus addDocument(ISearchIndex index, String pluginId, String name, URL url, String id,
-			Document doc) {
-		if (model == null)
-			return Status.CANCEL_STATUS;
-		IntroPage page = getPage(id);
-		if (page == null)
-			return Status.CANCEL_STATUS;
-		return addPage(index, pluginId, name, url, page, doc);
-	}
-
-	private IntroPage getPage(String id) {
-		IntroPage[] pages = model.getPages();
-		for (int i = 0; i < pages.length; i++) {
-			if (pages[i].getId().equals(id))
-				return pages[i];
-		}
-		return null;
-	}
-
-	private IStatus addPage(ISearchIndex index, String pluginId, String name, URL url, IntroPage page,
-			Document doc) {
-		AbstractIntroElement[] children = page.getChildren();
-		if (children.length > 0) {
-			StringBuffer buf = new StringBuffer();
-			addChildren(children, buf, doc);
-			doc.add(Field.Text("contents", new StringReader(buf.toString()))); //$NON-NLS-1$
-			doc.add(Field.Text("exact_contents", new StringReader(buf.toString()))); //$NON-NLS-1$
-			return Status.OK_STATUS;
-		}
-		// delegate to the help system
-		return index.addDocument(pluginId, name, url, page.getId(), doc);
-	}
-
-	private void addChildren(AbstractIntroElement[] children, StringBuffer buf, Document doc) {
-		for (int i = 0; i < children.length; i++) {
-			AbstractIntroElement child = children[i];
-			if (child instanceof AbstractTextElement) {
-				String text = ((AbstractTextElement) child).getText();
-				appendNewText(buf, text);
-			} else if (child instanceof IntroText) {
-				appendNewText(buf, ((IntroText) child).getText());
-				if (child instanceof IntroPageTitle)
-					addTitle(((IntroPageTitle) child).getTitle(), doc);
-			} else if (child instanceof AbstractIntroContainer) {
-				AbstractIntroContainer container = (AbstractIntroContainer) child;
-				AbstractIntroElement[] cc = container.getChildren();
-				addChildren(cc, buf, doc);
-			}
-		}
-	}
-
-	private void appendNewText(StringBuffer buf, String text) {
-		if (buf.length() > 0)
-			buf.append(" "); //$NON-NLS-1$
-		buf.append(text);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.search.LuceneSearchParticipant#clear()
-	 */
-	public void clear() {
-		model = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.help.search.LuceneSearchParticipant#open(java.lang.String)
-	 */
-	public boolean open(String id) {
-		IIntroManager introManager = PlatformUI.getWorkbench().getIntroManager();
-		IIntroPart intro = introManager
-				.showIntro(PlatformUI.getWorkbench().getActiveWorkbenchWindow(), false);
-		if (intro == null)
-			return false;
-		IIntroURL url = IntroURLFactory.createIntroURL("http://org.eclipse.ui.intro/showPage?id=" + id); //$NON-NLS-1$
-		return url.execute();
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 99554bf..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroSeparator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-/**
- * A horizontal ruler element.
- */
-public class IntroSeparator extends AbstractBaseIntroElement {
-    protected static final String TAG_HR = "hr"; //$NON-NLS-1$
-
-    IntroSeparator(Element element, Bundle bundle, String base) {
-        super(element, bundle);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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
deleted file mode 100644
index 5c00ef3..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroStandbyContentPart.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * An intro standby content part registration. This model class does not appear
- * as a child under any of the other model classes. It is returned by the
- * ExtensionPointManager when asked for registration parts.
- */
-public class IntroStandbyContentPart extends AbstractIntroIdElement {
-
-    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 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);
-    }
-
-
-    /**
-     * @return Returns the className.
-     */
-    public String getClassName() {
-        return className;
-    }
-
-    /**
-     * @return Returns the pluginId.
-     */
-    public String getPluginId() {
-        return pluginId;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        // 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
deleted file mode 100644
index df2df4c..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroText.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * An intro text element.
- */
-public class IntroText extends AbstractBaseIntroElement {
-
-    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;
-
-    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;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        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 Returns the isFormatted.
-     */
-    public boolean isFormatted() {
-        return isFormatted;
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroTheme.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroTheme.java
deleted file mode 100644
index d327806..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroTheme.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.ui.internal.intro.impl.model;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-
-public class IntroTheme extends AbstractIntroIdElement {
-	private static final String ATT_PATH = "path"; //$NON-NLS-1$
-	private String name;
-	private String path;
-	private Hashtable properties; 
-	
-	public IntroTheme(IConfigurationElement element) {
-		super(element);
-		name = element.getAttribute(name);
-		path = element.getAttribute(ATT_PATH);
-		path = BundleUtil.getResolvedResourceLocation(path, getBundle());
-		loadProperties(element);
-	}
-
-	public IntroTheme(Element element, Bundle bundle) {
-		super(element, bundle);
-	}
-
-	public IntroTheme(Element element, Bundle bundle, String base) {
-		super(element, bundle, base);
-	}
-	
-	public String getName() {
-		return name;
-	}
-	
-	public String getPath() {
-		return path;
-	}
-
-	public int getType() {
-		return THEME;
-	}
-	
-	public Map getProperties() {
-		return properties;
-	}
-	
-	private void loadProperties(IConfigurationElement element) {
-		IConfigurationElement [] children = element.getChildren("property"); //$NON-NLS-1$
-		if (children.length==0)
-			return;
-		properties = new Hashtable();
-		for (int i=0; i<children.length; i++) {
-			IConfigurationElement property = children[i];
-			String name = property.getAttribute("name"); //$NON-NLS-1$
-			String value = property.getAttribute("value"); //$NON-NLS-1$
-			if (name!=null && value!=null)
-				properties.put(name, value);
-		}
-	}
-}
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
deleted file mode 100644
index 4ccf0ae..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/IntroURLAction.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * An intro url command registration. This model class does not appear as a
- * child under any of the other model classes. It is returned by the
- * SharedConfigExtensionsManager when asked for commands.
- */
-public class IntroURLAction extends AbstractIntroElement {
-
-    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 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);
-    }
-
-    /**
-     * @return Returns the className.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @return Returns the pluginId.
-     */
-    public String getReplaceValue() {
-        return replaces;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.IntroElement#getType()
-     */
-    public int getType() {
-        // 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
deleted file mode 100644
index 1b080a1..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/BaseExtensionPointManager.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.loader;
-
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroIdElement;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-
-/**
- * Base class for handling Intro Extensions.
- */
-public class BaseExtensionPointManager {
-
-    // 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 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 id attribute in any intro element.
-    protected static final String ATT_ID = AbstractIntroIdElement.ATT_ID;
-
-
-    protected Hashtable introModels = new Hashtable();
-    protected IExtensionRegistry registry;
-    protected SharedConfigExtensionsManager sharedConfigExtensionsManager;
-
-
-    /*
-     * Prevent creation.
-     */
-    protected BaseExtensionPointManager() {
-        registry = Platform.getExtensionRegistry();
-    }
-
-    protected IntroModelRoot loadModel(String attributeName,
-            String attributeValue) {
-
-        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);
-
-        // 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$
-
-
-            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();
-
-            if (Log.logPerformance)
-                Util
-                    .logPerformanceTime(
-                        "loading Intro Model (quering registry/creating & resolving model) took: ", //$NON-NLS-1$
-                        start);
-
-            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) {
-
-        IConfigurationElement[] configElements = registry
-            .getConfigurationElementsFor(CONFIG);
-
-        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$
-
-        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) {
-
-        IConfigurationElement[] configExtensionElements = registry
-            .getConfigurationElementsFor(CONFIG_EXTENSION);
-
-        IConfigurationElement[] configExtensions = getConfigurationsFromAttribute(
-            configExtensionElements, attrributeName, attributeValue);
-
-        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);
-    }
-
-    /**
-     * Gets the given model from the cache.
-     * 
-     * @param modelId
-     */
-    protected IntroModelRoot getCachedModel(String configId) {
-        return (IntroModelRoot) 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) {
-
-        // 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) {
-
-        // find all configs with given attribute and attibute value.
-        Vector 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]);
-        }
-
-        // now return array.
-        IConfigurationElement[] filteredConfigElements = new IConfigurationElement[elements
-            .size()];
-        elements.copyInto(filteredConfigElements);
-
-        return filteredConfigElements;
-    }
-
-    /**
-     * 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 cached introModels.
-     */
-    public Hashtable getIntroModels() {
-        return introModels;
-    }
-}
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ContentProviderManager.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ContentProviderManager.java
deleted file mode 100644
index 4f0f757..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ContentProviderManager.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.loader;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroContentProvider;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.intro.config.IIntroContentProvider;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-
-/**
- * Class for handling/caching all the loaded Intro Content providers, from all loaded models. <br>
- * <br />
- * Design notes:
- * <ul>
- * <li>content providers are only ever created once. The init method is only called once, and so
- * this is why they need to be cached.</li>
- * <li>Content provider ids are used as keys in the hashtable, and their corresponding wrapper
- * classes as values.</li>
- * <li>In the case of HTML presentation, html is cached and so model is not consuloted when we need
- * to redisplay a page. When content provider asks for a reflow, the page is removed from HTML cache
- * and intro model is consulted again. This is when the calls happen to this class.</li>
- * <li>In the case of SWT presentation, same design. SWT pages are cached in a page book. When a
- * content provider needs to refresh a page, the page is removed from the page book and recreated
- * from intro model.</li>
- * </ul>
- */
-
-public class ContentProviderManager {
-
-	// singleton instance. Can be retrieved from here or from the Intro Plugin.
-	private static ContentProviderManager inst = new ContentProviderManager();
-
-
-	// Holds all created content providers, to prevent the need to recreate the
-	// class on each navigation. Key is the contentProvider id, value
-	// is a wrapper class to hold the actual Intro content provider instance and
-	// the intro page that holds it.
-	private Hashtable contentProviders = new Hashtable();
-
-
-	class ContentProviderWrapper {
-
-		IIntroContentProvider provider;
-		AbstractIntroPage parentPage;
-
-		ContentProviderWrapper(IIntroContentProvider provider, AbstractIntroPage parentPage) {
-			this.provider = provider;
-			this.parentPage = parentPage;
-		}
-
-		IIntroContentProvider getIIntroContentProvider() {
-			return provider;
-		}
-
-		AbstractIntroPage getParentPage() {
-			return parentPage;
-		}
-	}
-
-
-
-	/*
-	 * Prevent creation.
-	 */
-	protected ContentProviderManager() {
-		// do nothing
-	}
-
-	/**
-	 * @return Returns the inst.
-	 */
-	public static ContentProviderManager getInst() {
-		return inst;
-	}
-
-	/**
-	 * Retrieve an existing content provider class, or null if never created before.
-	 * 
-	 * @param provider
-	 * @return
-	 */
-	public IIntroContentProvider getContentProvider(IntroContentProvider provider) {
-		// safe to cast since we know the object class in table.
-		ContentProviderWrapper providerWrapper = (ContentProviderWrapper) contentProviders.get(provider
-				.getId());
-		if (providerWrapper == null)
-			// return null if provider has not been created yet.
-			return null;
-		IIntroContentProvider providerClass = providerWrapper.getIIntroContentProvider();
-		return providerClass;
-	}
-
-	/**
-	 * Tries to create an intro content provider class. may return null if creation fails. This will
-	 * be logged.
-	 * 
-	 * @param provider
-	 * @param site
-	 * @return
-	 */
-	public IIntroContentProvider createContentProvider(IntroContentProvider provider,
-			IIntroContentProviderSite site) {
-
-		// the content provider has never been created before. Create and cache
-		// one.
-		String pluginId = (provider.getPluginId() != null) ? provider.getPluginId() : provider.getBundle()
-				.getSymbolicName();
-		Object aClass = ModelLoaderUtil.createClassInstance(pluginId, provider.getClassName());
-		IIntroContentProvider providerClass = null;
-		if (aClass != null && aClass instanceof IIntroContentProvider) {
-			providerClass = ((IIntroContentProvider) aClass);
-			providerClass.init(site);
-			if (provider.getId() != null) {
-				// cache only when an id is defined.
-				ContentProviderWrapper wrapper = new ContentProviderWrapper(providerClass, provider
-						.getParentPage());
-				contentProviders.put(provider.getId(), wrapper);
-			}
-		} else
-			Log.warning("Failed to create Intro model content provider: " //$NON-NLS-1$
-					+ provider.getClassName());
-		return providerClass;
-	}
-
-
-	public AbstractIntroPage getContentProviderParentPage(IIntroContentProvider provider) {
-		Enumeration keys = contentProviders.keys();
-		while (keys.hasMoreElements()) {
-			String key = (String) keys.nextElement();
-			ContentProviderWrapper wrapper = (ContentProviderWrapper) contentProviders.get(key);
-			boolean foundKey = wrapper.getIIntroContentProvider().equals(provider) ? true : false;
-			if (foundKey) {
-				return wrapper.getParentPage();
-			}
-		}
-		return null;
-	}
-
-	public void clear() {
-		for (Iterator it = contentProviders.values().iterator(); it.hasNext();) {
-			ContentProviderWrapper providerWrapper = (ContentProviderWrapper) it.next();
-			IIntroContentProvider provider = providerWrapper.getIIntroContentProvider();
-			provider.dispose();
-		}
-		contentProviders.clear();
-		if (Log.logInfo)
-			Log.info("Cleared Intro model content providers"); //$NON-NLS-1$
-	}
-
-
-}
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
deleted file mode 100644
index 49e9a91..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ExtensionPointManager.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.loader;
-
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-
-/**
- * Manages all Intro plugin extension points. Currently, there are two:
- * org.eclipse.ui.intro.config & org.eclipse.ui.intro.configExtension. <br>
- * The model is lazily loaded on per need basis. This happens when a page is
- * asked for its children, or when the model is trying to resolve includes or
- * extensions. <br>
- */
-
-public class ExtensionPointManager extends BaseExtensionPointManager {
-
-    // 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 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();
-    }
-
-    /**
-     * @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);
-    }
-
-    /**
-     * @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;
-    }
-
-    /**
-     * @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();
-        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
deleted file mode 100644
index 3a80f41..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/IntroContentParser.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.loader;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.net.URL;
-import java.util.Hashtable;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-
-/**
- * 
- */
-public class IntroContentParser {
-
-    private static String TAG_INTRO_CONTENT = "introContent"; //$NON-NLS-1$
-    private static String TAG_HTML = "html"; //$NON-NLS-1$
-    protected static String XHTML1_TRANSITIONAL = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"; //$NON-NLS-1$
-    protected static String XHTML1_STRICT = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"; //$NON-NLS-1$
-    protected static String XHTML1_FRAMESET = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"; //$NON-NLS-1$
-
-
-    /*
-     * Load XHTML dtds from intro plugin location.
-     */
-    protected static Hashtable dtdMap = new Hashtable();
-
-    static {
-        String dtdBaseLocation = "dtds/xhtml1-20020801/"; //$NON-NLS-1$
-
-        String dtdLocation = dtdBaseLocation + "xhtml1-transitional.dtd"; //$NON-NLS-1$
-        URL dtdURL_T = BundleUtil.getResourceAsURL(dtdLocation,
-            IIntroConstants.PLUGIN_ID);
-        dtdMap.put(XHTML1_TRANSITIONAL, dtdURL_T);
-
-        dtdLocation = dtdBaseLocation + "xhtml1-strict.dtd"; //$NON-NLS-1$
-        URL dtdURL_S = BundleUtil.getResourceAsURL(dtdLocation,
-            IIntroConstants.PLUGIN_ID);
-        dtdMap.put(XHTML1_STRICT, dtdURL_S);
-
-        dtdLocation = dtdBaseLocation + "xhtml1-frameset.dtd"; //$NON-NLS-1$
-        URL dtdURL_F = BundleUtil.getResourceAsURL(dtdLocation,
-            IIntroConstants.PLUGIN_ID);
-        dtdMap.put(XHTML1_FRAMESET, dtdURL_F);
-    }
-
-
-
-    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$
-        }
-    }
-
-
-    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(new EntityResolver() {
-                public InputSource resolveEntity(String publicId,
-                        String systemId) throws SAXException, IOException {
-
-                    if (systemId.equals(XHTML1_TRANSITIONAL)
-                            || systemId.equals(XHTML1_STRICT)
-                            || systemId.equals(XHTML1_FRAMESET)) {
-                        // InputStream in = new StringBufferInputStream(
-                        // "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
-                        // return new InputSource(in);
-
-                        // be carefull here to support running as a jarred
-                        // plugin.
-                        URL dtdURL = (URL) dtdMap.get(systemId);
-                        InputSource in = new InputSource(dtdURL.openStream());
-                        in.setSystemId(dtdURL.toExternalForm());
-                        return in;
-                    }
-                    return null;
-                }
-            });
-
-            document = parser.parse(fileURI);
-            return document;
-
-        } catch (SAXParseException spe) {
-            StringBuffer buffer = new StringBuffer("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);
-
-        } 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 (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;
-    }
-
-    public boolean hasXHTMLContent() {
-        return hasXHTMLContent;
-    }
-
-
-    public static String convertToString(Document document) {
-        try {
-            // identity xslt.
-            TransformerFactory tFactory = TransformerFactory.newInstance();
-            Transformer transformer = tFactory.newTransformer();
-
-            DOMSource source = new DOMSource(document);
-
-            StringWriter stringBuffer = new StringWriter();
-            StreamResult result = new StreamResult(stringBuffer);
-
-            // 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 stringBuffer.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 (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;
-
-    }
-
-
-
-}
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
deleted file mode 100644
index a40898e..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/ModelLoaderUtil.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model.loader;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.intro.impl.model.AbstractBaseIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroIdElement;
-import org.eclipse.ui.internal.intro.impl.model.util.BundleUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Element;
-
-
-/**
- * Utilities class for help with loading the intro model from the Platform
- * runtime model and from the DOM of content files.
- */
-public class ModelLoaderUtil {
-
-    /**
-     * 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;
-    }
-
-    /**
-     * 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;
-
-        // 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;
-    }
-
-    /**
-     * 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) {
-        StringBuffer buffer = new StringBuffer(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();
-    }
-
-
-
-
-    /**
-     * Utility method to verify that there is only a single Element in the
-     * passed array of elements. If the list 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 and bundle passed is used for logging.
-     * 
-     * @param Elements
-     * 
-     * @return the first Element in the array, or null if the array is empty.
-     */
-    public static Element validateSingleContribution(Bundle bundle,
-            Element[] elements, String logAttribute) {
-
-        int arraySize = elements.length;
-        if (arraySize == 0)
-            // element list in empty. return null.
-            return null;
-
-        // we should only have one, so use first one.
-        Element element = elements[0];
-        if (Log.logInfo) {
-            String msg = "Loading " //$NON-NLS-1$
-                    + getLogString(bundle, element, logAttribute);
-            Log.info(msg);
-        }
-
-        if (arraySize != 1) {
-            // we have more than one, warn in the log.
-            for (int i = 1; i < arraySize; i++) {
-                if (Log.logWarning)
-                    // log each extra extension.
-                    Log.warning(getLogString(bundle, element, logAttribute)
-                            + " ignored due to multiple contributions"); //$NON-NLS-1$ 
-            }
-        }
-        return element;
-    }
-
-    /**
-     * 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) {
-        StringBuffer buffer = new StringBuffer(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();
-    }
-
-
-
-    /**
-     * 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.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;
-    }
-}
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
deleted file mode 100644
index 67ffe64..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/loader/SharedConfigExtensionsManager.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.loader;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.ui.internal.intro.impl.model.IntroStandbyContentPart;
-import org.eclipse.ui.internal.intro.impl.model.IntroURLAction;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-
-/**
- * Class for handling all shared Intro Config Extensions. These are StandbyPart
- * and Command contributions. Once defined these contributions are visible by
- * all intro configs.
- */
-
-public class SharedConfigExtensionsManager {
-
-    private IExtensionRegistry registry;
-
-    // Holds all standbyPart extensions. Key is id, value is
-    // IntroStandbyContentPart.
-    private Hashtable standbyParts = new Hashtable();
-
-    // Holds all command extensions. Key is name, value is IntroURLAction.
-    private Hashtable commands = new Hashtable();
-
-    /*
-     * 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.
-
-        long start = 0;
-        // if we need to log performance, capture time.
-        if (Log.logPerformance)
-            start = System.currentTimeMillis();
-
-        IConfigurationElement[] configExtensionElements = registry
-            .getConfigurationElementsFor(BaseExtensionPointManager.CONFIG_EXTENSION);
-
-        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);
-        }
-    }
-
-
-    /**
-     * 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 (IntroStandbyContentPart) standbyParts.get(partId);
-    }
-
-    /**
-     * @return Returns the command from its name.
-     */
-    public IntroURLAction getCommand(String commandName) {
-        if (commandName == null)
-            return null;
-        return (IntroURLAction) 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
deleted file mode 100644
index c23731a..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURL.java
+++ /dev/null
@@ -1,668 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.url;
-
-import java.net.URLDecoder;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Properties;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.internal.RectangleAnimation;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroLaunchBarElement;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation;
-import org.eclipse.ui.internal.intro.impl.model.IntroTheme;
-import org.eclipse.ui.internal.intro.impl.model.IntroURLAction;
-import org.eclipse.ui.internal.intro.impl.model.loader.ExtensionPointManager;
-import org.eclipse.ui.internal.intro.impl.model.loader.ModelLoaderUtil;
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.eclipse.ui.internal.intro.impl.parts.StandbyPart;
-import org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.presentations.IntroLaunchBar;
-import org.eclipse.ui.internal.intro.impl.util.DialogUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.StringUtil;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.IIntroSite;
-import org.eclipse.ui.intro.config.CustomizableIntroPart;
-import org.eclipse.ui.intro.config.IIntroAction;
-import org.eclipse.ui.intro.config.IIntroURL;
-import org.eclipse.ui.intro.config.IntroURLFactory;
-
-/**
- * An intro url. An intro URL is a valid http url, with org.eclipse.ui.intro as
- * a host. This class holds all logic to execute Intro URL commands, ie: an
- * Intro URL knows how to execute itself.
- */
-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$
-
-    /**
-     * 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$
-
-
-    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$
-
-
-
-    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;
-    }
-
-    /**
-     * Executes whatever valid Intro action is embedded in this Intro URL.
-     * 
-     */
-    public boolean execute() {
-        final boolean[] result = new boolean[1];
-        Display display = Display.getCurrent();
-        
-        BusyIndicator.showWhile(display, new Runnable() {
-
-            public void run() {
-                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()).toString(); //$NON-NLS-1$
-            Log.info(msg);
-        }
-
-        // 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(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_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));
-
-        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(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_MESSAGE))
-            return showMessage(getParameter(KEY_MESSAGE));
-
-        else if (action.equals(NAVIGATE))
-            return navigate(getParameter(KEY_DIRECTION));
-
-        else if (action.equals(SWITCH_TO_LAUNCH_BAR))
-            return switchToLaunchBar();
-
-        else
-            return handleCustomAction();
-    }
-
-
-    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 = (StandbyPart) introPart
-            .getAdapter(StandbyPart.class);
-
-        boolean success = standbyPart.showContentPart(partId, input);
-        if (success)
-            return true;
-
-        // we do not have a valid partId or we failed to instantiate part or
-        // create the part content, empty part will be shown. Signal failure.
-        return false;
-    }
-
-    /**
-     * Set the Workbench Intro Part state. Forces the Intro view to open, if not
-     * yet created.
-     * 
-     * @param state
-     */
-    private boolean setStandbyState(String state) {
-        if (state == null)
-            return false;
-        boolean standby = state.equals(VALUE_TRUE) ? true : false;
-        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) {
-
-        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) {
-
-                    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;
-        }
-    }
-    
-    /**
-	 * Executes a serialized <code>ParameterizedCommand</code>. Uses
-	 * {@link ICommandService#deserialize(String)} to convert the <code>command</code> argument
-	 * into the parameterized command.
-	 */
-	private boolean executeCommand(String command, String standbyState) {
-		ICommandService commandService = getCommandService();
-		if (commandService == null) {
-			Log.error("Could not get ICommandService while trying to execute: " + command, null); //$NON-NLS-1$
-			return false;
-		}
-
-		try {
-			ParameterizedCommand pCommand = commandService.deserialize(command);
-			pCommand.executeWithChecks(null, null);
-
-			// Executed command successfully. Now set intro standby if needed.
-			if (standbyState == null)
-				return true;
-			return setStandbyState(standbyState);
-		} catch (CommandException ex) {
-			Log.error("Could not execute command: " + command, ex); //$NON-NLS-1$
-			return false;
-		}
-	}
-    
-    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;
-		    }
-		}
-		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 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);
-    }
-
-
-    /**
-     * 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();
-
-        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;
-    }
-
-    /**
-     * 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 triger 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);
-
-        // 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;
-    }
-
-    /**
-     * 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) {
-        // get all cached models.
-        Hashtable models = ExtensionPointManager.getInst().getIntroModels();
-        Enumeration values = models.elements();
-        while (values.hasMoreElements()) {
-            IntroModelRoot model = (IntroModelRoot) values.nextElement();
-            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;
-
-        IntroPartPresentation presentation = (IntroPartPresentation) 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;
-    }
-
-
-    /**
-     * @return Returns the action imbedded in this URL.
-     */
-    public String getAction() {
-        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
-     */
-    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);
-
-        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 URLDecoder.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;
-        }
-
-        // custom command. execute it.
-        StringBuffer url = new StringBuffer();
-        url.append("http://org.eclipse.ui.intro/"); //$NON-NLS-1$
-        url.append(command.getReplaceValue().trim());
-        if (command.getReplaceValue().indexOf("?") == -1) //$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() {
-        StringBuffer query = new StringBuffer();
-        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;
-
-        CustomizableIntroPart cpart = (CustomizableIntroPart) intro;
-        IntroModelRoot modelRoot = IntroPlugin.getDefault().getIntroModelRoot();
-        String pageId = modelRoot.getCurrentPageId();
-        IntroTheme theme = modelRoot.getTheme();
-        Rectangle bounds = cpart.getControl().getBounds();
-        Rectangle startBounds = Geometry.toDisplay(cpart.getControl()
-            .getParent(), bounds);
-        closeIntro();
-
-        IWorkbenchWindow window = PlatformUI.getWorkbench()
-            .getActiveWorkbenchWindow();
-        IntroLaunchBarElement launchBarElement = modelRoot.getPresentation()
-            .getLaunchBarElement();
-        if (launchBarElement==null)
-        	return true;
-        IntroLaunchBar launchBar = new IntroLaunchBar(launchBarElement
-            .getOrientation(), pageId, launchBarElement, theme);
-        launchBar.createInActiveWindow();
-        Rectangle endBounds = Geometry.toDisplay(launchBar.getControl()
-            .getParent(), launchBar.getControl().getBounds());
-
-        RectangleAnimation animation = new RectangleAnimation(
-            window.getShell(), startBounds, endBounds);
-        animation.schedule();
-        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
deleted file mode 100644
index 93808a3..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/IntroURLParser.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model.url;
-
-import java.io.ByteArrayOutputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Properties;
-
-import org.eclipse.ui.internal.intro.impl.util.Log;
-
-/**
- * A parser that knows how to parser OOBE action URLs. If URL is a valid intro
- * url, it will create an instance of the IntroURL class.
- */
-public class IntroURLParser {
-
-    // private String url_string = null;
-    private boolean hasProtocol = false;
-    private boolean isIntroUrl = false;
-
-    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);
-    }
-
-    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;
-        }
-
-        // not an Intro URL. do nothing.
-        return;
-    }
-
-
-    /**
-     * @return Returns the hasProtocol.
-     */
-    public boolean hasProtocol() {
-        return hasProtocol;
-    }
-
-    /**
-     * @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 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;
-
-        if (url.getHost().equalsIgnoreCase(IntroURL.INTRO_HOST_ID))
-            return true;
-
-        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);
-
-            // 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 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;
-            }
-            
-            String key = urlDecode(keyValuePair[0]);
-			if (key == null) {
-				Log.warning("Failed to URL decode key: " + keyValuePair[0]); //$NON-NLS-1$
-				continue;
-			}
-
-			String value = urlDecode(keyValuePair[1]);
-			if (value == null) {
-				Log.warning("Failed to URL decode value: " + keyValuePair[1]); //$NON-NLS-1$
-				continue;
-			}
-            
-            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) {
-		int len = encodedURL.length();
-		ByteArrayOutputStream os = new ByteArrayOutputStream(len);
-
-		try {
-			for (int i = 0; i < len;) {
-				switch (encodedURL.charAt(i)) {
-				case '%':
-					if (len >= i + 3) {
-						os.write(Integer.parseInt(encodedURL.substring(i + 1, i + 3), 16));
-					}
-					i += 3;
-					break;
-				case '+': // exception from standard
-					os.write(' ');
-					i++;
-					break;
-				default:
-					os.write(encodedURL.charAt(i++));
-					break;
-				}
-			}
-			return new String(os.toByteArray(), "UTF8"); //$NON-NLS-1$
-		} catch (UnsupportedEncodingException ex) {
-			return null;
-		}
-	}
-
-}
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
deleted file mode 100644
index 65fae08..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/url/ShowHelpURLHandler.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.ui.internal.intro.impl.model.url;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation;
-import org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-
-public class ShowHelpURLHandler {
-    private IntroURL introURL = null;
-
-    ShowHelpURLHandler(IntroURL url) {
-        this.introURL = url;
-    }
-
-
-
-    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;
-
-        IntroPartPresentation presentation = IntroPlugin.getDefault()
-            .getIntroModelRoot().getPresentation();
-        String presentationStyle = presentation.getImplementationKind();
-
-        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();
-
-            if (embedTarget == null)
-                return impl.getBrowser().setUrl(href);
-
-            // 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;
-    }
-
-
-    /*
-     * 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$
-
-        // 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);
-        }
-
-        // 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;
-
-        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
deleted file mode 100644
index 6a0f70a..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/BundleUtil.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.util;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.StringUtil;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Constants;
-
-/**
- * Bundle convenience methods.
- */
-public class BundleUtil {
-
-    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) {
-
-            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: ", String.valueOf(bundle.getState())).toString(); //$NON-NLS-1$
-                Log.error(msg, null);
-            }
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Retrieves the given key from the bundle header.
-     * 
-     * @param bundle
-     * @param key
-     * @return
-     */
-    public static String getBundleHeader(Bundle bundle, String key) {
-        return (String) bundle.getHeaders().get(key);
-    }
-
-
-    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);
-    }
-
-
-    /**
-     * 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);
-    }
-
-
-    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);
-
-        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;
-
-        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.
-                String msg = StringUtil.concat("Could not find resource: ", //$NON-NLS-1$
-                    resource, " in ", getBundleHeader( //$NON-NLS-1$
-                        bundle, Constants.BUNDLE_NAME)).toString();
-                Log.warning(msg);
-                return resource;
-            }
-            localLocation = FileLocator.toFileURL(localLocation);
-            return localLocation.toExternalForm();
-        } catch (Exception e) {
-            String msg = StringUtil.concat("Failed to load resource: ", //$NON-NLS-1$
-                resource, " from ", getBundleHeader(bundle, //$NON-NLS-1$
-                    Constants.BUNDLE_NAME)).toString();
-            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 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();
-        } 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);
-    }
-
-}
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
deleted file mode 100644
index 58d597a..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/FindSupport.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.model.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Map;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-// This class provides implements the find* methods exposed on Platform.
-// It does the lookup in bundles and fragments and does the variable replacement.
-public class FindSupport {
-	private static String[] NL_JAR_VARIANTS = buildNLVariants(Platform.getNL());
-
-	private static String[] buildNLVariants(String nl) {
-		ArrayList result = new ArrayList();
-		IPath base = new Path("nl"); //$NON-NLS-1$
-
-		IPath path = new Path(nl.replace('_', '/'));
-		while (path.segmentCount() > 0) {
-			result.add(base.append(path).toString());
-			// for backwards compatibility only, don't replace the slashes
-			if (path.segmentCount() > 1)
-				result.add(base.append(path.toString().replace('/', '_')).toString());
-			path = path.removeLastSegments(1);
-		}
-
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	/**
-	 * See doc on @link Platform#find(Bundle, IPath) Platform#find(Bundle, IPath) 
-	 */
-	public static URL find(Bundle bundle, IPath path) {
-		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
-     * @param override
-     * @returnan 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, Map override) {
-        ArrayList results = new ArrayList(1);
-        find(bundle, path, override, results);
-        return (URL[]) 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 override) {
-        return find(b, path, override, null);
-    }
- 
-    private static URL find(Bundle b, IPath path, Map override, ArrayList multiple) {
-		if (path == null)
-			return null;
-
-		URL result = null;
-
-		// Check for the empty or root case first
-		if (path.isEmpty() || path.isRoot()) {
-			// Watch for the root case.  It will produce a new
-			// URL which is only the root directory (and not the
-			// root of this plugin).	
-			result = findInPlugin(b, Path.EMPTY, multiple);
-			if (result == null || multiple != null)
-				result = findInFragments(b, Path.EMPTY, multiple);
-            return result;
-		}
-
-		// Now check for paths without variable substitution
-		String first = path.segment(0);
-		if (first.charAt(0) != '$') {
-			result = findInPlugin(b, path, multiple);
-			if (result == null || multiple != null)
-				result = findInFragments(b, path, multiple);
-            return result;
-		}
-
-		// Worry about variable substitution
-		IPath rest = path.removeFirstSegments(1);
-		if (first.equalsIgnoreCase("$nl$")) //$NON-NLS-1$
-			return findNL(b, rest, override, multiple);
-		if (first.equalsIgnoreCase("$os$")) //$NON-NLS-1$
-			return findOS(b, rest, override, multiple);
-		if (first.equalsIgnoreCase("$ws$")) //$NON-NLS-1$
-			return findWS(b, rest, override, multiple);
-		if (first.equalsIgnoreCase("$files$")) //$NON-NLS-1$
-			return null;
-
-		return null;
-	}
-
-	private static URL findOS(Bundle b, IPath path, Map override, ArrayList multiple) {
-		String os = null;
-		if (override != null)
-			try {
-				// check for override
-				os = (String) override.get("$os$"); //$NON-NLS-1$
-			} catch (ClassCastException e) {
-				// just in case
-			}
-		if (os == null)
-			// use default
-			os = Platform.getOS();
-		if (os.length() == 0)
-			return null;
-
-		// Now do the same for osarch
-		String osArch = null;
-		if (override != null)
-			try {
-				// check for override
-				osArch = (String) override.get("$arch$"); //$NON-NLS-1$
-			} catch (ClassCastException e) {
-				// just in case
-			}
-		if (osArch == null)
-			// use default
-			osArch = Platform.getOSArch();
-		if (osArch.length() == 0)
-			return null;
-
-		URL result = null;
-		IPath base = new Path("os").append(os).append(osArch); //$NON-NLS-1$
-		// Keep doing this until all you have left is "os" as a path
-		while (base.segmentCount() != 1) {
-			IPath filePath = base.append(path);
-			result = findInPlugin(b, filePath, multiple);
-			if (result != null && multiple == null)
-				return result;
-			result = findInFragments(b, filePath, multiple);
-			if (result != null && multiple == null)
-				return result;
-			base = base.removeLastSegments(1);
-		}
-		// If we get to this point, we haven't found it yet.
-		// Look in the plugin and fragment root directories
-		result = findInPlugin(b, path, multiple);
-		if (result != null && multiple == null)
-			return result;
-		return findInFragments(b, path, multiple);
-	}
-
-	private static URL findWS(Bundle b, IPath path, Map override, ArrayList multiple) {
-		String ws = null;
-		if (override != null)
-			try {
-				// check for override
-				ws = (String) override.get("$ws$"); //$NON-NLS-1$
-			} catch (ClassCastException e) {
-				// just in case
-			}
-		if (ws == null)
-			// use default
-			ws = Platform.getWS();
-		IPath filePath = new Path("ws").append(ws).append(path); //$NON-NLS-1$
-		// We know that there is only one segment to the ws path
-		// e.g. ws/win32	
-		URL result = findInPlugin(b, filePath, multiple);
-		if (result != null && multiple == null)
-			return result;
-		result = findInFragments(b, filePath, multiple);
-		if (result != null && multiple == null)
-			return result;
-		// If we get to this point, we haven't found it yet.
-		// Look in the plugin and fragment root directories
-		result = findInPlugin(b, path, multiple);
-		if (result != null && multiple == null)
-			return result;
-		return findInFragments(b, path, multiple);
-	}
-
-	private static URL findNL(Bundle b, IPath path, Map override, ArrayList multiple) {
-		String nl = null;
-		String[] nlVariants = null;
-		if (override != null)
-			try {
-				// check for override
-				nl = (String) override.get("$nl$"); //$NON-NLS-1$
-			} catch (ClassCastException e) {
-				// just in case
-			}
-		nlVariants = nl == null ? NL_JAR_VARIANTS : buildNLVariants(nl);
-		if (nl != null && nl.length() == 0)
-			return null;
-
-		URL result = null;
-		for (int i = 0; i < nlVariants.length; i++) {
-			IPath filePath = new Path(nlVariants[i]).append(path);
-			result = findInPlugin(b, filePath, multiple);
-			if (result != null && multiple == null)
-				return result;
-			result = findInFragments(b, filePath, multiple);
-			if (result != null && multiple == null)
-				return result;
-		}
-		// If we get to this point, we haven't found it yet.
-		// Look in the plugin and fragment root directories
-		result = findInPlugin(b, path, multiple);
-		if (result != null && multiple == null)
-			return result;
-		return findInFragments(b, path, multiple);
-	}
-
-	private static URL findInPlugin(Bundle b, IPath filePath, ArrayList multiple) {
-		URL result = b.getEntry(filePath.toString());
-        if (result != null && multiple != null)
-            multiple.add(result);
-        return result;
-	}
-
-	private static URL findInFragments(Bundle b, IPath filePath, ArrayList multiple) {
-		Bundle[] fragments = Platform.getFragments(b);
-		if (fragments == null)
-			return null;
-
-        multiple.ensureCapacity(fragments.length + 1);
-		URL fileURL = null;
-		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;
-            }
-			i++;
-		}
-		return fileURL;
-	}
-
-	/**
-	 * See doc on @link Platform#openStream(Bundle, IPath, boolean) Platform#Platform#openStream(Bundle, IPath, boolean) 
-	 */
-	public static final InputStream openStream(Bundle bundle, IPath file, boolean localized) throws IOException {
-		URL url = null;
-		if (!localized) {
-			url = findInPlugin(bundle, file, null);
-			if (url == null)
-				url = findInFragments(bundle, file, null);
-		} else {
-			url = FindSupport.find(bundle, file);
-		}
-		if (url != null)
-			return url.openStream();
-		throw new IOException("Cannot find " + file.toString()); //$NON-NLS-1$
-	}
-
-}
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
deleted file mode 100644
index 1b0a78f..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/util/ModelUtil.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.util;
-
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Properties;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroExtensionContent;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.StringUtil;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-/**
- * Util class for model. Has methods for resolving model attributes, and methods
- * for manipulating XHTML DOM.
- */
-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$
-
-
-
-    /*
-     * ********* 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, 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);
-    }
-
-
-
-    /**
-     * Util method to support jarring. Used to extract parent folder of intro
-     * xml content files. And to extract parent folder of invalidPage.xhtml
-     * 
-     * @param resource
-     */
-    public static void extractParentFolder(Bundle bundle, String contentFile) {
-        try {
-            long start = 0;
-            if (Log.logPerformance)
-                start = System.currentTimeMillis();
-            IPath parentFolder = ModelUtil.getParentFolderPath(contentFile);
-            URL[] parentFolderURLs = FindSupport.findEntries(bundle, parentFolder);
-            if (parentFolderURLs.length == 0) {
-                // should never be here.
-                Log.error("Could not find folder to extract: " + contentFile, //$NON-NLS-1$
-                    null);
-                return;
-            }
-            for (int i = 0; i < parentFolderURLs.length; i++)
-            	FileLocator.toFileURL(parentFolderURLs[i]);
-            if (Log.logPerformance) {
-                String msg = StringUtil.concat(
-                    "extracting content folder ", contentFile, " (", //$NON-NLS-1$ //$NON-NLS-2$
-                    bundle.getSymbolicName(), ")", " took: ").toString(); //$NON-NLS-1$ //$NON-NLS-2$
-                Util.logPerformanceTime(msg, start);
-            }
-
-        } 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();
-    }
-
-
-    /*
-     * 
-     * ******** 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 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 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);
-
-    }
-
-
-    // <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);
-
-    }
-
-    /**
-     * 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) {
-
-        // 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) {
-
-        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);
-        Vector 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;
-    }
-
-    /**
-     * 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 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;
-    }
-
-
-    /*
-     * 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;
-
-    }
-
-    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());
-    }
-
-    /**
-     * 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 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);
-        }
-    }
-
-    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;
-    }
-
-
-    /**
-     * 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
deleted file mode 100644
index 7b852d4..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelContentProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.viewer;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroContainer;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-
-public class IntroModelContentProvider implements ITreeContentProvider {
-
-    public Object[] getChildren(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 ((AbstractIntroContainer) introElement).getChildren();
-
-        return new Object[0];
-    }
-
-    public Object getParent(Object element) {
-        AbstractIntroElement introElement = null;
-        if (element instanceof AbstractIntroElement) {
-            // synch the resource first.
-            introElement = (AbstractIntroElement) element;
-            return introElement.getParent();
-        }
-        return null;
-    }
-
-
-    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;
-    }
-
-
-    public Object[] getElements(Object element) {
-        return getChildren(element);
-    }
-
-
-    public void dispose() {
-        // nothing to dispose
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IIntroContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-     *      java.lang.Object, java.lang.Object)
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        // 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
deleted file mode 100644
index 022bf64..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/model/viewer/IntroModelLabelProvider.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.intro.impl.model.viewer;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroContentProvider;
-import org.eclipse.ui.internal.intro.impl.model.IntroExtensionContent;
-import org.eclipse.ui.internal.intro.impl.model.IntroGroup;
-import org.eclipse.ui.internal.intro.impl.model.IntroHTML;
-import org.eclipse.ui.internal.intro.impl.model.IntroImage;
-import org.eclipse.ui.internal.intro.impl.model.IntroInclude;
-import org.eclipse.ui.internal.intro.impl.model.IntroLink;
-import org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation;
-import org.eclipse.ui.internal.intro.impl.model.IntroSeparator;
-import org.eclipse.ui.internal.intro.impl.model.IntroText;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-
-public class IntroModelLabelProvider extends LabelProvider {
-
-    // Images created in this ILabelProvider
-
-    static {
-        ImageUtil.registerImage(ImageUtil.INTRO_MODEL_CONTAINER,
-            "container_obj.gif"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.INTRO_MODEL_LEAF, "topic.gif"); //$NON-NLS-1$
-    }
-
-    public IntroModelLabelProvider() {
-        super();
-    }
-
-    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;
-
-        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;
-    }
-
-    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;
-
-        int elementType = introElement.getType();
-        switch (elementType) {
-        case AbstractIntroElement.GROUP:
-            label = "GROUP: " + ((IntroGroup) introElement).getLabel(); //$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).getTitle();
-            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;
-        default:
-            label = super.getText(element);
-            break;
-        }
-        return label;
-    }
-
-}
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
deleted file mode 100644
index 8545f22..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/EmptyStandbyContentPart.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.parts;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.swt.PageStyleManager;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.config.IStandbyContentPart;
-
-
-
-public class EmptyStandbyContentPart implements IStandbyContentPart {
-
-    private Composite contentComposite;
-    private Text contentText;
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.config.IStandbyContentPart#createPartControl(org.eclipse.swt.widgets.Composite,
-     *      org.eclipse.ui.forms.widgets.FormToolkit)
-     */
-    public void createPartControl(Composite parent, FormToolkit toolkit) {
-        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);
-
-        contentText = toolkit.createText(contentComposite, " ", SWT.MULTI //$NON-NLS-1$
-                | SWT.WRAP);
-        GridData textGd = new GridData(GridData.FILL_BOTH);
-        contentText.setLayoutData(textGd);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.config.IStandbyContentPart#getControl()
-     */
-    public Control getControl() {
-        return contentComposite;
-    }
-
-
-    public void setMessage(String message) {
-        if (message != null) {
-            contentText.setText(message);
-            contentComposite.layout();
-        }
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.config.IStandbyContentPart#init(org.eclipse.ui.intro.IIntroPart)
-     */
-    public void init(IIntroPart introPart, IMemento memento) {
-        // no-op
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.config.IStandbyContentPart#setInput(java.lang.Object)
-     */
-    public void setInput(Object input) {
-        if (input != null)
-            setMessage((String) input);
-        else
-            setMessage(""); //$NON-NLS-1$
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.config.IStandbyContentPart#setFocus()
-     */
-    public void setFocus() {
-        // no-op
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.config.IStandbyContentPart#dispose()
-     */
-    public void dispose() {
-        // no-op
-    }
-
-    public void saveState(IMemento memento) {
-        // 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
deleted file mode 100644
index d0b13ac..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/parts/StandbyPart.java
+++ /dev/null
@@ -1,474 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.parts;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.IntroStandbyContentPart;
-import org.eclipse.ui.internal.intro.impl.model.loader.ExtensionPointManager;
-import org.eclipse.ui.internal.intro.impl.model.loader.ModelLoaderUtil;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.StringUtil;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.config.CustomizableIntroPart;
-import org.eclipse.ui.intro.config.IStandbyContentPart;
-
-/**
- * Standby part is responsible for managing and creating IStandbycontent parts.
- * It knows how to create and cache content parts. It also handles saving and
- * restoring its own state. It does that by caching the id of the last content
- * part viewed and recreating that part on startup. It also manages the life
- * cycle of content parts by creating and initializing them at the right
- * moments. It also passes the momento at appropriate times to these content
- * parts to enable storing and retrieving of state by content parts. Content
- * parts are responsible for recreating there own state, including input, from
- * the passed momemnto. When the Return to Introduction link is clicked, the
- * Intro goes out of standby content mode, and the standby content parts are not
- * shown anymore until the user explicitly asks for a part again. This is
- * accomplished through a data flag on the CustomizableIntroPart control.
- * 
- */
-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;
-
-    // hastable has partIds as keys, and ControlKeys are values.
-    private Hashtable cachedContentParts = new Hashtable();
-
-    private ControlKey cachedControlKey;
-
-    class StandbyLayout extends Layout {
-
-        private int VGAP = 9;
-        private int VMARGIN = 5;
-        private int HMARGIN = 5;
-        private int SEPARATOR_HEIGHT = 1;
-
-        /*
-         * (non-Javadoc)
-         * 
-         * @see org.eclipse.swt.widgets.Layout#computeSize(org.eclipse.swt.widgets.Composite,
-         *      int, int, boolean)
-         */
-        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);
-        }
-
-        /*
-         * (non-Javadoc)
-         * 
-         * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite,
-         *      boolean)
-         */
-        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);
-        }
-    }
-
-    /**
-     * @param parent
-     */
-    public StandbyPart(IntroModelRoot model) {
-        this.model = model;
-    }
-
-
-    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);
-    }
-
-    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.gif"); //$NON-NLS-1$
-        returnLink = toolkit.createImageHyperlink(container, SWT.WRAP
-                | SWT.CENTER);
-        returnLink.setImage(ImageUtil.getImage(ImageUtil.BACK));
-        returnLink.addHyperlinkListener(new HyperlinkAdapter() {
-
-            public void linkActivated(HyperlinkEvent e) {
-                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);
-
-        boolean success = false;
-        if (memento != null) {
-            success = restoreState(memento);
-            if (!success)
-                // add empty standby content.
-                addAndShowEmptyPart(Messages.StandbyPart_canNotRestore);
-        }
-
-        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);
-    }
-
-    /**
-     * 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);
-
-        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$
-                    }
-                }
-
-                // 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;
-    }
-
-    /**
-     * 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) {
-
-            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;
-
-            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$
-                    .toString();
-                Log.error(message, null);
-                return null;
-            }
-        }
-
-        return controlKey.getControl();
-    }
-
-
-
-    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());
-        }
-    }
-
-    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;
-
-        String toolTip = Messages.StandbyPart_returnTo;
-        if (page.getTitle() != null)
-            toolTip += " " + page.getTitle(); //$NON-NLS-1$
-
-        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);
-    }
-
-    /**
-     * Calls dispose on all cached IStandbyContentParts.
-     * 
-     */
-    public void dispose() {
-        Enumeration values = cachedContentParts.elements();
-        while (values.hasMoreElements()) {
-            ControlKey controlKey = (ControlKey) values.nextElement();
-            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);
-        }
-    }
-
-
-    /*
-     * 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 (ControlKey) cachedContentParts.get(key);
-        return null;
-    }
-
-    /*
-     * Model class to wrap Control and IStandbyContentPart pairs, along with the
-     * representing ID..
-     */
-    class ControlKey {
-
-        Control c;
-        IStandbyContentPart part;
-        String 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 content part.
-         */
-        public IStandbyContentPart getContentPart() {
-            return part;
-        }
-
-        /**
-         * @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
deleted file mode 100644
index 00bbdc6..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartImplementation.java
+++ /dev/null
@@ -1,690 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.presentations;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.html.HTMLElement;
-import org.eclipse.ui.internal.intro.impl.html.IIntroHTMLConstants;
-import org.eclipse.ui.internal.intro.impl.html.IntroHTMLGenerator;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.model.History;
-import org.eclipse.ui.internal.intro.impl.model.IntroContentProvider;
-import org.eclipse.ui.internal.intro.impl.model.IntroHomePage;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.loader.ContentProviderManager;
-import org.eclipse.ui.internal.intro.impl.model.loader.IntroContentParser;
-import org.eclipse.ui.internal.intro.impl.model.util.ModelUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.eclipse.ui.intro.config.IIntroContentProvider;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-import org.eclipse.ui.intro.config.IIntroXHTMLContentProvider;
-import org.eclipse.ui.intro.config.IntroConfigurer;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class BrowserIntroPartImplementation extends
-        AbstractIntroPartImplementation implements IPropertyListener,
-        IIntroContentProviderSite {
- 
-
-    // the browser widget that will display the intro content 
-    protected Browser browser = null;
-
-    // the HTML generator used to generate dynamic content
-    private IntroHTMLGenerator htmlGenerator = null;
-
-    protected BrowserIntroPartLocationListener urlListener = new BrowserIntroPartLocationListener(
-        this);
-
-
-    protected void updateNavigationActionsState() {
-        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());
-    }
-
-
-    /**
-     * create the browser and set it's contents
-     */
-    public void createPartControl(Composite parent) {
-        long start = 0;
-        if (Log.logPerformance)
-            start = System.currentTimeMillis();
-
-        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 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() {
-
-            public void changed(ProgressEvent event) {
-                // no-op
-            }
-
-            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, new Listener() {
-
-            public void handleEvent(Event event) {
-                if (IntroPlugin.getDefault().isDebugging())
-                    event.doit = true;
-                else
-                    event.doit = false;
-            }
-        });
-
-        // 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$
-
-        addToolBarActions();
-
-        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() {
-        IntroHomePage 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.
-
-        // 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 generateDynamicContentForPage(AbstractIntroPage page) {
-        String content = null;
-
-        if (page.isXHTMLPage())
-            content = generateXHTMLPage(page, this);
-        else {
-            HTMLElement html = getHTMLGenerator().generateHTMLforPage(page,
-                this);
-            if (html != null) {
-            	IntroModelRoot root = getModel();
-            	if (root!=null) {
-            		Map props = root.getTheme()!=null?root.getTheme().getProperties():null;
-            		if (props!=null) {
-            			String value = (String)props.get("standardSupport"); //$NON-NLS-1$
-            			String doctype=null;
-            			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();
-            }
-        }
-
-
-        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();
-            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$
-        }
-
-
-        // 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);
-            }
-        }
-        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);
-
-        // 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;
-    }
-    
-    private String generateDoctype(boolean strict) {
-    	StringWriter swriter = new StringWriter();
-    	PrintWriter writer = new PrintWriter(swriter);
-    	if (strict) {
-    		writer.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\""); //$NON-NLS-1$
-    		writer.println("\t\t\t\"http://www.w3.org/TR/html4/strict.dtd\">"); //$NON-NLS-1$
-    	}
-    	else {
-    		writer.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\""); //$NON-NLS-1$
-    		writer.println("\t\t\t\"http://www.w3.org/TR/html4/loose.dtd\">"); //$NON-NLS-1$    		
-    	}
-    	writer.close();
-    	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();
-
-        // 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);
-
-            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;
-    }
-
-    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);
-        toolBarManager.update(true);
-        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.
-        IntroHomePage homePage = getModel().getHomePage();
-        IntroHomePage standbyPage = getModel().getStandbyPage();
-        if (standbyPage == null)
-            standbyPage = homePage;
-
-        if (standby) {
-            generateDynamicContentForPage(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.
-            if (getModel().getCurrentPage().equals(standbyPage.getId()))
-                getModel().setCurrentPageId(getModel().getHomePage().getId());
-            generateDynamicContentForPage(getModel().getCurrentPage());
-        }
-    }
-
-
-
-    /**
-     * Handle model property changes. Property listeners are only added in the
-     * dynamic case.
-     * 
-     * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object,
-     *      int)
-     */
-    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();
-        }
-    }
-
-    public void setFocus() {
-        browser.setFocus();
-    }
-
-    public void dispose() {
-        browser.dispose();
-    }
-
-    /**
-     * Regenerate the dynamic content for the current page
-     */
-    protected void updateContent() {
-        generateDynamicContentForPage(getModel().getCurrentPage());
-    }
-
-    /**
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#reflow()
-     */
-    public void reflow(IIntroContentProvider provider, boolean incremental) {
-        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.
-     */
-    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$
-
-            String currentURL = browser.getUrl();
-            if (currentURL != null) {
-                memento.putString(IIntroConstants.MEMENTO_CURRENT_PAGE_ATT,
-                    currentURL);
-            }
-        } else {
-            super.saveCurrentPage(memento);
-        }
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateBackward()
-     */
-    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();
-                    success = generateDynamicContentForPage(page);
-                    getModel().setCurrentPageId(page.getId(), false);
-                }
-            } else
-                success = false;
-            // update history only in dynamic case.
-            updateNavigationActionsState();
-        } else
-            // static HTML case. use browser real Back.
-            success = browser.back();
-
-        return success;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateForward()
-     */
-    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();
-                    success = generateDynamicContentForPage(page);
-                    getModel().setCurrentPageId(page.getId(), false);
-                }
-            } else
-                success = false;
-            // update history only in dynamic case.
-            updateNavigationActionsState();
-        } else
-            // static HTML case. use browser real Forward.
-            success = browser.forward();
-
-        return success;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateHome()
-     */
-    public boolean navigateHome() {
-        // Home is URL of root page in static case, and root page in
-        // dynamic.
-        IntroHomePage 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())
-                generateDynamicContentForPage(rootPage);
-
-            success = getModel().setCurrentPageId(rootPage.getId());
-            updateHistory(rootPage);
-
-        } else {
-            String location = rootPage.getUrl();
-            success = browser.setUrl(location);
-            updateHistory(location);
-        }
-
-        return success;
-    }
-
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#handleRegistryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
-     */
-    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);
-        }
-    }
-
-
-    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();
-        }
-
-        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();
-
-        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) {
-        IntroHomePage homePage = getModel().getHomePage();
-        IntroHomePage standbyPage = getModel().getStandbyPage();
-        if (standbyPage == null)
-            standbyPage = homePage;
-
-        if (standby)
-            browser.setUrl(standbyPage.getUrl());
-        else
-            browser.setUrl(homePage.getUrl());
-    }
-
-
-    public Browser getBrowser() {
-        return browser;
-    }
-
-
-
-
-}
\ No newline at end of file
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
deleted file mode 100644
index 2bae562..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/BrowserIntroPartLocationListener.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.presentations;
-
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.LocationListener;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURL;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-
-/**
- * A Location Listener that knows how to intercept OOBE action URLs. It also
- * knows how to update UI navigation hisutory.
- */
-public class BrowserIntroPartLocationListener implements LocationListener {
-
-    private BrowserIntroPartImplementation implementation;
-
-    /**
-     * Takes the implementation as an input.
-     */
-    public BrowserIntroPartLocationListener(
-            BrowserIntroPartImplementation implementation) {
-        this.implementation = implementation;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.swt.browser.LocationListener#changed(org.eclipse.swt.browser.LocationEvent)
-     */
-    public void changed(LocationEvent event) {
-        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;
-
-        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 (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);
-                }
-            }
-
-        }
-        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
-     */
-    public void changing(LocationEvent event) {
-        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();
-
-            // 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 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 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 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
deleted file mode 100644
index c47f6f4..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/FormIntroPartImplementation.java
+++ /dev/null
@@ -1,550 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.presentations;
-
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledPageBook;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.model.History;
-import org.eclipse.ui.internal.intro.impl.model.IntroHomePage;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.loader.ContentProviderManager;
-import org.eclipse.ui.internal.intro.impl.swt.PageForm;
-import org.eclipse.ui.internal.intro.impl.swt.PageFormWithNavigation;
-import org.eclipse.ui.internal.intro.impl.swt.PageStyleManager;
-import org.eclipse.ui.internal.intro.impl.swt.RootPageForm;
-import org.eclipse.ui.internal.intro.impl.swt.SharedStyleManager;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.eclipse.ui.intro.config.CustomizableIntroPart;
-import org.eclipse.ui.intro.config.IIntroContentProvider;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-import org.eclipse.ui.intro.config.IntroConfigurer;
-
-/**
- * This is a UI Forms based implementation of an Intro Part Presentation.
- */
-public class FormIntroPartImplementation extends
-        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;
-
-    // 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.gif"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.DEFAULT_SMALL_ROOT_LINK,
-            "overview_32.gif"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.DEFAULT_FORM_BG, "form_banner.gif"); //$NON-NLS-1$
-        ImageUtil.registerImage(ImageUtil.DEFAULT_LINK, "welcome_item.gif"); //$NON-NLS-1$
-    }
-
-
-    protected void updateNavigationActionsState() {
-        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 void createPartControl(Composite 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);
-
-        // 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);
-        }
-
-        mainPageBook = createMainPageBook(toolkit, mainForm);
-        // Add this presentation as a listener to model.
-        getModel().addPropertyListener(this);
-
-        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));
-
-        // 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);
-
-        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);
-
-        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;
-    }
-
-    public void 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)
-     */
-    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;
-
-            showPage(getModel().getCurrentPage());
-        }
-    }
-
-    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);
-        toolBarManager.update(true);
-        actionBars.updateActionBars();
-        updateNavigationActionsState();
-    }
-
-
-
-    protected void doStandbyStateChanged(boolean 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();
-        }
-
-        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();
-
-        showPage(pageToShow);
-    }
-
-    private boolean showPage(AbstractIntroPage pageToShow) {
-        boolean pageisCached = showCachedPage(pageToShow);
-
-        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;
-    }
-
-    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;
-    }
-
-    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)
-     */
-    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());
-        }
-    }
-    
-    public void setFocus() {
-        if (model.isDynamic()) {
-            if (mainPageBook.getCurrentPage() != null)
-                mainPageBook.getCurrentPage().setFocus();
-        }
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateBackward()
-     */
-    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);
-                }
-            }
-        }
-
-        updateNavigationActionsState();
-        return success;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateForward()
-     */
-    public boolean navigateForward() {
-        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;
-    }
-
-    public boolean navigateHome() {
-        IntroHomePage rootPage = getModel().getHomePage();
-        if (getModel().isDynamic()) {
-            CustomizableIntroPart currentIntroPart = (CustomizableIntroPart) IntroPlugin
-                .getIntro();
-            currentIntroPart.getControl().setRedraw(false);
-            boolean success = false;
-            success = getModel().setCurrentPageId(rootPage.getId());
-            updateHistory(rootPage);
-            currentIntroPart.getControl().setRedraw(true);
-            return success;
-        }
-        // static model. Nothing to do.
-        return false;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#handleRegistryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
-     */
-    protected void handleRegistryChanged(IRegistryChangeEvent event) {
-        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);
-
-        // 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();
-
-        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() {
-
-            public void linkActivated(HyperlinkEvent e) {
-                Hyperlink link = (Hyperlink) e.getSource();
-                Util.openBrowser((String) link.getHref());
-                return;
-            }
-        });
-
-        return link;
-    }
-
-    public void staticStandbyStateChanged(boolean standby) {
-        IntroHomePage homePage = getModel().getHomePage();
-        IntroHomePage 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());
-        }
-    }
-
-
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/IntroLaunchBar.java b/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/IntroLaunchBar.java
deleted file mode 100644
index 3ae7f7a..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/IntroLaunchBar.java
+++ /dev/null
@@ -1,615 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.ui.internal.intro.impl.presentations;
-
-import java.util.Map;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.RectangleAnimation;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.IntroLaunchBarElement;
-import org.eclipse.ui.internal.intro.impl.model.IntroLaunchBarShortcut;
-import org.eclipse.ui.internal.intro.impl.model.IntroTheme;
-import org.eclipse.ui.internal.intro.impl.swt.SharedStyleManager;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.layout.ITrimManager;
-import org.eclipse.ui.internal.layout.IWindowTrim;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.config.CustomizableIntroPart;
-import org.eclipse.ui.intro.config.IIntroURL;
-import org.eclipse.ui.intro.config.IntroURLFactory;
-
-/**
- * This class is responsible for creating the intro launch bar in the provided parent. It creates
- * 'restore' and 'close' actions, as well as actions for each shortcut element contributed in the
- * extension point.
- * 
- * @since 3.1
- */
-public class IntroLaunchBar implements IWindowTrim {
-
-	private Composite container;
-
-	protected ToolBarManager toolBarManager;
-
-	protected int orientation;
-
-	protected int location;
-
-	protected String lastPageId;
-
-	protected Action closeAction = null;
-
-	private IntroLaunchBarElement element;
-
-	protected boolean simple;
-
-	private String presentationId;
-	
-	private IntroTheme theme;
-
-	static final int[] TOP_LEFT_CORNER = new int[] { 0, 6, 1, 5, 1, 4, 4, 1, 5, 1, 6, 0 };
-
-	static final int[] TOP_RIGHT_CORNER = new int[] { -6, 0, -5, 1, -4, 1, -1, 4, -1, 5, 0, 6 };
-
-	static final int[] BOTTOM_LEFT_CORNER = new int[] { 0, -6, 1, -5, 1, -4, 4, -1, 5, -1, 6, 0 };
-
-	static final int[] BOTTOM_RIGHT_CORNER = new int[] { -6, 0, -5, -1, -4, -1, -1, -4, -1, -5, 0, -6 };
-
-	static final int[] SIMPLE_TOP_LEFT_CORNER = new int[] { 0, 2, 1, 1, 2, 0 };
-
-	static final int[] SIMPLE_TOP_RIGHT_CORNER = new int[] { -2, 0, -1, 1, 0, 2 };
-
-	static final int[] SIMPLE_BOTTOM_LEFT_CORNER = new int[] { 0, -2, 1, -1, 2, 0 };
-
-	static final int[] SIMPLE_BOTTOM_RIGHT_CORNER = new int[] { -2, 0, -1, -1, 0, -2 };
-
-	static final String S_STORED_LOCATION = "introLaunchBar.location"; //$NON-NLS-1$
-
-	private final static String LAUNCH_COMMAND_BASE = "http://org.eclipse.ui.intro/showPage?id="; //$NON-NLS-1$
-
-	private Color fg;
-
-	private Color bg;
-
-	class BarLayout extends Layout {
-
-		protected Point computeSize(Composite composite, int wHint, int hHint, boolean changed) {
-			boolean vertical = (orientation & SWT.VERTICAL) != 0;
-			int marginWidth = vertical | isPlain() ? 1 : simple ? 3 : 7;
-			int marginHeight = !vertical | isPlain() ? 1 : simple ? 3 : 7;
-			int width = 0;
-			int height = 0;
-
-			Point tsize = toolBarManager.getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
-
-			if (vertical) {
-				width = tsize.x;
-				height = tsize.y;
-			} else {
-				height = tsize.y;
-				width = tsize.x;
-			}
-			if (vertical) {
-				width += marginWidth;
-				height += marginHeight + marginHeight;
-			} else {
-				width += marginWidth + marginWidth;
-				height += marginHeight;
-			}
-			return new Point(width, height);
-		}
-
-		protected void layout(Composite composite, boolean changed) {
-			boolean vertical = (orientation & SWT.VERTICAL) != 0;
-			int marginWidth = vertical | isPlain() ? 1 : simple ? 4 : 7;
-			int marginHeight = !vertical | isPlain() ? 1 : simple ? 4 : 7;
-
-			Point tsize = toolBarManager.getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
-			Rectangle carea = composite.getClientArea();
-			int x = carea.x + (location == SWT.LEFT ? 0 : marginWidth);
-			int y = carea.y + marginHeight;
-
-			if (vertical) {
-				toolBarManager.getControl().setBounds(x, y, carea.width - marginWidth, tsize.y);
-			} else {
-				toolBarManager.getControl().setBounds(x, y, tsize.x, carea.height - marginHeight);
-			}
-		}
-	}
-
-	public IntroLaunchBar(int orientation, String lastPageId, IntroLaunchBarElement element, IntroTheme theme) {
-		this.orientation = orientation;
-		this.location = element.getLocation();
-		this.lastPageId = lastPageId;
-		this.element = element;
-		this.theme = theme;
-
-		simple = true;
-		presentationId = PlatformUI.getPreferenceStore().getString(
-				IWorkbenchPreferenceConstants.PRESENTATION_FACTORY_ID);
-		loadStoredLocation();
-	}
-
-	private void loadStoredLocation() {
-		IDialogSettings settings = IntroPlugin.getDefault().getDialogSettings();
-		try {
-			int storedLocation = settings.getInt(S_STORED_LOCATION);
-			if (storedLocation > 0)
-				setLocation(storedLocation);
-		} catch (NumberFormatException e) {
-			// The stored value either does not exist or
-			// is corrupted - just pick the default silently.
-		}
-	}
-
-	private void storeLocation() {
-		IDialogSettings settings = IntroPlugin.getDefault().getDialogSettings();
-		settings.put(S_STORED_LOCATION, this.location);
-	}
-
-	/**
-	 * This method now calls dock(location) and then adds itself to the window trim. This is to
-	 * support the re-ordering of IWindowTrim lifecycle related to dock().
-	 */
-	public void createInActiveWindow() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-
-		dock(location);
-
-		ITrimManager trimManager = getTrimManager();
-		trimManager.addTrim(location, this);
-		window.getShell().layout();
-	}
-
-	/**
-	 * Get the trim manager from the default workbench window. If the current
-	 * workbench window is -not- the <code>WorkbenchWindow</code> then return null.
-	 *  
-	 * @return The trim manager for the current workbench window
-	 */
-	private ITrimManager getTrimManager() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window instanceof WorkbenchWindow)
-			return ((WorkbenchWindow)window).getTrimManager();
-		
-		return null; // not using the default workbench window
-	}
-	
-	protected boolean isPlain() {
-		return !"org.eclipse.ui.presentations.default".equals(presentationId); //$NON-NLS-1$
-	}
-
-	public void createControl(Composite parent) {
-		container = new Composite(parent, SWT.NULL);
-		computeColors(parent.getDisplay());
-		container.setLayout(new BarLayout());
-		// boolean vertical = (orientation & SWT.VERTICAL) != 0;
-		toolBarManager = new ToolBarManager(SWT.FLAT | orientation);
-
-
-		fillToolBar();
-		// coolBar = new CoolBar(container, SWT.NULL);
-		// CoolItem coolItem = new CoolItem(coolBar, SWT.NULL);
-		// toolBarManager.createControl(coolBar);
-		toolBarManager.createControl(container);
-		ToolBar toolBar = toolBarManager.getControl();
-
-		// coolItem.setControl(toolBar);
-		// Point toolBarSize = toolBar.computeSize(SWT.DEFAULT,
-		// SWT.DEFAULT);
-		// Set the preffered size to the size of the toolbar plus trim
-		// Point preferredSize = coolItem.computeSize(toolBarSize.x,
-		// toolBarSize.y);
-		// coolItem.setPreferredSize(preferredSize);
-
-		if (bg != null) {
-			toolBar.setBackground(bg);
-			// coolBar.setBackground(bg);
-		}
-		container.addPaintListener(new PaintListener() {
-
-			public void paintControl(PaintEvent e) {
-				onPaint(e);
-			}
-		});
-		MenuManager manager = new MenuManager();
-		IMenuListener listener = new IMenuListener() {
-
-			public void menuAboutToShow(IMenuManager manager) {
-				contextMenuAboutToShow(manager);
-			}
-		};
-		manager.setRemoveAllWhenShown(true);
-		manager.addMenuListener(listener);
-		Menu contextMenu = manager.createContextMenu(toolBarManager.getControl());
-		toolBarManager.getControl().setMenu(contextMenu);
-		IntroPlugin.getDefault().setLaunchBar(this);
-	}
-
-	protected void startDragging(Point position, boolean usingKeyboard) {
-		Rectangle dragRect = DragUtil.getDisplayBounds(getControl());
-		startDrag(this, dragRect, position, usingKeyboard);
-	}
-
-	private void startDrag(Object toDrag, Rectangle dragRect, Point position, boolean usingKeyboard) {
-
-		DragUtil.performDrag(toDrag, dragRect, position, !usingKeyboard);
-	}
-
-	protected void onPaint(PaintEvent e) {
-		GC gc = e.gc;
-		Color color = fg;
-		if (color == null) {
-			color = e.display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-		}
-		gc.setForeground(color);
-		if (bg != null)
-			gc.setBackground(bg);
-		if (isPlain()) {
-			Point size = container.getSize();
-			gc.fillRectangle(0, 0, size.x, size.y);
-			gc.drawRectangle(0, 0, size.x - 1, size.y - 1);
-		} else {
-			switch (location) {
-			case SWT.LEFT:
-				paintLeft(gc);
-				break;
-			case SWT.RIGHT:
-				paintRight(gc);
-				break;
-			case SWT.BOTTOM:
-				paintBottom(gc);
-				break;
-			}
-		}
-	}
-
-	private void paintLeft(GC gc) {
-		int[] top = simple ? SIMPLE_TOP_RIGHT_CORNER : TOP_RIGHT_CORNER;
-		int[] bot = simple ? SIMPLE_BOTTOM_RIGHT_CORNER : BOTTOM_RIGHT_CORNER;
-		int[] shape = new int[top.length + bot.length + 4];
-		int index = 0;
-		Point size = container.getSize();
-		int x = size.x - 1;
-		int y = 0;
-		index = fillShape(shape, top, index, x, y, false);
-		y = size.y - 1;
-		index = fillShape(shape, bot, index, x, y, true);
-		shape[index++] = -1;
-		shape[index++] = size.y - 1;
-		shape[index++] = -1;
-		shape[index++] = 0;
-		gc.fillPolygon(shape);
-		gc.drawPolygon(shape);
-	}
-
-	private void paintBottom(GC gc) {
-		int[] left = simple ? SIMPLE_TOP_LEFT_CORNER : TOP_LEFT_CORNER;
-		int[] right = simple ? SIMPLE_TOP_RIGHT_CORNER : TOP_RIGHT_CORNER;
-		int[] shape = new int[left.length + right.length + 4];
-		int index = 0;
-		Point size = container.getSize();
-		int x = 0;
-		int y = 0;
-		index = fillShape(shape, left, index, x, y, false);
-		x = size.x - 1;
-		index = fillShape(shape, right, index, x, y, false);
-		shape[index++] = size.x - 1;
-		shape[index++] = size.y;
-		shape[index++] = 0;
-		shape[index++] = size.y;
-		gc.fillPolygon(shape);
-		gc.drawPolygon(shape);
-	}
-
-	private void paintRight(GC gc) {
-		int[] top = simple ? SIMPLE_TOP_LEFT_CORNER : TOP_LEFT_CORNER;
-		int[] bot = simple ? SIMPLE_BOTTOM_LEFT_CORNER : BOTTOM_LEFT_CORNER;
-		int[] shape = new int[top.length + bot.length + 4];
-		int index = 0;
-		Point size = container.getSize();
-		int x = 0;
-		int y = 0;
-		index = fillShape(shape, top, index, x, y, false);
-		shape[index++] = size.x;
-		shape[index++] = 0;
-		shape[index++] = size.x;
-		shape[index++] = size.y - 1;
-		x = 0;
-		y = size.y - 1;
-		fillShape(shape, bot, index, x, y, true);
-		gc.fillPolygon(shape);
-		gc.drawPolygon(shape);
-	}
-
-
-	private int fillShape(int[] shape, int[] points, int index, int x, int y, boolean reverse) {
-		int fill = points.length;
-		for (int i = 0; i < points.length / 2; i++) {
-			if (!reverse) {
-				shape[index++] = x + points[2 * i];
-				shape[index++] = y + points[2 * i + 1];
-			} else {
-				shape[index + fill - 2 - 2 * i] = x + points[2 * i];
-				shape[index + fill - 1 - 2 * i] = y + points[2 * i + 1];
-			}
-		}
-		if (reverse) {
-			index += fill;
-		}
-		return index;
-	}
-
-	private void computeColors(Display display) {
-		if (element.getBackground() != null) {
-			String value = resolveColor(element.getBackground());
-			if (value!=null) {
-				RGB r = SharedStyleManager.parseRGB(value);
-				if (r != null)
-					bg = new Color(display, r);
-			}
-		}
-		if (element.getForeground() != null) {
-			String value = resolveColor(element.getForeground());
-			if (value!=null) {
-				RGB r = SharedStyleManager.parseRGB(value);
-				if (r != null)
-					fg = new Color(display, r);
-			}
-		}
-	}
-	
-	private String resolveColor(String value) {
-		if (value.indexOf('$')== -1)
-			return value;
-		if (value.charAt(0)=='$' && value.charAt(value.length()-1)=='$' && theme!=null) {
-			Map properties = theme.getProperties();
-			if (properties!=null) {
-				String key = value.substring(1, value.length()-1);
-				return (String)properties.get(key);
-			}
-		}
-		return value;
-	}
-
-	public Control getControl() {
-		return container;
-	}
-
-	public void dispose() {
-		if (container != null) {
-			container.dispose();
-		}
-		if (toolBarManager != null) {
-			toolBarManager.dispose();
-			toolBarManager.removeAll();
-		}
-
-		toolBarManager = null;
-		container = null;
-
-		if (bg != null)
-			bg.dispose();
-		if (fg != null)
-			fg.dispose();
-	}
-
-	private void fillToolBar() {
-		Action action;
-
-		closeAction = new Action("close") { //$NON-NLS-1$
-
-			public void run() {
-				closeLaunchBar(false);
-			}
-		};
-		closeAction.setText(Messages.IntroLaunchBar_close_label);
-		closeAction.setToolTipText(Messages.IntroLaunchBar_close_tooltip);
-		/*
-		 * closeAction.setImageDescriptor(ImageUtil
-		 * .createImageDescriptor("full/elcl16/close_view.gif")); //$NON-NLS-1$
-		 */
-
-		action = new Action("restore") { //$NON-NLS-1$
-
-			public void run() {
-				openPage(lastPageId);
-			}
-		};
-		action.setToolTipText(Messages.IntroLaunchBar_restore_tooltip);
-		action.setImageDescriptor(ImageUtil.createImageDescriptor("full/etool16/restore_welcome.gif")); //$NON-NLS-1$
-		// toolBarManager.add(closeAction);
-		toolBarManager.add(action);
-		toolBarManager.add(new Separator());
-		if (element == null)
-			return;
-		IntroLaunchBarShortcut[] shortcuts = element.getShortcuts();
-		for (int i = 0; i < shortcuts.length; i++) {
-			IntroLaunchBarShortcut shortcut = shortcuts[i];
-			addShortcut(shortcut, toolBarManager);
-		}
-	}
-
-	private void addShortcut(final IntroLaunchBarShortcut shortcut, IToolBarManager toolBarManager) {
-		Action action = new Action(shortcut.getToolTip()) {
-
-			public void run() {
-				executeShortcut(shortcut.getURL());
-			}
-		};
-		action.setImageDescriptor(shortcut.getImageDescriptor());
-		action.setToolTipText(shortcut.getToolTip());
-		toolBarManager.add(action);
-	}
-
-	public void close() {
-		closeLaunchBar(false);
-	}
-
-	protected IIntroPart closeLaunchBar(boolean restore) {
-
-		IntroPlugin.getDefault().setLaunchBar(null);
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-
-		// if we've already been removed, this won't hurt us
-		getTrimManager().removeTrim(this);
-
-		IIntroPart intro = null;
-		if (restore) {
-			intro = PlatformUI.getWorkbench().getIntroManager().showIntro(window, false);
-			CustomizableIntroPart cpart = (CustomizableIntroPart) intro;
-			Rectangle startBounds = Geometry.toDisplay(getControl().getParent(), getControl().getBounds());
-			Rectangle endBounds = Geometry.toDisplay(cpart.getControl().getParent(), cpart.getControl()
-					.getBounds());
-
-			RectangleAnimation animation = new RectangleAnimation(window.getShell(), startBounds, endBounds);
-			animation.schedule();
-		}
-		dispose();
-		window.getShell().layout();
-		return intro;
-	}
-
-	protected void executeShortcut(String url) {
-		IIntroURL introURL = IntroURLFactory.createIntroURL(url);
-		if (introURL != null) {
-			IIntroPart intro = closeLaunchBar(true);
-			if (intro == null)
-				return;
-			introURL.execute();
-		}
-	}
-
-	protected void openPage(String id) {
-		IIntroPart intro = closeLaunchBar(true);
-		if (intro == null)
-			return;
-		StringBuffer url = new StringBuffer();
-		url.append(LAUNCH_COMMAND_BASE);
-		url.append(id);
-		IIntroURL introURL = IntroURLFactory.createIntroURL(url.toString());
-		if (introURL != null)
-			introURL.execute();
-	}
-
-	protected void contextMenuAboutToShow(IMenuManager manager) {
-		manager.add(closeAction);
-	}
-
-	public void dock(int side) {
-		dispose();
-		setLocation(side);
-		storeLocation();
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		createControl(window.getShell());
-	}
-
-	private void setLocation(int location) {
-		this.orientation = (location == SWT.LEFT || location == SWT.RIGHT) ? SWT.VERTICAL : SWT.HORIZONTAL;
-		this.location = location;
-	}
-
-	public int getValidSides() {
-		return SWT.LEFT | SWT.RIGHT | SWT.BOTTOM;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.IWindowTrim#getId()
-	 */
-	public String getId() {
-		return "org.eclipse.ui.internal.intro.impl.presentations.IntroLaunchBar"; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.IWindowTrim#getDisplayName()
-	 */
-	public String getDisplayName() {
-		return WorkbenchMessages.TrimCommon_IntroBar_TrimName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.IWindowTrim#isCloseable()
-	 */
-	public boolean isCloseable() {
-		return element.getClose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.IWindowTrim#handleClose()
-	 */
-	public void handleClose() {
-		closeLaunchBar(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#getWidthHint()
-	 */
-	public int getWidthHint() {
-		return SWT.DEFAULT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#getHeightHint()
-	 */
-	public int getHeightHint() {
-		return SWT.DEFAULT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#isResizeable()
-	 */
-	public boolean isResizeable() {
-		return false;
-	}
-
-}
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
deleted file mode 100644
index 7028b56..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/presentations/TextIntroPartImplementation.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.presentations;
-
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.util.IntroModelSerializer;
-import org.eclipse.ui.intro.config.IIntroContentProvider;
-
-/**
- * This is an Text based implementation of an Intro Part. It simply walks the
- * model and prints the content of pages. It is used for debugging.
- */
-public class TextIntroPartImplementation extends
-        AbstractIntroPartImplementation {
-
-
-    public void doStandbyStateChanged(boolean standby,
-            boolean isStandbyPartNeeded) {
-        // no-op
-    }
-
-    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();
-    }
-
-    protected void updateNavigationActionsState() {
-        // no-op
-    }
-
-
-    public void setFocus() {
-        // no-op
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateBackward()
-     */
-    public boolean navigateBackward() {
-        return false;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateForward()
-     */
-    public boolean navigateForward() {
-        return false;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#handleRegistryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
-     */
-    protected void handleRegistryChanged(IRegistryChangeEvent event) {
-        // no-op
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation#navigateHome()
-     */
-    public boolean navigateHome() {
-        return false;
-    }
-
-    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
deleted file mode 100644
index 228ad11..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageContentForm.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledPageBook;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-
-/**
- * A Composite that represents the content of an Intro Page. It is swapped in
- * the categories page book in the PageForm class.
- */
-public class PageContentForm implements IIntroConstants {
-
-    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;
-
-    // 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,
-            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;
-
-        // 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);
-        }
-
-        // 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);
-
-        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]);
-
-    }
-
-    /**
-     * 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;
-    }
-
-
-    public void setContentProviderSite(IIntroContentProviderSite site) {
-        this.site = site;
-    }
-
-
-
-}
\ No newline at end of file
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
deleted file mode 100644
index 31024f0..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageForm.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledPageBook;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-import org.eclipse.ui.internal.intro.impl.util.DialogUtil;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-
-/**
- * A Form that represents an Intro Page. It is swapped in the main page book in
- * the FormIntroPartImplementation class. It has a page book for swapping in
- * categories (content) of Intro Pages.
- */
-public class PageForm implements IIntroConstants {
-
-    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$
-
-    // site is cached to hand down to the PageWidgetFactory for creating the UI
-    // for content providers..
-    private IIntroContentProviderSite site;
-
-    protected HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
-
-        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$
-        }
-
-        public void linkEntered(HyperlinkEvent e) {
-        }
-
-        public void linkExited(HyperlinkEvent e) {
-        }
-    };
-
-    /**
-     * 
-     */
-    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) {
-
-        // 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);
-
-        // 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());
-    }
-
-
-    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) {
-
-        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));
-
-        // 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 boolean hasPage(String pageId) {
-        return categoryPageBook.hasPage(pageId);
-    }
-
-    public void removePage(String pageId) {
-        categoryPageBook.removePage(pageId);
-    }
-
-    public void setContentProviderSite(IIntroContentProviderSite site) {
-        this.site = site;
-    }
-
-
-}
\ No newline at end of file
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
deleted file mode 100644
index a3911b5..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageFormWithNavigation.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledPageBook;
-import org.eclipse.ui.internal.intro.impl.model.IntroLink;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-
-/**
- * Extends the UI of a PageForm and adds a navigation toolbar UI for the root
- * page links.
- */
-public class PageFormWithNavigation extends PageForm {
-
-    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$
-
-
-    /**
-     * 
-     */
-    public PageFormWithNavigation(FormToolkit toolkit,
-            IntroModelRoot modelRoot, Form parentForm) {
-        super(toolkit, modelRoot, parentForm);
-    }
-
-    /**
-     * Extend parent behavior and add navigation.
-     * 
-     * @param pageBook
-     */
-    public void createPartControl(ScrolledPageBook mainPageBook,
-            SharedStyleManager 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());
-
-        // Now create Navigation bar.
-        Composite navigationComposite = toolkit.createComposite(pageForm
-            .getBody());
-        navigationComposite.setLayoutData(new GridData(
-            GridData.HORIZONTAL_ALIGN_CENTER));
-        int numberOfLinks = model.getHomePage().getLinks().length;
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numberOfLinks;
-        navigationComposite.setLayout(layout);
-        createSmallNavigator(navigationComposite, model.getHomePage()
-            .getLinks());
-
-        pageForm.setText(rootPageStyleManager.getPageSubTitle());
-    }
-
-    /**
-     * Override parent id.
-     */
-    protected String getId() {
-        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(FormColors.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);
-
-        // 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;
-    }
-
-
-}
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
deleted file mode 100644
index 75b62bc..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageStyleManager.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.swt;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Properties;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.intro.impl.model.AbstractBaseIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroContainer;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroIdElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroGroup;
-import org.eclipse.ui.internal.intro.impl.model.IntroImage;
-import org.eclipse.ui.internal.intro.impl.model.IntroLink;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.IntroText;
-import org.eclipse.ui.internal.intro.impl.model.loader.ModelLoaderUtil;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.osgi.framework.Bundle;
-
-public class PageStyleManager extends SharedStyleManager {
-
-    private AbstractIntroPage page;
-    private Hashtable altStyleContexts = new Hashtable();
-    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();
-        
-        // 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.
-        Hashtable altStyles = page.getAltStyles();
-        if (altStyles != null) {
-            Enumeration styles = altStyles.keys();
-            while (styles.hasMoreElements()) {
-                String style = (String) styles.nextElement();
-                Properties inheritedProperties = new Properties();
-                Bundle bundle = (Bundle) altStyles.get(style);
-                StyleContext sc = new StyleContext();
-                sc.bundle = bundle;
-                load(inheritedProperties, style, sc);
-                altStyleContexts.put(inheritedProperties, sc);
-            }
-        }
-
-        // cache root
-        root = (IntroModelRoot) page.getParentPage().getParent();
-    }
-
-
-    // Override parent method to include alt-styles. Use implicit keys as well.
-    public String getProperty(String key) {
-        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;
-    }
-
-
-    /**
-     * 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.
-        Enumeration inheritedPageProperties = altStyleContexts.keys();
-        while (inheritedPageProperties.hasMoreElements()) {
-            Properties aProperties = (Properties) inheritedPageProperties
-                .nextElement();
-            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
-     */
-   
-    protected StyleContext getAssociatedContext(String key) {
-        Properties aProperties = findPropertyOwner(key);
-        StyleContext context = (StyleContext) 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$
-    }
-
-
-    public int getNumberOfColumns(IntroGroup group) {
-        return getIntProperty(group, ".layout.ncolumns", 0); //$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 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 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$
-    }
-
-    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(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;
-    }
-
-
-    /**
-     * 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);
-    }
-
-    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);
-    }
-
-    /**
-     * 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 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;
-    }
-
-    /**
-     * 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 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 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;
-    }
-    
-    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 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());
-
-        // pageKey can not become an implicit key.
-        String pageKey = createImageKey(page, null, qualifier);
-
-        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 createImageByIdKey(AbstractIntroPage page, IntroLink link,
-            String qualifier) {
-    	if (link==null || link.getId()==null)
-    		return ""; //$NON-NLS-1$
-        StringBuffer buff = new StringBuffer();
-        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();
-        String key = ModelLoaderUtil.createPathToElementKey(introImage, true)
-            .toString();
-        if (ImageUtil.hasImage(key))
-            return ImageUtil.getImage(key);
-        // key not already registered.
-        StyleContext acontext = getAssociatedContext(key);
-        if (acontext.inTheme)
-           	ImageUtil.registerImage(key, acontext.path, imageLocation);
-        else
-        	ImageUtil.registerImage(key, acontext.bundle, imageLocation);
-        Image image = ImageUtil.getImage(key);
-        return image;
-    }
-
-
-}
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
deleted file mode 100644
index ad9acde..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/PageWidgetFactory.java
+++ /dev/null
@@ -1,485 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.swt;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.AbstractBaseIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.IntroContentProvider;
-import org.eclipse.ui.internal.intro.impl.model.IntroGroup;
-import org.eclipse.ui.internal.intro.impl.model.IntroHTML;
-import org.eclipse.ui.internal.intro.impl.model.IntroImage;
-import org.eclipse.ui.internal.intro.impl.model.IntroLink;
-import org.eclipse.ui.internal.intro.impl.model.IntroSeparator;
-import org.eclipse.ui.internal.intro.impl.model.IntroText;
-import org.eclipse.ui.internal.intro.impl.model.loader.ContentProviderManager;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-import org.eclipse.ui.internal.intro.impl.util.DialogUtil;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.internal.intro.impl.util.StringUtil;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.eclipse.ui.intro.config.IIntroContentProvider;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-
-/**
- * Factory to create all UI forms widgets for the Forms intro presentation.
- */
-public class PageWidgetFactory {
-
-    protected HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
-
-        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$
-        }
-
-        public void linkEntered(HyperlinkEvent e) {
-        }
-
-        public void linkExited(HyperlinkEvent e) {
-        }
-    };
-
-
-    protected FormToolkit toolkit;
-    protected PageStyleManager styleManager;
-    protected IIntroContentProviderSite site;
-
-
-    /*
-     * 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 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);
-            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>").toString(); //$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;
-        	
-        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);
-        }
-
-        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();
-        Composite client = null;
-        Composite control = null;
-        if (description != null || label != null || expandable) {
-            int style = description != null ? Section.DESCRIPTION : SWT.NULL;
-            if (expandable)
-            	style |= Section.TWISTIE | Section.FOCUS_TITLE | Section.CLIENT_INDENT;
-            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.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);
-
-        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);
-
-            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;
-    }
-
-    /**
-     * 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, 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 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.
-        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);
-
-
-        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) {
-            // 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(FormColors.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);
-    }
-
-
-    /*
-     * 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) {
-        StringBuffer sbuf = new StringBuffer();
-        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) {
-        StringBuffer sbuf = new StringBuffer();
-        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;
-    }
-
-
-}
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
deleted file mode 100644
index 25e4263..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/RootPageForm.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledPageBook;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.AbstractBaseIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.IntroContentProvider;
-import org.eclipse.ui.internal.intro.impl.model.IntroGroup;
-import org.eclipse.ui.internal.intro.impl.model.IntroHomePage;
-import org.eclipse.ui.internal.intro.impl.model.IntroLink;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-import org.eclipse.ui.internal.intro.impl.util.DialogUtil;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.intro.impl.util.StringUtil;
-import org.eclipse.ui.internal.intro.impl.util.Util;
-import org.eclipse.ui.intro.config.IIntroContentProviderSite;
-
-/**
- * A Composite that represents the Root Page. It is swapped in the main page
- * book in the FormIntroPartImplementation class.
- */
-public class RootPageForm implements IIntroConstants {
-
-    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 {
-
-        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.
-        public Point computeSize(int wHint, int hHint, boolean changed) {
-            return ((RootPageLayout) getLayout()).computeSize(this, wHint,
-                hHint, changed);
-        }
-    }
-
-    class RootPageLayout extends Layout {
-
-        // gap between link composite and description label.
-        private int VERTICAL_SPACING = 20;
-
-        private int LABEL_MARGIN_WIDTH = 5;
-
-        /*
-         * Custom layout for Root Page Composite.
-         */
-        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;
-        }
-
-        /*
-         * (non-Javadoc)
-         * 
-         * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite,
-         *      boolean)
-         */
-        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);
-        }
-    }
-
-    private HyperlinkAdapter hyperlinkAdapter = new HyperlinkAdapter() {
-
-        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());
-        }
-
-        public void linkEntered(HyperlinkEvent e) {
-            ImageHyperlink imageLink = (ImageHyperlink) e.getSource();
-            IntroLink introLink = (IntroLink) imageLink.getData(INTRO_LINK);
-            updateDescription(introLink.getText());
-        }
-
-        public void linkExited(HyperlinkEvent e) {
-            // 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();
-        }
-    };
-
-    /**
-     * 
-     */
-    public RootPageForm(FormToolkit toolkit, IntroModelRoot modelRoot,
-            Form parentForm) {
-        this.toolkit = toolkit;
-        this.rootPage = modelRoot.getHomePage();
-        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());
-
-        // 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);
-
-        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 description label for links description.
-        descriptionLabel = createHoverLabel(rootPageComposite);
-
-        // 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 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);
-
-        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);
-    }
-
-    /**
-     * 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$
-            .toString();
-        Color fg = rootPageStyleManager.getColor(toolkit, key);
-        if (fg == null)
-            fg = toolkit.getColors().getColor(FormColors.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;
-    }
-}
\ No newline at end of file
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
deleted file mode 100644
index 4d167a1..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/swt/SharedStyleManager.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.swt;
-
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.osgi.framework.Bundle;
-
-public class SharedStyleManager {
-
-    protected Properties properties;
-    protected StyleContext context;
-    
-    class StyleContext {
-    	IPath path;
-    	Bundle bundle;
-    	boolean inTheme;
-    }
-
-    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);
-        }
-    }
-
-    protected void load(Properties properties, String style, StyleContext context) {
-        if (style == null)
-            return;
-        try {
-            URL styleURL = new URL(style);
-            InputStream is = styleURL.openStream();
-            properties.load(is);
-            is.close();
-           	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);
-    }
-
-    /*
-     * 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);
-    }
-
-    /**
-     * 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;
-    }
-
-
-
-    /**
-     * 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;
-    }
-
-
-
-    /**
-     * @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;
-    }
-
-
-
-    /**
-     * 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$
-    }
-
-}
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
deleted file mode 100644
index 07a9c79..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/DialogUtil.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.util;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.intro.impl.Messages;
-
-/**
- * Utiliy class for Pop-Up dialogs. This is an NL enabled utility class (ie: you
- * do not have to NL enable the message before calling the methods here if you
- * are calling one of the methids that takes an id as a parameter).
- */
-
-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) {
-
-        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 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 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,
-            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();
-    }
-
-    /**
-     * 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();
-    }
-
-}
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
deleted file mode 100644
index 2b492e0..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/ImageUtil.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.util;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * Convenience class for Images.
- */
-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$
-
-    // 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$
-
-    // 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$
-
-    // 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.
-     * 
-     */
-    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 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);
-    }
-
-    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));
-    }
-
-    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));
-    }
-    
-    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
deleted file mode 100644
index 68c6f18..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/IntroModelSerializer.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.util;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroContainer;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroElement;
-import org.eclipse.ui.internal.intro.impl.model.AbstractIntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroAnchor;
-import org.eclipse.ui.internal.intro.impl.model.IntroContentProvider;
-import org.eclipse.ui.internal.intro.impl.model.IntroGroup;
-import org.eclipse.ui.internal.intro.impl.model.IntroHTML;
-import org.eclipse.ui.internal.intro.impl.model.IntroHead;
-import org.eclipse.ui.internal.intro.impl.model.IntroHomePage;
-import org.eclipse.ui.internal.intro.impl.model.IntroImage;
-import org.eclipse.ui.internal.intro.impl.model.IntroInclude;
-import org.eclipse.ui.internal.intro.impl.model.IntroLink;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.IntroPage;
-import org.eclipse.ui.internal.intro.impl.model.IntroPageTitle;
-import org.eclipse.ui.internal.intro.impl.model.IntroSeparator;
-import org.eclipse.ui.internal.intro.impl.model.IntroText;
-import org.osgi.framework.Bundle;
-
-/**
- * Print the model to a string buffer (only) for debugging.
- */
-public class IntroModelSerializer {
-
-    private StringBuffer buffer;
-    private boolean filter;
-
-    public IntroModelSerializer(IntroModelRoot root) {
-        this(root, false);
-    }
-    
-    public IntroModelSerializer(IntroModelRoot root, boolean filter) {
-        this.buffer = new StringBuffer();
-        this.filter = filter;
-        printModelRootInfo(root, buffer);
-
-        // Root Page
-        IntroHomePage rootPage = root.getHomePage();
-        printHomePage(rootPage, buffer);
-        printPageChildren(rootPage, buffer);
-
-        IntroPage[] pages = root.getPages();
-        printPages(pages, 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;
-    }
-    
-    private void printModelRootInfo(IntroModelRoot model, StringBuffer 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(IntroHomePage rootPage, StringBuffer 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);
-    }
-
-    private void printPageStyles(AbstractIntroPage page, StringBuffer 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$
-
-        Hashtable altStylesHashtable = page.getAltStyles();
-        if (altStylesHashtable == null)
-            return;
-
-        Enumeration altStyles = altStylesHashtable.keys();
-        while (altStyles.hasMoreElements()) {
-            String altStyle = (String) altStyles.nextElement();
-
-            Bundle bundle = (Bundle) altStylesHashtable.get(altStyle);
-            text.append(filterURL(altStyle) + " from " + bundle.getSymbolicName()); //$NON-NLS-1$
-            text.append("\n\t\t"); //$NON-NLS-1$
-        }
-    }
-
-    private void printPageChildren(AbstractIntroPage page, StringBuffer 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$
-
-    }
-
-    private void printContainerChildren(AbstractIntroContainer container,
-            StringBuffer 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;
-
-            }
-        }
-    }
-
-    private void printGroup(StringBuffer 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(StringBuffer 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(StringBuffer 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(StringBuffer 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(StringBuffer 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(StringBuffer 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(StringBuffer 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(StringBuffer text, IntroHead head, String indent) {
-        text.append(indent + "HEAD: src = " + head.getSrc()); //$NON-NLS-1$
-    }
-
-    private void printPageTitle(StringBuffer 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(StringBuffer text, IntroAnchor anchor,
-            String indent) {
-        text.append(indent + "ANCHOR: id = " + anchor.getId()); //$NON-NLS-1$
-    }
-
-    private void printContentProvidor(StringBuffer 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, StringBuffer 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, StringBuffer 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$
-    }
-
-    /**
-     * @return Returns the textUI.
-     */
-    public String 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
deleted file mode 100644
index 24f50ab..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Log.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.util;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-
-/**
- * Utility class for logging, based on Platform logging classes. The log
- * listerner used is the base one supplied by the platform. Error messages are
- * always logged. Warning messages are only logged when the plugin is in debug
- * mode. Info messages are only logged when the /trace/logInfo debug option is
- * set to true. Performance reports are only logged when /trace/performance is
- * set to true.
- * 
- */
-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;
-
-
-    // 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();
-
-    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));
-    }
-
-    /**
-     * 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;
-
-        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;
-
-        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);
-        }
-    }
-}
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
deleted file mode 100644
index 978da83..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/StringUtil.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.util;
-
-
-
-public class StringUtil {
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3) {
-        StringBuffer buffer = new StringBuffer(string1);
-        buffer.append(string2);
-        buffer.append(string3);
-        return buffer;
-    }
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3, String string4) {
-        StringBuffer buffer = concat(string1, string2, string3);
-        buffer.append(string4);
-        return buffer;
-    }
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3, String string4, String string5) {
-        StringBuffer buffer = concat(string1, string2, string3, string4);
-        buffer.append(string5);
-        return buffer;
-    }
-
-    public static StringBuffer concat(String string1, String string2,
-            String string3, String string4, String string5, String string6) {
-        StringBuffer buffer = concat(string1, string2, string3, string4,
-            string5);
-        buffer.append(string6);
-        return buffer;
-    }
-
-
-
-}
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
deleted file mode 100644
index c947e94..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/internal/intro/impl/util/Util.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.intro.impl.util;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-public class Util {
-
-
-
-    /**
-     * 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);
-
-            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);
-    }
-
-    /**
-     * 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 = new Listener() {
-
-            public void handleEvent(Event 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;
-    }
-
-    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 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;
-        }
-    }
-
-    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$
-    }
-
-}
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
deleted file mode 100644
index 8388057..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/CustomizableIntroPart.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.intro.config;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.core.runtime.IRegistryChangeListener;
-import org.eclipse.core.runtime.PerformanceStats;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.intro.impl.IIntroConstants;
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.internal.intro.impl.Messages;
-import org.eclipse.ui.internal.intro.impl.model.IntroModelRoot;
-import org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation;
-import org.eclipse.ui.internal.intro.impl.model.loader.ContentProviderManager;
-import org.eclipse.ui.internal.intro.impl.model.loader.ExtensionPointManager;
-import org.eclipse.ui.internal.intro.impl.model.loader.ModelLoaderUtil;
-import org.eclipse.ui.internal.intro.impl.parts.StandbyPart;
-import org.eclipse.ui.internal.intro.impl.util.DialogUtil;
-import org.eclipse.ui.internal.intro.impl.util.Log;
-import org.eclipse.ui.intro.IIntroSite;
-import org.eclipse.ui.part.IntroPart;
-
-/**
- * A re-usable intro part that the Eclipse platform uses for its Out of the Box
- * Experience. It is a customizable intro part where both its presentation, and
- * its content can be customized based on a configuration. Both are contributed
- * using the org.eclipse.ui.intro.config extension point. There are two
- * presentations: an SWT browser based presentation, and a UI forms
- * presentation. Based on the configuration, one is chosen on startup. If a
- * Browser based presentation is selected, and the intro is being loaded on a
- * platform that does not support the SWT Browser control, the default behavior
- * is to degrade to UI forms presentation. Content displayed in this intro part
- * can be static or dynamic. Static is html files, dynamic is markup in content
- * files. Again, both of which can be specified using the above extension point.
- * <p>
- * Memento Support: This intro part tries to restore its presvious state when
- * possible. The state of the intro page is remembered, along with which standby
- * content content part was opened. IStandbyContent parts are passed the Intro's
- * memento shortly after construction, and are expected to restore there own
- * state based on the momento. The customizable intro part handles there initial
- * creation on load, and leaves restoring state to content part. Same with
- * saving state. The memento is paased shortlt before shutdown to enable storing
- * of part specific data.
- * 
- * Note: This class was made public for re-use, as-is, as a valid class for the
- * <code>org.eclipse.ui.intro</code> extension point. It is not intended to be
- * subclassed or used otheriwse.
- * </p>
- * 
- * @since 3.0
- */
-
-/*
- * Internal docs: This class wraps a presentation part and a standby part. The
- * standby part is only shown when an IntroURL asks to show standby or when we
- * are restarting an Intro with an old memento. An internal data object
- * "showStandbyPart" is set on the control by the intro URL to signal standby
- * part needed. This data is nulled when the close button on the standby part is
- * clicked, signaling that the standby part is no longer needed.
- */
-public final class CustomizableIntroPart extends IntroPart implements
-        IIntroConstants, 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;
-
-
-    // Adapter factory to abstract out the StandbyPart implementation from APIs.
-    IAdapterFactory factory = new IAdapterFactory() {
-
-        public Class[] getAdapterList() {
-            return new Class[] { StandbyPart.class, IntroPartPresentation.class };
-        }
-
-        public Object getAdapter(Object adaptableObject, Class adapterType) {
-            if (!(adaptableObject instanceof CustomizableIntroPart))
-                return null;
-
-            if (adapterType.equals(StandbyPart.class)) {
-                return getStandbyPart();
-            } else if (adapterType.equals(IntroPartPresentation.class)) {
-                return getPresentation();
-            } 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.
-
-        // 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());
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.IIntroPart#init(org.eclipse.ui.intro.IIntroSite,
-     *      org.eclipse.ui.IMemento)
-     */
-    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();
-
-        if (model != null && model.hasValidConfig()) {
-            // we have a valid config contribution, get presentation. Make sure
-            // you pass corret memento.
-            presentation = model.getPresentation();
-            if (presentation != null)
-                presentation.init(this, getMemento(memento,
-                    MEMENTO_PRESENTATION_TAG));
-
-            // 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);
-
-            // 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);
-
-    }
-
-    /**
-     * Creates the UI based on how the InroPart has been configured.
-     * 
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-        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 (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
-     */
-    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, MEMENTO_STANDBY_PART_TAG);
-        if (standbyMemento == null)
-            return false;
-        String restore = standbyMemento.getString(MEMENTO_RESTORE_ATT);
-        if (restore == null)
-            return false;
-        String cachedStandbyPart = standbyMemento
-            .getString(MEMENTO_STANDBY_CONTENT_PART_ID_ATT);
-        if (cachedStandbyPart != null
-                && cachedStandbyPart.equals(EMPTY_STANDBY_CONTENT_PART))
-            return 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)
-     */
-    public void standbyStateChanged(boolean standby) {
-
-        // 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;
-
-        boolean isStandbyPartNeeded = isStandbyPartNeeded();
-        isStandbyPartNeeded = isStandbyPartNeeded | restoreStandby;
-
-        if (standbyPart == null && standby && isStandbyPartNeeded)
-            // if standby part is not created yet, create it only if in
-            // standby, and we need to.
-            createStandbyPart();
-
-        handleSetFocus(isStandbyPartNeeded);
-        setTopControl(isStandbyPartNeeded ? getStandbyControl()
-                : 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.
-        presentation.standbyStateChanged(standby, isStandbyPartNeeded);
-
-    }
-
-    /**
-     * 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.
-     * 
-     * @param standby
-     * @return
-     */
-    private boolean isStandbyPartNeeded() {
-        return container.getData(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, MEMENTO_STANDBY_PART_TAG));
-        standbyPart.createPartControl((Composite) getControl());
-        restoreStandby = false;
-        container.setData(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();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        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 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;
-    }
-
-    IntroPartPresentation getPresentation() {
-        return presentation;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.IWorkbenchPart#dispose()
-     */
-    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);
-
-    }
-
-    /**
-     * @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;
-    }
-
-    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.
-
-        // 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(MEMENTO_PRESENTATION_TAG);
-        IMemento standbyPartMemento = memento
-            .createChild(MEMENTO_STANDBY_PART_TAG);
-        if (restorePresentation)
-            presentationMemento.putString(MEMENTO_RESTORE_ATT, "true"); //$NON-NLS-1$
-        else
-            standbyPartMemento.putString(MEMENTO_RESTORE_ATT, "true"); //$NON-NLS-1$
-        if (presentation != null)
-            presentation.saveState(presentationMemento);
-        if (standbyPart != null)
-            standbyPart.saveState(standbyPartMemento);
-    }
-
-    /*
-     * (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);
-    }
-
-    /**
-     * Support dynamic awarness.
-     * 
-     * @see org.eclipse.core.runtime.IRegistryChangeListener#registryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)
-     */
-    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(new Runnable() {
-
-            public void run() {
-                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);
-
-            }
-        });
-
-    }
-
-
-
-
-}
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
deleted file mode 100644
index 5a32de5..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroAction.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.intro.config;
-
-import java.util.Properties;
-
-import org.eclipse.ui.intro.IIntroSite;
-
-/**
- * An Intro action. Classes that implement this interface can be used as valid
- * value for the "class" parameter for the following intro url:
- * <p>
- * http://org.eclipse.ui.intro/runAction?pluginId=x.y.z&class=x.y.z.someClass
- * </p>
- * 
- * @since 3.0
- */
-public interface IIntroAction {
-
-    /**
-     * Called to run this intro command. The properties represents the key=value
-     * pairs extracted from the intro URL query.
-     * 
-     * @param site
-     * @param params
-     */
-    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
deleted file mode 100644
index 13ec9a6..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProvider.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.intro.config;
-
-import java.io.PrintWriter;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * A content provider for dynamic intro content. It is initialized with the
- * content provider site because a typical content provider would need to update
- * its contents dynamically at runtime. And so, the site can be informed of a
- * need to redraw its content through a call to its reflow(..) method.
- * <p>
- * The life cycle of an IIntroContentProvider is as follows:
- * <ul>
- * <li>a content provider is defined in the Intro content markup file (ie:
- * introContent.xml file) as follows:
- * 
- * <p>
- * &lt;contentProvider id=&quot;roles&quot;
- * class=&quot;x.y.z.ContentProvider&quot;&gt; <br>
- * &lt;text&gt;Some alternate text for dynamic content&lt;/text&gt; <br>
- * &lt;/contentProvider&gt;
- * </p>
- * 
- * This defines the content provider as part of the intro content for that page.
- * </li>
- * <li>the content provider class is created when the page that contains this
- * provider is loaded. It is only created once in the life cycle of an open
- * Intro view, ie: the class instance is cached and only disposed of when the
- * intro view is closed.
- * <li>init() is called to initialize the instance of the class on load of the
- * page. This is where the provider site can be cached for later reuse.</li>
- * <li>createContent() is then called to give the content provider a chance to
- * generate the dynamic content. This is when the dynamic content can be cached
- * for later reuse when the same page is shown again.</li>
- * <li>it is important to note that there is a difference between when the
- * createContent() is called in the case of SWT and HTML presentations. The HTML
- * presentation is dynamic html generated on the fly each time an Intro page
- * needs to be displayed. SWT presentation on the other hand, is based on SWT
- * forms widgets, and for performance, each page is only created once and cached
- * in a pageBook for re-use. With this in mind, createContent() is called every
- * time a page is shown in the case of HTML presentation. Whereas it is only
- * called once in the case of the SWT presentation. This is why createContent()
- * should not be used as a means of refreshing content. Content should only be
- * created once during this method call, and cached for later re-use. If a
- * refresh is needed, then reflow() should be called on the contentProviderSite
- * when the appropriate event happens.
- * <li>finally, when the intro view is closed, dispose will be called on the
- * content provider to give it a chance to dispose of any resources.</li>
- * 
- * @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);
-
-
-    /**
-     * 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);
-
-
-    /**
-     * 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();
-
-}
\ No newline at end of file
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
deleted file mode 100644
index b69010b..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroContentProviderSite.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.intro.config;
-
-/**
- * An interface between a content provider and its parent container. A content
- * provider is responsible for creating dynamic intro content, while the content
- * provider site is responsible for reflowing the new content in the intro part.
- * An intro content provider site may have more than one content provider. The
- * id of the content provider can be used to distinguish the source of the
- * reflow.
- * <p>
- * This interface is not intended to be implemented or extended by clients.
- * 
- * @since 3.0.1
- */
-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);
-}
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
deleted file mode 100644
index 47425a6..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroURL.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.intro.config;
-
-/**
- * An Intro url. An intro URL is a valid http url, with org.eclipse.ui.intro as
- * a host name. It is intended to only be used in conjunction with the
- * pre-supplied CustomizableIntroPart. See the
- * <code>org.eclipse.ui.intro.config</code> extension point for more details.
- * <p>
- * An intro url instance is created by parsing the url and retrieving the
- * embedded "command" and parametrs. For example, the following urls are valid
- * intro urls:
- * <pre>
- *  http://org.eclipse.ui.intro/close
- *  http://org.eclipse.ui.intro/runAction?pluginId=x.y.z&amp;class=x.y.z.someClass
- * </pre>
- * </p>
- * <p>
- * When parsed, the first url has "close" as a command, and no parameters. While
- * the second "runAction" as a command and "pluginId" and "class" as parameters.
- * </p>
- * <p>
- * There is a number of supported Intro commands. Check docs for more details.
- * Calling execute runs the command if it is one of the supported commands.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- * @see IntroURLFactory
- * @see IIntroAction
- * @since 3.0
- */
-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();
-
-    /**
-     * @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);
-}
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
deleted file mode 100644
index 6bfe745..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IIntroXHTMLContentProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.intro.config;
-
-import org.w3c.dom.Element;
-
-/**
- * A content provider for dynamic XHTML Intro content. When an XHTML intro page
- * is parsed and a contentProvider element is detected, it is used to create
- * dynamic XHTML content in the page.
- * 
- * @since 3.1
- */
-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);
-
-
-
-}
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
deleted file mode 100644
index 1999a44..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IStandbyContentPart.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.intro.config;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.intro.IIntroPart;
-
-/**
- * An Intro standby part. It is a UI component that represents some standby
- * content. Standby parts can be contributed to the Eclipse intro using the
- * following extension point:
- * <p>
- * <pre>
- *         &lt;extension point=&quot;org.eclipse.ui.intro.configExtension&quot;&gt;
- *        	&lt;standbyPart
- *       		pluginId=&quot;com.x.y.somePluginId&quot;
- *       		class=&quot;com.x.y.someClass&quot;
- *       		id=&quot;com.x.y.someContentPartId&quot;&gt;
- *       	&lt;/standbyPart&gt; 
- *         &lt;/extension&gt;
- * </pre>
- * 
- * </p>
- * Standby content parts have a life cycle that starts with a call to init,
- * shortly after part construction, followed by a call to createPartControl.
- * During these two calls, the part is responsible for creating its content and
- * using the memento to try to recreate its previous state. SetInput is the last
- * method called when trying to create a standby part.
- * 
- * @since 3.0
- */
-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);
-
-    /**
-     * 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;
-
-    /**
-     * 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();
-
-    /**
-     * 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);
-
-}
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroConfigurer.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroConfigurer.java
deleted file mode 100644
index a90def6..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroConfigurer.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-
-package org.eclipse.ui.intro.config;
-
-import java.util.Map;
-
-import org.eclipse.ui.internal.intro.impl.IntroPlugin;
-import org.eclipse.ui.intro.IIntroSite;
-
-
-/**
- * Classes that extend this abstract class are used to configure <code>CustomizableIntroPart</code>.
- * Since it is possible for multiple products to use the same intro configuration, this class allows
- * them to customize some aspects of the intro content so that it looks different for different
- * products even though they all share the same intro implementation and content.
- * 
- * @since 3.2
- */
-
-public abstract class IntroConfigurer {
-
-	/**
-	 * The identifier of the named group where the configurer can contribute local tool bar actions.
-	 * 
-	 * @see #init(IIntroSite, Map)
-	 */
-	public static final String TB_ADDITIONS = "additions"; //$NON-NLS-1$
-
-	protected Map themeProperties;
-	protected IIntroSite site;
-
-	/**
-	 * Provides the opportunity for the configurer to contribute to the action bars and to fetch
-	 * presentation theme properties.
-	 * 
-	 * @param site
-	 *            the intro part's site
-	 * @param themeProperties
-	 *            properties of the current theme that can be used by the configurer, or
-	 *            <code>null</code> if no theme is currently active or the active theme has no
-	 *            properties.
-	 */
-	public void init(IIntroSite site, Map themeProperties) {
-		this.themeProperties = themeProperties;
-		this.site = site;
-	}
-
-	/**
-	 * Returns the value of the theme property with a given name.
-	 * 
-	 * @param name
-	 *            the theme property name
-	 * @return the value of the property or <code>null</code> if property is not found, the theme
-	 *         does not have properties or no theme is currently active.
-	 */
-
-	protected String getThemeProperty(String name) {
-		if (themeProperties == null)
-			return null;
-		String value = (String)themeProperties.get(name);
-		if (value!=null)
-			value = IntroPlugin.getDefault().getIntroModelRoot().resolveVariables(value);
-		return value;
-	}
-
-	/**
-	 * Returns the value of the variable defined by the configurer. This variable can appear in XML
-	 * content files in attribute names and values of elements. Whenever $variable$ is encountered
-	 * in the content, it is evaluated using this class by passing 'variable' to this method and
-	 * substituting the result in the content.
-	 * 
-	 * @param variableName
-	 *            the name of the substitution variable
-	 * @return the value to substitute in place of a variable or <code>null</code> if the variable
-	 *         cannot be resolved.
-	 */
-	public abstract String getVariable(String variableName);
-
-	/**
-	 * Returns the children of computed groups. Groups marked as computed will be completed at run
-	 * time when the group is asked to provide children.
-	 * 
-	 * @param pageId
-	 *            the identifier of the page in which this group appears
-	 * @param groupId
-	 *            the identifier of the group group within the page
-	 * @return an array of intro elements for this group. Each intro element should contain only
-	 *         legal elements and attributes according to the intro content schema. Returns an empty
-	 *         array for no children.
-	 */
-	public abstract IntroElement[] getGroupChildren(String pageId, String groupId);
-
-	/**
-	 * Returns an array of elements that will be used to build launch bar short cut links. Override
-	 * this method if the intro launch bar has been marked as computed.
-	 * 
-	 * @return an array of elements that will be used to dynamically build shortcut links.
-	 */
-	public IntroElement[] getLaunchBarShortcuts() {
-		return new IntroElement[] {};
-	}
-
-	/**
-	 * Resolves an incomplete path in the form "page_id/@" where page_id represents the identifier
-	 * of the target page. The configurator should complete the path according to its internal
-	 * resolution mechanism. The final path must point at an anchor in the referenced page.
-	 * 
-	 * @param extensionId
-	 *            the id specified for the config extension
-	 * @param path
-	 *            the incomplete path specified for the config extension
-	 * @return the complete path that points at the anchor element in the referenced page, or
-	 *         <code>null</code> if the path cannot be resolved or the extension should be hidden.
-	 */
-	public abstract String resolvePath(String extensionId, String path);
-
-	/**
-	 * Returns the style value that will be mixed in with the original style of the extension.
-	 * Themes can use this feature to render certain extensions differently.
-	 * 
-	 * @param pageId
-	 *            the identifier of the target page that this extension is contributed into
-	 * @param extensionId
-	 *            the identifier of the extension to provide the mixin style for.
-	 * @return the style to add to the original extension style or <code>null</code> if no mixin
-	 *         style is found for this extension.
-	 */
-	public String getMixinStyle(String pageId, String extensionId) {
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroElement.java b/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroElement.java
deleted file mode 100644
index 098f251..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroElement.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2006 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-
-package org.eclipse.ui.intro.config;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-/**
- * Used to provide children of the computed gruops while constructing intro content. Clients provide
- * instances of this class from <code>IntroConfigurer</code> to dynamically complete the intro
- * content. Attribute and element names, as well as content model must match the intro
- * schema.
- * 
- * @since 3.2
- */
-public class IntroElement {
-
-	private String name;
-	private String value;
-	private Hashtable atts = new Hashtable();
-	private ArrayList children;
-
-	/**
-	 * Creates a new intro element with the provided name.
-	 * 
-	 * @param name
-	 *            the name of the new intro element
-	 */
-	public IntroElement(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * Sets the value of the named attribute.
-	 * 
-	 * @param name
-	 *            attribute name
-	 * @param value
-	 *            attribute value
-	 */
-	public void setAttribute(String name, String value) {
-		atts.put(name, value);
-	}
-
-	/**
-	 * Returns the value of the attribute with a given name.
-	 * 
-	 * @param name
-	 *            the attribute name
-	 * @return value of the attribute with a given name or <code>null</code> if not set.
-	 */
-	public String getAttribute(String name) {
-		return (String) atts.get(name);
-	}
-
-	/**
-	 * Returns the names of all the attributes defined in this element.
-	 * 
-	 * @return an enumeration of all the element names
-	 */
-
-	public Enumeration getAttributes() {
-		return atts.keys();
-	}
-
-	/**
-	 * Returns the name of the element.
-	 * 
-	 * @return name of the element
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Returns the value of the element.
-	 * 
-	 * @return value of the element or <code>null</code> if not set.
-	 */
-	public String getValue() {
-		return value;
-	}
-
-	/**
-	 * Sets the value of the element.
-	 * 
-	 * @param value
-	 *            the value of this element
-	 */
-	public void setValue(String value) {
-		this.value = value;
-	}
-
-	/**
-	 * Adds a child to this element.
-	 * 
-	 * @param child
-	 *            the new child of this element
-	 */
-	public void addChild(IntroElement child) {
-		if (children == null)
-			children = new ArrayList();
-		children.add(child);
-	}
-
-	/**
-	 * Returns the children of this element.
-	 * 
-	 * @return an array of child elements or an empty array of there are no children.
-	 */
-	public IntroElement[] getChildren() {
-		if (children == null)
-			return new IntroElement[0];
-		return (IntroElement[]) children.toArray(new IntroElement[children.size()]);
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index c5a303d..0000000
--- a/org.eclipse.ui.intro/src/org/eclipse/ui/intro/config/IntroURLFactory.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.intro.config;
-
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURL;
-import org.eclipse.ui.internal.intro.impl.model.url.IntroURLParser;
-
-/**
- * Factory class used to create instances of an Intro URL. Instances of intro
- * URLs need to be created if you need to programatically construct and execute
- * a valid Intro URL.
- * <p>
- * This class provides all its functionality via static members. It is not
- * intended to be instantiated.
- * </p>
- * 
- * @see IIntroURL
- * @since 3.0
- */
-public final class IntroURLFactory {
-
-    /**
-     * 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>
-     * StringBuffer url = new StringBuffer();
-     * 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;
-    }
-
-}